diff --git a/etc/Makefile.in b/etc/Makefile.in deleted file mode 100644 index a9d2a1976..000000000 --- a/etc/Makefile.in +++ /dev/null @@ -1,425 +0,0 @@ -#------------------------------------------------------------------------------- -# Copyright (c) 2010 Sourcefabric O.P.S. -# -# This file is part of the Campcaster project. -# http://campcaster.sourcefabric.org/ -# To report bugs, send an e-mail to bugs@campware.org -# -# Campcaster 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. -# -# Campcaster 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 Campcaster; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -#------------------------------------------------------------------------------- - -#------------------------------------------------------------------------------- -# General command definitions -#------------------------------------------------------------------------------- -MKDIR = mkdir -p -RM = rm -f -RMDIR = rm -rf -DOXYGEN = doxygen -DOXYTAG = doxytag -XSLTPROC = xsltproc -ECHO = @echo -FLAWFINDER = flawfinder -CP = cp -f - - -#------------------------------------------------------------------------------- -# Basic directory and file definitions -#------------------------------------------------------------------------------- -BASE_DIR = . -BIN_DIR = ${BASE_DIR}/bin -DOC_DIR = ${BASE_DIR}/doc -DOXYGEN_DIR = ${DOC_DIR}/doxygen -COVERAGE_DIR = ${DOC_DIR}/coverage -ETC_DIR = ${BASE_DIR}/etc -SRC_DIR = ${BASE_DIR}/src -TMP_DIR = ${BASE_DIR}/tmp - -prefix = @prefix@ -PACKAGE_VERSION = @PACKAGE_VERSION@ - -USR_DIR = ${prefix} -USR_BIN_DIR = ${USR_DIR}/bin -USR_DOC_DIR = ${USR_DIR}/doc -USR_ETC_DIR = ${USR_DIR}/etc -USR_LIB_DIR = ${USR_DIR}/lib -USR_VAR_DIR = ${USR_DIR}/var - -HOSTNAME = @HOSTNAME@ -APACHE_GROUP = @APACHE_GROUP@ -WWW_DOCROOT = @WWW_DOCROOT@ -WWW_PORT = @WWW_PORT@ -SCHEDULER_PORT = @SCHEDULER_PORT@ -DB_SERVER = @DB_SERVER@ -DATABASE = @DATABASE@ -DB_USER = @DB_USER@ -DB_PASSWORD = @DB_PASSWORD@ -CREATE_LS_DATABASE = @CREATE_LS_DATABASE@ -INIT_LS_DATABASE = @INIT_LS_DATABASE@ -CREATE_ODBC_DATA_SOURCE = @CREATE_ODBC_DATA_SOURCE@ -CONFIGURE_APACHE = @CONFIGURE_APACHE@ -STATION_AUDIO_OUT = "@STATION_AUDIO_OUT@" -STUDIO_AUDIO_OUT = "@STUDIO_AUDIO_OUT@" -STUDIO_AUDIO_CUE = "@STUDIO_AUDIO_CUE@" - - -#export LD_LIBRARY_PATH:=${prefix}/lib:${LD_LIBRARY_PATH} -#export PKG_CONFIG_PATH:=${prefix}/lib/pkgconfig:${PKG_CONFIG_PATH} - -DEBUG = @DEBUG@ - -#DOXYGEN_CONFIG = ${ETC_DIR}/doxygen.config -#XMLRPC-DOXYGEN_CONFIG = ${ETC_DIR}/xmlrpc-doxygen.config -# -#XMLRPCXX_DOC_DIR = ${BASE_DIR}/usr/share/doc/xmlrpc++ -#EXTERNAL_DOC_PAGES = ${XMLRPCXX_DOC_DIR}/XmlRpcServerMethod_8h-source.html \ -# ${XMLRPCXX_DOC_DIR}/classXmlRpc_1_1XmlRpcServerMethod.html \ -# ${XMLRPCXX_DOC_DIR}/classXmlRpc_1_1XmlRpcServerMethod-members.html -#TAGFILE = ${DOXYGEN_DIR}/xmlrpc++.tag -# -#TESTRESULTS_XSLT = ${ETC_DIR}/testResultsToHtml.xsl -#TESTRESULTS_IN = ${ETC_DIR}/testResults.xml -#TESTRESULTS_FILE = ${DOC_DIR}/testResults.html -# -#FLAWFINDER_FILE = ${DOC_DIR}/flawfinderReport.html -# -TOOLS_DIR = ${SRC_DIR}/tools - -#LIBODBCXX_DIR = ${TOOLS_DIR}/libodbc++ -#LIBODBCXX_VERSION = libodbc++-0.2.5 -#XMLRPCXX_DIR = ${TOOLS_DIR}/xmlrpc++ -#XMLRPCXX_VERSION = xmlrpc++-20040713 -#TAGLIB_DIR = ${TOOLS_DIR}/taglib -#TAGLIB_VERSION = taglib-1.5 -PEAR_DIR = ${TOOLS_DIR}/pear - -MODULES_DIR = ${SRC_DIR}/modules -#CORE_DIR = ${MODULES_DIR}/core -#AUTHENTICATION_DIR = ${MODULES_DIR}/authentication -#DB_DIR = ${MODULES_DIR}/db -#STORAGE_CLIENT_DIR = ${MODULES_DIR}/storageClient -#PLAYLIST_EXECUTOR_DIR = ${MODULES_DIR}/playlistExecutor -#EVENT_SCHEDULER_DIR = ${MODULES_DIR}/eventScheduler -#SCHEDULER_CLIENT_DIR = ${MODULES_DIR}/schedulerClient -#WIDGETS_DIR = ${MODULES_DIR}/widgets -#ALIB_DIR = ${MODULES_DIR}/alib -GETID3_DIR = ${MODULES_DIR}/getid3 -HTML_UI_DIR = ${MODULES_DIR}/htmlUI -STORAGE_ADMIN_DIR = ${MODULES_DIR}/storageAdmin -STORAGE_SERVER_DIR = ${MODULES_DIR}/storageServer - -#PRODUCTS_DIR = ${SRC_DIR}/products -#SCHEDULER_DIR = ${PRODUCTS_DIR}/scheduler -#GLIVESUPPORT_DIR = ${PRODUCTS_DIR}/gLiveSupport - -#SCHEDULER_EXE = ${SCHEDULER_DIR}/tmp/campcaster-scheduler -#GLIVESUPPORT_EXE = ${GLIVESUPPORT_DIR}/tmp/campcaster-studio - -#------------------------------------------------------------------------------- -# Targets -#------------------------------------------------------------------------------- -.PHONY: all clean depclean distclean -.PHONY: setup tools_setup modules_setup -.PHONY: start stop status - -all: setup - -help: - ${ECHO} "Campcaster project main Makefile" - ${ECHO} "http://campcaster.sourcefabric.org/" - ${ECHO} "Copyright (c) 2010 Sourcefabric O.P.S. under the GNU GPL" - ${ECHO} "" - ${ECHO} "Useful targets for this makefile:" - ${ECHO} " all - set up and compile everthing" - ${ECHO} " install - install everything" -# ${ECHO} " doc - build autogenerated documentation" - ${ECHO} " clean - clean all modules" - ${ECHO} " check - check all modules" - ${ECHO} "" - ${ECHO} "Some less frequently used targets:" - ${ECHO} " setup - set up the development environment" -# ${ECHO} " doxygen - build autogenerated doxygen documentation only" -# ${ECHO} " compile - compile all modules" -# ${ECHO} " recompile - recompile all modules" - -#doc: doxygen testresults flawfinder -# -#doxygen: -# ${DOXYGEN} ${DOXYGEN_CONFIG} -# ${DOXYGEN} ${XMLRPC-DOXYGEN_CONFIG} -# -#testresults: -# ${XSLTPROC} ${TESTRESULT_XSLT} ${TESTRESULTS_IN} > ${TESTRESULTS_FILE} -# -#flawfinder: -# ${FLAWFINDER} -c --immediate --html \ -# ${CORE_DIR}/include ${CORE_DIR}/src \ -# ${AUTHENTICATION_DIR}/include ${AUTHENTICATION_DIR}/src \ -# ${DB_DIR}/include ${DB_DIR}/src \ -# ${STORAGE_CLIENT_DIR}/include ${STORAGE_CLIENT_DIR}/src \ -# ${PLAYLIST_EXECUTOR_DIR}/include \ -# ${PLAYLIST_EXECUTOR_DIR}/src \ -# ${EVENT_SCHEDULER_DIR}/include ${EVENT_SCHEDULER_DIR}/src \ -# ${SCHEDULER_CLIENT_DIR}/include ${SCHEDULER_CLIENT_DIR}/src \ -# ${WIDGETS_DIR}/include ${WIDGETS_DIR}/src \ -# ${SCHEDULER_DIR}/src > ${FLAWFINDER_FILE} \ -# ${GLIVESUPPORT_DIR}/src > ${FLAWFINDER_FILE} \ - -clean: -# ${RMDIR} ${DOXYGEN_DIR}/html -# ${RMDIR} ${COVERAGE_DIR}/* -# ${RM} ${TMP_DIR}/*.stamp -# ${RM} ${TMP_DIR}/ac* ${TMP_DIR}/config* ${TMP_DIR}/install-sh -# ${RMDIR} ${TMP_DIR}/auto* -# -setup: ${TMP_DIR}/setup.stamp -${TMP_DIR}/setup.stamp: tools_setup modules_setup - touch ${TMP_DIR}/setup.stamp - -recompile: modprod_distclean modules_setup products_setup - -tools_setup: ${TMP_DIR}/tools_setup.stamp -${TMP_DIR}/tools_setup.stamp: -# cd ${LIBODBCXX_DIR}/${LIBODBCXX_VERSION} && ./configure --prefix=${prefix} -# ${MAKE} -C ${LIBODBCXX_DIR}/${LIBODBCXX_VERSION} install -# -# cd ${XMLRPCXX_DIR}/${XMLRPCXX_VERSION} && ./configure --prefix=${prefix} -# ${MAKE} -C ${XMLRPCXX_DIR}/${XMLRPCXX_VERSION} install -# -# cd ${TAGLIB_DIR}/${TAGLIB_VERSION} && ./configure --prefix=${prefix} -# ${MAKE} -C ${TAGLIB_DIR}/${TAGLIB_VERSION} install -# - cd ${PEAR_DIR} && ./configure --prefix=${prefix} - ${MAKE} -C ${PEAR_DIR} install - - touch ${TMP_DIR}/tools_setup.stamp - -tools_distclean: -# -${MAKE} -C ${LIBODBCXX_DIR}/${LIBODBCXX_VERSION} distclean -# -${MAKE} -C ${XMLRPCXX_DIR}/${XMLRPCXX_VERSION} distclean -# -${MAKE} -C ${TAGLIB_DIR}/${TAGLIB_VERSION} distclean - ${RM} ${TMP_DIR}/tools_setup.stamp - -#doxytag_setup: ${TMP_DIR}/doxytag_setup.stamp -#${TMP_DIR}/doxytag_setup.stamp: -# ${DOXYTAG} -t ${TAGFILE} ${EXTERNAL_DOC_PAGES} -# touch ${TMP_DIR}/doxytag_setup.stamp - -modules_setup: ${TMP_DIR}/modules_setup.stamp -${TMP_DIR}/modules_setup.stamp: -# cd ${ALIB_DIR} && ./configure --prefix=${prefix} \ -# PACKAGE_VERSION=${PACKAGE_VERSION} - cd ${GETID3_DIR} && ./configure --prefix=${prefix} \ - PACKAGE_VERSION=${PACKAGE_VERSION} - cd ${HTML_UI_DIR} && ./configure --prefix=${prefix} \ - --with-apache-group=${APACHE_GROUP} \ - --with-www-docroot=${WWW_DOCROOT} \ - --with-configure-apache=${CONFIGURE_APACHE} \ - --with-storage-server=${prefix}/var/Campcaster/storageServer \ - PACKAGE_VERSION=${PACKAGE_VERSION} - cd ${STORAGE_ADMIN_DIR} && ./configure --prefix=${prefix} \ - --with-storage-server=${prefix}/var/Campcaster/storageServer \ - --with-phppart-dir=${prefix}/var/Campcaster/storageAdmin \ - PACKAGE_VERSION=${PACKAGE_VERSION} - cd ${STORAGE_SERVER_DIR} && \ - ./configure --prefix=${prefix} \ - --with-apache-group=${APACHE_GROUP} \ - --with-hostname=${HOSTNAME} \ - --with-www-docroot=${WWW_DOCROOT} \ - --with-www-port=${WWW_PORT} \ - --with-scheduler-port=${SCHEDULER_PORT} \ - --with-database-server=${DB_SERVER} \ - --with-database=${DATABASE} \ - --with-database-user=${DB_USER} \ - --with-database-password=${DB_PASSWORD} \ - --with-init-database=${INIT_LS_DATABASE} \ - PACKAGE_VERSION=${PACKAGE_VERSION} -# cd ${CORE_DIR} && \ -# ./configure --prefix=${prefix} --enable-debug=${DEBUG} \ -# PACKAGE_VERSION=${PACKAGE_VERSION} -# cd ${AUTHENTICATION_DIR} && \ -# ./configure --prefix=${prefix} --enable-debug=${DEBUG} \ -# PACKAGE_VERSION=${PACKAGE_VERSION} -# cd ${DB_DIR} && \ -# ./configure --prefix=${prefix} --enable-debug=${DEBUG} \ -# PACKAGE_VERSION=${PACKAGE_VERSION} -# cd ${STORAGE_CLIENT_DIR} && \ -# ./configure --prefix=${prefix} --enable-debug=${DEBUG} \ -# PACKAGE_VERSION=${PACKAGE_VERSION} -# cd ${PLAYLIST_EXECUTOR_DIR} && \ -# ./configure --prefix=${prefix} --enable-debug=${DEBUG} \ -# PACKAGE_VERSION=${PACKAGE_VERSION} -# cd ${EVENT_SCHEDULER_DIR} && \ -# ./configure --prefix=${prefix} --enable-debug=${DEBUG} \ -# PACKAGE_VERSION=${PACKAGE_VERSION} -# cd ${SCHEDULER_CLIENT_DIR} && \ -# ./configure --prefix=${prefix} --enable-debug=${DEBUG} \ -# PACKAGE_VERSION=${PACKAGE_VERSION} -# cd ${WIDGETS_DIR} && \ -# ./configure --prefix=${prefix} --enable-debug=${DEBUG} \ -# PACKAGE_VERSION=${PACKAGE_VERSION} - touch ${TMP_DIR}/modules_setup.stamp - -#products_setup: ${TMP_DIR}/products_setup.stamp -#${TMP_DIR}/products_setup.stamp: -# cd ${SCHEDULER_DIR} && \ -# ./configure --prefix=${prefix} \ -# --enable-debug=${DEBUG} \ -# --with-hostname=${HOSTNAME} \ -# --with-www-port=${WWW_PORT} \ -# --with-scheduler-port=${SCHEDULER_PORT} \ -# --with-database-server=${DB_SERVER} \ -# --with-database=${DATABASE} \ -# --with-database-user=${DB_USER} \ -# --with-database-password=${DB_PASSWORD} \ -# --with-audio-out=${STATION_AUDIO_OUT} \ -# --with-create-odbc-data-source=${CREATE_ODBC_DATA_SOURCE} \ -# --with-init-database=${INIT_LS_DATABASE} \ -# PACKAGE_VERSION=${PACKAGE_VERSION} -# cd ${GLIVESUPPORT_DIR} && \ -# ./configure --prefix=${prefix} \ -# --enable-debug=${DEBUG} \ -# --with-hostname=${HOSTNAME} \ -# --with-www-port=${WWW_PORT} \ -# --with-scheduler-port=${SCHEDULER_PORT} \ -# --with-database-server=${DB_SERVER} \ -# --with-database=${DATABASE} \ -# --with-database-user=${DB_USER} \ -# --with-database-password=${DB_PASSWORD} \ -# --with-audio-out=${STUDIO_AUDIO_OUT} \ -# --with-audio-cue=${STUDIO_AUDIO_CUE} \ -# PACKAGE_VERSION=${PACKAGE_VERSION} -# touch ${TMP_DIR}/products_setup.stamp - -distclean: clean tools_distclean modprod_distclean - -modprod_distclean: -# ${MAKE} -C ${CORE_DIR} distclean -# ${MAKE} -C ${AUTHENTICATION_DIR} distclean -# ${MAKE} -C ${DB_DIR} distclean -# ${MAKE} -C ${STORAGE_CLIENT_DIR} distclean -# ${MAKE} -C ${PLAYLIST_EXECUTOR_DIR} distclean -# ${MAKE} -C ${EVENT_SCHEDULER_DIR} distclean -# ${MAKE} -C ${SCHEDULER_CLIENT_DIR} distclean -# ${MAKE} -C ${WIDGETS_DIR} distclean -# ${MAKE} -C ${SCHEDULER_DIR} distclean -# ${MAKE} -C ${GLIVESUPPORT_DIR} distclean -# ${RM} ${TMP_DIR}/compile.stamp - ${RM} ${TMP_DIR}/modules_setup.stamp -# ${RM} ${TMP_DIR}/products_setup.stamp - -depclean: -# ${MAKE} -C ${CORE_DIR} depclean -# ${MAKE} -C ${AUTHENTICATION_DIR} depclean -# ${MAKE} -C ${DB_DIR} depclean -# ${MAKE} -C ${STORAGE_CLIENT_DIR} depclean -# ${MAKE} -C ${PLAYLIST_EXECUTOR_DIR} depclean -# ${MAKE} -C ${EVENT_SCHEDULER_DIR} depclean -# ${MAKE} -C ${SCHEDULER_CLIENT_DIR} depclean -# ${MAKE} -C ${WIDGETS_DIR} depclean -# ${MAKE} -C ${SCHEDULER_DIR} depclean -# ${MAKE} -C ${GLIVESUPPORT_DIR} depclean - -${MAKE} -C ${STORAGE_SERVER_DIR} depclean - -#compile: ${TMP_DIR}/compile.stamp -#${TMP_DIR}/compile.stamp: -# ${MAKE} -C ${CORE_DIR} all -# ${MAKE} -C ${AUTHENTICATION_DIR} all -# ${MAKE} -C ${DB_DIR} all -# ${MAKE} -C ${STORAGE_CLIENT_DIR} all -# ${MAKE} -C ${PLAYLIST_EXECUTOR_DIR} all -# ${MAKE} -C ${EVENT_SCHEDULER_DIR} all -# ${MAKE} -C ${SCHEDULER_CLIENT_DIR} all -# ${MAKE} -C ${WIDGETS_DIR} all -# ${MAKE} -C ${SCHEDULER_DIR} all -# ${MAKE} -C ${GLIVESUPPORT_DIR} all -# touch ${TMP_DIR}/compile.stamp - -#check: -# -${MAKE} -C ${CORE_DIR} check -# -${MAKE} -C ${AUTHENTICATION_DIR} check -# -${MAKE} -C ${DB_DIR} check -# -${MAKE} -C ${STORAGE_CLIENT_DIR} check -# -${MAKE} -C ${PLAYLIST_EXECUTOR_DIR} check # hangs on edge.campware.org -# -${MAKE} -C ${EVENT_SCHEDULER_DIR} check -# -${MAKE} -C ${SCHEDULER_CLIENT_DIR} check -# -${MAKE} -C ${WIDGETS_DIR} check # no tests defined -# -${MAKE} -C ${SCHEDULER_DIR} check # has database issues -# -${MAKE} -C ${GLIVESUPPORT_DIR} check # has database issues -# -${MAKE} -C ${STORAGE_SERVER_DIR} check # has database issues - - -start: ${SCHEDULER_EXE} - ${MAKE} -C ${SCHEDULER_DIR} start - -stop: ${SCHEDULER_EXE} - ${MAKE} -C ${SCHEDULER_DIR} stop - -status: ${SCHEDULER_EXE} - ${MAKE} -C ${SCHEDULER_DIR} status - -#run: ${GLIVESUPPORT_EXE} -# ${MAKE} -C ${GLIVESUPPORT_DIR} run - - -#------------------------------------------------------------------------------- -# Installation related targets -#------------------------------------------------------------------------------- -.PHONY: install create_database setup_install_dirs -.PHONY: install_modules - -install: setup setup_install_dirs create_database install_modules - ${MKDIR} ${USR_ETC_DIR}/apache - ${CP} ${ETC_DIR}/apache/*.conf ${USR_ETC_DIR}/apache - ${MKDIR} ${USR_BIN_DIR} - ${CP} ${BIN_DIR}/postInstallStation.sh ${USR_BIN_DIR} -# ${CP} ${ETC_DIR}/campcaster-scheduler ${USR_ETC_DIR} - ${CP} ${ETC_DIR}/pg_hba.conf ${USR_ETC_DIR} - -create_database: -ifeq (@CREATE_LS_DATABASE@,yes) - ${SCHEDULER_DIR}/bin/createDatabase.sh --database=${DATABASE} \ - --dbserver=${DB_SERVER} \ - --dbuser=${DB_USER} \ - --dbpassword=${DB_PASSWORD} -endif - -setup_install_dirs: - ${MKDIR} ${USR_BIN_DIR} -# ${MKDIR} ${USR_DOC_DIR} - ${MKDIR} ${USR_ETC_DIR} - ${MKDIR} ${USR_LIB_DIR} - ${MKDIR} ${USR_VAR_DIR} - -install_modules: -# ${MAKE} -C ${ALIB_DIR} install - ${MAKE} -C ${GETID3_DIR} install - ${MAKE} -C ${HTML_UI_DIR} install - ${MAKE} -C ${STORAGE_ADMIN_DIR} install - ${MAKE} -C ${STORAGE_SERVER_DIR} install -# ${MAKE} -C ${CORE_DIR} install -# ${MAKE} -C ${AUTHENTICATION_DIR} install -# ${MAKE} -C ${DB_DIR} install -# ${MAKE} -C ${STORAGE_CLIENT_DIR} install -# ${MAKE} -C ${PLAYLIST_EXECUTOR_DIR} install -# ${MAKE} -C ${EVENT_SCHEDULER_DIR} install -# ${MAKE} -C ${SCHEDULER_CLIENT_DIR} install -# ${MAKE} -C ${WIDGETS_DIR} install - -#install_products: -# ${MAKE} -C ${SCHEDULER_DIR} install -# ${MAKE} -C ${GLIVESUPPORT_DIR} install - - diff --git a/etc/configure.ac b/etc/configure.ac deleted file mode 100644 index 0b9a088f3..000000000 --- a/etc/configure.ac +++ /dev/null @@ -1,371 +0,0 @@ -dnl----------------------------------------------------------------------------- -dnl Copyright (c) 2010 Sourcefabric O.P.S. -dnl -dnl This file is part of the Campcaster project. -dnl http://campcaster.sourcefabric.org/ -dnl -dnl Campcaster is free software; you can redistribute it and/or modify -dnl it under the terms of the GNU General Public License as published by -dnl the Free Software Foundation; either version 2 of the License, or -dnl (at your option) any later version. -dnl -dnl Campcaster is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY; without even the implied warranty of -dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -dnl GNU General Public License for more details. -dnl -dnl You should have received a copy of the GNU General Public License -dnl along with Campcaster; if not, write to the Free Software -dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -dnl -dnl----------------------------------------------------------------------------- - -dnl----------------------------------------------------------------------------- -dnl NOTE: Run all configure related scripts from the tmp directory of the -dnl project. -dnl This is due to the fact that configure spreads a lot of trash around, -dnl like atom4te cache directories, config.* files, etc. into the directory -dnl it is being run from. We clearly don't want these in our base directory. -dnl----------------------------------------------------------------------------- -AC_INIT(Campcaster, 1.4.0, support@sourcefabric.org) -AC_PREREQ(2.59) -AC_COPYRIGHT([Copyright (c) 2010 Sourcefabric O.P.S. under the GNU GPL]) -AC_REVISION($Revision$) - -dnl AC_CONFIG_SRCDIR(../src/products/scheduler/src/main.cxx) - -dnl AC_PROG_CC() -dnl AC_PROG_CXX() - - -dnl----------------------------------------------------------------------------- -dnl specify whether debug info should be compiled into the executable -dnl----------------------------------------------------------------------------- -dnl AC_SUBST(DEBUG) - -dnl AC_ARG_ENABLE([debug], -dnl AC_HELP_STRING([--enable-debug], [compile with debug info (no)]), -dnl [DEBUG=${enable_debug}], -dnl [DEBUG=no]) - -dnl AC_MSG_RESULT([compiling with debug info: ${DEBUG}]) - - -dnl----------------------------------------------------------------------------- -dnl specify whether the Campcaster database and user should be created -dnl----------------------------------------------------------------------------- -AC_SUBST(CREATE_LS_DATABASE) - -AC_ARG_WITH([create-database], - AC_HELP_STRING([--with-create-database], - [specify whether the Campcaster database and database user - should be created (no)]), - [CREATE_LS_DATABASE=${withval}], - [CREATE_LS_DATABASE=no]) - -AC_MSG_RESULT([creating Campcaster database: ${CREATE_LS_DATABASE}]) - - -dnl----------------------------------------------------------------------------- -dnl specify whether the ODBC data source should be created -dnl----------------------------------------------------------------------------- -AC_SUBST(CREATE_ODBC_DATA_SOURCE) - -AC_ARG_WITH([create-odbc-data-source], - AC_HELP_STRING([--with-create-odbc-data-source], - [specify whether the ODBC data source for Campcaster should be - created (no)]), - [CREATE_ODBC_DATA_SOURCE=${withval}], - [CREATE_ODBC_DATA_SOURCE=no]) - -AC_MSG_RESULT([creating ODBC data source: ${CREATE_ODBC_DATA_SOURCE}]) - - -dnl----------------------------------------------------------------------------- -dnl specify whether the Campcaster database tables should be initialized -dnl----------------------------------------------------------------------------- -AC_SUBST(INIT_LS_DATABASE) - -AC_ARG_WITH([init-database], - AC_HELP_STRING([--with-init-database], - [specify whether the Campcaster database tables should be - initialized (no)]), - [INIT_LS_DATABASE=${withval}], - [INIT_LS_DATABASE=no]) - -AC_MSG_RESULT([initializing Campcaster database: ${INIT_LS_DATABASE}]) - - -dnl----------------------------------------------------------------------------- -dnl specify whether apache should be configured through it's conf.d directory -dnl----------------------------------------------------------------------------- -AC_SUBST(CONFIGURE_APACHE) - -AC_ARG_WITH([configure-apache], - AC_HELP_STRING([--with-configure-apache], - [specify whether apache should be configured for Campcaster - through its conf.d directory (no)]), - [CONFIGURE_APACHE=${withval}], - [CONFIGURE_APACHE=no]) - -AC_MSG_RESULT([configure apache: ${CONFIGURE_APACHE}]) - - -dnl----------------------------------------------------------------------------- -dnl specify the FQDN -dnl----------------------------------------------------------------------------- -AC_SUBST(HOSTNAME) - -AC_ARG_WITH([hostname], - AC_HELP_STRING([--with-hostname], - [use the specified hostname (guess)]), - [HOSTNAME=${withval}], [HOSTNAME=`hostname -f`]) - -AC_MSG_RESULT([using hostname: ${HOSTNAME}]) - - -dnl----------------------------------------------------------------------------- -dnl specify group in which apache is running -dnl----------------------------------------------------------------------------- -AC_SUBST(APACHE_GROUP) - -AC_ARG_WITH([apache-group], - AC_HELP_STRING([--with-apache-group], - [use apache running in the specified group (apache)]), - [APACHE_GROUP=${withval}], [APACHE_GROUP=apache]) - -AC_MSG_RESULT([using apache group: ${APACHE_GROUP}]) - - -dnl----------------------------------------------------------------------------- -dnl specify web document root -dnl----------------------------------------------------------------------------- -AC_SUBST(WWW_DOCROOT) - -AC_ARG_WITH([www-docroot], - AC_HELP_STRING([--with-www-docroot], - [deploy Campcaster under the specified docroot (/var/www)]), - [WWW_DOCROOT=${withval}], [WWW_DOCROOT=/var/www]) - -AC_MSG_RESULT([using www document root: ${WWW_DOCROOT}]) - - -dnl----------------------------------------------------------------------------- -dnl specify the web server port -dnl----------------------------------------------------------------------------- -AC_SUBST(WWW_PORT) - -AC_ARG_WITH([www-port], - AC_HELP_STRING([--with-www-port], - [use the specified www port (80)]), - [WWW_PORT=${withval}], [WWW_PORT=80]) - -AC_MSG_RESULT([using www port: ${WWW_PORT}]) - - -dnl----------------------------------------------------------------------------- -dnl specify the scheduler server port -dnl----------------------------------------------------------------------------- -AC_SUBST(SCHEDULER_PORT) - -AC_ARG_WITH([scheduler-port], - AC_HELP_STRING([--with-scheduler-port], - [use the specified scheduler port (3344)]), - [SCHEDULER_PORT=${withval}], [SCHEDULER_PORT=3344]) - -AC_MSG_RESULT([using scheduler port: ${SCHEDULER_PORT}]) - - -dnl----------------------------------------------------------------------------- -dnl specify the database server name -dnl----------------------------------------------------------------------------- -AC_SUBST(DB_SERVER) - -AC_ARG_WITH([database-server], - AC_HELP_STRING([--with-database-server], - [use the specified database server (localhost)]), - [DB_SERVER=${withval}], [DB_SERVER=localhost]) - -AC_MSG_RESULT([using database server: ${DB_SERVER}]) - - -dnl----------------------------------------------------------------------------- -dnl get the name of the Campcaster database -dnl----------------------------------------------------------------------------- -AC_SUBST(DATABASE) - -AC_ARG_WITH([database], - AC_HELP_STRING([--with-database], - [the name of the postgresql database to use (Campcaster)]), - [DATABASE=${withval}], [DATABASE=Campcaster]) - -AC_MSG_RESULT([using database: ${DATABASE}]) - - -dnl----------------------------------------------------------------------------- -dnl specify the database server user -dnl----------------------------------------------------------------------------- -AC_SUBST(DB_USER) - -AC_ARG_WITH([database-user], - AC_HELP_STRING([--with-database-user], - [use the specified database server user (campcaster)]), - [DB_USER=${withval}], [DB_USER=campcaster]) - -AC_MSG_RESULT([using database server user: ${DB_USER}]) - - -dnl----------------------------------------------------------------------------- -dnl specify the database server user password -dnl----------------------------------------------------------------------------- -AC_SUBST(DB_PASSWORD) - -AC_ARG_WITH([database-password], - AC_HELP_STRING([--with-database-password], - [use the specified database server user password (campcaster)]), - [DB_PASSWORD=${withval}], [DB_PASSWORD=campcaster]) - -AC_MSG_RESULT([using database server user password: ${DB_PASSWORD}]) - - -dnl----------------------------------------------------------------------------- -dnl specify the audio output device for the scheduler -dnl----------------------------------------------------------------------------- -AC_SUBST(STATION_AUDIO_OUT) - -AC_ARG_WITH([station-audio-out], - AC_HELP_STRING([--with-station-audio-out], - [use the specified audio output device for the station, - either ALSA or OSS (default)]), - [STATION_AUDIO_OUT=${withval}], [STATION_AUDIO_OUT=default]) - -AC_MSG_RESULT([using audio output device for the station: ${STATION_AUDIO_OUT}]) - - -dnl----------------------------------------------------------------------------- -dnl specify the audio output device for the studio -dnl----------------------------------------------------------------------------- -dnl AC_SUBST(STUDIO_AUDIO_OUT) - -dnl AC_ARG_WITH([studio-audio-out], -dnl AC_HELP_STRING([--with-studio-audio-out], -dnl [use the specified audio output device for the studio, -dnl either ALSA or OSS (default)]), -dnl [STUDIO_AUDIO_OUT=${withval}], [STUDIO_AUDIO_OUT=default]) - -dnl AC_MSG_RESULT([using audio output device for studio: ${STUDIO_AUDIO_OUT}]) - - -dnl----------------------------------------------------------------------------- -dnl specify the audio output device for the studio for cueing -dnl----------------------------------------------------------------------------- -dnl AC_SUBST(STUDIO_AUDIO_CUE) - -dnl AC_ARG_WITH([studio-audio-cue], -dnl AC_HELP_STRING([--with-studio-audio-cue], -dnl [use the specified audio cue device for the studio, -dnl either ALSA or OSS (default)]), -dnl [STUDIO_AUDIO_CUE=${withval}], [STUDIO_AUDIO_CUE=default]) - -dnl AC_MSG_RESULT([using audio cue device for studio: ${STUDIO_AUDIO_CUE}]) - - -dnl----------------------------------------------------------------------------- -dnl set up the individual components -dnl -dnl unfortunately for both AC_CONFIG_COMMANDS and AC_CONFIG_SUBDIRS, the -dnl directories have to be literally included, so we can't use any -dnl fancy variables to avoid duplication of hard-coded values :( -dnl----------------------------------------------------------------------------- - -dnl set up the alib module -dnl AC_CONFIG_COMMANDS([../src/modules/alib/tmp/configure], -dnl [../src/modules/alib/bin/autogen.sh]) - -dnl set up the getid3 module -AC_CONFIG_COMMANDS([../src/modules/getid3/tmp/configure], - [../src/modules/getid3/bin/autogen.sh]) - -dnl set up the htmlUI module -AC_CONFIG_COMMANDS([../src/modules/htmlUI/tmp/configure], - [../src/modules/htmlUI/bin/autogen.sh]) - -dnl set up the storage admin module -AC_CONFIG_COMMANDS([../src/modules/storageAdmin/tmp/configure], - [../src/modules/storageAdmin/bin/autogen.sh]) - -dnl set up the storage server module -AC_CONFIG_COMMANDS([../src/modules/storageServer/tmp/configure], - [../src/modules/storageServer/bin/autogen.sh]) - -dnl set up the core module -dnl AC_CONFIG_COMMANDS([../src/modules/core/tmp/configure], -dnl [../src/modules/core/bin/autogen.sh]) - -dnl set up the authentication module -dnl AC_CONFIG_COMMANDS([../src/modules/authentication/tmp/configure], -dnl [../src/modules/authentication/bin/autogen.sh]) - -dnl set up the db module -dnl AC_CONFIG_COMMANDS([../src/modules/db/tmp/configure], -dnl [../src/modules/db/bin/autogen.sh]) - -dnl set up the storage client module -dnl AC_CONFIG_COMMANDS([../src/modules/storageClient/tmp/configure], -dnl [../src/modules/storageClient/bin/autogen.sh]) - -dnl set up the playlist executor module -dnl AC_CONFIG_COMMANDS([../src/modules/playlistExecutor/tmp/configure], -dnl [../src/modules/playlistExecutor/bin/autogen.sh]) - -dnl set up the event scheduler module -dnl AC_CONFIG_COMMANDS([../src/modules/eventScheduler/tmp/configure], -dnl [../src/modules/eventScheduler/bin/autogen.sh]) - -dnl set up the scheduler client module -dnl AC_CONFIG_COMMANDS([../src/modules/schedulerClient/tmp/configure], -dnl [../src/modules/schedulerClient/bin/autogen.sh]) - -dnl set up the widgets module -dnl AC_CONFIG_COMMANDS([../src/modules/widgets/tmp/configure], -dnl [../src/modules/widgets/bin/autogen.sh]) - -dnl set up the scheduler product -dnl AC_CONFIG_COMMANDS([../src/products/scheduler/tmp/configure], -dnl [../src/products/scheduler/bin/autogen.sh]) - -dnl set up the gLiveSupport product -dnl AC_CONFIG_COMMANDS([../src/products/gLiveSupport/tmp/configure], -dnl [../src/products/gLiveSupport/bin/autogen.sh]) - - - -dnl display status info on what libraries will get compiled - -AC_MSG_NOTICE( -[ -using the following configuration settings: - - hostname: ${HOSTNAME} - apache group: ${APACHE_GROUP} - www document root: ${WWW_DOCROOT} - www port: ${WWW_PORT} - scheduler port: ${SCHEDULER_PORT} - database server: ${DB_SERVER} - database name: ${DATABASE} - database user: ${DB_USER} - database user password: ${DB_PASSWORD} - station audio output device: ${STATION_AUDIO_OUT} - creating Campcaster database: ${CREATE_LS_DATABASE} - creating ODBC data source: ${CREATE_ODBC_DATA_SOURCE} - initialize Campcaster database: ${INIT_LS_DATABASE} - configuring apache: ${CONFIGURE_APACHE} - -]) - - -AC_CONFIG_FILES(../Makefile:../etc/Makefile.in) - - -AC_OUTPUT() - diff --git a/etc/portage/dev-db/libodbc++/Manifest b/etc/portage/dev-db/libodbc++/Manifest deleted file mode 100644 index 253540a6a..000000000 --- a/etc/portage/dev-db/libodbc++/Manifest +++ /dev/null @@ -1,2 +0,0 @@ -MD5 9dd6a3434f7eaef06fb2956937bbfe2c libodbc++-0.2.3-r2.ebuild 2335 -MD5 76859551271b481b467298625eca2fbf files/digest-libodbc++-0.2.3-r2 67 diff --git a/etc/portage/dev-db/libodbc++/files/digest-libodbc++-0.2.3-r2 b/etc/portage/dev-db/libodbc++/files/digest-libodbc++-0.2.3-r2 deleted file mode 100644 index 424216231..000000000 --- a/etc/portage/dev-db/libodbc++/files/digest-libodbc++-0.2.3-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 92cb6171e5235324c710d89cd271eff9 libodbc++-0.2.3.tar.gz 450097 diff --git a/etc/portage/dev-db/libodbc++/libodbc++-0.2.3-r2.ebuild b/etc/portage/dev-db/libodbc++/libodbc++-0.2.3-r2.ebuild deleted file mode 100644 index 2d228d967..000000000 --- a/etc/portage/dev-db/libodbc++/libodbc++-0.2.3-r2.ebuild +++ /dev/null @@ -1,77 +0,0 @@ -# Copyright 1999-2005 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header$ - -inherit eutils flag-o-matic - -DESCRIPTION="Libodbc++ is a c++ class library that provides a subset of the well-known JDBC 2.0(tm) and runs on top of ODBC." -SRC_URI="mirror://sourceforge/libodbcxx/${P}.tar.gz" -HOMEPAGE="http://libodbcxx.sourceforge.net/" -LICENSE="LGPL-2" - -DEPEND="dev-db/unixODBC - sys-libs/libtermcap-compat" -KEYWORDS="~x86 ~ppc ~hppa ~alpha ~amd64" -IUSE="qt" -SLOT=0 - -SB="${S}-build" -SB_MT="${S}-build-mt" -SB_QT="${S}-build_qt" -SB_QT_MT="${S}-build_qt-mt" - -src_unpack() { - unpack ${A} - cd ${S} - - # toch the programmers reference stamp, so that it is not re-generated - touch doc/progref/progref-stamp -} - -src_compile() { - local commonconf - commonconf="--with-odbc=/usr --without-tests" - commonconf="${commonconf} --enable-static --enable-shared" - # " --enable-threads" - if ! has ccache FEATURES; then - einfo "ccache would really help you compiling this package..." - fi - - export ECONF_SOURCE="${S}" - append-flags -DODBCXX_DISABLE_READLINE_HACK - - buildlist="${SB} ${SB_MT}" - use qt && buildlist="${buildlist} $SB_QT $SB_QT_MT" - - for sd in ${buildlist}; do - mkdir -p "${sd}" - cd "${sd}" - commonconf2='' - LIBS='' - [ "${sd}" == "${SB_MT}" -o "${sd}" == "${SB_QT_MT}" ] && commonconf2="${commonconf2} --enable-threads" - [ "${sd}" == "${SB_QT}" -o "${sd}" == "${SB_QT_MT}" ] && commonconf2="${commonconf2} --with-qt" - [ "${sd}" == "${SB}" ] && commonconf2="${commonconf2} --with-isqlxx" - [ "${sd}" == "${SB_QT}" ] && commonconf2="${commonconf2} --with-qtsqlxx" - export LIBS - # using without-qt breaks the build - #--without-qt \ - libtoolize --copy --force - econf \ - ${commonconf} \ - ${commonconf2} \ - || die "econf failed" - emake || die "emake failed" - done -} - -src_install () { - cd ${S} - dodoc AUTHORS BUGS ChangeLog COPYING INSTALL NEWS README THANKS TODO - - buildlist="${SB} ${SB_MT}" - use qt && buildlist="${buildlist} $SB_QT $SB_QT_MT" - for sd in ${buildlist}; do - cd ${sd} - make DESTDIR=${D} install || die "make install failed" - done -} diff --git a/etc/portage/dev-libs/xmlrpc++/Manifest b/etc/portage/dev-libs/xmlrpc++/Manifest deleted file mode 100644 index e7d894a2e..000000000 --- a/etc/portage/dev-libs/xmlrpc++/Manifest +++ /dev/null @@ -1,6 +0,0 @@ -MD5 c98236a5a9e80d523bd9ae18b85d92c7 xmlrpc++-0.7.ebuild 1046 -MD5 9c03b31bd18ec67ca2d1a38ea5e0da59 files/digest-xmlrpc++-0.7 62 -MD5 30ffa4ae3a5736ec63cb3d72867211a2 files/xmlrpc++-automake.patch 7756 -MD5 1bfb17903af3f417349ffbb38db5abc0 files/incorrect_XmlRpcValue_struct_tm_conversion.patch 1207 -MD5 b5bdda7867960ddfb6530224a2e1dc88 files/uninitialised_XmlRpcSource_ssl_ssl.patch 423 -MD5 ec8a71135df6f24e75e41b0f8b27556b files/xmlrpc++-0.7-to-cvs-20040713.patch 79370 diff --git a/etc/portage/dev-libs/xmlrpc++/files/digest-xmlrpc++-0.7 b/etc/portage/dev-libs/xmlrpc++/files/digest-xmlrpc++-0.7 deleted file mode 100644 index 64d311c1d..000000000 --- a/etc/portage/dev-libs/xmlrpc++/files/digest-xmlrpc++-0.7 +++ /dev/null @@ -1 +0,0 @@ -MD5 d88f0f9c36d938316d672d16f6c37d7e xmlrpc++0.7.tar.gz 64037 diff --git a/etc/portage/dev-libs/xmlrpc++/files/incorrect_XmlRpcValue_struct_tm_conversion.patch b/etc/portage/dev-libs/xmlrpc++/files/incorrect_XmlRpcValue_struct_tm_conversion.patch deleted file mode 100644 index f0fc4cbf1..000000000 --- a/etc/portage/dev-libs/xmlrpc++/files/incorrect_XmlRpcValue_struct_tm_conversion.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff -Nur xmlrpc++/src/XmlRpcValue.cpp x/src/XmlRpcValue.cpp ---- xmlrpc++/src/XmlRpcValue.cpp 2003-06-06 20:13:28.000000000 +0200 -+++ x/src/XmlRpcValue.cpp 2004-12-13 21:02:39.505001617 +0100 -@@ -390,6 +390,7 @@ - return false; - - t.tm_year -= 1900; -+ t.tm_mon -= 1; - t.tm_isdst = -1; - _type = TypeDateTime; - _value.asTime = new struct tm(t); -@@ -402,7 +403,7 @@ - struct tm* t = _value.asTime; - char buf[20]; - snprintf(buf, sizeof(buf)-1, "%04d%02d%02dT%02d:%02d:%02d", -- 1900+t->tm_year,t->tm_mon,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec); -+ 1900+t->tm_year,1+t->tm_mon,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec); - buf[sizeof(buf)-1] = 0; - - std::string xml = VALUE_TAG; -@@ -553,8 +554,8 @@ - { - struct tm* t = _value.asTime; - char buf[20]; -- snprintf(buf, sizeof(buf)-1, "%4d%02d%02dT%02d:%02d:%02d", -- t->tm_year,t->tm_mon,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec); -+ snprintf(buf, sizeof(buf)-1, "%04d%02d%02dT%02d:%02d:%02d", -+ 1900+t->tm_year,1+t->tm_mon,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec); - buf[sizeof(buf)-1] = 0; - os << buf; - break; diff --git a/etc/portage/dev-libs/xmlrpc++/files/uninitialised_XmlRpcSource_ssl_ssl.patch b/etc/portage/dev-libs/xmlrpc++/files/uninitialised_XmlRpcSource_ssl_ssl.patch deleted file mode 100644 index 4c2faa6f6..000000000 --- a/etc/portage/dev-libs/xmlrpc++/files/uninitialised_XmlRpcSource_ssl_ssl.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -Nur xmlrpc++/src/XmlRpcSource.cpp x/src/XmlRpcSource.cpp ---- xmlrpc++/src/XmlRpcSource.cpp 2004-04-13 22:21:59.000000000 +0700 -+++ x/src/XmlRpcSource.cpp 2004-07-14 12:26:28.227768848 +0700 -@@ -9,6 +9,7 @@ - XmlRpcSource::XmlRpcSource(int fd /*= -1*/, bool deleteOnClose /*= false*/) - : _fd(fd), _deleteOnClose(deleteOnClose), _keepOpen(false) - { -+ _ssl_ssl = NULL; - } - - XmlRpcSource::~XmlRpcSource() diff --git a/etc/portage/dev-libs/xmlrpc++/files/xmlrpc++-0.7-to-cvs-20040713.patch b/etc/portage/dev-libs/xmlrpc++/files/xmlrpc++-0.7-to-cvs-20040713.patch deleted file mode 100644 index fb1a3db8a..000000000 --- a/etc/portage/dev-libs/xmlrpc++/files/xmlrpc++-0.7-to-cvs-20040713.patch +++ /dev/null @@ -1,2539 +0,0 @@ -diff -Naur xmlrpc++0.7/debian/changelog xmlrpc++/debian/changelog ---- xmlrpc++0.7/debian/changelog 1970-01-01 01:00:00.000000000 +0100 -+++ xmlrpc++/debian/changelog 2004-04-19 15:51:26.000000000 +0200 -@@ -0,0 +1,5 @@ -+xmlrpc++ (0.8) unstable; urgency=low -+ -+ * Initial release. -+ -+ -- jeff Tue, 13 Apr 2004 11:36:50 -0400 -diff -Naur xmlrpc++0.7/debian/control xmlrpc++/debian/control ---- xmlrpc++0.7/debian/control 1970-01-01 01:00:00.000000000 +0100 -+++ xmlrpc++/debian/control 2004-04-19 15:51:26.000000000 +0200 -@@ -0,0 +1,30 @@ -+Source: xmlrpc++ -+Section: devel -+Priority: optional -+Maintainer: jeff -+Standards-Version: 3.5.8 -+Build-Depends: debmake make gcc libssl-dev -+ -+Package: libxmlrpc++1-dev -+Architecture: any -+Depends: libxmlrpc++1, libc6-dev, libssl-dev -+Provides: libxmlrpc++-dev -+Conflicts: libxmlrpc++-dev -+Description: C++ library for XML-RPC development files -+ XmlRpc++ is a C++ implementation of the XML-RPC protocol. It is based upon -+ Shilad Sen's excellent py-xmlrpc. The XmlRpc protocol was designed to make -+ remote procedure calls easy: it encodes data in a simple XML format and -+ uses HTTP for communication. XmlRpc++ is designed to make it easy to -+ incorporate XML-RPC client and server support into C++ applications. -+ This package is needed to develop applications with this library. -+ -+Package: libxmlrpc++1 -+Architecture: any -+Depends: ${shlibs:Depends} -+Description: C++ library for XML-RPC -+ XmlRpc++ is a C++ implementation of the XML-RPC protocol. It is based upon -+ Shilad Sen's excellent py-xmlrpc. The XmlRpc protocol was designed to make -+ remote procedure calls easy: it encodes data in a simple XML format and -+ uses HTTP for communication. XmlRpc++ is designed to make it easy to -+ incorporate XML-RPC client and server support into C++ applications. -+ -diff -Naur xmlrpc++0.7/debian/copyright xmlrpc++/debian/copyright ---- xmlrpc++0.7/debian/copyright 1970-01-01 01:00:00.000000000 +0100 -+++ xmlrpc++/debian/copyright 2004-04-19 15:51:26.000000000 +0200 -@@ -0,0 +1,5 @@ -+This packaging was written by jeff (jeff@freemedsoftware.com) -+ on Tue, 13 Apr 2004 11:36:50 -0400. -+ -+Copyright: GPL (see /usr/share/common-licenses/GPL) -+ -diff -Naur xmlrpc++0.7/debian/.cvsignore xmlrpc++/debian/.cvsignore ---- xmlrpc++0.7/debian/.cvsignore 1970-01-01 01:00:00.000000000 +0100 -+++ xmlrpc++/debian/.cvsignore 2004-04-19 15:51:26.000000000 +0200 -@@ -0,0 +1,2 @@ -+libxmlrpc++1 -+tmp -diff -Naur xmlrpc++0.7/debian/dirs xmlrpc++/debian/dirs ---- xmlrpc++0.7/debian/dirs 1970-01-01 01:00:00.000000000 +0100 -+++ xmlrpc++/debian/dirs 2004-04-19 15:51:26.000000000 +0200 -@@ -0,0 +1,3 @@ -+usr/lib -+usr/include -+usr/share/man/man3 -diff -Naur xmlrpc++0.7/debian/files xmlrpc++/debian/files ---- xmlrpc++0.7/debian/files 1970-01-01 01:00:00.000000000 +0100 -+++ xmlrpc++/debian/files 2004-04-19 15:51:26.000000000 +0200 -@@ -0,0 +1,2 @@ -+libxmlrpc++1_0.8_i386.deb devel optional -+libxmlrpc++1-dev_0.8_i386.deb devel optional -diff -Naur xmlrpc++0.7/debian/libxmlrpc++1.files xmlrpc++/debian/libxmlrpc++1.files ---- xmlrpc++0.7/debian/libxmlrpc++1.files 1970-01-01 01:00:00.000000000 +0100 -+++ xmlrpc++/debian/libxmlrpc++1.files 2004-04-19 15:51:26.000000000 +0200 -@@ -0,0 +1 @@ -+usr/lib/*.so* -diff -Naur xmlrpc++0.7/debian/libxmlrpc++1.substvars xmlrpc++/debian/libxmlrpc++1.substvars ---- xmlrpc++0.7/debian/libxmlrpc++1.substvars 1970-01-01 01:00:00.000000000 +0100 -+++ xmlrpc++/debian/libxmlrpc++1.substvars 2004-04-19 15:51:26.000000000 +0200 -@@ -0,0 +1 @@ -+shlibs:Depends=libc6 (>= 2.3.2.ds1-4), libgcc1 (>= 1:3.3.3-1), libstdc++5 (>= 1:3.3.3-1) -diff -Naur xmlrpc++0.7/debian/libxmlrpc++-dev.files xmlrpc++/debian/libxmlrpc++-dev.files ---- xmlrpc++0.7/debian/libxmlrpc++-dev.files 1970-01-01 01:00:00.000000000 +0100 -+++ xmlrpc++/debian/libxmlrpc++-dev.files 2004-04-19 15:51:26.000000000 +0200 -@@ -0,0 +1,2 @@ -+usr/lib/*.a -+usr/include/*.h -diff -Naur xmlrpc++0.7/debian/rules xmlrpc++/debian/rules ---- xmlrpc++0.7/debian/rules 1970-01-01 01:00:00.000000000 +0100 -+++ xmlrpc++/debian/rules 2004-04-19 15:51:26.000000000 +0200 -@@ -0,0 +1,86 @@ -+#!/usr/bin/make -f -+# Made with the aid of debmake, by Christoph Lameter, -+# based on the sample debian/rules file for GNU hello by Ian Jackson. -+ -+package=libxmlrpc++ -+ -+version=$(shell expr `pwd` : '.*-\([0-9.]*\)') -+version_major=$(shell expr `pwd` : '.*-\([0-9]*\).[0-9.]*') -+ -+build: -+ $(checkdir) -+ -+ #--- All this would be nice, but I really don't want to debug it: -+ #-mkdir shared static -+ # -+ # First build the shared library -+ # -+ #cd shared ; \ -+ # ln -s ../src . ; \ -+ # $(MAKE) -f ../Makefile VPATH=".." srcdir=".." \ -+ # CFLAGS="-O2 -fPIC -pipe" ; \ -+ # gcc -shared -Wl,-soname,$(package).so.$(version_major) -o $(package).so.$(version) `ls *.o` -+ # -+ # Build the static library (it does not need Position Independent Code, -+ # which reserves one register; thus, without -fPIC we get more efficient -+ # code). -+ # -+ #cd static ; \ -+ # ln -s ../src . ; \ -+ # $(MAKE) -f ../Makefile VPATH=".." srcdir=".." \ -+ # CFLAGS="-O2 -pipe" LDFLAGS="-s" libXmlRpc.a; \ -+ # mv libXmlRpc.a libxmlrpc++.a -+ -+ # So we go with this instead: -+ make CFLAGS="-O2" all -+ touch build -+ -+clean: -+ $(checkdir) -+# rm -rf static shared -+ rm -f build -+ -$(MAKE) clean -+ rm -f `find . -name "*~"` -+ rm -rf debian/tmp `find debian/* -type d ! -name CVS` debian/files* core -+ rm -f debian/*substvars -+ -+binary-indep: checkroot build -+ $(checkdir) -+# There are no architecture-independent files to be uploaded -+# generated by this package. If there were any they would be -+# made here. -+ -+binary-arch: checkroot build -+ $(checkdir) -+ rm -rf debian/tmp `find debian/* -type d ! -name CVS` -+ install -d debian/tmp -+ cd debian/tmp && install -d `cat ../dirs` -+ install -m644 $(package).a debian/tmp/usr/lib/ -+ install -m644 src/*.h debian/tmp/usr/include/ -+ -+ install -m644 $(package).so.$(version) debian/tmp/usr/lib -+ -+ # Should do this in the makefile, but we'll do it here - Jeff -+ #$(MAKE) install DESTDIR=`pwd`/debian/tmp -+ #mkdir -p debian/tmp/usr/{include,lib} -+ #install -m755 *.so* *.a debian/tmp/usr/lib -+ #install -m644 src/*.h *.a debian/tmp/usr/include -+ -+ debstd -m README.html -+ dpkg-gencontrol -isp -plibxmlrpc++1 -+ dpkg-gencontrol -isp -plibxmlrpc++1-dev -+ chown -R root:root debian/tmp -+ chmod -R go=rX debian/tmp -+ dpkg --build debian/tmp .. -+ -+define checkdir -+ test -f debian/rules -+endef -+ -+binary: binary-indep binary-arch -+ -+checkroot: -+ $(checkdir) -+ test root = "`whoami`" -+ -+.PHONY: binary binary-arch binary-indep clean checkroot -diff -Naur xmlrpc++0.7/Makefile xmlrpc++/Makefile ---- xmlrpc++0.7/Makefile 2003-03-06 18:25:38.000000000 +0100 -+++ xmlrpc++/Makefile 2004-04-19 15:53:00.000000000 +0200 -@@ -1,13 +1,23 @@ - # makefile written for gnu make - CXX = g++ - SRC = ./src -+SHARED = -shared - CPPFLAGS = -I$(SRC) - DEBUG = -g - OPTIMIZE = -O2 - GCCWARN = -Wall -Wstrict-prototypes - CXXFLAGS = $(DEBUG) $(GCCWARN) $(OPTIMIZE) $(INCLUDES) -+VERSION = 0.8 -+ -+DESTDIR = -+prefix = /usr -+MKDIR = mkdir -p -+CP = cp -+LN = ln -s - - LIB = ./libXmlRpc.a -+LIBALT = ./libxmlrpc++.a -+SO = ./libxmlrpc++.so.$(VERSION) - - # Add your system-dependent network libs here. These are - # only used to build the tests (your application will need them too). -@@ -22,10 +32,14 @@ - $(SRC)/XmlRpcServerMethod.o $(SRC)/XmlRpcSocket.o $(SRC)/XmlRpcSource.o \ - $(SRC)/XmlRpcUtil.o $(SRC)/XmlRpcValue.o - --all: $(LIB) tests -+all: $(LIB) $(SO) tests - - $(LIB): $(OBJ) - $(AR) $(ARFLAGS) $(LIB) $(OBJ) -+ cp $(LIB) $(LIBALT) -+ -+$(SO): $(OBJ) -+ $(CXX) -o $(SO) $(SHARED) $(OBJ) - - - tests: $(LIB) -@@ -34,9 +48,24 @@ - doc doxygen: - cd src && doxygen Doxyfile - -+distclean: clean -+ - clean: - rm -f $(SRC)/*.o - rm -f $(SRC)/*~ -- rm -f $(LIB) -+ rm -f $(LIB) $(LIBALT) $(SO) -+ rm -f build - cd test && $(MAKE) clean - -+install: -+ $(MKDIR) $(DESTDIR)$(prefix)/lib -+ $(CP) $(SO) $(LIB) $(DESTDIR)$(prefix)/lib -+ $(MKDIR) $(DESTDIR)$(prefix)/include -+ $(CP) src/*.h $(DESTDIR)$(prefix)/include -+ ( cd $(DESTDIR)$(prefix)/lib; rm -f libxmlrpc++.so; $(LN) $(SO) libxmlrpc++.so ) -+ # Does not install tests right now -+ -+# Debian package make target, in case you want to manually build a package -+# from the distribution. -+deb: -+ dpkg-buildpackage -rfakeroot -diff -Naur xmlrpc++0.7/src/XmlRpcClient.cpp xmlrpc++/src/XmlRpcClient.cpp ---- xmlrpc++0.7/src/XmlRpcClient.cpp 2003-03-06 18:25:37.000000000 +0100 -+++ xmlrpc++/src/XmlRpcClient.cpp 2004-04-14 20:36:25.000000000 +0200 -@@ -4,11 +4,14 @@ - #include "XmlRpcSocket.h" - #include "XmlRpc.h" - -+#include "base64.h" // For HTTP authentication encoding -+ - #include - #include -- -+#include - - using namespace XmlRpc; -+using namespace std; - - // Static data - const char XmlRpcClient::REQUEST_BEGIN[] = -@@ -31,13 +34,83 @@ - - _host = host; - _port = port; -+ if (uri && *uri) -+ _uri = uri; -+ else -+ _uri = "/RPC2"; -+ _connectionState = NO_CONNECTION; -+ _executing = false; -+ _eof = false; -+ _ssl = false; _ssl_ssl = (SSL *) NULL; -+ -+ // Default to keeping the connection open until an explicit close is done -+ setKeepOpen(); -+} -+XmlRpcClient::XmlRpcClient(const char* host, int port, const char* uri, bool ssl) -+{ -+ XmlRpcUtil::log(1, "XmlRpcClient new client: host %s, port %d.", host, port); -+ -+ _host = host; -+ _port = port; -+ if (uri && *uri) -+ _uri = uri; -+ else -+ _uri = "/RPC2"; -+ _connectionState = NO_CONNECTION; -+ _executing = false; -+ _eof = false; -+ _ssl = ssl; -+ if (!_ssl) { _ssl_ssl = (SSL *) NULL; } -+ -+ // Default to keeping the connection open until an explicit close is done -+ setKeepOpen(); -+} -+ -+ -+XmlRpcClient::XmlRpcClient(const char* host, int port, -+ const char* login, const char* password, const char* uri/*=0*/) -+{ -+ XmlRpcUtil::log(1, "XmlRpcClient new client: host %s, port %d, login %s.", host, port, login); -+ -+ _host = host; -+ _port = port; - if (uri) - _uri = uri; - else - _uri = "/RPC2"; -+ -+ _login = login; -+ _password = password; -+ -+ _connectionState = NO_CONNECTION; -+ _executing = false; -+ _eof = false; -+ -+ // Default to keeping the connection open until an explicit close is done -+ setKeepOpen(); -+} -+ -+XmlRpcClient::XmlRpcClient(const char* host, int port, -+ const char* login, const char* password, -+ const char* uri/*=0*/, bool ssl) -+{ -+ XmlRpcUtil::log(1, "XmlRpcClient new client: host %s, port %d, login %s.", host, port, login); -+ -+ _host = host; -+ _port = port; -+ if (uri) -+ _uri = uri; -+ else -+ _uri = "/RPC2"; -+ -+ _login = login; -+ _password = password; -+ - _connectionState = NO_CONNECTION; - _executing = false; - _eof = false; -+ _ssl = ssl; -+ if (!_ssl) { _ssl_ssl = (SSL *) NULL; } - - // Default to keeping the connection open until an explicit close is done - setKeepOpen(); -@@ -46,8 +119,11 @@ - - XmlRpcClient::~XmlRpcClient() - { -+ XmlRpcUtil::log(1, "XmlRpcClient dtor client: host %s, port %d.", _host.c_str(), _port); -+ if (_connectionState != NO_CONNECTION) close(); - } - -+ - // Close the owned fd - void - XmlRpcClient::close() -@@ -56,7 +132,21 @@ - _connectionState = NO_CONNECTION; - _disp.exit(); - _disp.removeSource(this); -+ if (_ssl) { -+ // Pre-socket shutdown -+ XmlRpcUtil::log(4, "XmlRpcClient::close: before SSL_shutdown"); -+ SSL_shutdown(_ssl_ssl); -+ XmlRpcUtil::log(4, "XmlRpcClient::close: after SSL_shutdown"); -+ } - XmlRpcSource::close(); -+ if (_ssl) { -+ // Post-socket shutdown -+ XmlRpcUtil::log(4, "XmlRpcClient::close: before SSL_free(_ssl_ssl)"); -+ SSL_free(_ssl_ssl); -+ XmlRpcUtil::log(4, "XmlRpcClient::close: before SSL_CTX_free(_ssl_ctx)"); -+ SSL_CTX_free(_ssl_ctx); -+ XmlRpcUtil::log(4, "XmlRpcClient::close: SSL shutdown successful!"); -+ } - } - - -@@ -113,6 +203,10 @@ - { - if (eventType == XmlRpcDispatch::Exception) - { -+ //if (XmlRpcSocket::nonFatalError()) -+ // return (_connectionState == WRITE_REQUEST) -+ // ? XmlRpcDispatch::WritableEvent : XmlRpcDispatch::ReadableEvent; -+ - if (_connectionState == WRITE_REQUEST && _bytesWritten == 0) - XmlRpcUtil::error("Error in XmlRpcClient::handleEvent: could not connect to server (%s).", - XmlRpcSocket::getErrorMsg().c_str()); -@@ -191,6 +285,17 @@ - return false; - } - -+ // Perform SSL if needed -+ if (_ssl) { -+ SSLeay_add_ssl_algorithms(); -+ _ssl_meth = SSLv23_client_method(); -+ SSL_load_error_strings(); -+ _ssl_ctx = SSL_CTX_new (_ssl_meth); -+ _ssl_ssl = SSL_new (_ssl_ctx); -+ SSL_set_fd (_ssl_ssl, fd); -+ int err = SSL_connect (_ssl_ssl); -+ } -+ - return true; - } - -@@ -247,6 +352,35 @@ - sprintf(buff,":%d\r\n", _port); - - header += buff; -+ -+ if (_login.length() != 0) -+ { -+ // convert to base64 -+ std::vector base64data; -+ int iostatus = 0; -+ base64 encoder; -+ std::back_insert_iterator > ins = -+ std::back_inserter(base64data); -+ -+ std::string authBuf = _login + ":" + _password; -+ -+ encoder.put(authBuf.begin(), authBuf.end(), ins, iostatus, -+ base64<>::crlf()); -+ -+ header += "Authorization: Basic "; -+ std::string authEnc(base64data.begin(), base64data.end()); -+ // handle pesky linefeed characters -+ string::size_type lf; -+ while ( (lf = authEnc.find("\r")) != string::npos ) { -+ authEnc.erase(lf, 1); -+ } -+ while ( (lf = authEnc.find("\n")) != string::npos ) { -+ authEnc.erase(lf, 1); -+ } -+ header += authEnc; -+ header += "\r\n"; -+ } -+ - header += "Content-Type: text/xml\r\nContent-length: "; - - sprintf(buff,"%d\r\n\r\n", body.size()); -@@ -261,7 +395,7 @@ - XmlRpcUtil::log(5, "XmlRpcClient::writeRequest (attempt %d):\n%s\n", _sendAttempts+1, _request.c_str()); - - // Try to write the request -- if ( ! XmlRpcSocket::nbWrite(this->getfd(), _request, &_bytesWritten)) { -+ if ( ! XmlRpcSocket::nbWrite(this->getfd(), _request, &_bytesWritten, _ssl_ssl)) { - XmlRpcUtil::error("Error in XmlRpcClient::writeRequest: write error (%s).",XmlRpcSocket::getErrorMsg().c_str()); - return false; - } -@@ -283,7 +417,7 @@ - XmlRpcClient::readHeader() - { - // Read available data -- if ( ! XmlRpcSocket::nbRead(this->getfd(), _header, &_eof) || -+ if ( ! XmlRpcSocket::nbRead(this->getfd(), _header, &_eof, _ssl_ssl) || - (_eof && _header.length() == 0)) { - - // If we haven't read any data yet and this is a keep-alive connection, the server may -@@ -355,7 +489,7 @@ - { - // If we dont have the entire response yet, read available data - if (int(_response.length()) < _contentLength) { -- if ( ! XmlRpcSocket::nbRead(this->getfd(), _response, &_eof)) { -+ if ( ! XmlRpcSocket::nbRead(this->getfd(), _response, &_eof, _ssl_ssl)) { - XmlRpcUtil::error("Error in XmlRpcClient::readResponse: read error (%s).",XmlRpcSocket::getErrorMsg().c_str()); - return false; - } -diff -Naur xmlrpc++0.7/src/XmlRpcClient.h xmlrpc++/src/XmlRpcClient.h ---- xmlrpc++0.7/src/XmlRpcClient.h 2003-03-06 18:25:37.000000000 +0100 -+++ xmlrpc++/src/XmlRpcClient.h 2004-04-13 17:21:59.000000000 +0200 -@@ -37,10 +37,21 @@ - static const char FAULT_TAG[]; - - //! Construct a client to connect to the server at the specified host:port address -- //! @param host The name of the remote machine hosting the server -+ //! @param host The name of the remote machine hosting the server, eg "myserver.mycompany.com" - //! @param port The port on the remote machine where the server is listening - //! @param uri An optional string to be sent as the URI in the HTTP GET header -+ //! Note that the host is not a URL, do not prepend "http://" or other protocol specifiers. - XmlRpcClient(const char* host, int port, const char* uri=0); -+ XmlRpcClient(const char* host, int port, const char* uri=0, bool ssl=false); -+ -+ //! Construct a client to connect to the server at the specified host:port address including HTTP authentication -+ //! @param host The name of the remote machine hosting the server -+ //! @param port The port on the remote machine where the server is listening -+ //! @param login The username passed to the server -+ //! @param pass The password passed to the server -+ //! @param uri An optional string to be sent as the URI in the HTTP GET header -+ XmlRpcClient(const char* host, int port, const char* login, const char* password, const char* uri=0); -+ XmlRpcClient(const char* host, int port, const char* login, const char* password, const char* uri=0, bool ssl=false); - - //! Destructor - virtual ~XmlRpcClient(); -@@ -60,6 +71,14 @@ - //! Returns true if the result of the last execute() was a fault response. - bool isFault() const { return _isFault; } - -+ //! Return the host name of the server -+ const char* const host() const { return _host.c_str(); } -+ -+ //! Return the port -+ int port() const { return _port; } -+ -+ //! Return the URI -+ const char* const uri() const { return _uri.c_str(); } - - // XmlRpcSource interface implementation - //! Close the connection -@@ -91,6 +110,10 @@ - std::string _uri; - int _port; - -+ // Login information for HTTP authentication -+ std::string _login; -+ std::string _password; -+ - // The xml-encoded request, http header of response, and response xml - std::string _request; - std::string _header; -@@ -108,9 +131,9 @@ - - // True if the server closed the connection - bool _eof; -- -- // True if a fault response was returned by the server -- bool _isFault; -+ -+ // True if a fault response was returned by the server -+ bool _isFault; - - // Number of bytes expected in the response body (parsed from response header) - int _contentLength; -diff -Naur xmlrpc++0.7/src/XmlRpcDispatch.cpp xmlrpc++/src/XmlRpcDispatch.cpp ---- xmlrpc++0.7/src/XmlRpcDispatch.cpp 2003-03-06 18:25:37.000000000 +0100 -+++ xmlrpc++/src/XmlRpcDispatch.cpp 2003-04-29 03:06:22.000000000 +0200 -@@ -3,6 +3,7 @@ - #include "XmlRpcSource.h" - #include "XmlRpcUtil.h" - -+#include - #include - #include - -@@ -74,73 +75,21 @@ - XmlRpcDispatch::work(double timeout) - { - // Compute end time -- _endTime = (timeout < 0.0) ? -1.0 : (getTime() + timeout); -+ double timeNow = getTime(); -+ _endTime = (timeout < 0.0) ? -1.0 : (timeNow + timeout); - _doClear = false; - _inWork = true; - - // Only work while there is something to monitor - while (_sources.size() > 0) { - -- // Construct the sets of descriptors we are interested in -- fd_set inFd, outFd, excFd; -- FD_ZERO(&inFd); -- FD_ZERO(&outFd); -- FD_ZERO(&excFd); -- -- int maxFd = -1; // Not used on windows -- SourceList::iterator it; -- for (it=_sources.begin(); it!=_sources.end(); ++it) { -- int fd = it->getSource()->getfd(); -- if (it->getMask() & ReadableEvent) FD_SET(fd, &inFd); -- if (it->getMask() & WritableEvent) FD_SET(fd, &outFd); -- if (it->getMask() & Exception) FD_SET(fd, &excFd); -- if (it->getMask() && fd > maxFd) maxFd = fd; -- } -- -- // Check for events -- int nEvents; -- if (timeout < 0.0) -- nEvents = select(maxFd+1, &inFd, &outFd, &excFd, NULL); -- else -+ // Wait for and dispatch events -+ if ( ! waitForAndProcessEvents(timeout)) - { -- struct timeval tv; -- tv.tv_sec = (int)floor(timeout); -- tv.tv_usec = ((int)floor(1000000.0 * (timeout-floor(timeout)))) % 1000000; -- nEvents = select(maxFd+1, &inFd, &outFd, &excFd, &tv); -- } -- -- if (nEvents < 0) -- { -- XmlRpcUtil::error("Error in XmlRpcDispatch::work: error in select (%d).", nEvents); - _inWork = false; - return; - } - -- // Process events -- for (it=_sources.begin(); it != _sources.end(); ) -- { -- SourceList::iterator thisIt = it++; -- XmlRpcSource* src = thisIt->getSource(); -- int fd = src->getfd(); -- unsigned newMask = (unsigned) -1; -- if (fd <= maxFd) { -- // If you select on multiple event types this could be ambiguous -- if (FD_ISSET(fd, &inFd)) -- newMask &= src->handleEvent(ReadableEvent); -- if (FD_ISSET(fd, &outFd)) -- newMask &= src->handleEvent(WritableEvent); -- if (FD_ISSET(fd, &excFd)) -- newMask &= src->handleEvent(Exception); -- -- if ( ! newMask) { -- _sources.erase(thisIt); // Stop monitoring this one -- if ( ! src->getKeepOpen()) -- src->close(); -- } else if (newMask != (unsigned) -1) { -- thisIt->getMask() = newMask; -- } -- } -- } - - // Check whether to clear all sources - if (_doClear) -@@ -148,22 +97,35 @@ - SourceList closeList = _sources; - _sources.clear(); - for (SourceList::iterator it=closeList.begin(); it!=closeList.end(); ++it) { -- XmlRpcSource *src = it->getSource(); -+ XmlRpcSource *src = it->getSource(); - src->close(); - } - - _doClear = false; - } - -- // Check whether end time has passed -- if (0 <= _endTime && getTime() > _endTime) -+ // Check whether end time has passed or exit has been called -+ if (_endTime == 0.0) // Exit - break; -+ else if (_endTime > 0.0) // Check for timeout -+ { -+ double t = getTime(); -+ if (t > _endTime) -+ break; -+ -+ // Decrement timeout by elapsed time -+ timeout -= (t - timeNow); -+ if (timeout < 0.0) -+ timeout = 0.0; // Shouldn't happen but its fp math... -+ timeNow = t; -+ } - } - - _inWork = false; - } - - -+ - // Exit from work routine. Presumably this will be called from - // one of the source event handlers. - void -@@ -172,6 +134,7 @@ - _endTime = 0.0; // Return from work asap - } - -+ - // Clear all sources from the monitored sources list - void - XmlRpcDispatch::clear() -@@ -188,6 +151,7 @@ - } - - -+// Time utility - double - XmlRpcDispatch::getTime() - { -@@ -207,3 +171,98 @@ - } - - -+// Wait for I/O on any source, timeout, or interrupt signal. -+bool -+XmlRpcDispatch::waitForAndProcessEvents(double timeout) -+{ -+#if defined(_WINDOWS) && 0 -+ -+ int nHandles = 0; -+ SourceList::iterator it; -+ for (it=_sources.begin(); it!=_sources.end(); ++it) { -+ int fd = it->getSource()->getfd(); -+ int mask = 0; -+ if (it->getMask() & ReadableEvent) mask = (FD_READ | FD_CLOSE | FD_ACCEPT); -+ if (it->getMask() & WritableEvent) mask |= (FD_WRITE | FD_CLOSE); -+ -+#else // Posix -+ -+ // Construct the sets of descriptors we are interested in -+ fd_set inFd, outFd, excFd; -+ FD_ZERO(&inFd); -+ FD_ZERO(&outFd); -+ FD_ZERO(&excFd); -+ -+ int maxFd = -1; -+ SourceList::iterator it; -+ for (it=_sources.begin(); it!=_sources.end(); ++it) { -+ int fd = it->getSource()->getfd(); -+ if (it->getMask() & ReadableEvent) FD_SET(fd, &inFd); -+ if (it->getMask() & WritableEvent) FD_SET(fd, &outFd); -+ if (it->getMask() & Exception) FD_SET(fd, &excFd); -+ if (it->getMask() && fd > maxFd) maxFd = fd; -+ } -+ -+ // Check for events -+ int nEvents; -+ if (_endTime < 0.0) -+ nEvents = select(maxFd+1, &inFd, &outFd, &excFd, NULL); -+ else -+ { -+ struct timeval tv; -+ tv.tv_sec = (int)floor(timeout); -+ tv.tv_usec = ((int)floor(1000000.0 * (timeout-floor(timeout)))) % 1000000; -+ nEvents = select(maxFd+1, &inFd, &outFd, &excFd, &tv); -+ } -+ -+ if (nEvents < 0 && errno != EINTR) -+ { -+ XmlRpcUtil::error("Error in XmlRpcDispatch::work: error in select (%d).", nEvents); -+ return false; -+ } -+ -+ // Process events -+ for (it=_sources.begin(); it != _sources.end(); ) -+ { -+ SourceList::iterator thisIt = it++; -+ XmlRpcSource* src = thisIt->getSource(); -+ int fd = src->getfd(); -+ -+ if (fd <= maxFd) { -+ // handleEvent is called once per event type signalled -+ unsigned newMask = 0; -+ int nset = 0; -+ if (FD_ISSET(fd, &inFd)) -+ { -+ newMask |= src->handleEvent(ReadableEvent); -+ ++nset; -+ } -+ if (FD_ISSET(fd, &outFd)) -+ { -+ newMask |= src->handleEvent(WritableEvent); -+ ++nset; -+ } -+ if (FD_ISSET(fd, &excFd)) -+ { -+ newMask |= src->handleEvent(Exception); -+ ++nset; -+ } -+ -+ // Some event occurred -+ if (nset) -+ { -+ if (newMask) -+ thisIt->getMask() = newMask; -+ else // Stop monitoring this one -+ { -+ _sources.erase(thisIt); -+ if ( ! src->getKeepOpen()) -+ src->close(); -+ } -+ } -+ } -+ } -+#endif -+ -+ return true; -+} -diff -Naur xmlrpc++0.7/src/XmlRpcDispatch.h xmlrpc++/src/XmlRpcDispatch.h ---- xmlrpc++0.7/src/XmlRpcDispatch.h 2003-03-06 18:25:37.000000000 +0100 -+++ xmlrpc++/src/XmlRpcDispatch.h 2003-04-29 03:06:22.000000000 +0200 -@@ -40,6 +40,7 @@ - - //! Stop monitoring this source. - //! @param source The source to stop monitoring -+ //! The source socket is not closed. - void removeSource(XmlRpcSource* source); - - //! Modify the types of events to watch for on this source -@@ -58,6 +59,10 @@ - - protected: - -+ //! Wait for I/O on any source, timeout, or interrupt signal. -+ bool waitForAndProcessEvents(double timeout); -+ -+ - // helper - double getTime(); - -diff -Naur xmlrpc++0.7/src/XmlRpc.h xmlrpc++/src/XmlRpc.h ---- xmlrpc++0.7/src/XmlRpc.h 2003-03-06 18:25:37.000000000 +0100 -+++ xmlrpc++/src/XmlRpc.h 2003-04-29 03:06:21.000000000 +0200 -@@ -15,6 +15,9 @@ - // You should have received a copy of the GNU Lesser General Public - // License along with this library; if not, write to the Free Software - // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -+// -+// The XmlRpc++ home page is http://xmlrpcpp.sourceforge.net/ -+// My home page is http://www.vermontel.net/~cmorley/ - // - - #if defined(_MSC_VER) -diff -Naur xmlrpc++0.7/src/XmlRpcMutex.cpp xmlrpc++/src/XmlRpcMutex.cpp ---- xmlrpc++0.7/src/XmlRpcMutex.cpp 1970-01-01 01:00:00.000000000 +0100 -+++ xmlrpc++/src/XmlRpcMutex.cpp 2003-04-29 03:06:22.000000000 +0200 -@@ -0,0 +1,60 @@ -+#if defined(XMLRPC_THREADS) -+ -+#include "XmlRpcMutex.h" -+ -+#if defined(_WINDOWS) -+# define WIN32_LEAN_AND_MEAN -+# include -+#else -+# include -+#endif -+ -+using namespace XmlRpc; -+ -+ -+//! Destructor. -+XmlRpcMutex::~XmlRpcMutex() -+{ -+ if (_pMutex) -+ { -+#if defined(_WINDOWS) -+ ::CloseHandle((HANDLE)_pMutex); -+#else -+ ::pthread_mutex_destroy((pthread_mutex_t*)_pMutex); -+ delete _pMutex; -+#endif -+ _pMutex = 0; -+ } -+} -+ -+//! Wait for the mutex to be available and then acquire the lock. -+void XmlRpcMutex::acquire() -+{ -+#if defined(_WINDOWS) -+ if ( ! _pMutex) -+ _pMutex = ::CreateMutex(0, TRUE, 0); -+ else -+ ::WaitForSingleObject(_pMutex, INFINITE); -+#else -+ if ( ! _pMutex) -+ { -+ _pMutex = new pthread_mutex_t; -+ ::pthread_mutex_init((pthread_mutex_t*)_pMutex, 0); -+ } -+ ::pthread_mutex_lock((pthread_mutex_t*)_pMutex); -+#endif -+} -+ -+//! Release the mutex. -+void XmlRpcMutex::release() -+{ -+ if (_pMutex) -+#if defined(_WINDOWS) -+ ::ReleaseMutex(_pMutex); -+#else -+ ::pthread_mutex_unlock((pthread_mutex_t*)_pMutex); -+#endif -+} -+ -+#endif // XMLRPC_THREADS -+ -diff -Naur xmlrpc++0.7/src/XmlRpcMutex.h xmlrpc++/src/XmlRpcMutex.h ---- xmlrpc++0.7/src/XmlRpcMutex.h 1970-01-01 01:00:00.000000000 +0100 -+++ xmlrpc++/src/XmlRpcMutex.h 2003-04-23 22:57:52.000000000 +0200 -@@ -0,0 +1,46 @@ -+#ifndef _XMLRPCMUTEX_H_ -+#define _XMLRPCMUTEX_H_ -+// -+// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley -+// -+#if defined(_MSC_VER) -+# pragma warning(disable:4786) // identifier was truncated in debug info -+#endif -+ -+namespace XmlRpc { -+ -+ //! A simple platform-independent mutex API implemented for posix and windows. -+ class XmlRpcMutex { -+ public: -+ //! Construct a Mutex object. -+ XmlRpcMutex() : _pMutex(0) {} -+ -+ //! Destroy a Mutex object. -+ ~XmlRpcMutex(); -+ -+ //! Wait for the mutex to be available and then acquire the lock. -+ void acquire(); -+ -+ //! Release the mutex. -+ void release(); -+ -+ //! Utility class to acquire a mutex at construction and release it when destroyed. -+ struct AutoLock { -+ //! Acquire the mutex at construction -+ AutoLock(XmlRpcMutex& m) : _m(m) { _m.acquire(); } -+ //! Release at destruction -+ ~AutoLock() { _m.release(); } -+ //! The mutex being held -+ XmlRpcMutex& _m; -+ }; -+ -+ private: -+ -+ //! Native Mutex object -+ void* _pMutex; -+ -+ }; // class XmlRpcMutex -+ -+} // namespace XmlRpc -+ -+#endif // _XMLRPCMUTEX_H_ -diff -Naur xmlrpc++0.7/src/XmlRpcServerConnection.cpp xmlrpc++/src/XmlRpcServerConnection.cpp ---- xmlrpc++0.7/src/XmlRpcServerConnection.cpp 2003-03-06 18:25:37.000000000 +0100 -+++ xmlrpc++/src/XmlRpcServerConnection.cpp 2004-04-13 17:21:59.000000000 +0200 -@@ -2,32 +2,23 @@ - #include "XmlRpcServerConnection.h" - - #include "XmlRpcSocket.h" --#include "XmlRpc.h" - #ifndef MAKEDEPEND - # include - # include - #endif - --using namespace XmlRpc; -- --// Static data --const char XmlRpcServerConnection::METHODNAME_TAG[] = ""; --const char XmlRpcServerConnection::PARAMS_TAG[] = ""; --const char XmlRpcServerConnection::PARAMS_ETAG[] = ""; --const char XmlRpcServerConnection::PARAM_TAG[] = ""; --const char XmlRpcServerConnection::PARAM_ETAG[] = ""; -- --const std::string XmlRpcServerConnection::SYSTEM_MULTICALL = "system.multicall"; --const std::string XmlRpcServerConnection::METHODNAME = "methodName"; --const std::string XmlRpcServerConnection::PARAMS = "params"; -+#include "XmlRpcDispatch.h" -+#include "XmlRpcServer.h" -+#include "XmlRpcUtil.h" - --const std::string XmlRpcServerConnection::FAULTCODE = "faultCode"; --const std::string XmlRpcServerConnection::FAULTSTRING = "faultString"; -+using namespace XmlRpc; - - - - // The server delegates handling client requests to a serverConnection object. --XmlRpcServerConnection::XmlRpcServerConnection(int fd, XmlRpcServer* server, bool deleteOnClose /*= false*/) : -+XmlRpcServerConnection::XmlRpcServerConnection(int fd, -+ XmlRpcServer* server, -+ bool deleteOnClose /*= false*/) : - XmlRpcSource(fd, deleteOnClose) - { - XmlRpcUtil::log(2,"XmlRpcServerConnection: new socket %d.", fd); -@@ -69,7 +60,7 @@ - { - // Read available data - bool eof; -- if ( ! XmlRpcSocket::nbRead(this->getfd(), _header, &eof)) { -+ if ( ! XmlRpcSocket::nbRead(this->getfd(), _header, &eof, _ssl_ssl)) { - // Its only an error if we already have read some data - if (_header.length() > 0) - XmlRpcUtil::error("XmlRpcServerConnection::readHeader: error while reading header (%s).",XmlRpcSocket::getErrorMsg().c_str()); -@@ -141,13 +132,15 @@ - return true; // Continue monitoring this source - } - -+ -+ - bool - XmlRpcServerConnection::readRequest() - { - // If we dont have the entire request yet, read available data - if (int(_request.length()) < _contentLength) { - bool eof; -- if ( ! XmlRpcSocket::nbRead(this->getfd(), _request, &eof)) { -+ if ( ! XmlRpcSocket::nbRead(this->getfd(), _request, &eof, _ssl_ssl)) { - XmlRpcUtil::error("XmlRpcServerConnection::readRequest: read error (%s).",XmlRpcSocket::getErrorMsg().c_str()); - return false; - } -@@ -172,6 +165,7 @@ - } - - -+ - bool - XmlRpcServerConnection::writeResponse() - { -@@ -185,7 +179,7 @@ - } - - // Try to write the response -- if ( ! XmlRpcSocket::nbWrite(this->getfd(), _response, &_bytesWritten)) { -+ if ( ! XmlRpcSocket::nbWrite(this->getfd(), _response, &_bytesWritten, _ssl_ssl)) { - XmlRpcUtil::error("XmlRpcServerConnection::writeResponse: write error (%s).",XmlRpcSocket::getErrorMsg().c_str()); - return false; - } -@@ -202,170 +196,10 @@ - return _keepAlive; // Continue monitoring this source if true - } - --// Run the method, generate _response string --void --XmlRpcServerConnection::executeRequest() --{ -- XmlRpcValue params, resultValue; -- std::string methodName = parseRequest(params); -- XmlRpcUtil::log(2, "XmlRpcServerConnection::executeRequest: server calling method '%s'", -- methodName.c_str()); -- -- try { -- -- if ( ! executeMethod(methodName, params, resultValue) && -- ! executeMulticall(methodName, params, resultValue)) -- generateFaultResponse(methodName + ": unknown method name"); -- else -- generateResponse(resultValue.toXml()); -- -- } catch (const XmlRpcException& fault) { -- XmlRpcUtil::log(2, "XmlRpcServerConnection::executeRequest: fault %s.", -- fault.getMessage().c_str()); -- generateFaultResponse(fault.getMessage(), fault.getCode()); -- } --} -- --// Parse the method name and the argument values from the request. --std::string --XmlRpcServerConnection::parseRequest(XmlRpcValue& params) --{ -- int offset = 0; // Number of chars parsed from the request -- -- std::string methodName = XmlRpcUtil::parseTag(METHODNAME_TAG, _request, &offset); -- -- if (methodName.size() > 0 && XmlRpcUtil::findTag(PARAMS_TAG, _request, &offset)) -- { -- int nArgs = 0; -- while (XmlRpcUtil::nextTagIs(PARAM_TAG, _request, &offset)) { -- params[nArgs++] = XmlRpcValue(_request, &offset); -- (void) XmlRpcUtil::nextTagIs(PARAM_ETAG, _request, &offset); -- } -- -- (void) XmlRpcUtil::nextTagIs(PARAMS_ETAG, _request, &offset); -- } -- -- return methodName; --} -- --// Execute a named method with the specified params. --bool --XmlRpcServerConnection::executeMethod(const std::string& methodName, -- XmlRpcValue& params, XmlRpcValue& result) --{ -- XmlRpcServerMethod* method = _server->findMethod(methodName); -- -- if ( ! method) return false; -- -- method->execute(params, result); -- -- // Ensure a valid result value -- if ( ! result.valid()) -- result = std::string(); -- -- return true; --} -- --// Execute multiple calls and return the results in an array. --bool --XmlRpcServerConnection::executeMulticall(const std::string& methodName, -- XmlRpcValue& params, XmlRpcValue& result) --{ -- if (methodName != SYSTEM_MULTICALL) return false; -- -- // There ought to be 1 parameter, an array of structs -- if (params.size() != 1 || params[0].getType() != XmlRpcValue::TypeArray) -- throw XmlRpcException(SYSTEM_MULTICALL + ": Invalid argument (expected an array)"); -- -- int nc = params[0].size(); -- result.setSize(nc); -- -- for (int i=0; i\r\n" -- "\r\n\t"; -- const char RESPONSE_2[] = -- "\r\n\r\n"; -- -- std::string body = RESPONSE_1 + resultXml + RESPONSE_2; -- std::string header = generateHeader(body); -- -- _response = header + body; -- XmlRpcUtil::log(5, "XmlRpcServerConnection::generateResponse:\n%s\n", _response.c_str()); --} -- --// Prepend http headers --std::string --XmlRpcServerConnection::generateHeader(std::string const& body) --{ -- std::string header = -- "HTTP/1.1 200 OK\r\n" -- "Server: "; -- header += XMLRPC_VERSION; -- header += "\r\n" -- "Content-Type: text/xml\r\n" -- "Content-length: "; -- -- char buffLen[40]; -- sprintf(buffLen,"%d\r\n\r\n", body.size()); -- -- return header + buffLen; --} -- -- --void --XmlRpcServerConnection::generateFaultResponse(std::string const& errorMsg, int errorCode) --{ -- const char RESPONSE_1[] = -- "\r\n" -- "\r\n\t"; -- const char RESPONSE_2[] = -- "\r\n\r\n"; -- -- XmlRpcValue faultStruct; -- faultStruct[FAULTCODE] = errorCode; -- faultStruct[FAULTSTRING] = errorMsg; -- std::string body = RESPONSE_1 + faultStruct.toXml() + RESPONSE_2; -- std::string header = generateHeader(body); -- -- _response = header + body; -+ _response = _server->executeRequest(_request); - } - -diff -Naur xmlrpc++0.7/src/XmlRpcServerConnection.h xmlrpc++/src/XmlRpcServerConnection.h ---- xmlrpc++0.7/src/XmlRpcServerConnection.h 2003-03-06 18:25:37.000000000 +0100 -+++ xmlrpc++/src/XmlRpcServerConnection.h 2003-04-29 03:06:24.000000000 +0200 -@@ -17,26 +17,13 @@ - namespace XmlRpc { - - -- // The server waits for client connections and provides methods -+ // The server waits for client connections and provides support for executing methods - class XmlRpcServer; - class XmlRpcServerMethod; - - //! A class to handle XML RPC requests from a particular client - class XmlRpcServerConnection : public XmlRpcSource { - public: -- // Static data -- static const char METHODNAME_TAG[]; -- static const char PARAMS_TAG[]; -- static const char PARAMS_ETAG[]; -- static const char PARAM_TAG[]; -- static const char PARAM_ETAG[]; -- -- static const std::string SYSTEM_MULTICALL; -- static const std::string METHODNAME; -- static const std::string PARAMS; -- -- static const std::string FAULTCODE; -- static const std::string FAULTSTRING; - - //! Constructor - XmlRpcServerConnection(int fd, XmlRpcServer* server, bool deleteOnClose = false); -@@ -50,51 +37,44 @@ - - protected: - -+ //! Reads the http header - bool readHeader(); -- bool readRequest(); -- bool writeResponse(); -- -- // Parses the request, runs the method, generates the response xml. -- virtual void executeRequest(); - -- // Parse the methodName and parameters from the request. -- std::string parseRequest(XmlRpcValue& params); -+ //! Reads the request (based on the content-length header value) -+ bool readRequest(); - -- // Execute a named method with the specified params. -- bool executeMethod(const std::string& methodName, XmlRpcValue& params, XmlRpcValue& result); -+ //! Executes the request and writes the resulting response -+ bool writeResponse(); - -- // Execute multiple calls and return the results in an array. -- bool executeMulticall(const std::string& methodName, XmlRpcValue& params, XmlRpcValue& result); - -- // Construct a response from the result XML. -- void generateResponse(std::string const& resultXml); -- void generateFaultResponse(std::string const& msg, int errorCode = -1); -- std::string generateHeader(std::string const& body); -+ //! Helper method to execute the client request -+ virtual void executeRequest(); - - -- // The XmlRpc server that accepted this connection -+ //! The XmlRpc server that accepted this connection - XmlRpcServer* _server; - -- // Possible IO states for the connection -+ //! Possible IO states for the connection - enum ServerConnectionState { READ_HEADER, READ_REQUEST, WRITE_RESPONSE }; -+ //! Current IO state for the connection - ServerConnectionState _connectionState; - -- // Request headers -+ //! Request headers - std::string _header; - -- // Number of bytes expected in the request body (parsed from header) -+ //! Number of bytes expected in the request body (parsed from header) - int _contentLength; - -- // Request body -+ //! Request body - std::string _request; - -- // Response -+ //! Response - std::string _response; - -- // Number of bytes of the response written so far -+ //! Number of bytes of the response written so far - int _bytesWritten; - -- // Whether to keep the current client connection open for further requests -+ //! Whether to keep the current client connection open for further requests - bool _keepAlive; - }; - } // namespace XmlRpc -diff -Naur xmlrpc++0.7/src/XmlRpcServer.cpp xmlrpc++/src/XmlRpcServer.cpp ---- xmlrpc++0.7/src/XmlRpcServer.cpp 2003-03-06 18:25:37.000000000 +0100 -+++ xmlrpc++/src/XmlRpcServer.cpp 2003-05-08 03:21:35.000000000 +0200 -@@ -1,15 +1,32 @@ - -+ - #include "XmlRpcServer.h" - #include "XmlRpcServerConnection.h" - #include "XmlRpcServerMethod.h" - #include "XmlRpcSocket.h" - #include "XmlRpcUtil.h" - #include "XmlRpcException.h" -+#include "XmlRpc.h" - - - using namespace XmlRpc; - - -+// Static data -+const char XmlRpcServer::METHODNAME_TAG[] = ""; -+const char XmlRpcServer::PARAMS_TAG[] = ""; -+const char XmlRpcServer::PARAMS_ETAG[] = ""; -+const char XmlRpcServer::PARAM_TAG[] = ""; -+const char XmlRpcServer::PARAM_ETAG[] = ""; -+ -+const std::string XmlRpcServer::METHODNAME = "methodName"; -+const std::string XmlRpcServer::PARAMS = "params"; -+ -+const std::string XmlRpcServer::FAULTCODE = "faultCode"; -+const std::string XmlRpcServer::FAULTSTRING = "faultString"; -+ -+ -+ - XmlRpcServer::XmlRpcServer() - { - _introspectionEnabled = false; -@@ -119,6 +136,15 @@ - } - - -+// Get port number that this server is listening on -+int -+XmlRpcServer::getPort(void) const -+{ -+ return XmlRpcSocket::getPort(getfd()); -+} -+ -+ -+ - // Process client requests for the specified time - void - XmlRpcServer::work(double msTime) -@@ -159,7 +185,8 @@ - else // Notify the dispatcher to listen for input on this source when we are in work() - { - XmlRpcUtil::log(2, "XmlRpcServer::acceptConnection: creating a connection"); -- _disp.addSource(this->createConnection(s), XmlRpcDispatch::ReadableEvent); -+ XmlRpcServerConnection* c = this->createConnection(s); -+ if (c) this->dispatchConnection(c); - } - } - -@@ -173,6 +200,15 @@ - } - - -+// Hand off a new connection to a dispatcher -+void -+XmlRpcServer::dispatchConnection(XmlRpcServerConnection* sc) -+{ -+ _disp.addSource(sc, XmlRpcDispatch::ReadableEvent); -+} -+ -+ -+// Remove a connection. Called by the connection when it closes down. - void - XmlRpcServer::removeConnection(XmlRpcServerConnection* sc) - { -@@ -276,9 +312,183 @@ - for (MethodMap::iterator it=_methods.begin(); it != _methods.end(); ++it) - result[i++] = it->first; - -- // Multicall support is built into XmlRpcServerConnection -+ // Multicall support is built into XmlRpcServer::executeRequest - result[i] = MULTICALL; - } - - - -+// Parse the request, run the method, generate a response string. -+std::string -+XmlRpcServer::executeRequest(std::string const& request) -+{ -+ XmlRpcValue params, resultValue; -+ std::string methodName = parseRequest(request, params); -+ XmlRpcUtil::log(2, "XmlRpcServer::executeRequest: server calling method '%s'", -+ methodName.c_str()); -+ -+ std::string response; -+ try { -+ -+ if ( ! executeMethod(methodName, params, resultValue) && -+ ! executeMulticall(methodName, params, resultValue)) -+ response = generateFaultResponse(methodName + ": unknown method name"); -+ else -+ response = generateResponse(resultValue.toXml()); -+ -+ } catch (const XmlRpcException& fault) { -+ XmlRpcUtil::log(2, "XmlRpcServer::executeRequest: fault %s.", -+ fault.getMessage().c_str()); -+ response = generateFaultResponse(fault.getMessage(), fault.getCode()); -+ } -+ -+ return response; -+} -+ -+// Parse the method name and the argument values from the request. -+std::string -+XmlRpcServer::parseRequest(std::string const& request, XmlRpcValue& params) -+{ -+ int offset = 0; // Number of chars parsed from the request -+ -+ std::string methodName = XmlRpcUtil::parseTag(METHODNAME_TAG, request, &offset); -+ -+ if (methodName.size() > 0 && XmlRpcUtil::findTag(PARAMS_TAG, request, &offset)) -+ { -+ int nArgs = 0; -+ while (XmlRpcUtil::nextTagIs(PARAM_TAG, request, &offset)) { -+ params[nArgs++] = XmlRpcValue(request, &offset); -+ (void) XmlRpcUtil::nextTagIs(PARAM_ETAG, request, &offset); -+ } -+ -+ (void) XmlRpcUtil::nextTagIs(PARAMS_ETAG, request, &offset); -+ } -+ -+ return methodName; -+} -+ -+// Execute a named method with the specified params. -+bool -+XmlRpcServer::executeMethod(const std::string& methodName, -+ XmlRpcValue& params, -+ XmlRpcValue& result) -+{ -+ XmlRpcServerMethod* method = findMethod(methodName); -+ -+ if ( ! method) return false; -+ -+ method->execute(params, result); -+ -+ // Ensure a valid result value -+ if ( ! result.valid()) -+ result = std::string(); -+ -+ return true; -+} -+ -+// Execute multiple calls and return the results in an array. -+bool -+XmlRpcServer::executeMulticall(const std::string& methodName, -+ XmlRpcValue& params, -+ XmlRpcValue& result) -+{ -+ if (methodName != MULTICALL) return false; -+ -+ // There ought to be 1 parameter, an array of structs -+ if (params.size() != 1 || params[0].getType() != XmlRpcValue::TypeArray) -+ throw XmlRpcException(MULTICALL + ": Invalid argument (expected an array)"); -+ -+ int nc = params[0].size(); -+ result.setSize(nc); -+ -+ for (int i=0; i\r\n" -+ "\r\n\t"; -+ const char RESPONSE_2[] = -+ "\r\n\r\n"; -+ -+ std::string body = RESPONSE_1 + resultXml + RESPONSE_2; -+ std::string header = generateHeader(body); -+ std::string response = header + body; -+ -+ XmlRpcUtil::log(5, "XmlRpcServer::generateResponse:\n%s\n", response.c_str()); -+ return response; -+} -+ -+ -+// Prepend http headers -+std::string -+XmlRpcServer::generateHeader(std::string const& body) -+{ -+ std::string header = -+ "HTTP/1.1 200 OK\r\n" -+ "Server: "; -+ header += XMLRPC_VERSION; -+ header += "\r\n" -+ "Content-Type: text/xml\r\n" -+ "Content-length: "; -+ -+ char buffLen[40]; -+ sprintf(buffLen,"%d\r\n\r\n", body.size()); -+ -+ return header + buffLen; -+} -+ -+ -+std::string -+XmlRpcServer::generateFaultResponse(std::string const& errorMsg, int errorCode) -+{ -+ const char RESPONSE_1[] = -+ "\r\n" -+ "\r\n\t"; -+ const char RESPONSE_2[] = -+ "\r\n\r\n"; -+ -+ XmlRpcValue faultStruct; -+ faultStruct[FAULTCODE] = errorCode; -+ faultStruct[FAULTSTRING] = errorMsg; -+ std::string body = RESPONSE_1 + faultStruct.toXml() + RESPONSE_2; -+ std::string header = generateHeader(body); -+ -+ return header + body; -+} -+ -diff -Naur xmlrpc++0.7/src/XmlRpcServer.h xmlrpc++/src/XmlRpcServer.h ---- xmlrpc++0.7/src/XmlRpcServer.h 2003-03-06 18:25:37.000000000 +0100 -+++ xmlrpc++/src/XmlRpcServer.h 2003-05-08 03:21:35.000000000 +0200 -@@ -54,8 +54,12 @@ - - //! Create a socket, bind to the specified port, and - //! set it in listen mode to make it available for clients. -+ //! @param port The port to bind and listen on (zero to choose an arbitrary port) - bool bindAndListen(int port, int backlog = 5); - -+ //! Get the port number this server is listening on. -+ int getPort(void) const; -+ - //! Process client requests for the specified time - void work(double msTime); - -@@ -68,6 +72,12 @@ - //! Introspection support - void listMethods(XmlRpcValue& result); - -+ -+ //! Parses the request xml, runs the method, generates the response (header+xml). -+ //! Returns a fault response if an error occurs during method execution. -+ virtual std::string executeRequest(std::string const& request); -+ -+ - // XmlRpcSource interface implementation - - //! Handle client connection requests -@@ -78,24 +88,70 @@ - - protected: - -+ // Static data -+ static const char METHODNAME_TAG[]; -+ static const char PARAMS_TAG[]; -+ static const char PARAMS_ETAG[]; -+ static const char PARAM_TAG[]; -+ static const char PARAM_ETAG[]; -+ -+ static const std::string SYSTEM_MULTICALL; -+ static const std::string METHODNAME; -+ static const std::string PARAMS; -+ -+ static const std::string FAULTCODE; -+ static const std::string FAULTSTRING; -+ -+ - //! Accept a client connection request - virtual void acceptConnection(); - - //! Create a new connection object for processing requests from a specific client. -+ //! If the client is not authorized to connect, close the socket and return 0. - virtual XmlRpcServerConnection* createConnection(int socket); - -- // Whether the introspection API is supported by this server -+ //! Hand off a new connection object to a dispatcher. -+ virtual void dispatchConnection(XmlRpcServerConnection* sc); -+ -+ -+ //! Parse the methodName and parameters from the request. -+ //! @returns the methodName -+ std::string parseRequest(std::string const& request, XmlRpcValue& params); -+ -+ //! Execute a named method with the specified params. -+ bool executeMethod(const std::string& methodName, XmlRpcValue& params, XmlRpcValue& result); -+ -+ //! Execute multiple calls and return the results in an array. -+ //! System.multicall implementation -+ bool executeMulticall(const std::string& methodName, XmlRpcValue& params, XmlRpcValue& result); -+ -+ //! Construct a response from the result XML. -+ std::string generateResponse(std::string const& resultXml); -+ -+ //! Construct a fault response. -+ std::string generateFaultResponse(std::string const& msg, int errorCode = -1); -+ -+ //! Return the appropriate headers for the response. -+ std::string generateHeader(std::string const& body); -+ -+ -+ -+ //! Whether the introspection API is supported by this server - bool _introspectionEnabled; - -- // Event dispatcher -+ //! Event dispatcher - XmlRpcDispatch _disp; - -- // Collection of methods. This could be a set keyed on method name if we wanted... -+ //! Collection of methods. This could be a set keyed on method name if we wanted... - typedef std::map< std::string, XmlRpcServerMethod* > MethodMap; -+ -+ //! Registered RPC methods. - MethodMap _methods; - -- // system methods -+ //! List all registered RPC methods (only available if introspection is enabled) - XmlRpcServerMethod* _listMethods; -+ -+ //! Return help string for a specified method (only available if introspection is enabled) - XmlRpcServerMethod* _methodHelp; - - }; -diff -Naur xmlrpc++0.7/src/XmlRpcSocket.cpp xmlrpc++/src/XmlRpcSocket.cpp ---- xmlrpc++0.7/src/XmlRpcSocket.cpp 2003-03-06 18:25:37.000000000 +0100 -+++ xmlrpc++/src/XmlRpcSocket.cpp 2004-04-13 17:21:59.000000000 +0200 -@@ -5,13 +5,16 @@ - #ifndef MAKEDEPEND - - #if defined(_WINDOWS) --# include -+# include - # include - //# pragma lib(WS2_32.lib) - - # define EINPROGRESS WSAEINPROGRESS - # define EWOULDBLOCK WSAEWOULDBLOCK - # define ETIMEDOUT WSAETIMEDOUT -+ -+typedef int socklen_t; -+ - #else - extern "C" { - # include -@@ -53,15 +56,14 @@ - #endif // _WINDOWS - - --// These errors are not considered fatal for an IO operation; the operation will be re-tried. --static inline bool --nonFatalError() --{ -- int err = XmlRpcSocket::getError(); -- return (err == EINPROGRESS || err == EAGAIN || err == EWOULDBLOCK || err == EINTR); --} -- -- -+// These errors are not considered fatal for an IO operation; the operation will be re-tried. -+bool -+XmlRpcSocket::nonFatalError() -+{ -+ int err = XmlRpcSocket::getError(); -+ return (err == EINPROGRESS || err == EAGAIN || err == EWOULDBLOCK || err == EINTR); -+} -+ - - int - XmlRpcSocket::socket() -@@ -131,12 +133,7 @@ - XmlRpcSocket::accept(int fd) - { - struct sockaddr_in addr; --#if defined(_WINDOWS) -- int --#else -- socklen_t --#endif -- addrlen = sizeof(addr); -+ socklen_t addrlen = sizeof(addr); - - return (int) ::accept(fd, (struct sockaddr*)&addr, &addrlen); - } -@@ -168,7 +165,7 @@ - - // Read available text from the specified socket. Returns false on error. - bool --XmlRpcSocket::nbRead(int fd, std::string& s, bool *eof) -+XmlRpcSocket::nbRead(int fd, std::string& s, bool *eof, SSL* ssl) - { - const int READ_SIZE = 4096; // Number of bytes to attempt to read at a time - char readBuf[READ_SIZE]; -@@ -180,10 +177,15 @@ - #if defined(_WINDOWS) - int n = recv(fd, readBuf, READ_SIZE-1, 0); - #else -- int n = read(fd, readBuf, READ_SIZE-1); -+ int n; -+ if (ssl != (SSL *) NULL) { -+ n = SSL_read(ssl, readBuf, READ_SIZE-1); -+ } else { -+ n = read(fd, readBuf, READ_SIZE-1); -+ } - #endif - XmlRpcUtil::log(5, "XmlRpcSocket::nbRead: read/recv returned %d.", n); -- -+ - if (n > 0) { - readBuf[n] = 0; - s.append(readBuf, n); -@@ -201,7 +203,7 @@ - - // Write text to the specified socket. Returns false on error. - bool --XmlRpcSocket::nbWrite(int fd, std::string& s, int *bytesSoFar) -+XmlRpcSocket::nbWrite(int fd, std::string& s, int *bytesSoFar, SSL* ssl) - { - int nToWrite = int(s.length()) - *bytesSoFar; - char *sp = const_cast(s.c_str()) + *bytesSoFar; -@@ -211,7 +213,12 @@ - #if defined(_WINDOWS) - int n = send(fd, sp, nToWrite, 0); - #else -- int n = write(fd, sp, nToWrite); -+ int n; -+ if (ssl != (SSL *) NULL) { -+ n = SSL_write(ssl, sp, nToWrite); -+ } else { -+ n = write(fd, sp, nToWrite); -+ } - #endif - XmlRpcUtil::log(5, "XmlRpcSocket::nbWrite: send/write returned %d.", n); - -@@ -228,6 +235,24 @@ - return true; - } - -+// Get the port of a bound socket -+int -+XmlRpcSocket::getPort(int socket) -+{ -+ struct sockaddr_in saddr; -+ socklen_t saddr_len = sizeof(saddr); -+ int port; -+ -+ int result = ::getsockname(socket, (sockaddr*) &saddr, &saddr_len); -+ -+ if (result != 0) { -+ port = -1; -+ } else { -+ port = ntohs(saddr.sin_port); -+ } -+ return port; -+} -+ - - // Returns last errno - int -diff -Naur xmlrpc++0.7/src/XmlRpcSocket.h xmlrpc++/src/XmlRpcSocket.h ---- xmlrpc++0.7/src/XmlRpcSocket.h 2003-03-06 18:25:37.000000000 +0100 -+++ xmlrpc++/src/XmlRpcSocket.h 2004-04-13 17:21:59.000000000 +0200 -@@ -11,11 +11,14 @@ - # include - #endif - -+#include -+ - namespace XmlRpc { - - //! A platform-independent socket API. - class XmlRpcSocket { - public: -+ // TODO - typedef the socket type, casting to int won't work for 64 bit windows - - //! Creates a stream (TCP) socket. Returns -1 on failure. - static int socket(); -@@ -28,10 +31,10 @@ - static bool setNonBlocking(int socket); - - //! Read text from the specified socket. Returns false on error. -- static bool nbRead(int socket, std::string& s, bool *eof); -+ static bool nbRead(int socket, std::string& s, bool *eof, SSL *ssl); - - //! Write text to the specified socket. Returns false on error. -- static bool nbWrite(int socket, std::string& s, int *bytesSoFar); -+ static bool nbWrite(int socket, std::string& s, int *bytesSoFar, SSL* ssl); - - - // The next four methods are appropriate for servers. -@@ -49,10 +52,14 @@ - //! Accept a client connection request - static int accept(int socket); - -- - //! Connect a socket to a server (from a client) - static bool connect(int socket, std::string& host, int port); - -+ //! Get the port of a bound socket -+ static int getPort(int socket); -+ -+ //! Returns true if the last error was not a fatal one (eg, EWOULDBLOCK) -+ static bool nonFatalError(); - - //! Returns last errno - static int getError(); -diff -Naur xmlrpc++0.7/src/XmlRpcSource.cpp xmlrpc++/src/XmlRpcSource.cpp ---- xmlrpc++0.7/src/XmlRpcSource.cpp 2003-03-06 18:25:37.000000000 +0100 -+++ xmlrpc++/src/XmlRpcSource.cpp 2004-04-13 17:21:59.000000000 +0200 -@@ -30,6 +30,11 @@ - _deleteOnClose = false; - delete this; - } -+ if (_ssl_ssl != (SSL *) NULL) { -+ SSL_shutdown (_ssl_ssl); -+ SSL_free (_ssl_ssl); -+ SSL_CTX_free (_ssl_ctx); -+ } - } - - } // namespace XmlRpc -diff -Naur xmlrpc++0.7/src/XmlRpcSource.h xmlrpc++/src/XmlRpcSource.h ---- xmlrpc++0.7/src/XmlRpcSource.h 2003-03-06 18:25:37.000000000 +0100 -+++ xmlrpc++/src/XmlRpcSource.h 2004-04-13 17:21:59.000000000 +0200 -@@ -8,6 +8,13 @@ - # pragma warning(disable:4786) // identifier was truncated in debug info - #endif - -+// Deal with SSL dependencies -+#include -+#include -+#include -+#include -+#include -+ - namespace XmlRpc { - - //! An RPC source represents a file descriptor to monitor -@@ -37,6 +44,11 @@ - //! Return true to continue monitoring this source - virtual unsigned handleEvent(unsigned eventType) = 0; - -+ // Keep track of SSL status and other such things -+ bool _ssl; -+ SSL_CTX* _ssl_ctx; -+ SSL* _ssl_ssl; -+ SSL_METHOD* _ssl_meth; - private: - - // Socket. This should really be a SOCKET (an alias for unsigned int*) on windows... -diff -Naur xmlrpc++0.7/src/XmlRpcThread.cpp xmlrpc++/src/XmlRpcThread.cpp ---- xmlrpc++0.7/src/XmlRpcThread.cpp 1970-01-01 01:00:00.000000000 +0100 -+++ xmlrpc++/src/XmlRpcThread.cpp 2003-04-29 03:06:24.000000000 +0200 -@@ -0,0 +1,74 @@ -+#if defined(XMLRPC_THREADS) -+ -+#include "XmlRpcThread.h" -+ -+#if defined(_WINDOWS) -+# define WIN32_LEAN_AND_MEAN -+# include -+# include -+#else -+# include -+#endif -+ -+ -+using namespace XmlRpc; -+ -+ -+//! Destructor. Does not perform a join() (ie, the thread may continue to run). -+XmlRpcThread::~XmlRpcThread() -+{ -+ if (_pThread) -+ { -+#if defined(_WINDOWS) -+ ::CloseHandle((HANDLE)_pThread); -+#else -+ ::pthread_detach((pthread_t)_pThread); -+#endif -+ _pThread = 0; -+ } -+} -+ -+//! Execute the run method of the runnable object in a separate thread. -+//! Returns immediately in the calling thread. -+void -+XmlRpcThread::start() -+{ -+ if ( ! _pThread) -+ { -+#if defined(_WINDOWS) -+ unsigned threadID; -+ _pThread = (HANDLE)_beginthreadex(NULL, 0, &runInThread, this, 0, &threadID); -+#else -+ ::pthread_create((pthread_t*) &_pThread, NULL, &runInThread, this); -+#endif -+ } -+} -+ -+//! Waits until the thread exits. -+void -+XmlRpcThread::join() -+{ -+ if (_pThread) -+ { -+#if defined(_WINDOWS) -+ ::WaitForSingleObject(_pThread, INFINITE); -+ ::CloseHandle(_pThread); -+#else -+ ::pthread_join((pthread_t)_pThread, 0); -+#endif -+ _pThread = 0; -+ } -+} -+ -+//! Start the runnable going in a thread -+unsigned int -+XmlRpcThread::runInThread(void* pThread) -+{ -+ XmlRpcThread* t = (XmlRpcThread*)pThread; -+ t->getRunnable()->run(); -+ return 0; -+} -+ -+#endif // XMLRPC_THREADS -+ -+ -diff -Naur xmlrpc++0.7/src/XmlRpcThreadedServer.cpp xmlrpc++/src/XmlRpcThreadedServer.cpp ---- xmlrpc++0.7/src/XmlRpcThreadedServer.cpp 1970-01-01 01:00:00.000000000 +0100 -+++ xmlrpc++/src/XmlRpcThreadedServer.cpp 2003-04-29 03:06:25.000000000 +0200 -@@ -0,0 +1,27 @@ -+#if defined(XMLRPC_THREADS) -+ -+#include "XmlRpcThreadedServer.h" -+//#include "XmlRpcServerConnection.h" -+ -+ -+using namespace XmlRpc; -+ -+// executeRequestThreaded: -+// remove the serverConnection from the dispatcher (but don't close the socket) -+// push the request onto the request queue -+// (acquire the mutex, push_back request, release mutex, incr semaphore) -+// -+ -+// worker::run -+// while ! stopped -+// pop a request off the request queue (block on semaphore/decr, acquire mutex, get request, rel) -+// executeRequest (parse, run, generate response) -+// notify the serverConnection that the response is available -+// (the serverConnection needs to add itself back to the dispatcher safely - mutex) -+ -+// How do I interrupt the dispatcher if it is waiting in a select call? -+// i) Replace select with WaitForMultipleObjects, using WSAEventSelect to associate -+// each socket with an event object, and adding an additional "signal" event. -+// -+ -+#endif // XMLRPC_THREADS -diff -Naur xmlrpc++0.7/src/XmlRpcThreadedServer.h xmlrpc++/src/XmlRpcThreadedServer.h ---- xmlrpc++0.7/src/XmlRpcThreadedServer.h 1970-01-01 01:00:00.000000000 +0100 -+++ xmlrpc++/src/XmlRpcThreadedServer.h 2003-04-29 03:06:25.000000000 +0200 -@@ -0,0 +1,67 @@ -+ -+#ifndef _XMLRPCTHREADEDSERVER_H_ -+#define _XMLRPCTHREADEDSERVER_H_ -+// -+// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley -+// -+#if defined(_MSC_VER) -+# pragma warning(disable:4786) // identifier was truncated in debug info -+#endif -+ -+#ifndef MAKEDEPEND -+# include -+# include -+#endif -+ -+ -+#include "XmlRpcMutex.h" -+#include "XmlRpcServer.h" -+#include "XmlRpcThread.h" -+ -+ -+namespace XmlRpc { -+ -+ //! A class to handle multiple simultaneous XML RPC requests -+ class XmlRpcThreadedServer : public XmlRpcServer { -+ public: -+ -+ //! Create a server object with a specified number of worker threads. -+ XmlRpcThreadedServer(int nWorkers = 6) : _workers(nWorkers) {} -+ -+ -+ //! Execute a request -+ -+ protected: -+ -+ //! Each client request is assigned to one worker to handle. -+ //! Workers are executed on separate threads, and one worker may be -+ //! responsible for dispatching events to multiple client connections. -+ class Worker : XmlRpcRunnable { -+ public: -+ //! Constructor. Executes the run method in a separate thread. -+ Worker() { _thread.setRunnable(this); _thread.start(); } -+ -+ //! Implement the Runnable interface -+ void run(); -+ -+ protected: -+ -+ //! The thread this worker is running in. -+ XmlRpcThread _thread; -+ -+ }; -+ -+ -+ //! The worker pool -+ std::vector _workers; -+ -+ -+ //! Serialize dispatcher access -+ XmlRpcMutex _mutex; -+ -+ -+ }; // class XmlRpcThreadedServer -+ -+} -+ -+#endif // _XMLRPCTHREADEDSERVER_H_ -diff -Naur xmlrpc++0.7/src/XmlRpcThread.h xmlrpc++/src/XmlRpcThread.h ---- xmlrpc++0.7/src/XmlRpcThread.h 1970-01-01 01:00:00.000000000 +0100 -+++ xmlrpc++/src/XmlRpcThread.h 2003-04-29 03:06:24.000000000 +0200 -@@ -0,0 +1,60 @@ -+#ifndef _XMLRPCTHREAD_H_ -+#define _XMLRPCTHREAD_H_ -+// -+// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley -+// -+#if defined(_MSC_VER) -+# pragma warning(disable:4786) // identifier was truncated in debug info -+#endif -+ -+namespace XmlRpc { -+ -+ //! An abstract class providing an interface for objects that can run in a separate thread. -+ class XmlRpcRunnable { -+ public: -+ //! Code to be executed. -+ virtual void run() = 0; -+ }; // class XmlRpcRunnable -+ -+ -+ //! A simple platform-independent thread API implemented for posix and windows. -+ class XmlRpcThread { -+ public: -+ //! Construct a thread object. Not usable until setRunnable() has been called. -+ XmlRpcThread() : _runner(0), _pThread(0) {} -+ -+ //! Construct a thread object. -+ XmlRpcThread(XmlRpcRunnable* runnable) : _runner(runnable), _pThread(0) {} -+ -+ //! Destructor. Does not perform a join() (ie, the thread may continue to run). -+ ~XmlRpcThread(); -+ -+ //! Execute the run method of the runnable object in a separate thread. -+ //! Returns immediately in the calling thread. -+ void start(); -+ -+ //! Waits until the thread exits. -+ void join(); -+ -+ //! Access the runnable -+ XmlRpcRunnable* getRunnable() const { return _runner; } -+ -+ //! Set the runnable -+ void setRunnable(XmlRpcRunnable* r) { _runner = r; } -+ -+ private: -+ -+ //! Start the runnable going in a thread -+ static unsigned int __stdcall runInThread(void* pThread); -+ -+ //! Code to be executed -+ XmlRpcRunnable* _runner; -+ -+ //! Native thread object -+ void* _pThread; -+ -+ }; // class XmlRpcThread -+ -+} // namespace XmlRpc -+ -+#endif // _XMLRPCTHREAD_H_ -diff -Naur xmlrpc++0.7/src/XmlRpcUtil.cpp xmlrpc++/src/XmlRpcUtil.cpp ---- xmlrpc++0.7/src/XmlRpcUtil.cpp 2003-03-06 18:25:37.000000000 +0100 -+++ xmlrpc++/src/XmlRpcUtil.cpp 2003-04-29 03:03:19.000000000 +0200 -@@ -21,7 +21,7 @@ - #endif - - // Version id --const char XmlRpc::XMLRPC_VERSION[] = "XMLRPC++ 0.7"; -+const char XmlRpc::XMLRPC_VERSION[] = "XMLRPC++ 0.8"; - - // Default log verbosity: 0 for no messages through 5 (writes everything) - int XmlRpcLogHandler::_verbosity = 0; -@@ -147,28 +147,37 @@ - } - - // Returns the next tag and updates offset to the char after the tag, or empty string --// if the next non-whitespace character is not '<' -+// if the next non-whitespace character is not '<'. Ignores parameters and values within -+// the tag entity. - std::string - XmlRpcUtil::getNextTag(std::string const& xml, int* offset) - { - if (*offset >= int(xml.length())) return std::string(); - -- size_t pos = *offset; -- const char* cp = xml.c_str() + pos; -- while (*cp && isspace(*cp)) { -+ const char* cp = xml.c_str() + size_t(*offset); -+ const char* startcp = cp; -+ while (*cp && isspace(*cp)) - ++cp; -- ++pos; -- } -+ - - if (*cp != '<') return std::string(); - -- std::string s; -- do { -- s += *cp; -- ++pos; -- } while (*cp++ != '>' && *cp != 0); -+ // Tag includes the non-blank characters after < -+ const char* start = cp++; -+ while (*cp != '>' && *cp != 0 && ! isspace(*cp)) -+ ++cp; -+ -+ std::string s(start, cp-start+1); -+ -+ if (*cp != '>') // Skip parameters and values -+ { -+ while (*cp != '>' && *cp != 0) -+ ++cp; -+ -+ s[s.length()-1] = *cp; -+ } - -- *offset = int(pos); -+ *offset += int(cp - startcp + 1); - return s; - } - -diff -Naur xmlrpc++0.7/src/XmlRpcValue.cpp xmlrpc++/src/XmlRpcValue.cpp ---- xmlrpc++0.7/src/XmlRpcValue.cpp 2003-03-06 18:25:37.000000000 +0100 -+++ xmlrpc++/src/XmlRpcValue.cpp 2003-06-06 20:13:28.000000000 +0200 -@@ -389,6 +389,7 @@ - if (sscanf(stime.c_str(),"%4d%2d%2dT%2d:%2d:%2d",&t.tm_year,&t.tm_mon,&t.tm_mday,&t.tm_hour,&t.tm_min,&t.tm_sec) != 6) - return false; - -+ t.tm_year -= 1900; - t.tm_isdst = -1; - _type = TypeDateTime; - _value.asTime = new struct tm(t); -@@ -400,8 +401,8 @@ - { - struct tm* t = _value.asTime; - char buf[20]; -- snprintf(buf, sizeof(buf)-1, "%4d%02d%02dT%02d:%02d:%02d", -- t->tm_year,t->tm_mon,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec); -+ snprintf(buf, sizeof(buf)-1, "%04d%02d%02dT%02d:%02d:%02d", -+ 1900+t->tm_year,t->tm_mon,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec); - buf[sizeof(buf)-1] = 0; - - std::string xml = VALUE_TAG; -diff -Naur xmlrpc++0.7/src/XmlRpcValue.h xmlrpc++/src/XmlRpcValue.h ---- xmlrpc++0.7/src/XmlRpcValue.h 2003-03-06 18:25:37.000000000 +0100 -+++ xmlrpc++/src/XmlRpcValue.h 2003-03-25 22:19:30.000000000 +0100 -@@ -4,6 +4,7 @@ - // - // XmlRpc++ Copyright (c) 2002-2003 by Chris Morley - // -+ - #if defined(_MSC_VER) - # pragma warning(disable:4786) // identifier was truncated in debug info - #endif -@@ -17,12 +18,15 @@ - - namespace XmlRpc { - -- //! RPC method arguments and results are represented by Values -+ //! A class to represent RPC arguments and results. -+ //! Each XmlRpcValue object contains a typed value, -+ //! where the type is determined by the initial value -+ //! assigned to the object. - // should probably refcount them... - class XmlRpcValue { - public: - -- -+ //! XmlRpcValue types - enum Type { - TypeInvalid, - TypeBoolean, -@@ -41,22 +45,36 @@ - typedef std::map ValueStruct; - - -- //! Constructors -+ // Constructors -+ //! Construct an empty XmlRpcValue - XmlRpcValue() : _type(TypeInvalid) { _value.asBinary = 0; } -+ -+ //! Construct an XmlRpcValue with a bool value - XmlRpcValue(bool value) : _type(TypeBoolean) { _value.asBool = value; } -+ -+ //! Construct an XmlRpcValue with an int value - XmlRpcValue(int value) : _type(TypeInt) { _value.asInt = value; } -+ -+ //! Construct an XmlRpcValue with a double value - XmlRpcValue(double value) : _type(TypeDouble) { _value.asDouble = value; } - -+ //! Construct an XmlRpcValue with a string value - XmlRpcValue(std::string const& value) : _type(TypeString) - { _value.asString = new std::string(value); } - -+ //! Construct an XmlRpcValue with a string value. -+ //! @param value A null-terminated (C) string. - XmlRpcValue(const char* value) : _type(TypeString) - { _value.asString = new std::string(value); } - -+ //! Construct an XmlRpcValue with a date/time value. -+ //! @param value A pointer to a struct tm (see localtime) - XmlRpcValue(struct tm* value) : _type(TypeDateTime) - { _value.asTime = new struct tm(*value); } - -- -+ //! Construct an XmlRpcValue with a binary data value -+ //! @param value A pointer to data -+ //! @param nBytes The length of the data pointed to, in bytes - XmlRpcValue(void* value, int nBytes) : _type(TypeBase64) - { - _value.asBinary = new BinaryData((char*)value, ((char*)value)+nBytes); -@@ -66,7 +84,7 @@ - XmlRpcValue(std::string const& xml, int* offset) : _type(TypeInvalid) - { if ( ! fromXml(xml,offset)) _type = TypeInvalid; } - -- //! Copy -+ //! Copy constructor - XmlRpcValue(XmlRpcValue const& rhs) : _type(TypeInvalid) { *this = rhs; } - - //! Destructor (make virtual if you want to subclass) -@@ -76,27 +94,79 @@ - void clear() { invalidate(); } - - // Operators -+ //! Assignment from one XmlRpcValue to this one. -+ //! @param rhs The value in rhs is copied to this value. - XmlRpcValue& operator=(XmlRpcValue const& rhs); -+ -+ //! Assign an int to this XmlRpcValue. - XmlRpcValue& operator=(int const& rhs) { return operator=(XmlRpcValue(rhs)); } -+ -+ //! Assign a double to this XmlRpcValue. - XmlRpcValue& operator=(double const& rhs) { return operator=(XmlRpcValue(rhs)); } -+ -+ //! Assign a string to this XmlRpcValue. - XmlRpcValue& operator=(const char* rhs) { return operator=(XmlRpcValue(std::string(rhs))); } - -+ //! Tests two XmlRpcValues for equality - bool operator==(XmlRpcValue const& other) const; -+ -+ //! Tests two XmlRpcValues for inequality - bool operator!=(XmlRpcValue const& other) const; - -+ //! Treat an XmlRpcValue as a bool. -+ //! Throws XmlRpcException if the value is initialized to -+ //! a type that is not TypeBoolean. - operator bool&() { assertTypeOrInvalid(TypeBoolean); return _value.asBool; } -+ -+ //! Treat an XmlRpcValue as an int. -+ //! Throws XmlRpcException if the value is initialized to -+ //! a type that is not TypeInt. - operator int&() { assertTypeOrInvalid(TypeInt); return _value.asInt; } -+ -+ //! Treat an XmlRpcValue as a double. -+ //! Throws XmlRpcException if the value is initialized to -+ //! a type that is not TypeDouble. - operator double&() { assertTypeOrInvalid(TypeDouble); return _value.asDouble; } -+ -+ //! Treat an XmlRpcValue as a string. -+ //! Throws XmlRpcException if the value is initialized to -+ //! a type that is not TypeString. - operator std::string&() { assertTypeOrInvalid(TypeString); return *_value.asString; } -+ -+ //! Access the BinaryData value. -+ //! Throws XmlRpcException if the value is initialized to -+ //! a type that is not TypeBase64. - operator BinaryData&() { assertTypeOrInvalid(TypeBase64); return *_value.asBinary; } -+ -+ //! Access the DateTime value. -+ //! Throws XmlRpcException if the value is initialized to -+ //! a type that is not TypeDateTime. - operator struct tm&() { assertTypeOrInvalid(TypeDateTime); return *_value.asTime; } - -+ -+ //! Const array value accessor. -+ //! Access the ith value of the array. -+ //! Throws XmlRpcException if the value is not an array or if the index i is -+ //! not a valid index for the array. - XmlRpcValue const& operator[](int i) const { assertArray(i+1); return _value.asArray->at(i); } -+ -+ //! Array value accessor. -+ //! Access the ith value of the array, growing the array if necessary. -+ //! Throws XmlRpcException if the value is not an array. - XmlRpcValue& operator[](int i) { assertArray(i+1); return _value.asArray->at(i); } - -+ //! Struct entry accessor. -+ //! Returns the value associated with the given entry, creating one if necessary. - XmlRpcValue& operator[](std::string const& k) { assertStruct(); return (*_value.asStruct)[k]; } -+ -+ //! Struct entry accessor. -+ //! Returns the value associated with the given entry, creating one if necessary. - XmlRpcValue& operator[](const char* k) { assertStruct(); std::string s(k); return (*_value.asStruct)[s]; } - -+ //! Access the struct value map. -+ //! Can be used to iterate over the entries in the map to find all defined entries. -+ operator ValueStruct const&() { assertStruct(); return *_value.asStruct; } -+ - // Accessors - //! Return true if the value has been set to something. - bool valid() const { return _type != TypeInvalid; } -diff -Naur xmlrpc++0.7/test/HelloClient.cpp xmlrpc++/test/HelloClient.cpp ---- xmlrpc++0.7/test/HelloClient.cpp 2003-03-06 18:25:37.000000000 +0100 -+++ xmlrpc++/test/HelloClient.cpp 2004-04-13 17:22:00.000000000 +0200 -@@ -15,7 +15,7 @@ - //XmlRpc::setVerbosity(5); - - // Use introspection API to look up the supported methods -- XmlRpcClient c(argv[1], port); -+ XmlRpcClient c(argv[1], port, "/RPC2", false); - XmlRpcValue noArgs, result; - if (c.execute("system.listMethods", noArgs, result)) - std::cout << "\nMethods:\n " << result << "\n\n"; -diff -Naur xmlrpc++0.7/test/Makefile xmlrpc++/test/Makefile ---- xmlrpc++0.7/test/Makefile 2003-03-06 18:25:37.000000000 +0100 -+++ xmlrpc++/test/Makefile 2004-04-13 17:22:00.000000000 +0200 -@@ -7,7 +7,7 @@ - GCCWARN = -Wall -Wstrict-prototypes - CXXFLAGS = $(DEBUG) $(GCCWARN) $(OPTIMIZE) $(INCLUDES) - --LIB = ../libXmlRpc.a -+LIB = ../libXmlRpc.a -lssl - - # Add your system-dependent network libs here - # Solaris: -lsocket -lnsl -@@ -15,7 +15,7 @@ - - LDLIBS = $(SYSTEMLIBS) $(LIB) - --TESTS = HelloClient HelloServer TestBase64Client TestBase64Server TestValues TestXml Validator -+TESTS = HelloClient HelloServer TestBase64Client TestBase64Server TestValues TestXml Validator TestEGroupwareSSLClient - - all: $(TESTS) - -diff -Naur xmlrpc++0.7/test/TestBase64Client.cpp xmlrpc++/test/TestBase64Client.cpp ---- xmlrpc++0.7/test/TestBase64Client.cpp 2003-03-06 18:25:37.000000000 +0100 -+++ xmlrpc++/test/TestBase64Client.cpp 2004-04-13 17:22:00.000000000 +0200 -@@ -21,7 +21,7 @@ - int port = atoi(argv[2]); - - //XmlRpc::setVerbosity(5); -- XmlRpcClient c(argv[1], port); -+ XmlRpcClient c(argv[1], port, "/RPC2", false); - - XmlRpcValue noArgs, result; - if (c.execute("TestBase64", noArgs, result)) -diff -Naur xmlrpc++0.7/test/TestEGroupwareSSLClient.cpp xmlrpc++/test/TestEGroupwareSSLClient.cpp ---- xmlrpc++0.7/test/TestEGroupwareSSLClient.cpp 1970-01-01 01:00:00.000000000 +0100 -+++ xmlrpc++/test/TestEGroupwareSSLClient.cpp 2004-04-13 17:22:00.000000000 +0200 -@@ -0,0 +1,65 @@ -+#include "XmlRpc.h" -+#include -+ -+using namespace XmlRpc; -+using namespace std; -+ -+int main ( int argc, char *argv[]) { -+ XmlRpc::setVerbosity(3); -+ -+ if (argc != 5) { -+ cout << "eGroupware SSL Client Test\n\n"; -+ cout << "usage: " << argv[0] << " host url user password\n"; -+ cout << "example: " << argv[0] << " www.egroupware.org \"/egroupware/xmlrpc.php\" demo guest\n"; -+ exit (0); -+ } -+ XmlRpcClient client (argv[1], 443, argv[2], true); -+ -+ XmlRpcValue result; -+ XmlRpcValue params; -+ params["username"] = argv[3]; -+ params["password"] = argv[4]; -+ if (!client.execute ("system.login", params, result)) { -+ cout << "Failed.\n"; -+ return 0; -+ } else { -+ cout << result << "\n"; -+ } -+ string sessionid = string(result["sessionid"]); -+ string kp3 = string(result["kp3"]); -+/* -+ XmlRpcClient authClient (argv[1], 443, sessionid.c_str(), kp3.c_str(), argv[2], true); -+ XmlRpcValue calParam; -+ XmlRpcValue calResult; -+ -+ calParam["syear"] = "2001"; -+ calParam["smonth"] = "03"; -+ calParam["sday"] = "01"; -+ calParam["eyear"] = "2005"; -+ calParam["emonth"] = "04"; -+ calParam["eday"] = "25"; -+ -+ if (!authClient.execute("calendar.bocalendar.search", calParam, calResult)) { -+ cout << "No calendar events\n"; -+ } else { -+ cout << calResult << "\n"; -+ } -+*/ -+ -+ XmlRpcValue logoutParam; -+ XmlRpcValue logoutResult; -+ XmlRpcClient client_logout (argv[1], 443, argv[2], true); -+ -+ logoutParam["sessionid"] = sessionid; -+ logoutParam["kp3"] = kp3; -+ -+ if (!client_logout.execute("system.logout", logoutParam, logoutResult)) { -+ cout << "failed to logout\n"; -+ } else { -+ // params['GOODBYE'] == 'XOXO' -+ cout << logoutResult << "\n"; -+ } -+ -+ return 1; -+} -+ -diff -Naur xmlrpc++0.7/test/Validator.cpp xmlrpc++/test/Validator.cpp ---- xmlrpc++0.7/test/Validator.cpp 2003-03-06 18:25:38.000000000 +0100 -+++ xmlrpc++/test/Validator.cpp 2003-12-16 01:10:32.000000000 +0100 -@@ -137,7 +137,7 @@ - { - std::cerr << "ModerateSizeArrayCheck\n"; - std::string s = params[0][0]; -- s += params[0][params[0].size()-1]; -+ s += (std::string)params[0][params[0].size()-1]; - result = s; - } - } moderateSizeArrayCheck(&s); -diff -Naur xmlrpc++0.7/XmlRpc.vcproj xmlrpc++/XmlRpc.vcproj ---- xmlrpc++0.7/XmlRpc.vcproj 2003-03-06 18:25:38.000000000 +0100 -+++ xmlrpc++/XmlRpc.vcproj 2003-04-23 22:57:37.000000000 +0200 -@@ -127,6 +127,8 @@ - - -+ - -@@ -137,6 +139,10 @@ - - -+ -+ - -@@ -151,6 +157,10 @@ - - -+ -+ - -@@ -161,6 +171,10 @@ - - -+ -+ - diff --git a/etc/portage/dev-libs/xmlrpc++/files/xmlrpc++-automake.patch b/etc/portage/dev-libs/xmlrpc++/files/xmlrpc++-automake.patch deleted file mode 100644 index 14de32d39..000000000 --- a/etc/portage/dev-libs/xmlrpc++/files/xmlrpc++-automake.patch +++ /dev/null @@ -1,252 +0,0 @@ -diff -Naur xmlrpc++/Makefile xmlrpc++-automake/Makefile ---- xmlrpc++/Makefile 2004-04-19 20:53:00.000000000 +0700 -+++ xmlrpc++-automake/Makefile 1970-01-01 07:00:00.000000000 +0700 -@@ -1,71 +0,0 @@ --# makefile written for gnu make --CXX = g++ --SRC = ./src --SHARED = -shared --CPPFLAGS = -I$(SRC) --DEBUG = -g --OPTIMIZE = -O2 --GCCWARN = -Wall -Wstrict-prototypes --CXXFLAGS = $(DEBUG) $(GCCWARN) $(OPTIMIZE) $(INCLUDES) --VERSION = 0.8 -- --DESTDIR = --prefix = /usr --MKDIR = mkdir -p --CP = cp --LN = ln -s -- --LIB = ./libXmlRpc.a --LIBALT = ./libxmlrpc++.a --SO = ./libxmlrpc++.so.$(VERSION) -- --# Add your system-dependent network libs here. These are --# only used to build the tests (your application will need them too). --# Linux: none --# Solaris: -lsocket -lnsl --#SYSTEMLIBS = -lsocket -lnsl --SYSTEMLIBS = --LDLIBS = $(LIB) $(SYSTEMLIBS) -- --OBJ = $(SRC)/XmlRpcClient.o $(SRC)/XmlRpcDispatch.o \ -- $(SRC)/XmlRpcServer.o $(SRC)/XmlRpcServerConnection.o \ -- $(SRC)/XmlRpcServerMethod.o $(SRC)/XmlRpcSocket.o $(SRC)/XmlRpcSource.o \ -- $(SRC)/XmlRpcUtil.o $(SRC)/XmlRpcValue.o -- --all: $(LIB) $(SO) tests -- --$(LIB): $(OBJ) -- $(AR) $(ARFLAGS) $(LIB) $(OBJ) -- cp $(LIB) $(LIBALT) -- --$(SO): $(OBJ) -- $(CXX) -o $(SO) $(SHARED) $(OBJ) -- -- --tests: $(LIB) -- cd test && $(MAKE) CXX=$(CXX) CXXFLAGS="$(CXXFLAGS)" SYSTEMLIBS="$(SYSTEMLIBS)" -- --doc doxygen: -- cd src && doxygen Doxyfile -- --distclean: clean -- --clean: -- rm -f $(SRC)/*.o -- rm -f $(SRC)/*~ -- rm -f $(LIB) $(LIBALT) $(SO) -- rm -f build -- cd test && $(MAKE) clean -- --install: -- $(MKDIR) $(DESTDIR)$(prefix)/lib -- $(CP) $(SO) $(LIB) $(DESTDIR)$(prefix)/lib -- $(MKDIR) $(DESTDIR)$(prefix)/include -- $(CP) src/*.h $(DESTDIR)$(prefix)/include -- ( cd $(DESTDIR)$(prefix)/lib; rm -f libxmlrpc++.so; $(LN) $(SO) libxmlrpc++.so ) -- # Does not install tests right now -- --# Debian package make target, in case you want to manually build a package --# from the distribution. --deb: -- dpkg-buildpackage -rfakeroot -diff -Naur xmlrpc++/Makefile.am xmlrpc++-automake/Makefile.am ---- xmlrpc++/Makefile.am 1970-01-01 07:00:00.000000000 +0700 -+++ xmlrpc++-automake/Makefile.am 2004-07-26 11:54:16.610066768 +0700 -@@ -0,0 +1,17 @@ -+SUBDIRS = src -+ -+EXTRA_DIST = README.html -+ -+DOC_DIR=@datadir@/doc/xmlrpc++ -+ -+doc: -+ cd src && doxygen Doxyfile -+ -+install-data-local: doc -+ $(mkinstalldirs) $(DOC_DIR); \ -+ for i in doc/html/*; do \ -+ if test -r "$$i"; then \ -+ fn=`basename $$i` \ -+ $(INSTALL_DATA) $$i $(DOC_DIR)/$$fn; \ -+ fi; \ -+ done -diff -Naur xmlrpc++/autogen.sh xmlrpc++-automake/autogen.sh ---- xmlrpc++/autogen.sh 1970-01-01 07:00:00.000000000 +0700 -+++ xmlrpc++-automake/autogen.sh 2004-07-26 11:54:11.578831632 +0700 -@@ -0,0 +1,69 @@ -+#!/bin/sh -+# Run this to set up the build system: configure, makefiles, etc. -+# (based on the version in enlightenment's cvs) -+ -+package="xmlrpc++" -+ -+srcdir=`dirname $0` -+test -z "$srcdir" && srcdir=. -+ -+cd "$srcdir" -+DIE=0 -+ -+(autoheader --version) < /dev/null > /dev/null 2>&1 || { -+ echo -+ echo "You must have autoconf installed to compile $package." -+ echo "Download the appropriate package for your distribution," -+ echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" -+ DIE=1 -+} -+ -+(autoconf --version) < /dev/null > /dev/null 2>&1 || { -+ echo -+ echo "You must have autoconf installed to compile $package." -+ echo "Download the appropriate package for your distribution," -+ echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" -+ DIE=1 -+} -+ -+(automake --version) < /dev/null > /dev/null 2>&1 || { -+ echo -+ echo "You must have automake installed to compile $package." -+ echo "Download the appropriate package for your system," -+ echo "or get the source from one of the GNU ftp sites" -+ echo "listed in http://www.gnu.org/order/ftp.html" -+ DIE=1 -+} -+ -+(libtool --help) < /dev/null > /dev/null 2>&1 || { -+ echo -+ echo "You must have libtool installed to compile $package." -+ echo "Download the appropriate package for your system," -+ echo "or get the source from one of the GNU ftp sites" -+ echo "listed in http://www.gnu.org/order/ftp.html" -+ DIE=1 -+} -+ -+if test "$DIE" -eq 1; then -+ exit 1 -+fi -+ -+if test -z "$*"; then -+ echo "I am going to run ./configure with no arguments - if you wish " -+ echo "to pass any to it, please specify them on the $0 command line." -+fi -+ -+echo "Generating configuration files for $package, please wait...." -+ -+echo " aclocal $ACLOCAL_FLAGS" -+aclocal $ACLOCAL_FLAGS -+echo " autoheader" -+autoheader -+echo " libtoolize --automake" -+libtoolize --automake -+echo " automake --add-missing --foreign $AUTOMAKE_FLAGS" -+automake --add-missing --foreign $AUTOMAKE_FLAGS -+echo " autoconf" -+autoconf -+ -+$srcdir/configure "$@" && echo -diff -Naur xmlrpc++/configure.in xmlrpc++-automake/configure.in ---- xmlrpc++/configure.in 1970-01-01 07:00:00.000000000 +0700 -+++ xmlrpc++-automake/configure.in 2004-07-26 11:54:11.578831632 +0700 -@@ -0,0 +1,40 @@ -+dnl Process this file with autoconf to produce a configure script. -+AC_INIT(src/XmlRpc.h) -+ -+XMLRPC_MAJOR_VERSION=0 -+XMLRPC_MINOR_VERSION=8 -+XMLRPC_MICRO_VERSION=0 -+ -+#shared library versioning -+XMLRPC_INTERFACE_AGE=0 # increment if interfaces have been added, -+ # zero if interfaces have changed or been removed -+XMLRPC_BINARY_AGE=0 # increment if binary-compatability is broken -+ -+XMLRPC_VERSION=$XMLRPC_MAJOR_VERSION.$XMLRPC_MINOR_VERSION.$XMLRPC_MICRO_VERSION -+ -+LT_RELEASE=$XMLRPC_MAJOR_VERSION.$XMLRPC_MINOR_VERSION -+LT_CURRENT=`expr $XMLRPC_MICRO_VERSION - $XMLRPC_INTERFACE_AGE` -+LT_REVISION=$XMLRPC_INTERFACE_AGE -+LT_AGE=`expr $XMLRPC_BINARY_AGE - $XMLRPC_INTERFACE_AGE` -+ -+AC_SUBST(LT_RELEASE) -+AC_SUBST(LT_CURRENT) -+AC_SUBST(LT_REVISION) -+AC_SUBST(LT_AGE) -+AC_SUBST(XMLRPC_VERSION) -+ -+AM_INIT_AUTOMAKE(libxmlrpc++,$XMLRPC_VERSION) -+ -+AM_CONFIG_HEADER(configure.h) -+ -+AC_PROG_CXX -+AC_PROG_INSTALL -+AC_PROG_LIBTOOL -+ -+dnl AC_STDC_HEADERS -+AC_CHECK_LIB( socket, socket) -+AC_CHECK_LIB( nsl, gethostbyname) -+AC_CHECK_LIB( ssl, SSL_connect) -+ -+AC_OUTPUT(Makefile src/Makefile) -+ -diff -Naur xmlrpc++/src/Makefile.am xmlrpc++-automake/src/Makefile.am ---- xmlrpc++/src/Makefile.am 1970-01-01 07:00:00.000000000 +0700 -+++ xmlrpc++-automake/src/Makefile.am 2004-07-26 11:54:11.578831632 +0700 -@@ -0,0 +1,35 @@ -+lib_LTLIBRARIES = libxmlrpc++.la -+ -+libxmlrpc___la_LDFLAGS = -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) -+ -+library_includedir=$(includedir) -+library_include_HEADERS = XmlRpc.h \ -+ XmlRpcServer.h \ -+ XmlRpcSocket.h \ -+ XmlRpcValue.h \ -+ XmlRpcClient.h \ -+ XmlRpcServerConnection.h \ -+ XmlRpcSource.h \ -+ XmlRpcDispatch.h \ -+ XmlRpcServerMethod.h \ -+ XmlRpcUtil.h \ -+ XmlRpcThreadedServer.h \ -+ XmlRpcException.h \ -+ XmlRpcMutex.h \ -+ XmlRpcThread.h -+ -+libxmlrpc___la_SOURCES = $(library_include_HEADERS) \ -+ base64.h \ -+ XmlRpcClient.cpp \ -+ XmlRpcServerConnection.cpp \ -+ XmlRpcSource.cpp \ -+ XmlRpcDispatch.cpp \ -+ XmlRpcServerMethod.cpp \ -+ XmlRpcUtil.cpp \ -+ XmlRpcServer.cpp \ -+ XmlRpcSocket.cpp \ -+ XmlRpcValue.cpp \ -+ XmlRpcThreadedServer.cpp \ -+ XmlRpcMutex.cpp\ -+ XmlRpcThread.cpp -+ diff --git a/etc/portage/dev-libs/xmlrpc++/xmlrpc++-0.7.ebuild b/etc/portage/dev-libs/xmlrpc++/xmlrpc++-0.7.ebuild deleted file mode 100644 index 20feeebda..000000000 --- a/etc/portage/dev-libs/xmlrpc++/xmlrpc++-0.7.ebuild +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright 1999-2005 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header$ - -inherit eutils flag-o-matic - -DESCRIPTION="XmlRpc++ is a C++ implementation of the XML-RPC protocol." -SRC_URI="mirror://sourceforge/xmlrpcpp/${PN}${PV}.tar.gz" -HOMEPAGE="http://xmlrpcpp.sourceforge.net/" -LICENSE="LGPL" - -DEPEND="" -KEYWORDS="~x86 ~ppc ~hppa ~alpha ~amd64" -IUSE="" -SLOT=0 - -src_unpack() { - unpack ${A} - cd ${PN}${PV} - - epatch ${FILESDIR}/xmlrpc++-0.7-to-cvs-20040713.patch - epatch ${FILESDIR}/xmlrpc++-automake.patch - epatch ${FILESDIR}/uninitialised_XmlRpcSource_ssl_ssl.patch - epatch ${FILESDIR}/incorrect_XmlRpcValue_struct_tm_conversion.patch - - sh autogen.sh -} - -src_compile() { - cd ${WORKDIR}/${PN}${PV} - - econf || die "econf failed" - emake || die "emake failed" -} - -src_install () { - cd ${WORKDIR}/${PN}${PV} - - dodoc COPYING README.html - emake prefix=${D} \ - includedir=${D}/usr/include \ - libdir=${D}/usr/lib \ - DOC_DIR=${D}/usr/share/doc/${PF} \ - install \ - || die "make install failed" -} - diff --git a/etc/portage/dev-php/PEAR-Calendar/Manifest b/etc/portage/dev-php/PEAR-Calendar/Manifest deleted file mode 100644 index 42094ebbf..000000000 --- a/etc/portage/dev-php/PEAR-Calendar/Manifest +++ /dev/null @@ -1,2 +0,0 @@ -MD5 4240a059d8243567ea2b783f05c29c14 PEAR-Calendar-0.5.2.ebuild 317 -MD5 f85abc41078747dcbe66b80ddbfea88c files/digest-PEAR-Calendar-0.5.2 62 diff --git a/etc/portage/dev-php/PEAR-Calendar/PEAR-Calendar-0.5.2.ebuild b/etc/portage/dev-php/PEAR-Calendar/PEAR-Calendar-0.5.2.ebuild deleted file mode 100644 index 2ea7689a0..000000000 --- a/etc/portage/dev-php/PEAR-Calendar/PEAR-Calendar-0.5.2.ebuild +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright 1999-2005 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header$ - -inherit php-pear-r1 - -DESCRIPTION="A package for building Calendar data structures (irrespective of -output)" - -LICENSE="PHP" -SLOT="0" -KEYWORDS="alpha amd64 hppa ia64 ppc ppc64 s390 sparc x86" -IUSE="" diff --git a/etc/portage/dev-php/PEAR-Calendar/files/digest-PEAR-Calendar-0.5.2 b/etc/portage/dev-php/PEAR-Calendar/files/digest-PEAR-Calendar-0.5.2 deleted file mode 100644 index fd7c38866..000000000 --- a/etc/portage/dev-php/PEAR-Calendar/files/digest-PEAR-Calendar-0.5.2 +++ /dev/null @@ -1 +0,0 @@ -MD5 26e2dedc175fd5056856b1fee6c0415a Calendar-0.5.2.tgz 60164 diff --git a/etc/portage/dev-php/PEAR-File/Manifest b/etc/portage/dev-php/PEAR-File/Manifest deleted file mode 100644 index f413956ce..000000000 --- a/etc/portage/dev-php/PEAR-File/Manifest +++ /dev/null @@ -1,2 +0,0 @@ -MD5 e0f58b576c8dc7b50a16cc8ab4ed5295 PEAR-File-1.2.0.ebuild 244 -MD5 dfbc729e39566a4af97ca144c293a308 files/digest-PEAR-File-1.2.0 58 diff --git a/etc/portage/dev-php/PEAR-File/PEAR-File-1.2.0.ebuild b/etc/portage/dev-php/PEAR-File/PEAR-File-1.2.0.ebuild deleted file mode 100644 index fc092acfd..000000000 --- a/etc/portage/dev-php/PEAR-File/PEAR-File-1.2.0.ebuild +++ /dev/null @@ -1,12 +0,0 @@ -# Copyright 1999-2005 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header$ - -inherit php-pear-r1 - -DESCRIPTION="Common file and directory routines" - -LICENSE="PHP" -SLOT="0" -KEYWORDS="~sparc ~x86" -IUSE="" diff --git a/etc/portage/dev-php/PEAR-File/files/digest-PEAR-File-1.2.0 b/etc/portage/dev-php/PEAR-File/files/digest-PEAR-File-1.2.0 deleted file mode 100644 index 060cad9e2..000000000 --- a/etc/portage/dev-php/PEAR-File/files/digest-PEAR-File-1.2.0 +++ /dev/null @@ -1 +0,0 @@ -MD5 40ccd2236328fbb2475ba74ea575787d File-1.2.0.tgz 15450 diff --git a/etc/portage/dev-php/PEAR-File_Find/Manifest b/etc/portage/dev-php/PEAR-File_Find/Manifest deleted file mode 100644 index 659eb6c62..000000000 --- a/etc/portage/dev-php/PEAR-File_Find/Manifest +++ /dev/null @@ -1,2 +0,0 @@ -MD5 790c4721e6436b79a12dada33b5391fa PEAR-File_Find-0.3.1.ebuild 289 -MD5 7ff24f071f24225d832b6b7a8ef4bf36 files/digest-PEAR-File_Find-0.3.1 62 diff --git a/etc/portage/dev-php/PEAR-File_Find/PEAR-File_Find-0.3.1.ebuild b/etc/portage/dev-php/PEAR-File_Find/PEAR-File_Find-0.3.1.ebuild deleted file mode 100644 index 262512aaf..000000000 --- a/etc/portage/dev-php/PEAR-File_Find/PEAR-File_Find-0.3.1.ebuild +++ /dev/null @@ -1,11 +0,0 @@ -# Copyright 1999-2005 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header$ - -inherit php-pear-r1 - -DESCRIPTION="A class that facillitates the search of filesystems." -LICENSE="PHP" -SLOT="0" -KEYWORDS="x86 ~ppc ~sparc alpha ~hppa amd64 ppc64" -IUSE="" diff --git a/etc/portage/dev-php/PEAR-File_Find/files/digest-PEAR-File_Find-0.3.1 b/etc/portage/dev-php/PEAR-File_Find/files/digest-PEAR-File_Find-0.3.1 deleted file mode 100644 index 8a8fa1329..000000000 --- a/etc/portage/dev-php/PEAR-File_Find/files/digest-PEAR-File_Find-0.3.1 +++ /dev/null @@ -1 +0,0 @@ -MD5 a81c83a7ce53f4fb9bec8a0019fde0e8 File_Find-0.3.1.tgz 4759 diff --git a/etc/portage/dev-php/PEAR-HTML_QuickForm/Manifest b/etc/portage/dev-php/PEAR-HTML_QuickForm/Manifest deleted file mode 100644 index 33a7b7e6e..000000000 --- a/etc/portage/dev-php/PEAR-HTML_QuickForm/Manifest +++ /dev/null @@ -1,2 +0,0 @@ -MD5 64e1cc953c0f89144e5865d9e95e0405 PEAR-HTML_QuickForm-3.2.4.ebuild 523 -MD5 4273f257f8706d090b9dbf9856189504 files/digest-PEAR-HTML_QuickForm-3.2.4 68 diff --git a/etc/portage/dev-php/PEAR-HTML_QuickForm/PEAR-HTML_QuickForm-3.2.4.ebuild b/etc/portage/dev-php/PEAR-HTML_QuickForm/PEAR-HTML_QuickForm-3.2.4.ebuild deleted file mode 100644 index f835798ab..000000000 --- a/etc/portage/dev-php/PEAR-HTML_QuickForm/PEAR-HTML_QuickForm-3.2.4.ebuild +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright 1999-2005 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header$ - -inherit php-pear-r1 - -DESCRIPTION="The PEAR::HTML_QuickForm package provides methods for creating, validating, processing HTML forms." -LICENSE="PHP" -SLOT="0" -KEYWORDS="~x86 ~sparc ~ppc ~ia64 ~amd64" -DEPEND=">=dev-php/PEAR-HTML_Common-1.2.1 - dev-php/PEAR-HTML_Template_Flexy - dev-php/PEAR-HTML_Template_IT" -# the last two would be option on doc? but I think we should put the docs there -# anyway -IUSE="" diff --git a/etc/portage/dev-php/PEAR-HTML_QuickForm/files/digest-PEAR-HTML_QuickForm-3.2.4 b/etc/portage/dev-php/PEAR-HTML_QuickForm/files/digest-PEAR-HTML_QuickForm-3.2.4 deleted file mode 100644 index aa2fbd552..000000000 --- a/etc/portage/dev-php/PEAR-HTML_QuickForm/files/digest-PEAR-HTML_QuickForm-3.2.4 +++ /dev/null @@ -1 +0,0 @@ -MD5 63e41c52445c3c975a4d81a801fcd1c6 HTML_QuickForm-3.2.4.tgz 92946 diff --git a/etc/portage/dev-php/PEAR-XML_Parser/Manifest b/etc/portage/dev-php/PEAR-XML_Parser/Manifest deleted file mode 100644 index b03d3deb5..000000000 --- a/etc/portage/dev-php/PEAR-XML_Parser/Manifest +++ /dev/null @@ -1,2 +0,0 @@ -MD5 20e860b9eaed5ae49ab9e7fc3fc2edf3 PEAR-XML_Parser-1.2.6.ebuild 317 -MD5 1000e0267dc48ce81fa7d8085e801b78 files/digest-PEAR-XML_Parser-1.2.6 64 diff --git a/etc/portage/dev-php/PEAR-XML_Parser/PEAR-XML_Parser-1.2.6.ebuild b/etc/portage/dev-php/PEAR-XML_Parser/PEAR-XML_Parser-1.2.6.ebuild deleted file mode 100644 index 8e9a9e852..000000000 --- a/etc/portage/dev-php/PEAR-XML_Parser/PEAR-XML_Parser-1.2.6.ebuild +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright 1999-2005 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header$ - -inherit php-pear-r1 - -DESCRIPTION="XML parsing class based on PHP's SAX parser" - -LICENSE="PHP" -SLOT="0" -KEYWORDS="alpha amd64 hppa ia64 ppc ppc64 s390 sparc x86" -IUSE="" - -RDEPEND="dev-php/PEAR-PEAR" diff --git a/etc/portage/dev-php/PEAR-XML_Parser/files/digest-PEAR-XML_Parser-1.2.6 b/etc/portage/dev-php/PEAR-XML_Parser/files/digest-PEAR-XML_Parser-1.2.6 deleted file mode 100644 index 88c766ae8..000000000 --- a/etc/portage/dev-php/PEAR-XML_Parser/files/digest-PEAR-XML_Parser-1.2.6 +++ /dev/null @@ -1 +0,0 @@ -MD5 96ebc0fc2f349249f1455389797e72a4 XML_Parser-1.2.6.tgz 12944 diff --git a/etc/portage/media-libs/taglib/Manifest b/etc/portage/media-libs/taglib/Manifest deleted file mode 100644 index 569b0fef9..000000000 --- a/etc/portage/media-libs/taglib/Manifest +++ /dev/null @@ -1,4 +0,0 @@ -MD5 7a549789db883fd2a1fece00159db85b taglib-1.3.1-r3.ebuild 916 -MD5 103dd47ff1744397288b44834902e16c files/taglib-1.3.1-memleak-fix2.patch 2514 -MD5 5be2e7958dd0c6985fd109659eb90b6b files/taglib-1.3.1-length-in-microseconds.patch 5962 -MD5 cc8a58ea8028f3539fcee148baeffcc1 files/digest-taglib-1.3.1-r3 64 diff --git a/etc/portage/media-libs/taglib/files/digest-taglib-1.3.1-r3 b/etc/portage/media-libs/taglib/files/digest-taglib-1.3.1-r3 deleted file mode 100644 index cd73d6280..000000000 --- a/etc/portage/media-libs/taglib/files/digest-taglib-1.3.1-r3 +++ /dev/null @@ -1 +0,0 @@ -MD5 f5c7c71513ba51b240864d7475a199c0 taglib-1.3.1.tar.gz 734938 diff --git a/etc/portage/media-libs/taglib/files/taglib-1.3.1-length-in-microseconds.patch b/etc/portage/media-libs/taglib/files/taglib-1.3.1-length-in-microseconds.patch deleted file mode 100644 index bd8047634..000000000 --- a/etc/portage/media-libs/taglib/files/taglib-1.3.1-length-in-microseconds.patch +++ /dev/null @@ -1,172 +0,0 @@ ---- taglib-1.3.1/taglib/audioproperties.h 2003-11-04 03:48:25.000000000 +0100 -+++ taglib-1.3.1-microseconds/taglib/audioproperties.h 2005-06-15 19:27:31.805943362 +0200 -@@ -59,11 +59,16 @@ - virtual ~AudioProperties(); - - /*! -- * Returns the lenght of the file in seconds. -+ * Returns the length of the file in seconds (rounded down). - */ - virtual int length() const = 0; - - /*! -+ * Returns the fractional part of the length of the file, in microseconds. -+ */ -+ virtual int length_microseconds() const = 0; -+ -+ /*! - * Returns the most appropriate bit rate for the file in kb/s. For constant - * bitrate formats this is simply the bitrate of the file. For variable - * bitrate formats this is either the average or nominal bitrate. ---- taglib-1.3.1/taglib/flac/flacproperties.h 2004-06-24 21:27:02.000000000 +0200 -+++ taglib-1.3.1-microseconds/taglib/flac/flacproperties.h 2005-06-15 19:41:27.176791223 +0200 -@@ -62,6 +62,7 @@ - // Reimplementations. - - virtual int length() const; -+ virtual int length_microseconds() const; - virtual int bitrate() const; - virtual int sampleRate() const; - virtual int channels() const; ---- taglib-1.3.1/taglib/flac/flacproperties.cpp 2004-08-02 16:18:58.000000000 +0200 -+++ taglib-1.3.1-microseconds/taglib/flac/flacproperties.cpp 2005-06-15 21:42:48.714138847 +0200 -@@ -76,6 +76,11 @@ - return d->length; - } - -+int FLAC::Properties::length_microseconds() const -+{ -+ return 0; -+} -+ - int FLAC::Properties::bitrate() const - { - return d->bitrate; ---- taglib-1.3.1/taglib/mpc/mpcproperties.h 2004-07-21 00:30:00.000000000 +0200 -+++ taglib-1.3.1-microseconds/taglib/mpc/mpcproperties.h 2005-06-15 19:46:10.845016974 +0200 -@@ -56,6 +56,7 @@ - // Reimplementations. - - virtual int length() const; -+ virtual int length_microseconds() const; - virtual int bitrate() const; - virtual int sampleRate() const; - virtual int channels() const; ---- taglib-1.3.1/taglib/mpc/mpcproperties.cpp 2004-09-09 02:28:18.000000000 +0200 -+++ taglib-1.3.1-microseconds/taglib/mpc/mpcproperties.cpp 2005-06-15 21:43:14.322020672 +0200 -@@ -71,6 +71,11 @@ - return d->length; - } - -+int MPC::Properties::length_microseconds() const -+{ -+ return 0; -+} -+ - int MPC::Properties::bitrate() const - { - return d->bitrate; ---- taglib-1.3.1/taglib/mpeg/mpegproperties.h 2003-11-05 05:29:05.000000000 +0100 -+++ taglib-1.3.1-microseconds/taglib/mpeg/mpegproperties.h 2005-06-15 19:33:00.669147926 +0200 -@@ -56,6 +56,7 @@ - // Reimplementations. - - virtual int length() const; -+ virtual int length_microseconds() const; - virtual int bitrate() const; - virtual int sampleRate() const; - virtual int channels() const; ---- taglib-1.3.1/taglib/mpeg/mpegproperties.cpp 2004-08-02 16:18:58.000000000 +0200 -+++ taglib-1.3.1-microseconds/taglib/mpeg/mpegproperties.cpp 2005-06-15 20:57:14.538631543 +0200 -@@ -41,7 +41,7 @@ - - File *file; - ReadStyle style; -- int length; -+ long long length; - int bitrate; - int sampleRate; - int channels; -@@ -71,7 +71,12 @@ - - int MPEG::Properties::length() const - { -- return d->length; -+ return int(d->length / 1000000); -+} -+ -+int MPEG::Properties::length_microseconds() const -+{ -+ return int(d->length % 1000000); - } - - int MPEG::Properties::bitrate() const -@@ -191,8 +196,9 @@ - - double timePerFrame = blockSize[firstHeader.layer()]; - timePerFrame = firstHeader.sampleRate() > 0 ? timePerFrame / firstHeader.sampleRate() : 0; -- d->length = int(timePerFrame * xingHeader.totalFrames()); -- d->bitrate = d->length > 0 ? xingHeader.totalSize() * 8 / d->length / 1000 : 0; -+ d->length = (long long)( -+ timePerFrame * xingHeader.totalFrames() * 1000000 + 0.5); -+ d->bitrate = d->length > 0 ? xingHeader.totalSize() * 8000 / d->length : 0; - } - - // Since there was no valid Xing header found, we hope that we're in a constant -@@ -204,8 +210,10 @@ - else if(firstHeader.frameLength() > 0 && firstHeader.bitrate() > 0) { - int frames = (last - first) / firstHeader.frameLength() + 1; - -- d->length = int(float(firstHeader.frameLength() * frames) / -- float(firstHeader.bitrate() * 125) + 0.5); -+ d->length = (long long)( -+ (double(firstHeader.frameLength()) * frames * 1000000) / -+ (double(firstHeader.bitrate()) * 125) + 0.5); -+ - d->bitrate = firstHeader.bitrate(); - } - ---- taglib-1.3.1/taglib/ogg/vorbis/vorbisproperties.h 2004-05-13 02:29:48.000000000 +0200 -+++ taglib-1.3.1-microseconds/taglib/ogg/vorbis/vorbisproperties.h 2005-06-15 19:48:18.365492520 +0200 -@@ -65,6 +65,7 @@ - // Reimplementations. - - virtual int length() const; -+ virtual int length_microseconds() const; - virtual int bitrate() const; - virtual int sampleRate() const; - virtual int channels() const; ---- taglib-1.3.1/taglib/ogg/vorbis/vorbisproperties.cpp 2003-12-02 06:00:23.000000000 +0100 -+++ taglib-1.3.1-microseconds/taglib/ogg/vorbis/vorbisproperties.cpp 2005-06-15 20:36:41.687062239 +0200 -@@ -46,7 +46,7 @@ - - File *file; - ReadStyle style; -- int length; -+ long long length; - int bitrate; - int sampleRate; - int channels; -@@ -81,7 +81,12 @@ - - int Vorbis::Properties::length() const - { -- return d->length; -+ return int(d->length / 1000000); -+} -+ -+int Vorbis::Properties::length_microseconds() const -+{ -+ return int(d->length % 1000000); - } - - int Vorbis::Properties::bitrate() const -@@ -169,7 +174,7 @@ - long long end = last->absoluteGranularPosition(); - - if(start >= 0 && end >= 0 && d->sampleRate > 0) -- d->length = (end - start) / (long long) d->sampleRate; -+ d->length = ((end - start) * 1000000) / (long long) d->sampleRate; - else - debug("Vorbis::Properties::read() -- Either the PCM values for the start or " - "end of this file was incorrect or the sample rate is zero."); diff --git a/etc/portage/media-libs/taglib/files/taglib-1.3.1-memleak-fix2.patch b/etc/portage/media-libs/taglib/files/taglib-1.3.1-memleak-fix2.patch deleted file mode 100644 index 8e969d2da..000000000 --- a/etc/portage/media-libs/taglib/files/taglib-1.3.1-memleak-fix2.patch +++ /dev/null @@ -1,112 +0,0 @@ ---- taglib/mpc/mpcproperties.cpp 2004/09/09 00:28:57 345141 -+++ taglib/mpc/mpcproperties.cpp 2005/04/02 20:53:11 402712 -@@ -106,7 +106,7 @@ - - void MPC::Properties::read() - { -- if(d->data.mid(0, 3) != "MP+") -+ if(!d->data.startsWith("MP+")) - return; - - d->version = d->data[3] & 15; -@@ -116,7 +116,7 @@ - if(d->version >= 7) { - frames = d->data.mid(4, 4).toUInt(false); - -- std::bitset<32> flags = d->data.mid(8, 4).toUInt(true); -+ std::bitset<32> flags = d->data.mid(8, 4).toUInt(false); - d->sampleRate = sftable[flags[17] * 2 + flags[16]]; - d->channels = 2; - } - - ---- taglib/mpc/mpcfile.cpp 2004/09/02 18:50:26 343576 -+++ taglib/mpc/mpcfile.cpp 2005/04/03 16:41:17 402896 -@@ -53,7 +53,10 @@ - - ~FilePrivate() - { -+ if (tag != ID3v1Tag && tag != APETag) delete tag; - delete ID3v1Tag; -+ delete APETag; -+ delete ID3v2Header; - delete properties; - } - -@@ -227,7 +230,7 @@ - if(d->APETag) - d->tag = d->APETag; - else -- d->tag = d->APETag = new APE::Tag(); -+ d->tag = d->APETag = new APE::Tag; - } - - if(tags & ID3v2) { -@@ -242,7 +245,7 @@ - if(d->ID3v1Tag) - d->tag = d->ID3v1Tag; - else -- d->tag = d->APETag = new APE::Tag(); -+ d->tag = d->APETag = new APE::Tag; - } - } - -@@ -284,7 +287,7 @@ - if(d->hasAPE) - d->tag = d->APETag; - else -- d->tag = d->APETag = new APE::Tag(); -+ d->tag = d->APETag = new APE::Tag; - } - } - - ---- taglib/ape/apeitem.h 2004/11/06 14:24:40 360969 -+++ taglib/ape/apeitem.h 2005/04/03 16:35:55 402891 -@@ -70,6 +70,11 @@ - Item(const Item &item); - - /*! -+ * Destroys the item. -+ */ -+ virtual ~Item(); -+ -+ /*! - * Copies the contents of \a item into this item. - */ - Item &operator=(const Item &item); - - ---- taglib/ape/apeitem.cpp 2004/11/06 14:43:24 360973 -+++ taglib/ape/apeitem.cpp 2005/04/03 16:35:55 402891 -@@ -62,6 +62,11 @@ - d = new ItemPrivate(*item.d); - } - -+APE::Item::~Item() -+{ -+ delete d; -+} -+ - Item &APE::Item::operator=(const Item &item) - { - delete d; -@@ -111,7 +116,7 @@ - - String APE::Item::toString() const - { -- return d->text.front(); -+ return isEmpty() ? String::null : d->text.front(); - } - - bool APE::Item::isEmpty() const -@@ -121,7 +126,7 @@ - case 1: - if(d->text.isEmpty()) - return true; -- if(d->text.size() == 1 && d->text.front() == "") -+ if(d->text.size() == 1 && d->text.front().isEmpty()) - return true; - return false; - case 2: - diff --git a/etc/portage/media-libs/taglib/taglib-1.3.1-r3.ebuild b/etc/portage/media-libs/taglib/taglib-1.3.1-r3.ebuild deleted file mode 100644 index 7986acacc..000000000 --- a/etc/portage/media-libs/taglib/taglib-1.3.1-r3.ebuild +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright 1999-2005 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header$ - -inherit eutils flag-o-matic - -DESCRIPTION="A library for reading and editing audio meta data" -HOMEPAGE="http://developer.kde.org/~wheeler/taglib.html" -SRC_URI="http://developer.kde.org/~wheeler/files/src/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~mips" -IUSE="debug" - -DEPEND=">=sys-devel/autoconf-2.58" -RDEPEND="" - -src_unpack() { - unpack ${A} - cd ${S} - epatch ${FILESDIR}/${P}-memleak-fix2.patch - epatch ${FILESDIR}/${P}-length-in-microseconds.patch - - rm -rf autom4te.cache - export WANT_AUTOCONF=2.5 - export WANT_AUTOMAKE=1.7 - aclocal && autoconf && automake || die "autotools failed" -} - -src_compile() { - replace-flags -O3 -O2 - econf `use_enable debug` || die - emake || die -} - -src_install() { - make install DESTDIR=${D} destdir=${D} || die -} diff --git a/etc/portage/media-radio/livesupport/Manifest b/etc/portage/media-radio/livesupport/Manifest deleted file mode 100644 index 7a7a95525..000000000 --- a/etc/portage/media-radio/livesupport/Manifest +++ /dev/null @@ -1,8 +0,0 @@ -MD5 327ed3bdd51bf26a7fc4f8a097ec163f livesupport-1.0.ebuild 2745 -MD5 88922583359d4f48bb62fe32edcf49bf files/storageServer-docroot.patch 496 -MD5 748c25d0b1d9b77b549de03d2d054796 files/prefix-as-make-variable.patch 9729 -MD5 c2d1ff785cf48e5379f9a3c408c44eb7 files/setup-install-dirs.patch 1430 -MD5 f1b36bd5e8064413975e891f7e698909 files/taglib-curl-icu.patch 46021 -MD5 a538c0d8cca6f56f49e849d02e7eeaf5 files/pg_hba.patch 1271 -MD5 11fe70fcc870ab186dcc8ce354c43076 files/digest-livesupport-1.0 70 -MD5 aa45773c2de23cc856a1bc11153637ec files/postinstall-config-file.patch 7791 diff --git a/etc/portage/media-radio/livesupport/files/digest-livesupport-1.0 b/etc/portage/media-radio/livesupport/files/digest-livesupport-1.0 deleted file mode 100644 index 1fe67e311..000000000 --- a/etc/portage/media-radio/livesupport/files/digest-livesupport-1.0 +++ /dev/null @@ -1 +0,0 @@ -MD5 73d76a5c9cd0c0b9e2f527e8a169183b livesupport-1.0.tar.bz2 10666438 diff --git a/etc/portage/media-radio/livesupport/files/pg_hba.patch b/etc/portage/media-radio/livesupport/files/pg_hba.patch deleted file mode 100644 index 4db2125a9..000000000 --- a/etc/portage/media-radio/livesupport/files/pg_hba.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- livesupport-1.0/etc/pg_hba.conf 2005-08-13 12:33:33.000000000 +0200 -+++ livesupport-1.0-gentoo/etc/pg_hba.conf 2005-09-22 13:48:24.000000000 +0200 -@@ -85,18 +85,16 @@ - # Database administrative login by UNIX sockets - local all postgres ident sameuser - # --# All other connections by UNIX sockets --local all all ident sameuser --# - # All IPv4 connections from localhost - # The following line was inserted by the livesupport-station package installer - # the original pg_hba.conf file is saved under pg_hba.conf.before-livesupport - host all all 127.0.0.1 255.255.255.255 password - #host all all 127.0.0.1 255.255.255.255 ident sameuser - # -+# All other connections by UNIX sockets -+local all all password -+# - # All IPv6 localhost connections --host all all ::1 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff ident sameuser --host all all ::ffff:127.0.0.1/128 ident sameuser - # - # reject all other connection attempts - host all all 0.0.0.0 0.0.0.0 reject diff --git a/etc/portage/media-radio/livesupport/files/postinstall-config-file.patch b/etc/portage/media-radio/livesupport/files/postinstall-config-file.patch deleted file mode 100644 index 8948e3a96..000000000 --- a/etc/portage/media-radio/livesupport/files/postinstall-config-file.patch +++ /dev/null @@ -1,193 +0,0 @@ ---- livesupport-1.0/bin/postInstallStation.sh 2005-08-14 14:15:30.000000000 +0200 -+++ livesupport-1.0-gentoo/bin/postInstallStation.sh 2005-09-22 13:16:23.000000000 +0200 -@@ -155,9 +155,13 @@ - echo " apache document root: $www_root"; - echo "" - -+ - #------------------------------------------------------------------------------- - # The details of installation - #------------------------------------------------------------------------------- -+ls_hostname=localhost -+ls_www_port=80 -+ - ls_dbserver=$dbserver - ls_dbuser=$dbuser - ls_dbpassword=$dbpassword -@@ -168,9 +172,15 @@ - install_bin=$installdir/bin - install_etc=$installdir/etc - install_lib=$installdir/lib -+install_tmp=$installdir/tmp - install_usr=$installdir/usr - install_var_ls=$installdir/var/LiveSupport - -+php_url_prefix=livesupport -+alib_xml_rpc_prefix=xmlrpc/xrLocStor.php -+audio_out=default -+scheduler_port=3344 -+ - - #------------------------------------------------------------------------------- - # Function to check for the existence of an executable on the PATH -@@ -226,19 +236,68 @@ - - - #------------------------------------------------------------------------------- -+# Create the replacement string for the config files -+#------------------------------------------------------------------------------- -+install_lib_s=`echo ${install_lib} | sed -e "s/\//\\\\\\\\\//g"` -+install_tmp_s=`echo ${install_tmp} | sed -e "s/\//\\\\\\\\\//g"` -+php_url_prefix_s=`echo ${php_url_prefix} | sed -e "s/\//\\\\\\\\\//g"` -+alib_xml_rpc_prefix_s=`echo ${alib_xml_rpc_prefix} | sed -e "s/\//\\\\\\\\\//g"` -+audio_out_s=`echo ${audio_out} | sed -e "s/\//\\\\\\\\\//g"` -+ -+ -+replace_sed_string="s/ls_lib_dir/${install_lib_s}/; \ -+ s/ls_dbuser/${ls_dbuser}/; \ -+ s/ls_dbpassword/${ls_dbpassword}/; \ -+ s/ls_dbserver/${ls_dbserver}/; \ -+ s/ls_database/${ls_database}/; \ -+ s/ls_php_urlPrefix/${php_url_prefix_s}/; \ -+ s/ls_php_host/${ls_hostname}/; \ -+ s/ls_php_port/${ls_www_port}/; \ -+ s/ls_alib_xmlRpcPrefix/${alib_xml_rpc_prefix_s}/; \ -+ s/ls_tmp_dir/${install_tmp_s}/; \ -+ s/ls_audio_output_device/${audio_out_s}/; \ -+ s/ls_scheduler_host/${ls_hostname}/; \ -+ s/ls_scheduler_port/${scheduler_port}/;" -+ -+ -+#------------------------------------------------------------------------------- -+# Creating configuration files -+#------------------------------------------------------------------------------- -+echo "Creating configuration files..."; -+ -+cat $install_etc/scheduler.xml.template | sed -e "${replace_sed_string}" \ -+ > $install_etc/scheduler.xml -+ -+cat $install_var_ls/archiveServer/var/conf.php.template \ -+ | sed -e "${replace_sed_string}" \ -+ > $install_var_ls/archiveServer/var/conf.php -+ -+cat $install_var_ls/storageServer/var/conf.php.template \ -+ | sed -e "${replace_sed_string}" \ -+ > $install_var_ls/storageServer/var/conf.php -+ -+ -+#------------------------------------------------------------------------------- - # Install the new pg_hba.conf file - #------------------------------------------------------------------------------- - echo "Modifying postgresql access permissions..."; - --pg_config_dir=/etc/postgresql - pg_config_file=pg_hba.conf - pg_config_file_saved=pg_hba.conf.before-livesupport - -+pg_config_dir=/etc/postgresql - if [ -f $pg_config_dir/$pg_config_file ] ; then - mv -f $pg_config_dir/$pg_config_file $pg_config_dir/$pg_config_file_saved ; -+ cp $install_etc/$pg_config_file $pg_config_dir/$pg_config_file -+ chown root:$postgres_user $pg_config_dir/$pg_config_file -+fi -+ -+pg_config_dir=/var/lib/postgresql/data/ -+if [ -f $pg_config_dir/$pg_config_file ] ; then -+ mv -f $pg_config_dir/$pg_config_file $pg_config_dir/$pg_config_file_saved ; -+ cp $install_etc/$pg_config_file $pg_config_dir/$pg_config_file -+ chown root:$postgres_user $pg_config_dir/$pg_config_file - fi --cp $install_etc/$pg_config_file $pg_config_dir/$pg_config_file --chown root:$postgres_user $pg_config_dir/$pg_config_file - - /etc/init.d/postgresql restart - -@@ -290,6 +349,10 @@ - odbc_template=$install_etc/odbc_template - odbc_template_tmp=/tmp/odbc_template.$$ - -+# customied odbc template file -+cat $install_etc/odbc_template | sed -e "${replace_sed_string}" \ -+ > $odbc_template_tmp -+ - # check for an existing PostgreSQL ODBC driver, and only install if necessary - odbcinst_res=`odbcinst -q -d | grep "\[PostgreSQL\]"` - if [ "x$odbcinst_res" == "x" ]; then -@@ -298,13 +361,17 @@ - fi - - echo "Registering LiveSupport ODBC data source..."; --odbcinst -i -s -l -f $odbc_template || exit 1; -+odbcinst -i -s -l -f $odbc_template_tmp || exit 1; -+ -+rm -f $odbc_template_tmp - - - #------------------------------------------------------------------------------- - # Install PEAR packages (locally in the LiveSupport) - #------------------------------------------------------------------------------- --$install_usr/lib/pear/bin/install.sh -d $installdir || exit 1; -+if [ -f $install_usr/lib/pear/bin/install.sh ]; then -+ $install_usr/lib/pear/bin/install.sh -d $installdir || exit 1; -+fi - - - #------------------------------------------------------------------------------- -@@ -338,6 +405,7 @@ - chmod g+sw $install_var_ls/htmlUI/var/templates_c - chmod g+sw $install_var_ls/htmlUI/var/html/img - -+ - #------------------------------------------------------------------------------- - # Configuring Apache - #------------------------------------------------------------------------------- -@@ -421,7 +489,9 @@ - export LD_LIBRARY_PATH=$install_lib - export GST_REGISTRY=$install_etc/gst-registry.xml - export GST_PLUGIN_PATH=$gstreamer_dir --$install_bin/gst-register > /dev/null 2>&1 -+if [ -f $install_bin/gst-register ]; then -+ $install_bin/gst-register > /dev/null 2>&1 -+fi - - - #------------------------------------------------------------------------------- ---- livesupport-1.0/products/scheduler/etc/Makefile.in 2005-09-21 15:33:18.000000000 +0200 -+++ livesupport-1.0-gentoo/products/scheduler/etc/Makefile.in 2005-09-22 12:47:38.000000000 +0200 -@@ -375,10 +375,8 @@ - ${CP} ${SCHEDULER_EXE} ${USR_BIN_DIR} - ${CP} ${ETC_DIR}/odbcinst_debian_template \ - ${ETC_DIR}/odbcinst_template ${USR_ETC_DIR} -- ${CAT} ${ETC_DIR}/odbc_template | ${SED} -e ${REPLACE_SED_STRING} \ -- > ${USR_ETC_DIR}/odbc_template -- ${CAT} ${ETC_DIR}/scheduler.xml.template | ${SED} -e ${REPLACE_SED_STRING} \ -- > ${USR_ETC_DIR}/scheduler.xml -+ ${CP} ${ETC_DIR}/odbc_template ${USR_ETC_DIR} -+ ${CP} ${ETC_DIR}/scheduler.xml.template ${USR_ETC_DIR} - - create_database: - ifeq (@CREATE_LS_DATABASE@,yes) ---- livesupport-1.0/modules/archiveServer/etc/Makefile.in 2005-09-21 15:33:18.000000000 +0200 -+++ livesupport-1.0-gentoo/modules/archiveServer/etc/Makefile.in 2005-09-22 13:14:20.000000000 +0200 -@@ -165,8 +165,7 @@ - ${CP} ${VAR_DIR}/*.{php,template} ${DEST_DIR} - ${CP} ${VAR_DIR}/install/*.php ${DEST_DIR}/install - ${CP} ${VAR_DIR}/xmlrpc/*.php ${DEST_DIR}/xmlrpc -- ${CAT} ${VAR_DIR}/conf.php.template | ${SED} -e ${REPLACE_SED_STRING} \ -- > ${DEST_DIR}/conf.php -+ ${CP} ${VAR_DIR}/conf.php.template ${DEST_DIR} - - - #------------------------------------------------------------------------------- ---- livesupport-1.0/modules/storageServer/etc/Makefile.in 2005-09-21 15:33:18.000000000 +0200 -+++ livesupport-1.0-gentoo/modules/storageServer/etc/Makefile.in 2005-09-22 13:14:20.000000000 +0200 -@@ -183,8 +183,7 @@ - ${DEST_DIR}/install - ${CP} ${VAR_DIR}/xmlrpc/*.php \ - ${DEST_DIR}/xmlrpc -- ${CAT} ${VAR_DIR}/conf.php.template | ${SED} -e ${REPLACE_SED_STRING} \ -- > ${DEST_DIR}/conf.php -+ ${CP} ${VAR_DIR}/conf.php.template ${DEST_DIR} - - chgrp ${APACHE_GROUP} ${DEST_DIR}/access - chgrp ${APACHE_GROUP} ${DEST_DIR}/stor diff --git a/etc/portage/media-radio/livesupport/files/prefix-as-make-variable.patch b/etc/portage/media-radio/livesupport/files/prefix-as-make-variable.patch deleted file mode 100644 index cf8862017..000000000 --- a/etc/portage/media-radio/livesupport/files/prefix-as-make-variable.patch +++ /dev/null @@ -1,224 +0,0 @@ -diff -Naur livesupport-1.0/modules/alib/etc/Makefile.in livesupport-1.0-gentoo/modules/alib/etc/Makefile.in ---- livesupport-1.0/modules/alib/etc/Makefile.in 2005-08-01 21:25:59.000000000 +0200 -+++ livesupport-1.0-gentoo/modules/alib/etc/Makefile.in 2005-09-21 11:55:23.000000000 +0200 -@@ -59,7 +59,9 @@ - TMP_DIR = ${BASE_DIR}/tmp - VAR_DIR = ${BASE_DIR}/var - --USR_DIR = @prefix@ -+prefix = @prefix@ -+ -+USR_DIR = ${prefix} - USR_INCLUDE_DIR = ${USR_DIR}/include - USR_VAR_DIR = ${USR_DIR}/var - -diff -Naur livesupport-1.0/modules/archiveServer/etc/Makefile.in livesupport-1.0-gentoo/modules/archiveServer/etc/Makefile.in ---- livesupport-1.0/modules/archiveServer/etc/Makefile.in 2005-08-01 21:25:59.000000000 +0200 -+++ livesupport-1.0-gentoo/modules/archiveServer/etc/Makefile.in 2005-09-21 11:56:57.000000000 +0200 -@@ -62,7 +62,9 @@ - TMP_DIR = ${BASE_DIR}/tmp - VAR_DIR = ${BASE_DIR}/var - --USR_DIR = @prefix@ -+prefix = @prefix@ -+ -+USR_DIR = ${prefix} - USR_INCLUDE_DIR = ${USR_DIR}/include - USR_LIB_DIR = ${USR_DIR}/lib - USR_VAR_DIR = ${USR_DIR}/var -diff -Naur livesupport-1.0/modules/authentication/etc/Makefile.in livesupport-1.0-gentoo/modules/authentication/etc/Makefile.in ---- livesupport-1.0/modules/authentication/etc/Makefile.in 2005-08-01 21:25:59.000000000 +0200 -+++ livesupport-1.0-gentoo/modules/authentication/etc/Makefile.in 2005-09-21 11:56:57.000000000 +0200 -@@ -50,7 +50,9 @@ - SRC_DIR = ${BASE_DIR}/src - TMP_DIR = ${BASE_DIR}/tmp - --USR_DIR = @prefix@ -+prefix = @prefix@ -+ -+USR_DIR = ${prefix} - USR_INCLUDE_DIR = ${USR_DIR}/include - USR_LIB_DIR = ${USR_DIR}/lib - BOOST_INCLUDE_DIR = ${USR_INCLUDE_DIR}/boost-1_33_1 -diff -Naur livesupport-1.0/modules/core/etc/Makefile.in livesupport-1.0-gentoo/modules/core/etc/Makefile.in ---- livesupport-1.0/modules/core/etc/Makefile.in 2005-09-21 11:57:28.000000000 +0200 -+++ livesupport-1.0-gentoo/modules/core/etc/Makefile.in 2005-09-21 11:55:38.000000000 +0200 -@@ -53,7 +53,9 @@ - TMP_DIR = ${BASE_DIR}/tmp - VAR_DIR = ${BASE_DIR}/var - --USR_DIR = @prefix@ -+prefix = @prefix@ -+ -+USR_DIR = ${prefix} - USR_INCLUDE_DIR = ${USR_DIR}/include - USR_BIN_DIR = ${USR_DIR}/bin - USR_LIB_DIR = ${USR_DIR}/lib -diff -Naur livesupport-1.0/modules/db/etc/Makefile.in livesupport-1.0-gentoo/modules/db/etc/Makefile.in ---- livesupport-1.0/modules/db/etc/Makefile.in 2005-08-01 21:25:59.000000000 +0200 -+++ livesupport-1.0-gentoo/modules/db/etc/Makefile.in 2005-09-21 11:55:10.000000000 +0200 -@@ -51,7 +51,9 @@ - SRC_DIR = ${BASE_DIR}/src - TMP_DIR = ${BASE_DIR}/tmp - --USR_DIR = @prefix@ -+prefix = @prefix@ -+ -+USR_DIR = ${prefix} - USR_INCLUDE_DIR = ${USR_DIR}/include - USR_LIB_DIR = ${USR_DIR}/lib - BOOST_INCLUDE_DIR = ${USR_INCLUDE_DIR}/boost-1_33_1 -diff -Naur livesupport-1.0/modules/eventScheduler/etc/Makefile.in livesupport-1.0-gentoo/modules/eventScheduler/etc/Makefile.in ---- livesupport-1.0/modules/eventScheduler/etc/Makefile.in 2005-08-08 13:57:53.000000000 +0200 -+++ livesupport-1.0-gentoo/modules/eventScheduler/etc/Makefile.in 2005-09-21 11:56:57.000000000 +0200 -@@ -50,7 +50,9 @@ - SRC_DIR = ${BASE_DIR}/src - TMP_DIR = ${BASE_DIR}/tmp - --USR_DIR = @prefix@ -+prefix = @prefix@ -+ -+USR_DIR = ${prefix} - USR_INCLUDE_DIR = ${USR_DIR}/include - USR_LIB_DIR = ${USR_DIR}/lib - BOOST_INCLUDE_DIR = ${USR_INCLUDE_DIR}/boost-1_33_1 -diff -Naur livesupport-1.0/modules/getid3/etc/Makefile.in livesupport-1.0-gentoo/modules/getid3/etc/Makefile.in ---- livesupport-1.0/modules/getid3/etc/Makefile.in 2005-08-01 21:25:59.000000000 +0200 -+++ livesupport-1.0-gentoo/modules/getid3/etc/Makefile.in 2005-09-21 11:56:57.000000000 +0200 -@@ -60,7 +60,9 @@ - TMP_DIR = ${BASE_DIR}/tmp - VAR_DIR = ${BASE_DIR}/var - --USR_DIR = @prefix@ -+prefix = @prefix@ -+ -+USR_DIR = ${prefix} - USR_INCLUDE_DIR = ${USR_DIR}/include - USR_VAR_DIR = ${USR_DIR}/var - -diff -Naur livesupport-1.0/modules/htmlUI/etc/Makefile.in livesupport-1.0-gentoo/modules/htmlUI/etc/Makefile.in ---- livesupport-1.0/modules/htmlUI/etc/Makefile.in 2005-08-10 00:03:11.000000000 +0200 -+++ livesupport-1.0-gentoo/modules/htmlUI/etc/Makefile.in 2005-09-21 11:56:57.000000000 +0200 -@@ -61,7 +61,9 @@ - TMP_DIR = ${BASE_DIR}/tmp - VAR_DIR = ${BASE_DIR}/var - --USR_DIR = @prefix@ -+prefix = @prefix@ -+ -+USR_DIR = ${prefix} - USR_INCLUDE_DIR = ${USR_DIR}/include - USR_VAR_DIR = ${USR_DIR}/var - -diff -Naur livesupport-1.0/modules/playlistExecutor/etc/Makefile.in livesupport-1.0-gentoo/modules/playlistExecutor/etc/Makefile.in ---- livesupport-1.0/modules/playlistExecutor/etc/Makefile.in 2005-09-21 11:57:28.000000000 +0200 -+++ livesupport-1.0-gentoo/modules/playlistExecutor/etc/Makefile.in 2005-09-21 11:56:57.000000000 +0200 -@@ -53,7 +53,9 @@ - REAL_BASE_DIR=$(shell cd ${BASE_DIR}; pwd) - - --USR_DIR = @prefix@ -+prefix = @prefix@ -+ -+USR_DIR = ${prefix} - USR_INCLUDE_DIR = ${USR_DIR}/include - USR_LIB_DIR = ${USR_DIR}/lib - BOOST_INCLUDE_DIR = ${USR_INCLUDE_DIR}/boost-1_33_1 -diff -Naur livesupport-1.0/modules/schedulerClient/etc/Makefile.in livesupport-1.0-gentoo/modules/schedulerClient/etc/Makefile.in ---- livesupport-1.0/modules/schedulerClient/etc/Makefile.in 2005-09-21 11:57:29.000000000 +0200 -+++ livesupport-1.0-gentoo/modules/schedulerClient/etc/Makefile.in 2005-09-21 11:56:57.000000000 +0200 -@@ -50,7 +50,9 @@ - SRC_DIR = ${BASE_DIR}/src - TMP_DIR = ${BASE_DIR}/tmp - --USR_DIR = @prefix@ -+prefix = @prefix@ -+ -+USR_DIR = ${prefix} - USR_INCLUDE_DIR = ${USR_DIR}/include - USR_LIB_DIR = ${USR_DIR}/lib - BOOST_INCLUDE_DIR = ${USR_INCLUDE_DIR}/boost-1_33_1 -diff -Naur livesupport-1.0/modules/storage/etc/Makefile.in livesupport-1.0-gentoo/modules/storage/etc/Makefile.in ---- livesupport-1.0/modules/storage/etc/Makefile.in 2005-09-21 11:57:29.000000000 +0200 -+++ livesupport-1.0-gentoo/modules/storage/etc/Makefile.in 2005-09-21 11:56:57.000000000 +0200 -@@ -50,7 +50,9 @@ - SRC_DIR = ${BASE_DIR}/src - TMP_DIR = ${BASE_DIR}/tmp - --USR_DIR = @prefix@ -+prefix = @prefix@ -+ -+USR_DIR = ${prefix} - USR_INCLUDE_DIR = ${USR_DIR}/include - USR_LIB_DIR = ${USR_DIR}/lib - BOOST_INCLUDE_DIR = ${USR_INCLUDE_DIR}/boost-1_33_1 -diff -Naur livesupport-1.0/modules/storageAdmin/etc/Makefile.in livesupport-1.0-gentoo/modules/storageAdmin/etc/Makefile.in ---- livesupport-1.0/modules/storageAdmin/etc/Makefile.in 2005-08-11 02:41:22.000000000 +0200 -+++ livesupport-1.0-gentoo/modules/storageAdmin/etc/Makefile.in 2005-09-21 11:56:57.000000000 +0200 -@@ -64,7 +64,9 @@ - VAR_DIR = ${BASE_DIR}/var - BIN_DIR = ${BASE_DIR}/bin - --USR_DIR = @prefix@ -+prefix = @prefix@ -+ -+USR_DIR = ${prefix} - USR_INCLUDE_DIR = ${USR_DIR}/include - USR_VAR_DIR = ${USR_DIR}/var - -diff -Naur livesupport-1.0/modules/storageServer/etc/Makefile.in livesupport-1.0-gentoo/modules/storageServer/etc/Makefile.in ---- livesupport-1.0/modules/storageServer/etc/Makefile.in 2005-08-16 14:45:00.000000000 +0200 -+++ livesupport-1.0-gentoo/modules/storageServer/etc/Makefile.in 2005-09-21 11:56:57.000000000 +0200 -@@ -64,7 +64,9 @@ - TMP_DIR = ${BASE_DIR}/tmp - VAR_DIR = ${BASE_DIR}/var - --USR_DIR = @prefix@ -+prefix = @prefix@ -+ -+USR_DIR = ${prefix} - USR_INCLUDE_DIR = ${USR_DIR}/include - USR_LIB_DIR = ${USR_DIR}/lib - USR_VAR_DIR = ${USR_DIR}/var -diff -Naur livesupport-1.0/modules/widgets/etc/Makefile.in livesupport-1.0-gentoo/modules/widgets/etc/Makefile.in ---- livesupport-1.0/modules/widgets/etc/Makefile.in 2005-08-08 13:57:53.000000000 +0200 -+++ livesupport-1.0-gentoo/modules/widgets/etc/Makefile.in 2005-09-21 11:56:57.000000000 +0200 -@@ -53,7 +53,9 @@ - TMP_DIR = ${BASE_DIR}/tmp - VAR_DIR = ${BASE_DIR}/var - --USR_DIR = @prefix@ -+prefix = @prefix@ -+ -+USR_DIR = ${prefix} - USR_INCLUDE_DIR = ${USR_DIR}/include - USR_BIN_DIR = ${USR_DIR}/bin - USR_LIB_DIR = ${USR_DIR}/lib -diff -Naur livesupport-1.0/products/gLiveSupport/etc/Makefile.in livesupport-1.0-gentoo/products/gLiveSupport/etc/Makefile.in ---- livesupport-1.0/products/gLiveSupport/etc/Makefile.in 2005-09-21 11:57:29.000000000 +0200 -+++ livesupport-1.0-gentoo/products/gLiveSupport/etc/Makefile.in 2005-09-21 11:56:57.000000000 +0200 -@@ -58,7 +58,9 @@ - REAL_BASE_DIR=$(shell cd ${BASE_DIR}; pwd) - - --USR_DIR = @prefix@ -+prefix = @prefix@ -+ -+USR_DIR = ${prefix} - USR_BIN_DIR = ${USR_DIR}/bin - USR_ETC_DIR = ${USR_DIR}/etc - USR_INCLUDE_DIR = ${USR_DIR}/include -diff -Naur livesupport-1.0/products/scheduler/etc/Makefile.in livesupport-1.0-gentoo/products/scheduler/etc/Makefile.in ---- livesupport-1.0/products/scheduler/etc/Makefile.in 2005-09-21 11:57:29.000000000 +0200 -+++ livesupport-1.0-gentoo/products/scheduler/etc/Makefile.in 2005-09-21 11:56:57.000000000 +0200 -@@ -56,7 +56,9 @@ - REAL_BASE_DIR=$(shell cd ${BASE_DIR}; pwd) - - --USR_DIR = @prefix@ -+prefix = @prefix@ -+ -+USR_DIR = ${prefix} - USR_BIN_DIR = ${USR_DIR}/bin - USR_ETC_DIR = ${USR_DIR}/etc - USR_INCLUDE_DIR = ${USR_DIR}/include diff --git a/etc/portage/media-radio/livesupport/files/setup-install-dirs.patch b/etc/portage/media-radio/livesupport/files/setup-install-dirs.patch deleted file mode 100644 index ce2afead2..000000000 --- a/etc/portage/media-radio/livesupport/files/setup-install-dirs.patch +++ /dev/null @@ -1,40 +0,0 @@ ---- livesupport-1.0/etc/Makefile.in 2005-08-25 13:09:41.000000000 +0200 -+++ livesupport-1.0-gentoo/etc/Makefile.in 2005-09-21 13:26:08.000000000 +0200 -@@ -54,7 +54,10 @@ - - USR_DIR = ${prefix} - USR_BIN_DIR = ${USR_DIR}/bin -+USR_DOC_DIR = ${USR_DIR}/doc - USR_ETC_DIR = ${USR_DIR}/etc -+USR_LIB_DIR = ${USR_DIR}/lib -+USR_VAR_DIR = ${USR_DIR}/var - - HOSTNAME = @HOSTNAME@ - APACHE_GROUP = @APACHE_GROUP@ -@@ -426,9 +430,10 @@ - #------------------------------------------------------------------------------- - # Installation related targets - #------------------------------------------------------------------------------- --.PHONY: install create_database install_modules install_products -+.PHONY: install create_database setup_install_dirs -+.PHONY: install_modules install_products - --install: setup compile create_database install_modules install_products -+install: setup compile setup_install_dirs create_database install_modules install_products - ${MKDIR} ${USR_ETC_DIR}/apache - ${CP} ${ETC_DIR}/apache/*.conf ${USR_ETC_DIR}/apache - ${MKDIR} ${USR_BIN_DIR} -@@ -444,6 +449,13 @@ - --dbpassword=${DB_PASSWORD} - endif - -+setup_install_dirs: -+ ${MKDIR} ${USR_BIN_DIR} -+ ${MKDIR} ${USR_DOC_DIR} -+ ${MKDIR} ${USR_ETC_DIR} -+ ${MKDIR} ${USR_LIB_DIR} -+ ${MKDIR} ${USR_VAR_DIR} -+ - install_modules: - ${MAKE} -C ${ALIB_DIR} install - ${MAKE} -C ${ARCHIVE_SERVER_DIR} install diff --git a/etc/portage/media-radio/livesupport/files/storageServer-docroot.patch b/etc/portage/media-radio/livesupport/files/storageServer-docroot.patch deleted file mode 100644 index 29acba8cb..000000000 --- a/etc/portage/media-radio/livesupport/files/storageServer-docroot.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- livesupport-1.0/etc/Makefile.in 2005-08-25 13:09:41.000000000 +0200 -+++ livesupport-1.0-gentoo/etc/Makefile.in 2005-09-21 13:08:47.000000000 +0200 -@@ -314,6 +314,7 @@ - ./configure --prefix=${prefix} \ - --with-apache-group=${APACHE_GROUP} \ - --with-hostname=${HOSTNAME} \ -+ --with-www-docroot=${WWW_DOCROOT} \ - --with-www-port=${WWW_PORT} \ - --with-scheduler-port=${SCHEDULER_PORT} \ - --with-database-server=${DB_SERVER} \ diff --git a/etc/portage/media-radio/livesupport/files/taglib-curl-icu.patch b/etc/portage/media-radio/livesupport/files/taglib-curl-icu.patch deleted file mode 100644 index a980a38c9..000000000 --- a/etc/portage/media-radio/livesupport/files/taglib-curl-icu.patch +++ /dev/null @@ -1,1240 +0,0 @@ -diff -Naur --exclude=.svn --exclude=tmp --exclude=lib --exclude=Makefile --exclude=var --exclude=doc --exclude=src livesupport/modules/core/etc/acinclude.m4 livesupport-x/modules/core/etc/acinclude.m4 ---- livesupport/modules/core/etc/acinclude.m4 2005-09-20 12:46:39.000000000 +0200 -+++ livesupport-x/modules/core/etc/acinclude.m4 2005-09-19 16:33:28.000000000 +0200 -@@ -91,6 +91,122 @@ - - - dnl----------------------------------------------------------------------------- -+dnl Macro to check for taglib of sufficient version by looking at taglib-config -+dnl -+dnl usage: -+dnl AC_CHECK_TAGLIB(version, action-if, action-not) -+dnl -+dnl defines TAGLIB_LIBS, TAGLIB_CFLAGS, see taglib-config man page -+dnl----------------------------------------------------------------------------- -+AC_DEFUN([AC_CHECK_TAGLIB], [ -+ succeeded=no -+ -+ if test -z "$TAGLIB_CONFIG"; then -+ AC_PATH_PROG(TAGLIB_CONFIG, taglib-config, no) -+ fi -+ -+ if test "$TAGLIB_CONFIG" = "no" ; then -+ echo "*** The taglib-config script could not be found. Make sure it is" -+ echo "*** in your path, and that taglib is properly installed." -+ echo "*** Or see http://developer.kde.org/~wheeler/taglib.html" -+ else -+ TAGLIB_VERSION=`$TAGLIB_CONFIG --version` -+ AC_MSG_CHECKING(for taglib >= $1) -+ VERSION_CHECK=`expr $TAGLIB_VERSION \>\= $1` -+ if test "$VERSION_CHECK" = "1" ; then -+ AC_MSG_RESULT(yes) -+ succeeded=yes -+ -+ AC_MSG_CHECKING(TAGLIB_CFLAGS) -+ TAGLIB_CFLAGS=`$TAGLIB_CONFIG --cflags` -+ AC_MSG_RESULT($TAGLIB_CFLAGS) -+ -+ AC_MSG_CHECKING(TAGLIB_LIBS) -+ TAGLIB_LIBS=`$TAGLIB_CONFIG --libs` -+ AC_MSG_RESULT($TAGLIB_LIBS) -+ else -+ TAGLIB_CFLAGS="" -+ TAGLIB_LIBS="" -+ ## If we have a custom action on failure, don't print errors, but -+ ## do set a variable so people can do so. -+ ifelse([$3], ,echo "can't find taglib >= $1",) -+ fi -+ -+ AC_SUBST(TAGLIB_CFLAGS) -+ AC_SUBST(TAGLIB_LIBS) -+ fi -+ -+ if test $succeeded = yes; then -+ ifelse([$2], , :, [$2]) -+ else -+ ifelse([$3], , AC_MSG_ERROR([Library requirements (taglib) not met.]), [$3]) -+ fi -+]) -+ -+ -+ -+dnl----------------------------------------------------------------------------- -+dnl Macro to check for ICU of sufficient version by looking at icu-config -+dnl -+dnl usage: -+dnl AC_CHECK_ICU(version, action-if, action-not) -+dnl -+dnl defines ICU_LIBS, ICU_CFLAGS, ICU_CXXFLAGS, see icu-config man page -+dnl----------------------------------------------------------------------------- -+AC_DEFUN([AC_CHECK_ICU], [ -+ succeeded=no -+ -+ if test -z "$ICU_CONFIG"; then -+ AC_PATH_PROG(ICU_CONFIG, icu-config, no) -+ fi -+ -+ if test "$ICU_CONFIG" = "no" ; then -+ echo "*** The icu-config script could not be found. Make sure it is" -+ echo "*** in your path, and that taglib is properly installed." -+ echo "*** Or see http://ibm.com/software/globalization/icu/" -+ else -+ ICU_VERSION=`$ICU_CONFIG --version` -+ AC_MSG_CHECKING(for ICU >= $1) -+ VERSION_CHECK=`expr $ICU_VERSION \>\= $1` -+ if test "$VERSION_CHECK" = "1" ; then -+ AC_MSG_RESULT(yes) -+ succeeded=yes -+ -+ AC_MSG_CHECKING(ICU_CFLAGS) -+ ICU_CFLAGS=`$ICU_CONFIG --cflags` -+ AC_MSG_RESULT($ICU_CFLAGS) -+ -+ AC_MSG_CHECKING(ICU_CXXFLAGS) -+ ICU_CXXFLAGS=`$ICU_CONFIG --cxxflags` -+ AC_MSG_RESULT($ICU_CXXFLAGS) -+ -+ AC_MSG_CHECKING(ICU_LIBS) -+ ICU_LIBS=`$ICU_CONFIG --ldflags` -+ AC_MSG_RESULT($ICU_LIBS) -+ else -+ ICU_CFLAGS="" -+ ICU_CXXFLAGS="" -+ ICU_LIBS="" -+ ## If we have a custom action on failure, don't print errors, but -+ ## do set a variable so people can do so. -+ ifelse([$3], ,echo "can't find ICU >= $1",) -+ fi -+ -+ AC_SUBST(ICU_CFLAGS) -+ AC_SUBST(ICU_CXXFLAGS) -+ AC_SUBST(ICU_LIBS) -+ fi -+ -+ if test $succeeded = yes; then -+ ifelse([$2], , :, [$2]) -+ else -+ ifelse([$3], , AC_MSG_ERROR([Library requirements (ICU) not met.]), [$3]) -+ fi -+]) -+ -+ -+ -+dnl----------------------------------------------------------------------------- - dnl Macro to check for C++ namespaces - dnl for more information on this macro, see - dnl http://autoconf-archive.cryp.to/ac_cxx_namespaces.html -diff -Naur --exclude=.svn --exclude=tmp --exclude=lib --exclude=Makefile --exclude=var --exclude=doc --exclude=src livesupport/modules/core/etc/configure.ac livesupport-x/modules/core/etc/configure.ac ---- livesupport/modules/core/etc/configure.ac 2005-09-20 12:46:39.000000000 +0200 -+++ livesupport-x/modules/core/etc/configure.ac 2005-09-19 16:38:06.000000000 +0200 -@@ -76,6 +76,19 @@ - AC_SUBST(LIBXMLPP_CFLAGS) - AC_SUBST(LIBXMLPP_LIBS) - -+AC_CHECK_TAGLIB(1.3.1) -+AC_SUBST(TAGLIB_CFLAGS) -+AC_SUBST(TAGLIB_LIBS) -+ -+AC_CHECK_ICU(3.0) -+AC_SUBST(ICU_CFLAGS) -+AC_SUBST(ICU_CXXFLAGS) -+AC_SUBST(ICU_LIBS) -+ -+AC_PATH_PROG(GENRB, genrb) -+AC_SUBST(GENRB) -+ -+ - dnl----------------------------------------------------------------------------- - dnl enable compilaton for code coverage data - dnl----------------------------------------------------------------------------- -diff -Naur --exclude=.svn --exclude=tmp --exclude=lib --exclude=Makefile --exclude=var --exclude=doc --exclude=src livesupport/modules/core/etc/Makefile.in livesupport-x/modules/core/etc/Makefile.in ---- livesupport/modules/core/etc/Makefile.in 2005-09-20 12:46:39.000000000 +0200 -+++ livesupport-x/modules/core/etc/Makefile.in 2005-09-19 16:38:37.000000000 +0200 -@@ -59,7 +59,7 @@ - USR_LIB_DIR = ${USR_DIR}/lib - BOOST_INCLUDE_DIR = ${USR_INCLUDE_DIR}/boost-1_33_1 - --GENRB = ${USR_BIN_DIR}/genrb -+GENRB = @GENRB@ - GENRBOPTS = --destdir ${TMP_DIR} \ - --encoding utf-8 \ - --package-name ${PACKAGE_NAME} \ -@@ -73,12 +73,12 @@ - LIBXMLPP_CFLAGS=@LIBXMLPP_CFLAGS@ - LIBXMLPP_LIBS=@LIBXMLPP_LIBS@ - --# TODO: move ICU flag determination to configure script --ICU_CFLAGS= --ICU_LIBS=`${USR_DIR}/bin/icu-config --ldflags --ldflags-toolutil --ldflags-icuio` -+ICU_CFLAGS=@ICU_CFLAGS@ -+ICU_CXXFLAGS=@ICU_CXXFLAGS@ -+ICU_LIBS=@ICU_LIBS@ - --TAGLIB_CFLAGS =`${USR_DIR}/bin/taglib-config --cflags` --TAGLIB_LIBS =`${USR_DIR}/bin/taglib-config --libs` -+TAGLIB_CFLAGS=@TAGLIB_CFLAGS@ -+TAGLIB_LIBS=@TAGLIB_LIBS@ - - TEST_RESULTS = ${DOC_DIR}/testResults.xml - # the text result XSLT has to be relative to the test result file, e.g. TMP_DIR -@@ -99,7 +99,6 @@ - CPPFLAGS = @CPPFLAGS@ - CXXFLAGS = @CXXFLAGS@ @DEFS@ @COVERAGE_CXXFLAGS@ -pthread \ - -pedantic -Wall -Wno-long-long \ -- ${ICU_CFLAGS} \ - ${TAGLIB_CFLAGS} \ - ${LIBXMLPP_CFLAGS} \ - -I${USR_INCLUDE_DIR} \ -diff -Naur --exclude=.svn --exclude=tmp --exclude=lib --exclude=Makefile --exclude=var --exclude=doc --exclude=src livesupport/modules/playlistExecutor/etc/acinclude.m4 livesupport-x/modules/playlistExecutor/etc/acinclude.m4 ---- livesupport/modules/playlistExecutor/etc/acinclude.m4 2005-09-20 12:45:15.000000000 +0200 -+++ livesupport-x/modules/playlistExecutor/etc/acinclude.m4 2005-09-19 17:25:54.000000000 +0200 -@@ -91,6 +91,122 @@ - - - dnl----------------------------------------------------------------------------- -+dnl Macro to check for taglib of sufficient version by looking at taglib-config -+dnl -+dnl usage: -+dnl AC_CHECK_TAGLIB(version, action-if, action-not) -+dnl -+dnl defines TAGLIB_LIBS, TAGLIB_CFLAGS, see taglib-config man page -+dnl----------------------------------------------------------------------------- -+AC_DEFUN([AC_CHECK_TAGLIB], [ -+ succeeded=no -+ -+ if test -z "$TAGLIB_CONFIG"; then -+ AC_PATH_PROG(TAGLIB_CONFIG, taglib-config, no) -+ fi -+ -+ if test "$TAGLIB_CONFIG" = "no" ; then -+ echo "*** The taglib-config script could not be found. Make sure it is" -+ echo "*** in your path, and that taglib is properly installed." -+ echo "*** Or see http://developer.kde.org/~wheeler/taglib.html" -+ else -+ TAGLIB_VERSION=`$TAGLIB_CONFIG --version` -+ AC_MSG_CHECKING(for taglib >= $1) -+ VERSION_CHECK=`expr $TAGLIB_VERSION \>\= $1` -+ if test "$VERSION_CHECK" = "1" ; then -+ AC_MSG_RESULT(yes) -+ succeeded=yes -+ -+ AC_MSG_CHECKING(TAGLIB_CFLAGS) -+ TAGLIB_CFLAGS=`$TAGLIB_CONFIG --cflags` -+ AC_MSG_RESULT($TAGLIB_CFLAGS) -+ -+ AC_MSG_CHECKING(TAGLIB_LIBS) -+ TAGLIB_LIBS=`$TAGLIB_CONFIG --libs` -+ AC_MSG_RESULT($TAGLIB_LIBS) -+ else -+ TAGLIB_CFLAGS="" -+ TAGLIB_LIBS="" -+ ## If we have a custom action on failure, don't print errors, but -+ ## do set a variable so people can do so. -+ ifelse([$3], ,echo "can't find taglib >= $1",) -+ fi -+ -+ AC_SUBST(TAGLIB_CFLAGS) -+ AC_SUBST(TAGLIB_LIBS) -+ fi -+ -+ if test $succeeded = yes; then -+ ifelse([$2], , :, [$2]) -+ else -+ ifelse([$3], , AC_MSG_ERROR([Library requirements (taglib) not met.]), [$3]) -+ fi -+]) -+ -+ -+ -+dnl----------------------------------------------------------------------------- -+dnl Macro to check for ICU of sufficient version by looking at icu-config -+dnl -+dnl usage: -+dnl AC_CHECK_ICU(version, action-if, action-not) -+dnl -+dnl defines ICU_LIBS, ICU_CFLAGS, ICU_CXXFLAGS, see icu-config man page -+dnl----------------------------------------------------------------------------- -+AC_DEFUN([AC_CHECK_ICU], [ -+ succeeded=no -+ -+ if test -z "$ICU_CONFIG"; then -+ AC_PATH_PROG(ICU_CONFIG, icu-config, no) -+ fi -+ -+ if test "$ICU_CONFIG" = "no" ; then -+ echo "*** The icu-config script could not be found. Make sure it is" -+ echo "*** in your path, and that taglib is properly installed." -+ echo "*** Or see http://ibm.com/software/globalization/icu/" -+ else -+ ICU_VERSION=`$ICU_CONFIG --version` -+ AC_MSG_CHECKING(for ICU >= $1) -+ VERSION_CHECK=`expr $ICU_VERSION \>\= $1` -+ if test "$VERSION_CHECK" = "1" ; then -+ AC_MSG_RESULT(yes) -+ succeeded=yes -+ -+ AC_MSG_CHECKING(ICU_CFLAGS) -+ ICU_CFLAGS=`$ICU_CONFIG --cflags` -+ AC_MSG_RESULT($ICU_CFLAGS) -+ -+ AC_MSG_CHECKING(ICU_CXXFLAGS) -+ ICU_CXXFLAGS=`$ICU_CONFIG --cxxflags` -+ AC_MSG_RESULT($ICU_CXXFLAGS) -+ -+ AC_MSG_CHECKING(ICU_LIBS) -+ ICU_LIBS=`$ICU_CONFIG --ldflags` -+ AC_MSG_RESULT($ICU_LIBS) -+ else -+ ICU_CFLAGS="" -+ ICU_CXXFLAGS="" -+ ICU_LIBS="" -+ ## If we have a custom action on failure, don't print errors, but -+ ## do set a variable so people can do so. -+ ifelse([$3], ,echo "can't find ICU >= $1",) -+ fi -+ -+ AC_SUBST(ICU_CFLAGS) -+ AC_SUBST(ICU_CXXFLAGS) -+ AC_SUBST(ICU_LIBS) -+ fi -+ -+ if test $succeeded = yes; then -+ ifelse([$2], , :, [$2]) -+ else -+ ifelse([$3], , AC_MSG_ERROR([Library requirements (ICU) not met.]), [$3]) -+ fi -+]) -+ -+ -+ -+dnl----------------------------------------------------------------------------- - dnl Macro to check for C++ namespaces - dnl for more information on this macro, see - dnl http://autoconf-archive.cryp.to/ac_cxx_namespaces.html -diff -Naur --exclude=.svn --exclude=tmp --exclude=lib --exclude=Makefile --exclude=var --exclude=doc --exclude=src livesupport/modules/playlistExecutor/etc/configure.ac livesupport-x/modules/playlistExecutor/etc/configure.ac ---- livesupport/modules/playlistExecutor/etc/configure.ac 2005-09-20 12:45:15.000000000 +0200 -+++ livesupport-x/modules/playlistExecutor/etc/configure.ac 2005-09-19 17:25:35.000000000 +0200 -@@ -74,6 +74,18 @@ - AC_SUBST(GSTREAMER_CFLAGS) - AC_SUBST(GSTREAMER_LIBS) - -+AC_CHECK_TAGLIB(1.3.1) -+AC_SUBST(TAGLIB_CFLAGS) -+AC_SUBST(TAGLIB_LIBS) -+ -+AC_CHECK_ICU(3.0) -+AC_SUBST(ICU_CFLAGS) -+AC_SUBST(ICU_CXXFLAGS) -+AC_SUBST(ICU_LIBS) -+ -+AC_PATH_PROG(GENRB, genrb) -+AC_SUBST(GENRB) -+ - - dnl----------------------------------------------------------------------------- - dnl enable compilaton for code coverage data -diff -Naur --exclude=.svn --exclude=tmp --exclude=lib --exclude=Makefile --exclude=var --exclude=doc --exclude=src livesupport/modules/playlistExecutor/etc/Makefile.in livesupport-x/modules/playlistExecutor/etc/Makefile.in ---- livesupport/modules/playlistExecutor/etc/Makefile.in 2005-09-20 12:45:15.000000000 +0200 -+++ livesupport-x/modules/playlistExecutor/etc/Makefile.in 2005-09-19 17:26:28.000000000 +0200 -@@ -82,13 +82,15 @@ - LIBXMLPP_CFLAGS=@LIBXMLPP_CFLAGS@ - LIBXMLPP_LIBS=@LIBXMLPP_LIBS@ - --# TODO: move ICU flag determination to configure script --ICU_LIBS=`${USR_DIR}/bin/icu-config --ldflags --ldflags-toolutil --ldflags-icuio` -+ICU_CFLAGS=@ICU_CFLAGS@ -+ICU_CXXFLAGS=@ICU_CXXFLAGS@ -+ICU_LIBS=@ICU_LIBS@ - - GSTREAMER_CFLAGS=@GSTREAMER_CFLAGS@ - GSTREAMER_LIBS=@GSTREAMER_LIBS@ - --TAGLIB_LIBS =`${USR_DIR}/bin/taglib-config --libs` -+TAGLIB_CFLAGS=@TAGLIB_CFLAGS@ -+TAGLIB_LIBS=@TAGLIB_LIBS@ - - TEST_RESULTS = ${DOC_DIR}/testResults.xml - # the text result XSLT has to be relative to the test result file, e.g. TMP_DIR -diff -Naur --exclude=.svn --exclude=tmp --exclude=lib --exclude=Makefile --exclude=var --exclude=doc --exclude=src livesupport/modules/schedulerClient/etc/acinclude.m4 livesupport-x/modules/schedulerClient/etc/acinclude.m4 ---- livesupport/modules/schedulerClient/etc/acinclude.m4 2005-09-20 12:46:55.000000000 +0200 -+++ livesupport-x/modules/schedulerClient/etc/acinclude.m4 2005-09-19 17:29:40.000000000 +0200 -@@ -91,6 +91,122 @@ - - - dnl----------------------------------------------------------------------------- -+dnl Macro to check for taglib of sufficient version by looking at taglib-config -+dnl -+dnl usage: -+dnl AC_CHECK_TAGLIB(version, action-if, action-not) -+dnl -+dnl defines TAGLIB_LIBS, TAGLIB_CFLAGS, see taglib-config man page -+dnl----------------------------------------------------------------------------- -+AC_DEFUN([AC_CHECK_TAGLIB], [ -+ succeeded=no -+ -+ if test -z "$TAGLIB_CONFIG"; then -+ AC_PATH_PROG(TAGLIB_CONFIG, taglib-config, no) -+ fi -+ -+ if test "$TAGLIB_CONFIG" = "no" ; then -+ echo "*** The taglib-config script could not be found. Make sure it is" -+ echo "*** in your path, and that taglib is properly installed." -+ echo "*** Or see http://developer.kde.org/~wheeler/taglib.html" -+ else -+ TAGLIB_VERSION=`$TAGLIB_CONFIG --version` -+ AC_MSG_CHECKING(for taglib >= $1) -+ VERSION_CHECK=`expr $TAGLIB_VERSION \>\= $1` -+ if test "$VERSION_CHECK" = "1" ; then -+ AC_MSG_RESULT(yes) -+ succeeded=yes -+ -+ AC_MSG_CHECKING(TAGLIB_CFLAGS) -+ TAGLIB_CFLAGS=`$TAGLIB_CONFIG --cflags` -+ AC_MSG_RESULT($TAGLIB_CFLAGS) -+ -+ AC_MSG_CHECKING(TAGLIB_LIBS) -+ TAGLIB_LIBS=`$TAGLIB_CONFIG --libs` -+ AC_MSG_RESULT($TAGLIB_LIBS) -+ else -+ TAGLIB_CFLAGS="" -+ TAGLIB_LIBS="" -+ ## If we have a custom action on failure, don't print errors, but -+ ## do set a variable so people can do so. -+ ifelse([$3], ,echo "can't find taglib >= $1",) -+ fi -+ -+ AC_SUBST(TAGLIB_CFLAGS) -+ AC_SUBST(TAGLIB_LIBS) -+ fi -+ -+ if test $succeeded = yes; then -+ ifelse([$2], , :, [$2]) -+ else -+ ifelse([$3], , AC_MSG_ERROR([Library requirements (taglib) not met.]), [$3]) -+ fi -+]) -+ -+ -+ -+dnl----------------------------------------------------------------------------- -+dnl Macro to check for ICU of sufficient version by looking at icu-config -+dnl -+dnl usage: -+dnl AC_CHECK_ICU(version, action-if, action-not) -+dnl -+dnl defines ICU_LIBS, ICU_CFLAGS, ICU_CXXFLAGS, see icu-config man page -+dnl----------------------------------------------------------------------------- -+AC_DEFUN([AC_CHECK_ICU], [ -+ succeeded=no -+ -+ if test -z "$ICU_CONFIG"; then -+ AC_PATH_PROG(ICU_CONFIG, icu-config, no) -+ fi -+ -+ if test "$ICU_CONFIG" = "no" ; then -+ echo "*** The icu-config script could not be found. Make sure it is" -+ echo "*** in your path, and that taglib is properly installed." -+ echo "*** Or see http://ibm.com/software/globalization/icu/" -+ else -+ ICU_VERSION=`$ICU_CONFIG --version` -+ AC_MSG_CHECKING(for ICU >= $1) -+ VERSION_CHECK=`expr $ICU_VERSION \>\= $1` -+ if test "$VERSION_CHECK" = "1" ; then -+ AC_MSG_RESULT(yes) -+ succeeded=yes -+ -+ AC_MSG_CHECKING(ICU_CFLAGS) -+ ICU_CFLAGS=`$ICU_CONFIG --cflags` -+ AC_MSG_RESULT($ICU_CFLAGS) -+ -+ AC_MSG_CHECKING(ICU_CXXFLAGS) -+ ICU_CXXFLAGS=`$ICU_CONFIG --cxxflags` -+ AC_MSG_RESULT($ICU_CXXFLAGS) -+ -+ AC_MSG_CHECKING(ICU_LIBS) -+ ICU_LIBS=`$ICU_CONFIG --ldflags` -+ AC_MSG_RESULT($ICU_LIBS) -+ else -+ ICU_CFLAGS="" -+ ICU_CXXFLAGS="" -+ ICU_LIBS="" -+ ## If we have a custom action on failure, don't print errors, but -+ ## do set a variable so people can do so. -+ ifelse([$3], ,echo "can't find ICU >= $1",) -+ fi -+ -+ AC_SUBST(ICU_CFLAGS) -+ AC_SUBST(ICU_CXXFLAGS) -+ AC_SUBST(ICU_LIBS) -+ fi -+ -+ if test $succeeded = yes; then -+ ifelse([$2], , :, [$2]) -+ else -+ ifelse([$3], , AC_MSG_ERROR([Library requirements (ICU) not met.]), [$3]) -+ fi -+]) -+ -+ -+ -+dnl----------------------------------------------------------------------------- - dnl Macro to check for C++ namespaces - dnl for more information on this macro, see - dnl http://autoconf-archive.cryp.to/ac_cxx_namespaces.html -diff -Naur --exclude=.svn --exclude=tmp --exclude=lib --exclude=Makefile --exclude=var --exclude=doc --exclude=src livesupport/modules/schedulerClient/etc/configure.ac livesupport-x/modules/schedulerClient/etc/configure.ac ---- livesupport/modules/schedulerClient/etc/configure.ac 2005-09-20 12:46:55.000000000 +0200 -+++ livesupport-x/modules/schedulerClient/etc/configure.ac 2005-09-19 17:29:24.000000000 +0200 -@@ -70,6 +70,18 @@ - AC_SUBST(LIBXMLPP_CFLAGS) - AC_SUBST(LIBXMLPP_LIBS) - -+AC_CHECK_TAGLIB(1.3.1) -+AC_SUBST(TAGLIB_CFLAGS) -+AC_SUBST(TAGLIB_LIBS) -+ -+AC_CHECK_ICU(3.0) -+AC_SUBST(ICU_CFLAGS) -+AC_SUBST(ICU_CXXFLAGS) -+AC_SUBST(ICU_LIBS) -+ -+AC_PATH_PROG(GENRB, genrb) -+AC_SUBST(GENRB) -+ - - dnl----------------------------------------------------------------------------- - dnl enable compilaton for code coverage data -diff -Naur --exclude=.svn --exclude=tmp --exclude=lib --exclude=Makefile --exclude=var --exclude=doc --exclude=src livesupport/modules/schedulerClient/etc/Makefile.in livesupport-x/modules/schedulerClient/etc/Makefile.in ---- livesupport/modules/schedulerClient/etc/Makefile.in 2005-09-20 12:46:55.000000000 +0200 -+++ livesupport-x/modules/schedulerClient/etc/Makefile.in 2005-09-19 17:29:57.000000000 +0200 -@@ -83,10 +83,12 @@ - LIBXMLPP_CFLAGS=@LIBXMLPP_CFLAGS@ - LIBXMLPP_LIBS=@LIBXMLPP_LIBS@ - --# TODO: move ICU flag determination to configure script --ICU_LIBS=`${USR_DIR}/bin/icu-config --ldflags --ldflags-toolutil --ldflags-icuio` -+ICU_CFLAGS=@ICU_CFLAGS@ -+ICU_CXXFLAGS=@ICU_CXXFLAGS@ -+ICU_LIBS=@ICU_LIBS@ - --TAGLIB_LIBS =`${USR_DIR}/bin/taglib-config --libs` -+TAGLIB_CFLAGS=@TAGLIB_CFLAGS@ -+TAGLIB_LIBS=@TAGLIB_LIBS@ - - TEST_RESULTS = ${DOC_DIR}/testResults.xml - # the text result XSLT has to be relative to the test result file, e.g. TMP_DIR -diff -Naur --exclude=.svn --exclude=tmp --exclude=lib --exclude=Makefile --exclude=var --exclude=doc --exclude=src livesupport/modules/storage/etc/acinclude.m4 livesupport-x/modules/storage/etc/acinclude.m4 ---- livesupport/modules/storage/etc/acinclude.m4 2005-09-20 12:45:42.000000000 +0200 -+++ livesupport-x/modules/storage/etc/acinclude.m4 2005-09-20 12:13:02.000000000 +0200 -@@ -90,3 +90,175 @@ - - - -+dnl----------------------------------------------------------------------------- -+dnl Macro to check for taglib of sufficient version by looking at taglib-config -+dnl -+dnl usage: -+dnl AC_CHECK_TAGLIB(version, action-if, action-not) -+dnl -+dnl defines TAGLIB_LIBS, TAGLIB_CFLAGS, see taglib-config man page -+dnl----------------------------------------------------------------------------- -+AC_DEFUN([AC_CHECK_TAGLIB], [ -+ succeeded=no -+ -+ if test -z "$TAGLIB_CONFIG"; then -+ AC_PATH_PROG(TAGLIB_CONFIG, taglib-config, no) -+ fi -+ -+ if test "$TAGLIB_CONFIG" = "no" ; then -+ echo "*** The taglib-config script could not be found. Make sure it is" -+ echo "*** in your path, and that taglib is properly installed." -+ echo "*** Or see http://developer.kde.org/~wheeler/taglib.html" -+ else -+ TAGLIB_VERSION=`$TAGLIB_CONFIG --version` -+ AC_MSG_CHECKING(for taglib >= $1) -+ VERSION_CHECK=`expr $TAGLIB_VERSION \>\= $1` -+ if test "$VERSION_CHECK" = "1" ; then -+ AC_MSG_RESULT(yes) -+ succeeded=yes -+ -+ AC_MSG_CHECKING(TAGLIB_CFLAGS) -+ TAGLIB_CFLAGS=`$TAGLIB_CONFIG --cflags` -+ AC_MSG_RESULT($TAGLIB_CFLAGS) -+ -+ AC_MSG_CHECKING(TAGLIB_LIBS) -+ TAGLIB_LIBS=`$TAGLIB_CONFIG --libs` -+ AC_MSG_RESULT($TAGLIB_LIBS) -+ else -+ TAGLIB_CFLAGS="" -+ TAGLIB_LIBS="" -+ ## If we have a custom action on failure, don't print errors, but -+ ## do set a variable so people can do so. -+ ifelse([$3], ,echo "can't find taglib >= $1",) -+ fi -+ -+ AC_SUBST(TAGLIB_CFLAGS) -+ AC_SUBST(TAGLIB_LIBS) -+ fi -+ -+ if test $succeeded = yes; then -+ ifelse([$2], , :, [$2]) -+ else -+ ifelse([$3], , AC_MSG_ERROR([Library requirements (taglib) not met.]), [$3]) -+ fi -+]) -+ -+ -+ -+dnl----------------------------------------------------------------------------- -+dnl Macro to check for ICU of sufficient version by looking at icu-config -+dnl -+dnl usage: -+dnl AC_CHECK_ICU(version, action-if, action-not) -+dnl -+dnl defines ICU_LIBS, ICU_CFLAGS, ICU_CXXFLAGS, see icu-config man page -+dnl----------------------------------------------------------------------------- -+AC_DEFUN([AC_CHECK_ICU], [ -+ succeeded=no -+ -+ if test -z "$ICU_CONFIG"; then -+ AC_PATH_PROG(ICU_CONFIG, icu-config, no) -+ fi -+ -+ if test "$ICU_CONFIG" = "no" ; then -+ echo "*** The icu-config script could not be found. Make sure it is" -+ echo "*** in your path, and that taglib is properly installed." -+ echo "*** Or see http://ibm.com/software/globalization/icu/" -+ else -+ ICU_VERSION=`$ICU_CONFIG --version` -+ AC_MSG_CHECKING(for ICU >= $1) -+ VERSION_CHECK=`expr $ICU_VERSION \>\= $1` -+ if test "$VERSION_CHECK" = "1" ; then -+ AC_MSG_RESULT(yes) -+ succeeded=yes -+ -+ AC_MSG_CHECKING(ICU_CFLAGS) -+ ICU_CFLAGS=`$ICU_CONFIG --cflags` -+ AC_MSG_RESULT($ICU_CFLAGS) -+ -+ AC_MSG_CHECKING(ICU_CXXFLAGS) -+ ICU_CXXFLAGS=`$ICU_CONFIG --cxxflags` -+ AC_MSG_RESULT($ICU_CXXFLAGS) -+ -+ AC_MSG_CHECKING(ICU_LIBS) -+ ICU_LIBS=`$ICU_CONFIG --ldflags` -+ AC_MSG_RESULT($ICU_LIBS) -+ else -+ ICU_CFLAGS="" -+ ICU_CXXFLAGS="" -+ ICU_LIBS="" -+ ## If we have a custom action on failure, don't print errors, but -+ ## do set a variable so people can do so. -+ ifelse([$3], ,echo "can't find ICU >= $1",) -+ fi -+ -+ AC_SUBST(ICU_CFLAGS) -+ AC_SUBST(ICU_CXXFLAGS) -+ AC_SUBST(ICU_LIBS) -+ fi -+ -+ if test $succeeded = yes; then -+ ifelse([$2], , :, [$2]) -+ else -+ ifelse([$3], , AC_MSG_ERROR([Library requirements (ICU) not met.]), [$3]) -+ fi -+]) -+ -+ -+ -+dnl----------------------------------------------------------------------------- -+dnl Macro to check for curl of sufficient version by looking at curl-config -+dnl -+dnl usage: -+dnl AC_CHECK_CURL(version, action-if, action-not) -+dnl -+dnl defines CURL_LIBS, CURL_CFLAGS, see curl-config man page -+dnl----------------------------------------------------------------------------- -+AC_DEFUN([AC_CHECK_CURL], [ -+ succeeded=no -+ -+ if test -z "$CURL_CONFIG"; then -+ AC_PATH_PROG(CURL_CONFIG, curl-config, no) -+ fi -+ -+ if test "$CURL_CONFIG" = "no" ; then -+ echo "*** The curl-config script could not be found. Make sure it is" -+ echo "*** in your path, and that curl is properly installed." -+ echo "*** Or see http://curl.haxx.se/" -+ else -+ dnl curl-config --version returns "libcurl ", thus cut the number -+ CURL_VERSION=`$CURL_CONFIG --version | cut -d" " -f2` -+ AC_MSG_CHECKING(for curl >= $1) -+ VERSION_CHECK=`expr $CURL_VERSION \>\= $1` -+ if test "$VERSION_CHECK" = "1" ; then -+ AC_MSG_RESULT(yes) -+ succeeded=yes -+ -+ AC_MSG_CHECKING(CURL_CFLAGS) -+ CURL_CFLAGS=`$CURL_CONFIG --cflags` -+ AC_MSG_RESULT($CURL_CFLAGS) -+ -+ AC_MSG_CHECKING(CURL_LIBS) -+ CURL_LIBS=`$CURL_CONFIG --libs` -+ AC_MSG_RESULT($CURL_LIBS) -+ else -+ CURL_CFLAGS="" -+ CURL_LIBS="" -+ ## If we have a custom action on failure, don't print errors, but -+ ## do set a variable so people can do so. -+ ifelse([$3], ,echo "can't find curl >= $1",) -+ fi -+ -+ AC_SUBST(CURL_CFLAGS) -+ AC_SUBST(CURL_LIBS) -+ fi -+ -+ if test $succeeded = yes; then -+ ifelse([$2], , :, [$2]) -+ else -+ ifelse([$3], , AC_MSG_ERROR([Library requirements (curl) not met.]), [$3]) -+ fi -+]) -+ -+ -+ -diff -Naur --exclude=.svn --exclude=tmp --exclude=lib --exclude=Makefile --exclude=var --exclude=doc --exclude=src livesupport/modules/storage/etc/configure.ac livesupport-x/modules/storage/etc/configure.ac ---- livesupport/modules/storage/etc/configure.ac 2005-09-20 12:45:42.000000000 +0200 -+++ livesupport-x/modules/storage/etc/configure.ac 2005-09-20 12:12:42.000000000 +0200 -@@ -62,6 +62,22 @@ - AC_SUBST(LIBXMLPP_CFLAGS) - AC_SUBST(LIBXMLPP_LIBS) - -+AC_CHECK_CURL(7.13.0) -+AC_SUBST(CURL_CFLAGS) -+AC_SUBST(CURL_LIBS) -+ -+AC_CHECK_TAGLIB(1.3.1) -+AC_SUBST(TAGLIB_CFLAGS) -+AC_SUBST(TAGLIB_LIBS) -+ -+AC_CHECK_ICU(3.0) -+AC_SUBST(ICU_CFLAGS) -+AC_SUBST(ICU_CXXFLAGS) -+AC_SUBST(ICU_LIBS) -+ -+AC_PATH_PROG(GENRB, genrb) -+AC_SUBST(GENRB) -+ - - dnl----------------------------------------------------------------------------- - dnl enable compilaton for code coverage data -diff -Naur --exclude=.svn --exclude=tmp --exclude=lib --exclude=Makefile --exclude=var --exclude=doc --exclude=src livesupport/modules/storage/etc/Makefile.in livesupport-x/modules/storage/etc/Makefile.in ---- livesupport/modules/storage/etc/Makefile.in 2005-09-20 12:45:42.000000000 +0200 -+++ livesupport-x/modules/storage/etc/Makefile.in 2005-09-20 12:13:25.000000000 +0200 -@@ -74,12 +74,15 @@ - LIBXMLPP_CFLAGS=@LIBXMLPP_CFLAGS@ - LIBXMLPP_LIBS=@LIBXMLPP_LIBS@ - --# TODO: move ICU flag determination to configure script --ICU_LIBS=`${USR_DIR}/bin/icu-config --ldflags --ldflags-toolutil --ldflags-icuio` -+CURL_CFLAGS=@CURL_CFLAGS@ -+CURL_LIBS=@CURL_LIBS@ - --CURL_LIBS=`${USR_DIR}/bin/curl-config --libs` -+ICU_CFLAGS=@ICU_CFLAGS@ -+ICU_CXXFLAGS=@ICU_CXXFLAGS@ -+ICU_LIBS=@ICU_LIBS@ - --TAGLIB_LIBS =`${USR_DIR}/bin/taglib-config --libs` -+TAGLIB_CFLAGS=@TAGLIB_CFLAGS@ -+TAGLIB_LIBS=@TAGLIB_LIBS@ - - TEST_RESULTS = ${DOC_DIR}/testResults.xml - # the text result XSLT has to be relative to the test result file, e.g. TMP_DIR -diff -Naur --exclude=.svn --exclude=tmp --exclude=lib --exclude=Makefile --exclude=var --exclude=doc --exclude=src livesupport/products/gLiveSupport/etc/acinclude.m4 livesupport-x/products/gLiveSupport/etc/acinclude.m4 ---- livesupport/products/gLiveSupport/etc/acinclude.m4 2005-09-20 12:43:07.000000000 +0200 -+++ livesupport-x/products/gLiveSupport/etc/acinclude.m4 2005-09-20 11:56:35.000000000 +0200 -@@ -91,6 +91,178 @@ - - - dnl----------------------------------------------------------------------------- -+dnl Macro to check for taglib of sufficient version by looking at taglib-config -+dnl -+dnl usage: -+dnl AC_CHECK_TAGLIB(version, action-if, action-not) -+dnl -+dnl defines TAGLIB_LIBS, TAGLIB_CFLAGS, see taglib-config man page -+dnl----------------------------------------------------------------------------- -+AC_DEFUN([AC_CHECK_TAGLIB], [ -+ succeeded=no -+ -+ if test -z "$TAGLIB_CONFIG"; then -+ AC_PATH_PROG(TAGLIB_CONFIG, taglib-config, no) -+ fi -+ -+ if test "$TAGLIB_CONFIG" = "no" ; then -+ echo "*** The taglib-config script could not be found. Make sure it is" -+ echo "*** in your path, and that taglib is properly installed." -+ echo "*** Or see http://developer.kde.org/~wheeler/taglib.html" -+ else -+ TAGLIB_VERSION=`$TAGLIB_CONFIG --version` -+ AC_MSG_CHECKING(for taglib >= $1) -+ VERSION_CHECK=`expr $TAGLIB_VERSION \>\= $1` -+ if test "$VERSION_CHECK" = "1" ; then -+ AC_MSG_RESULT(yes) -+ succeeded=yes -+ -+ AC_MSG_CHECKING(TAGLIB_CFLAGS) -+ TAGLIB_CFLAGS=`$TAGLIB_CONFIG --cflags` -+ AC_MSG_RESULT($TAGLIB_CFLAGS) -+ -+ AC_MSG_CHECKING(TAGLIB_LIBS) -+ TAGLIB_LIBS=`$TAGLIB_CONFIG --libs` -+ AC_MSG_RESULT($TAGLIB_LIBS) -+ else -+ TAGLIB_CFLAGS="" -+ TAGLIB_LIBS="" -+ ## If we have a custom action on failure, don't print errors, but -+ ## do set a variable so people can do so. -+ ifelse([$3], ,echo "can't find taglib >= $1",) -+ fi -+ -+ AC_SUBST(TAGLIB_CFLAGS) -+ AC_SUBST(TAGLIB_LIBS) -+ fi -+ -+ if test $succeeded = yes; then -+ ifelse([$2], , :, [$2]) -+ else -+ ifelse([$3], , AC_MSG_ERROR([Library requirements (taglib) not met.]), [$3]) -+ fi -+]) -+ -+ -+ -+dnl----------------------------------------------------------------------------- -+dnl Macro to check for ICU of sufficient version by looking at icu-config -+dnl -+dnl usage: -+dnl AC_CHECK_ICU(version, action-if, action-not) -+dnl -+dnl defines ICU_LIBS, ICU_CFLAGS, ICU_CXXFLAGS, see icu-config man page -+dnl----------------------------------------------------------------------------- -+AC_DEFUN([AC_CHECK_ICU], [ -+ succeeded=no -+ -+ if test -z "$ICU_CONFIG"; then -+ AC_PATH_PROG(ICU_CONFIG, icu-config, no) -+ fi -+ -+ if test "$ICU_CONFIG" = "no" ; then -+ echo "*** The icu-config script could not be found. Make sure it is" -+ echo "*** in your path, and that taglib is properly installed." -+ echo "*** Or see http://ibm.com/software/globalization/icu/" -+ else -+ ICU_VERSION=`$ICU_CONFIG --version` -+ AC_MSG_CHECKING(for ICU >= $1) -+ VERSION_CHECK=`expr $ICU_VERSION \>\= $1` -+ if test "$VERSION_CHECK" = "1" ; then -+ AC_MSG_RESULT(yes) -+ succeeded=yes -+ -+ AC_MSG_CHECKING(ICU_CFLAGS) -+ ICU_CFLAGS=`$ICU_CONFIG --cflags` -+ AC_MSG_RESULT($ICU_CFLAGS) -+ -+ AC_MSG_CHECKING(ICU_CXXFLAGS) -+ ICU_CXXFLAGS=`$ICU_CONFIG --cxxflags` -+ AC_MSG_RESULT($ICU_CXXFLAGS) -+ -+ AC_MSG_CHECKING(ICU_LIBS) -+ ICU_LIBS=`$ICU_CONFIG --ldflags` -+ AC_MSG_RESULT($ICU_LIBS) -+ else -+ ICU_CFLAGS="" -+ ICU_CXXFLAGS="" -+ ICU_LIBS="" -+ ## If we have a custom action on failure, don't print errors, but -+ ## do set a variable so people can do so. -+ ifelse([$3], ,echo "can't find ICU >= $1",) -+ fi -+ -+ AC_SUBST(ICU_CFLAGS) -+ AC_SUBST(ICU_CXXFLAGS) -+ AC_SUBST(ICU_LIBS) -+ fi -+ -+ if test $succeeded = yes; then -+ ifelse([$2], , :, [$2]) -+ else -+ ifelse([$3], , AC_MSG_ERROR([Library requirements (ICU) not met.]), [$3]) -+ fi -+]) -+ -+ -+ -+dnl----------------------------------------------------------------------------- -+dnl Macro to check for curl of sufficient version by looking at curl-config -+dnl -+dnl usage: -+dnl AC_CHECK_CURL(version, action-if, action-not) -+dnl -+dnl defines CURL_LIBS, CURL_CFLAGS, see curl-config man page -+dnl----------------------------------------------------------------------------- -+AC_DEFUN([AC_CHECK_CURL], [ -+ succeeded=no -+ -+ if test -z "$CURL_CONFIG"; then -+ AC_PATH_PROG(CURL_CONFIG, curl-config, no) -+ fi -+ -+ if test "$CURL_CONFIG" = "no" ; then -+ echo "*** The curl-config script could not be found. Make sure it is" -+ echo "*** in your path, and that curl is properly installed." -+ echo "*** Or see http://curl.haxx.se/" -+ else -+ dnl curl-config --version returns "libcurl ", thus cut the number -+ CURL_VERSION=`$CURL_CONFIG --version | cut -d" " -f2` -+ AC_MSG_CHECKING(for curl >= $1) -+ VERSION_CHECK=`expr $CURL_VERSION \>\= $1` -+ if test "$VERSION_CHECK" = "1" ; then -+ AC_MSG_RESULT(yes) -+ succeeded=yes -+ -+ AC_MSG_CHECKING(CURL_CFLAGS) -+ CURL_CFLAGS=`$CURL_CONFIG --cflags` -+ AC_MSG_RESULT($CURL_CFLAGS) -+ -+ AC_MSG_CHECKING(CURL_LIBS) -+ CURL_LIBS=`$CURL_CONFIG --libs` -+ AC_MSG_RESULT($CURL_LIBS) -+ else -+ CURL_CFLAGS="" -+ CURL_LIBS="" -+ ## If we have a custom action on failure, don't print errors, but -+ ## do set a variable so people can do so. -+ ifelse([$3], ,echo "can't find curl >= $1",) -+ fi -+ -+ AC_SUBST(CURL_CFLAGS) -+ AC_SUBST(CURL_LIBS) -+ fi -+ -+ if test $succeeded = yes; then -+ ifelse([$2], , :, [$2]) -+ else -+ ifelse([$3], , AC_MSG_ERROR([Library requirements (curl) not met.]), [$3]) -+ fi -+]) -+ -+ -+ -+dnl----------------------------------------------------------------------------- - dnl Macro to check for C++ namespaces - dnl for more information on this macro, see - dnl http://autoconf-archive.cryp.to/ac_cxx_namespaces.html -diff -Naur --exclude=.svn --exclude=tmp --exclude=lib --exclude=Makefile --exclude=var --exclude=doc --exclude=src livesupport/products/gLiveSupport/etc/configure.ac livesupport-x/products/gLiveSupport/etc/configure.ac ---- livesupport/products/gLiveSupport/etc/configure.ac 2005-09-20 12:43:07.000000000 +0200 -+++ livesupport-x/products/gLiveSupport/etc/configure.ac 2005-09-20 11:56:15.000000000 +0200 -@@ -78,6 +78,22 @@ - AC_SUBST(GSTREAMER_CFLAGS) - AC_SUBST(GSTREAMER_LIBS) - -+AC_CHECK_CURL(7.13.0) -+AC_SUBST(CURL_CFLAGS) -+AC_SUBST(CURL_LIBS) -+ -+AC_CHECK_TAGLIB(1.3.1) -+AC_SUBST(TAGLIB_CFLAGS) -+AC_SUBST(TAGLIB_LIBS) -+ -+AC_CHECK_ICU(3.0) -+AC_SUBST(ICU_CFLAGS) -+AC_SUBST(ICU_CXXFLAGS) -+AC_SUBST(ICU_LIBS) -+ -+AC_PATH_PROG(GENRB, genrb) -+AC_SUBST(GENRB) -+ - - dnl----------------------------------------------------------------------------- - dnl enable compilaton for code coverage data -diff -Naur --exclude=.svn --exclude=tmp --exclude=lib --exclude=Makefile --exclude=var --exclude=doc --exclude=src livesupport/products/gLiveSupport/etc/Makefile.in livesupport-x/products/gLiveSupport/etc/Makefile.in ---- livesupport/products/gLiveSupport/etc/Makefile.in 2005-09-20 12:43:07.000000000 +0200 -+++ livesupport-x/products/gLiveSupport/etc/Makefile.in 2005-09-20 11:56:49.000000000 +0200 -@@ -103,7 +103,7 @@ - s/ls_scheduler_xmlRpcPrefix/${SCHEDULER_XML_RPC_PREFIX}/;" - - --GENRB = ${USR_BIN_DIR}/genrb -+GENRB = @GENRB@ - GENRBOPTS = --destdir ${TMP_DIR} \ - --encoding utf-8 \ - --package-name ${PACKAGE_NAME} \ -@@ -168,7 +168,8 @@ - LIBXMLPP_CFLAGS=@LIBXMLPP_CFLAGS@ - LIBXMLPP_LIBS=@LIBXMLPP_LIBS@ - --CURL_LIBS=`${USR_DIR}/bin/curl-config --libs` -+CURL_CFLAGS=@CURL_CFLAGS@ -+CURL_LIBS=@CURL_LIBS@ - - GTKMM_CFLAGS=@GTKMM_CFLAGS@ - GTKMM_LIBS=@GTKMM_LIBS@ -@@ -176,11 +177,12 @@ - GSTREAMER_CFLAGS=@GSTREAMER_CFLAGS@ - GSTREAMER_LIBS=@GSTREAMER_LIBS@ - --ICU_CFLAGS= --ICU_LIBS=`${USR_DIR}/bin/icu-config --ldflags-toolutil --ldflags-icuio` -+ICU_CFLAGS=@ICU_CFLAGS@ -+ICU_CXXFLAGS=@ICU_CXXFLAGS@ -+ICU_LIBS=@ICU_LIBS@ - --TAGLIB_CFLAGS=`${USR_DIR}/bin/taglib-config --cflags` --TAGLIB_LIBS=`${USR_DIR}/bin/taglib-config --libs` -+TAGLIB_CFLAGS=@TAGLIB_CFLAGS@ -+TAGLIB_LIBS=@TAGLIB_LIBS@ - - TEST_RESULTS = ${DOC_DIR}/testResults.xml - # the text result XSLT has to be relative to the test result file, e.g. TMP_DIR -@@ -203,7 +205,6 @@ - CPPFLAGS = @CPPFLAGS@ - CXXFLAGS = @CXXFLAGS@ @DEFS@ @COVERAGE_CXXFLAGS@ -pthread \ - -pedantic -Wall -Wno-long-long \ -- ${ICU_CFLAGS} \ - ${TAGLIB_CFLAGS} \ - ${LIBXMLPP_CFLAGS} \ - ${GTKMM_CFLAGS} \ - -diff -Naur --exclude=.svn --exclude=tmp --exclude=lib --exclude=Makefile --exclude=var --exclude=doc --exclude=src livesupport/products/scheduler/etc/acinclude.m4 livesupport-x/products/scheduler/etc/acinclude.m4 ---- livesupport/products/scheduler/etc/acinclude.m4 2005-09-20 12:43:27.000000000 +0200 -+++ livesupport-x/products/scheduler/etc/acinclude.m4 2005-09-19 17:45:40.000000000 +0200 -@@ -91,6 +91,178 @@ - - - dnl----------------------------------------------------------------------------- -+dnl Macro to check for taglib of sufficient version by looking at taglib-config -+dnl -+dnl usage: -+dnl AC_CHECK_TAGLIB(version, action-if, action-not) -+dnl -+dnl defines TAGLIB_LIBS, TAGLIB_CFLAGS, see taglib-config man page -+dnl----------------------------------------------------------------------------- -+AC_DEFUN([AC_CHECK_TAGLIB], [ -+ succeeded=no -+ -+ if test -z "$TAGLIB_CONFIG"; then -+ AC_PATH_PROG(TAGLIB_CONFIG, taglib-config, no) -+ fi -+ -+ if test "$TAGLIB_CONFIG" = "no" ; then -+ echo "*** The taglib-config script could not be found. Make sure it is" -+ echo "*** in your path, and that taglib is properly installed." -+ echo "*** Or see http://developer.kde.org/~wheeler/taglib.html" -+ else -+ TAGLIB_VERSION=`$TAGLIB_CONFIG --version` -+ AC_MSG_CHECKING(for taglib >= $1) -+ VERSION_CHECK=`expr $TAGLIB_VERSION \>\= $1` -+ if test "$VERSION_CHECK" = "1" ; then -+ AC_MSG_RESULT(yes) -+ succeeded=yes -+ -+ AC_MSG_CHECKING(TAGLIB_CFLAGS) -+ TAGLIB_CFLAGS=`$TAGLIB_CONFIG --cflags` -+ AC_MSG_RESULT($TAGLIB_CFLAGS) -+ -+ AC_MSG_CHECKING(TAGLIB_LIBS) -+ TAGLIB_LIBS=`$TAGLIB_CONFIG --libs` -+ AC_MSG_RESULT($TAGLIB_LIBS) -+ else -+ TAGLIB_CFLAGS="" -+ TAGLIB_LIBS="" -+ ## If we have a custom action on failure, don't print errors, but -+ ## do set a variable so people can do so. -+ ifelse([$3], ,echo "can't find taglib >= $1",) -+ fi -+ -+ AC_SUBST(TAGLIB_CFLAGS) -+ AC_SUBST(TAGLIB_LIBS) -+ fi -+ -+ if test $succeeded = yes; then -+ ifelse([$2], , :, [$2]) -+ else -+ ifelse([$3], , AC_MSG_ERROR([Library requirements (taglib) not met.]), [$3]) -+ fi -+]) -+ -+ -+ -+dnl----------------------------------------------------------------------------- -+dnl Macro to check for ICU of sufficient version by looking at icu-config -+dnl -+dnl usage: -+dnl AC_CHECK_ICU(version, action-if, action-not) -+dnl -+dnl defines ICU_LIBS, ICU_CFLAGS, ICU_CXXFLAGS, see icu-config man page -+dnl----------------------------------------------------------------------------- -+AC_DEFUN([AC_CHECK_ICU], [ -+ succeeded=no -+ -+ if test -z "$ICU_CONFIG"; then -+ AC_PATH_PROG(ICU_CONFIG, icu-config, no) -+ fi -+ -+ if test "$ICU_CONFIG" = "no" ; then -+ echo "*** The icu-config script could not be found. Make sure it is" -+ echo "*** in your path, and that taglib is properly installed." -+ echo "*** Or see http://ibm.com/software/globalization/icu/" -+ else -+ ICU_VERSION=`$ICU_CONFIG --version` -+ AC_MSG_CHECKING(for ICU >= $1) -+ VERSION_CHECK=`expr $ICU_VERSION \>\= $1` -+ if test "$VERSION_CHECK" = "1" ; then -+ AC_MSG_RESULT(yes) -+ succeeded=yes -+ -+ AC_MSG_CHECKING(ICU_CFLAGS) -+ ICU_CFLAGS=`$ICU_CONFIG --cflags` -+ AC_MSG_RESULT($ICU_CFLAGS) -+ -+ AC_MSG_CHECKING(ICU_CXXFLAGS) -+ ICU_CXXFLAGS=`$ICU_CONFIG --cxxflags` -+ AC_MSG_RESULT($ICU_CXXFLAGS) -+ -+ AC_MSG_CHECKING(ICU_LIBS) -+ ICU_LIBS=`$ICU_CONFIG --ldflags` -+ AC_MSG_RESULT($ICU_LIBS) -+ else -+ ICU_CFLAGS="" -+ ICU_CXXFLAGS="" -+ ICU_LIBS="" -+ ## If we have a custom action on failure, don't print errors, but -+ ## do set a variable so people can do so. -+ ifelse([$3], ,echo "can't find ICU >= $1",) -+ fi -+ -+ AC_SUBST(ICU_CFLAGS) -+ AC_SUBST(ICU_CXXFLAGS) -+ AC_SUBST(ICU_LIBS) -+ fi -+ -+ if test $succeeded = yes; then -+ ifelse([$2], , :, [$2]) -+ else -+ ifelse([$3], , AC_MSG_ERROR([Library requirements (ICU) not met.]), [$3]) -+ fi -+]) -+ -+ -+ -+dnl----------------------------------------------------------------------------- -+dnl Macro to check for curl of sufficient version by looking at curl-config -+dnl -+dnl usage: -+dnl AC_CHECK_CURL(version, action-if, action-not) -+dnl -+dnl defines CURL_LIBS, CURL_CFLAGS, see curl-config man page -+dnl----------------------------------------------------------------------------- -+AC_DEFUN([AC_CHECK_CURL], [ -+ succeeded=no -+ -+ if test -z "$CURL_CONFIG"; then -+ AC_PATH_PROG(CURL_CONFIG, curl-config, no) -+ fi -+ -+ if test "$CURL_CONFIG" = "no" ; then -+ echo "*** The curl-config script could not be found. Make sure it is" -+ echo "*** in your path, and that curl is properly installed." -+ echo "*** Or see http://curl.haxx.se/" -+ else -+ dnl curl-config --version returns "libcurl ", thus cut the number -+ CURL_VERSION=`$CURL_CONFIG --version | cut -d" " -f2` -+ AC_MSG_CHECKING(for curl >= $1) -+ VERSION_CHECK=`expr $CURL_VERSION \>\= $1` -+ if test "$VERSION_CHECK" = "1" ; then -+ AC_MSG_RESULT(yes) -+ succeeded=yes -+ -+ AC_MSG_CHECKING(CURL_CFLAGS) -+ CURL_CFLAGS=`$CURL_CONFIG --cflags` -+ AC_MSG_RESULT($CURL_CFLAGS) -+ -+ AC_MSG_CHECKING(CURL_LIBS) -+ CURL_LIBS=`$CURL_CONFIG --libs` -+ AC_MSG_RESULT($CURL_LIBS) -+ else -+ CURL_CFLAGS="" -+ CURL_LIBS="" -+ ## If we have a custom action on failure, don't print errors, but -+ ## do set a variable so people can do so. -+ ifelse([$3], ,echo "can't find curl >= $1",) -+ fi -+ -+ AC_SUBST(CURL_CFLAGS) -+ AC_SUBST(CURL_LIBS) -+ fi -+ -+ if test $succeeded = yes; then -+ ifelse([$2], , :, [$2]) -+ else -+ ifelse([$3], , AC_MSG_ERROR([Library requirements (curl) not met.]), [$3]) -+ fi -+]) -+ -+ -+ -+dnl----------------------------------------------------------------------------- - dnl Macro to check for C++ namespaces - dnl for more information on this macro, see - dnl http://autoconf-archive.cryp.to/ac_cxx_namespaces.html -diff -Naur --exclude=.svn --exclude=tmp --exclude=lib --exclude=Makefile --exclude=var --exclude=doc --exclude=src livesupport/products/scheduler/etc/configure.ac livesupport-x/products/scheduler/etc/configure.ac ---- livesupport/products/scheduler/etc/configure.ac 2005-09-20 12:43:27.000000000 +0200 -+++ livesupport-x/products/scheduler/etc/configure.ac 2005-09-19 17:37:57.000000000 +0200 -@@ -77,6 +77,22 @@ - AC_SUBST(GSTREAMER_CFLAGS) - AC_SUBST(GSTREAMER_LIBS) - -+AC_CHECK_CURL(7.13.0) -+AC_SUBST(CURL_CFLAGS) -+AC_SUBST(CURL_LIBS) -+ -+AC_CHECK_TAGLIB(1.3.1) -+AC_SUBST(TAGLIB_CFLAGS) -+AC_SUBST(TAGLIB_LIBS) -+ -+AC_CHECK_ICU(3.0) -+AC_SUBST(ICU_CFLAGS) -+AC_SUBST(ICU_CXXFLAGS) -+AC_SUBST(ICU_LIBS) -+ -+AC_PATH_PROG(GENRB, genrb) -+AC_SUBST(GENRB) -+ - - dnl----------------------------------------------------------------------------- - dnl enable compilaton for code coverage data -diff -Naur --exclude=.svn --exclude=tmp --exclude=lib --exclude=Makefile --exclude=var --exclude=doc --exclude=src livesupport/products/scheduler/etc/Makefile.in livesupport-x/products/scheduler/etc/Makefile.in ---- livesupport/products/scheduler/etc/Makefile.in 2005-09-20 12:43:27.000000000 +0200 -+++ livesupport-x/products/scheduler/etc/Makefile.in 2005-09-19 17:37:01.000000000 +0200 -@@ -113,13 +113,15 @@ - GSTREAMER_LIBS=@GSTREAMER_LIBS@ - - --CURL_LIBS=`${USR_DIR}/bin/curl-config --libs` -+CURL_CFLAGS=@CURL_CFLAGS@ -+CURL_LIBS=@CURL_LIBS@ - --# TODO: move ICU flag determination to configure script --ICU_LIBS=`${USR_DIR}/bin/icu-config --ldflags --ldflags-toolutil --ldflags-icuio` -+ICU_CFLAGS=@ICU_CFLAGS@ -+ICU_CXXFLAGS=@ICU_CXXFLAGS@ -+ICU_LIBS=@ICU_LIBS@ - --TAGLIB_CFLAGS =`${USR_DIR}/bin/taglib-config --cflags` --TAGLIB_LIBS =`${USR_DIR}/bin/taglib-config --libs` -+TAGLIB_CFLAGS=@TAGLIB_CFLAGS@ -+TAGLIB_LIBS=@TAGLIB_LIBS@ - - MODULES_DIR = ${BASE_DIR}/../../modules - diff --git a/etc/portage/media-radio/livesupport/livesupport-1.0.ebuild b/etc/portage/media-radio/livesupport/livesupport-1.0.ebuild deleted file mode 100644 index cc817750e..000000000 --- a/etc/portage/media-radio/livesupport/livesupport-1.0.ebuild +++ /dev/null @@ -1,101 +0,0 @@ -# Copyright 1999-2005 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header$ - -inherit eutils flag-o-matic - -IUSE="" - -DESCRIPTION="Campcaster is a radio broadcast support tool." -HOMEPAGE="http://campcaster.sourcefabric.org/" -SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~ppc ~sparc ~x86" - -RESTRICT="maketest" - -DEPEND=">=dev-db/unixODBC-2.2 - media-libs/fontconfig - >=media-libs/libpng-1.2 - media-libs/jpeg - dev-libs/openssl - dev-libs/libxml2 - dev-libs/popt - media-libs/alsa-lib - media-libs/libid3tag - media-libs/libmad - media-libs/libogg - media-libs/libvorbis - >=dev-libs/boost-0.31 - sys-apps/sed - net-www/apache - dev-lang/php - >=dev-php/PEAR-PEAR-1.3.5 - >=dev-php/PEAR-Archive_Tar-1.3.1 - >=dev-php/PEAR-Calendar-0.5.2 - >=dev-php/PEAR-Console_Getopt-1.2 - >=dev-php/PEAR-DB-1.7.6 - >=dev-php/PEAR-File-1.2.0 - >=dev-php/PEAR-File_Find-0.3.1 - >=dev-php/PEAR-HTML_Common-1.2.1-r1 - >=dev-php/PEAR-HTML_QuickForm-3.2.4 - >=dev-php/PEAR-XML_Beautifier-1.1 - >=dev-php/PEAR-XML_Parser-1.2.6 - >=dev-php/PEAR-XML_RPC-1.4.0 - >=dev-php/PEAR-XML_Serializer-0.15 - >=dev-php/PEAR-XML_Util-1.1.1 - >=dev-db/postgresql-7.4 - >=x11-libs/gtk+-2.6.1 - >=dev-cpp/gtkmm-2.5.5 - >=net-misc/curl-7.13.2 - >=dev-cpp/libxmlpp-2.8.1 - =dev-db/libodbc++-0.2.3-r2 - =dev-libs/xmlrpc++-0.7 - =media-libs/taglib-1.3.1-r3 - -src_unpack() { - unpack ${A} - cd ${S} - - # these patches are committed to the source as of 2005-09-23 - epatch ${FILESDIR}/taglib-curl-icu.patch - epatch ${FILESDIR}/prefix-as-make-variable.patch - epatch ${FILESDIR}/storageServer-docroot.patch - epatch ${FILESDIR}/setup-install-dirs.patch - epatch ${FILESDIR}/pg_hba.patch - # this patch not committed - epatch ${FILESDIR}/postinstall-config-file.patch - - # toch the tools make stamp, so that tools don't get built - touch tmp/tools_setup.stamp -} - -src_compile() { - # append -g, otherwise we get 'defined in discared section' linkage errors - append-flags -g - - econf --with-create-database=no \ - --with-create-odbc-data-source=no \ - --with-init-database=no \ - --with-configure-apache=no \ - --with-apache-group=apache \ - --with-www-docroot=${D}/var/www/localhost/htdocs \ - || die "configure failed" - emake -j1 || die "make failed" -} - -src_install() { - # to make sure the link from the docroot works - mkdir -p ${D}/var/www/localhost/htdocs - emake -j1 prefix=${D}/usr install || die "install failed" - dodoc doc INSTALL README -} - -pkg_postinst() { - /usr/bin/postInstallStation.sh --directory /usr \ - --www-root /var/www/localhost/htdocs \ - --apache-group apache -} - diff --git a/3rd_party/pypo/AUTHORS b/pypo/AUTHORS similarity index 100% rename from 3rd_party/pypo/AUTHORS rename to pypo/AUTHORS diff --git a/3rd_party/pypo/api_clients/__init__.py b/pypo/api_clients/__init__.py similarity index 100% rename from 3rd_party/pypo/api_clients/__init__.py rename to pypo/api_clients/__init__.py diff --git a/3rd_party/pypo/api_clients/api_client.py b/pypo/api_clients/api_client.py similarity index 100% rename from 3rd_party/pypo/api_clients/api_client.py rename to pypo/api_clients/api_client.py diff --git a/3rd_party/pypo/api_clients/api_client_factory.py b/pypo/api_clients/api_client_factory.py similarity index 100% rename from 3rd_party/pypo/api_clients/api_client_factory.py rename to pypo/api_clients/api_client_factory.py diff --git a/3rd_party/pypo/config.cfg b/pypo/config.cfg similarity index 100% rename from 3rd_party/pypo/config.cfg rename to pypo/config.cfg diff --git a/3rd_party/pypo/config.cfg.dist b/pypo/config.cfg.dist similarity index 100% rename from 3rd_party/pypo/config.cfg.dist rename to pypo/config.cfg.dist diff --git a/3rd_party/pypo/dls/__init__.py b/pypo/dls/__init__.py similarity index 100% rename from 3rd_party/pypo/dls/__init__.py rename to pypo/dls/__init__.py diff --git a/3rd_party/pypo/dls/dls_client.py b/pypo/dls/dls_client.py similarity index 100% rename from 3rd_party/pypo/dls/dls_client.py rename to pypo/dls/dls_client.py diff --git a/3rd_party/pypo/logging.cfg b/pypo/logging.cfg similarity index 100% rename from 3rd_party/pypo/logging.cfg rename to pypo/logging.cfg diff --git a/3rd_party/pypo/push.py b/pypo/push.py similarity index 100% rename from 3rd_party/pypo/push.py rename to pypo/push.py diff --git a/3rd_party/pypo/pypo_cli.py b/pypo/pypo_cli.py similarity index 100% rename from 3rd_party/pypo/pypo_cli.py rename to pypo/pypo_cli.py diff --git a/3rd_party/pypo/pypo_dls.py b/pypo/pypo_dls.py similarity index 100% rename from 3rd_party/pypo/pypo_dls.py rename to pypo/pypo_dls.py diff --git a/3rd_party/pypo/pypo_notify.py b/pypo/pypo_notify.py similarity index 100% rename from 3rd_party/pypo/pypo_notify.py rename to pypo/pypo_notify.py diff --git a/3rd_party/pypo/scripts/README b/pypo/scripts/README similarity index 100% rename from 3rd_party/pypo/scripts/README rename to pypo/scripts/README diff --git a/3rd_party/pypo/scripts/cue_file.py b/pypo/scripts/cue_file.py similarity index 100% rename from 3rd_party/pypo/scripts/cue_file.py rename to pypo/scripts/cue_file.py diff --git a/3rd_party/pypo/scripts/include_daypart.liq b/pypo/scripts/include_daypart.liq similarity index 100% rename from 3rd_party/pypo/scripts/include_daypart.liq rename to pypo/scripts/include_daypart.liq diff --git a/3rd_party/pypo/scripts/include_dynamic_vars.liq b/pypo/scripts/include_dynamic_vars.liq similarity index 100% rename from 3rd_party/pypo/scripts/include_dynamic_vars.liq rename to pypo/scripts/include_dynamic_vars.liq diff --git a/3rd_party/pypo/scripts/include_live_in.liq b/pypo/scripts/include_live_in.liq similarity index 100% rename from 3rd_party/pypo/scripts/include_live_in.liq rename to pypo/scripts/include_live_in.liq diff --git a/3rd_party/pypo/scripts/include_notify.liq b/pypo/scripts/include_notify.liq similarity index 100% rename from 3rd_party/pypo/scripts/include_notify.liq rename to pypo/scripts/include_notify.liq diff --git a/3rd_party/pypo/scripts/include_scheduler.liq b/pypo/scripts/include_scheduler.liq similarity index 100% rename from 3rd_party/pypo/scripts/include_scheduler.liq rename to pypo/scripts/include_scheduler.liq diff --git a/3rd_party/pypo/scripts/library.liq b/pypo/scripts/library.liq similarity index 100% rename from 3rd_party/pypo/scripts/library.liq rename to pypo/scripts/library.liq diff --git a/3rd_party/pypo/scripts/library/externals.liq b/pypo/scripts/library/externals.liq similarity index 100% rename from 3rd_party/pypo/scripts/library/externals.liq rename to pypo/scripts/library/externals.liq diff --git a/3rd_party/pypo/scripts/library/extract-replaygain b/pypo/scripts/library/extract-replaygain similarity index 100% rename from 3rd_party/pypo/scripts/library/extract-replaygain rename to pypo/scripts/library/extract-replaygain diff --git a/3rd_party/pypo/scripts/library/lastfm.liq b/pypo/scripts/library/lastfm.liq similarity index 100% rename from 3rd_party/pypo/scripts/library/lastfm.liq rename to pypo/scripts/library/lastfm.liq diff --git a/3rd_party/pypo/scripts/library/liquidtts b/pypo/scripts/library/liquidtts similarity index 100% rename from 3rd_party/pypo/scripts/library/liquidtts rename to pypo/scripts/library/liquidtts diff --git a/3rd_party/pypo/scripts/library/pervasives.liq b/pypo/scripts/library/pervasives.liq similarity index 100% rename from 3rd_party/pypo/scripts/library/pervasives.liq rename to pypo/scripts/library/pervasives.liq diff --git a/3rd_party/pypo/scripts/library/shoutcast.liq b/pypo/scripts/library/shoutcast.liq similarity index 100% rename from 3rd_party/pypo/scripts/library/shoutcast.liq rename to pypo/scripts/library/shoutcast.liq diff --git a/3rd_party/pypo/scripts/library/utils.liq b/pypo/scripts/library/utils.liq similarity index 100% rename from 3rd_party/pypo/scripts/library/utils.liq rename to pypo/scripts/library/utils.liq diff --git a/3rd_party/pypo/scripts/log_run.sh b/pypo/scripts/log_run.sh similarity index 100% rename from 3rd_party/pypo/scripts/log_run.sh rename to pypo/scripts/log_run.sh diff --git a/3rd_party/pypo/scripts/ls_config.liq b/pypo/scripts/ls_config.liq similarity index 100% rename from 3rd_party/pypo/scripts/ls_config.liq rename to pypo/scripts/ls_config.liq diff --git a/3rd_party/pypo/scripts/ls_config.liq.dist b/pypo/scripts/ls_config.liq.dist similarity index 100% rename from 3rd_party/pypo/scripts/ls_config.liq.dist rename to pypo/scripts/ls_config.liq.dist diff --git a/3rd_party/pypo/scripts/ls_cue.liq b/pypo/scripts/ls_cue.liq similarity index 100% rename from 3rd_party/pypo/scripts/ls_cue.liq rename to pypo/scripts/ls_cue.liq diff --git a/3rd_party/pypo/scripts/ls_run.sh b/pypo/scripts/ls_run.sh similarity index 100% rename from 3rd_party/pypo/scripts/ls_run.sh rename to pypo/scripts/ls_run.sh diff --git a/3rd_party/pypo/scripts/ls_script.liq b/pypo/scripts/ls_script.liq similarity index 100% rename from 3rd_party/pypo/scripts/ls_script.liq rename to pypo/scripts/ls_script.liq diff --git a/3rd_party/pypo/scripts/notify.sh b/pypo/scripts/notify.sh similarity index 100% rename from 3rd_party/pypo/scripts/notify.sh rename to pypo/scripts/notify.sh diff --git a/3rd_party/pypo/scripts/pypo_log.sh b/pypo/scripts/pypo_log.sh similarity index 100% rename from 3rd_party/pypo/scripts/pypo_log.sh rename to pypo/scripts/pypo_log.sh diff --git a/3rd_party/pypo/scripts/silence.mp3 b/pypo/scripts/silence.mp3 similarity index 100% rename from 3rd_party/pypo/scripts/silence.mp3 rename to pypo/scripts/silence.mp3 diff --git a/3rd_party/pypo/util/__init__.py b/pypo/util/__init__.py similarity index 100% rename from 3rd_party/pypo/util/__init__.py rename to pypo/util/__init__.py diff --git a/3rd_party/pypo/util/cue_file.py b/pypo/util/cue_file.py similarity index 100% rename from 3rd_party/pypo/util/cue_file.py rename to pypo/util/cue_file.py diff --git a/3rd_party/pypo/util/json.py b/pypo/util/json.py similarity index 100% rename from 3rd_party/pypo/util/json.py rename to pypo/util/json.py diff --git a/3rd_party/pypo/util/status.py b/pypo/util/status.py similarity index 100% rename from 3rd_party/pypo/util/status.py rename to pypo/util/status.py