Changeset - 794dc86717e2
[Not reviewed]
0 0 193
Chel Sea (chain) - 12 years ago 2013-01-31 11:27:21
chain@rpgfiction.net
initial commit of main tree
193 files changed with 14697 insertions and 0 deletions:
0 comments (0 inline, 0 general)
app-editors/bluegriffon/Manifest
Show inline comments
 
new file 100644
 
DIST BlueGriffon-1.2.1-Linux-x86.tar.bz2 24160129 RMD160 49d9e0a56ca06664bb6763b1ee6228776ea159ab SHA1 64cc38a2f1e6309813a75b8d438cef4a659f0c42 SHA256 b77ef861db8e8890a0a6d6058fb68920411778fb694f20098b732b3f7cd564c1
 
DIST BlueGriffon-1.2.1-Linux-x86_64.tar.bz2 25742557 RMD160 d839dea38ad3c5d5b94c82e98b21196a3a2b2310 SHA1 7b1d46e0e63f21c38a32650f58fd30f83acd6fd4 SHA256 f74503281c3d76d0d8f02bd7c671834ecb639ee66f1429203d0cad3ef0fd7b22
 
EBUILD bluegriffon-1.2.1.ebuild 1303 RMD160 9045de5c0081c58ac266258f6f78e9972e183b10 SHA1 4db1b6ba0678e97bda96ca6e88f4df2fcd653887 SHA256 8c816fbd5be259633c97631abf561b4adb5120477022f3af6c75e6659a3f227c
app-editors/bluegriffon/bluegriffon-1.2.1.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2010 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
EAPI="1"
 

	
 
inherit eutils
 

	
 
MY_PN="BlueGriffon"
 

	
 
DESCRIPTION="The next-generation Web Editor based on the rendering engine of Firefox"
 
HOMEPAGE="http://www.bluegriffon.org/"
 
SRC_URI="
 
        x86? ( http://bluegriffon.org/freshmeat/${PV}/${MY_PN}-${PV}-Linux-x86.tar.bz2 )
 
        amd64? ( http://bluegriffon.org/freshmeat/${PV}/${MY_PN}-${PV}-Linux-x86_64.tar.bz2 )
 
        "
 
LICENSE="GPL-2"
 
SLOT="0"
 
KEYWORDS="~amd64 ~x86"
 

	
 
RDEPEND="
 
	app-misc/mime-types
 
	x11-libs/libXt
 
	media-libs/libpng
 
	dev-libs/nss
 
	dev-util/desktop-file-utils
 
	x11-misc/shared-mime-info
 

	
 
	>=x11-libs/gtk+-2.2:2
 
"
 

	
 
DEPEND="${RDEPEND}"
 

	
 
S=${WORKDIR}/${MY_PN}
 

	
 
src_install() {
 

	
 
	dodir /usr/share/${PN}
 
	cp -r * "${D}usr/share/${PN}" || die
 

	
 
	dosym /usr/share/${PN}/${PN} /usr/bin/${PN} || die "dosym failed"
 

	
 
	mv chrome/icons/default/default48.png chrome/icons/default/bluegriffon.png
 

	
 
	doicon chrome/icons/default/${PN}.png || die "doicon failed"
 

	
 
	make_desktop_entry /usr/share/bluegriffon/${PN} ${PN} ${PN} "Developement;Network"
 

	
 
################# bluegriffon requires a libpng12.so.0 (what would be a better solution?)
 

	
 
	dosym /usr/lib/libpng.so /usr/share/bluegriffon/libpng12.so.0 || die "dosym failed"
 
}
app-laptop/smartdimmer/Manifest
Show inline comments
 
new file 100644
 
DIST smartdimmer-0.1.tar.bz2 79329 RMD160 d83355f047c07a96dc44877ebca6cfc80f0cf04b SHA1 baf8466da690c5b31a8cba76d43db9b6318f028d SHA256 b34c4d82c938e7f8d1a5709080f916745bf989d12a7253e8be38f941a32f8678
 
EBUILD smartdimmer-0.1.ebuild 793 RMD160 4c6e70c55842254e3a1cfcf5544d1d4d4ea51e7d SHA1 05731ca1a0b93bce435bd3233d0a2742465019ac SHA256 2b03512acac679741b89dde7be7c2cc3ad4d713e2a05840129f8317ab563ad46
app-laptop/smartdimmer/smartdimmer-0.1.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2005 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
inherit eutils
 

	
 
MY_P="${PN}-${PV}"
 
S=${WORKDIR}/${PN}
 
DESCRIPTION="Smartdimmer"
 
HOMEPAGE="http://www.acc.umu.se/~erikw/program/"
 
SRC_URI="http://www.acc.umu.se/~erikw/program/${MY_P}.tar.bz2"
 

	
 
LICENSE="GPL-2"
 
SLOT="0"
 
KEYWORDS="x86"
 

	
 

	
 
RDEPEND="virtual/libc"
 

	
 
DEPEND="${RDEPEND}
 
	sys-devel/autoconf"
 

	
 
src_unpack() {
 
	unpack ${A}
 
	cd ${S}
 
}
 

	
 
src_compile() {
 
	./configure --prefix=/usr || die "Configure failed"
 
	make all || die "Make failed"
 
}
 

	
 
src_install() {
 
	dodir /usr/bin
 
	einstall || die
 
	dodoc README
 
}
 

	
 
pkg_postinst() {
 
	einfo "To enable the smartdimmer at boot edit /etc/conf.d/local.start"
 
	einfo "See http://forums.gentoo.org/viewtopic-t-361872.html for news"
 
}
 

	
app-laptop/sonykeyd/sonykeyd-0.2.2.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2005 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
inherit eutils
 

	
 
S=${WORKDIR}/${PN}
 
DESCRIPTION="A daemon to use fn key on Sony Vaio Laptops"
 
HOMEPAGE="http://juljas.net/linux/vaiofx240/sonykeyd.html"
 
SRC_URI="http://knefas.altervista.org/${P}.tar.gz"
 

	
 
LICENSE="GPL-2"
 
SLOT="0"
 
KEYWORDS="x86"
 

	
 
src_unpack() {
 
	unpack ${A} || die
 
}
 

	
 
src_compile() {
 
	cd ${S} || die
 
	emake || die
 
}
 

	
 
src_install() {
 
	exeinto /usr/sbin
 
	doexe sonykeyd
 
	exeinto /usr/local/sbin
 
	doexe scripts/sonykey.sh
 

	
 
	exeinto /etc/init.d
 
	doexe scripts/sonypi
 
	dodoc doc/README
 
}
 

	
 
pkg_postinst() {
 
	einfo "To enable fn-keys at boot run"
 
	einfo "rc-update add sonypi default"
 
	einfo "Please see http://forums.gentoo.org/viewtopic-t-361872.html"
 
}
app-office/openproj/Manifest
Show inline comments
 
new file 100644
 
AUX openproj-1.4-fix-launcher.patch 429 RMD160 97474844baa833cac59134ab722c54c2aae0ba22 SHA1 1d800cccaa367546178539951e365f57ee41413d SHA256 2dfa9a0c437eedd98df86d01ae8768678d538c7221d3f10977aa9ca5f330255f
 
DIST openproj-1.4-src.tar.gz 19564625 RMD160 8c22f0832f5949c06575dfbe02e80e31e169c0f4 SHA1 947745aa6bd5ff1a59dfe5622c25ce6ae39eee96 SHA256 20071b090d841388860049ce49724e2773b8cec250d76e74264c71adf2a79ac6
 
EBUILD openproj-1.4.ebuild 1854 RMD160 27af3e722a93d300e78209868e66b29aae4e264a SHA1 2a362a480305ed9fcb21fe46df594725aa770faf SHA256 d58d070b5315ab5966c724c4d5871ff21f1399ee5fbd2fd30e33c70673f921a5
app-office/openproj/files/openproj-1.4-fix-launcher.patch
Show inline comments
 
new file 100644
 
--- openproj.sh	2008-04-22 19:38:11.000000000 +0300
 
+++ openproj.sh	2009-10-11 02:19:59.000000000 +0300
 
@@ -63,8 +63,8 @@ MIN_JAVA_VERSION="1.5"
 
 #Default conf values
 
 JAVA_EXE="java"
 
 JAVA_OPTS="-Xms128m -Xmx768m"
 
-#OPENPROJ_HOME0="/usr/share/openproj"
 
-OPENPROJ_HOME0=`(dirname $0)`
 
+OPENPROJ_HOME0="/usr/share/openproj"
 
+#OPENPROJ_HOME0=`(dirname $0)`
 
 OPENPROJ_HOME="$OPENPROJ_HOME0"
 
 LOG_LEVEL="DEBUG"
 
 LOG_FILE="/dev/null"
app-office/openproj/openproj-1.4.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2009 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
inherit java-pkg-2 java-ant-2
 

	
 
DESCRIPTION="A desktop replacement for Microsoft Project. It is capable of sharing files with Microsoft Project and has very similar functionality (Gantt, PERT diagram, histogram, charts, reports, detailed usage), as well as tree views which aren't in MS Project"
 
HOMEPAGE="http://www.openproj.org/openproj"
 
SRC_URI="mirror://sourceforge/openproj/openproj-${PV}-src.tar.gz"
 

	
 
LICENSE="CPL-1.0"
 

	
 
SLOT="0"
 
IUSE=""
 

	
 
KEYWORDS="~amd64 ~x86"
 

	
 
DEPEND=">=virtual/jdk-1.6 dev-java/ant-core"
 
RDEPEND=">=virtual/jdk-1.6"
 

	
 
S="${WORKDIR}/openproj-${PV}-src"
 

	
 
src_unpack() {
 
	unpack ${A}
 
	cd "${S}/openproj_build/resources"
 

	
 
	epatch "${FILESDIR}/openproj-${PV}-fix-launcher.patch"
 
}
 

	
 
src_compile() {
 
	JAVA_ANT_ENCODING="UTF-8"
 

	
 
	cd "${S}/openproj_contrib"
 
	ant build-contrib build-script build-exchange build-reports
 

	
 
	JAVA_OPTS="-Xmx128m"
 
	java $JAVA_OPTS -jar ant-lib/proguard.jar @openproj_contrib.conf
 
	java $JAVA_OPTS -jar ant-lib/proguard.jar @openproj_script.conf
 
	java $JAVA_OPTS -jar ant-lib/proguard.jar @openproj_exchange.conf
 
	java $JAVA_OPTS -jar ant-lib/proguard.jar @openproj_exchange2.conf
 
	java $JAVA_OPTS -jar ant-lib/proguard.jar @openproj_reports.conf
 

	
 
	cd "${S}/openproj_build"
 
	ant -Dbuild_contrib=false
 
}
 

	
 
src_install() {
 
	java-pkg_jarinto "/usr/share/${PN}/lib/"
 
	java-pkg_dojar ${S}/openproj_build/dist/lib/*.jar
 

	
 
	java-pkg_jarinto "/usr/share/${PN}/"
 
	java-pkg_dojar ${S}/openproj_build/dist/${PN}.jar
 

	
 
	insinto "/usr/share/${PN}/"
 

	
 
	doins ${S}/openproj_build/resources/openproj.sh
 
	fperms a+rx "/usr/share/${PN}/openproj.sh"
 
	dosym "/usr/share/${PN}/openproj.sh" /usr/bin/openproj
 

	
 
	domenu ${S}/openproj_build/resources/openproj.desktop
 
	doicon ${S}/openproj_build/resources/openproj.png
 
}
app-pda/osynctool/Manifest
Show inline comments
 
new file 100644
 
DIST osynctool-0.39.tar.bz2 55850 RMD160 98f2e52822f1c097354a218f37f00daa844d3755 SHA1 dd1e50e9a16f57bac77489c62b611238e08e33d5 SHA256 9690bc7720fadd1517c56f04b480d99c87304a43dc6e04b89bf1f59bb7e6764d
 
EBUILD osynctool-0.39.ebuild 507 RMD160 54c5c61d8b3d768e0ce3f5a3ae3f6683e0d3cd90 SHA1 17d1dba33eb688bbc185a47076c60833a08f845f SHA256 7bc9a94bc6c992c63d46ae0fca43939fc0b24edcd59ba492f10eb9c23f0b4b8c
app-pda/osynctool/osynctool-0.39.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2009 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
EAPI="2"
 

	
 
inherit cmake-utils
 

	
 
DESCRIPTION="OpenSync utility"
 
HOMEPAGE="http://www.opensync.org/"
 
SRC_URI="http://www.opensync.org/download/releases/${PV}/${P}.tar.bz2"
 

	
 
KEYWORDS="~amd64"
 
SLOT="0"
 
LICENSE="GPL-2"
 
IUSE=""
 

	
 
DEPEND="=app-pda/libopensync-${PV}*"
 
RDEPEND="${DEPEND}"
 

	
 
src_prepare() {
 
	sed -i 's:/etc/bash_completion.d:/share/bash-completion:g' tools/CMakeLists.txt || die
 
}
app-pda/synce-librapi2/Manifest
Show inline comments
 
new file 100644
 
DIST librapi2-0.15.tar.gz 510896 RMD160 67b05c9ab2e25fed563104ca02507ac48135814b SHA1 6473dcf11b4ff05bfed25fb93e4f8eed1d81adc1 SHA256 d5aa19c8d834665446697a6c8ecb6ecff1995c5ba00b79a1348f4c3689317fc7
 
EBUILD synce-librapi2-0.15-r1.ebuild 913 RMD160 bc6b6e9f5396fc221d1cf2ebdafbb35f42756bc5 SHA1 2cfcd0e3f019e17e7c30680a53e17d010f9f4e49 SHA256 4e053dd4496767a3d9a638ab491759343a2b98ba0ace0845adc077d63caf9316
app-pda/synce-librapi2/synce-librapi2-0.15-r1.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2009 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/app-pda/synce-librapi2/synce-librapi2-0.14.ebuild,v 1.1 2009/08/06 12:25:25 mescalinum Exp $
 

	
 
EAPI=4
 

	
 
inherit eutils versionator
 

	
 
DESCRIPTION="SynCE - RAPI communication library"
 
HOMEPAGE="http://sourceforge.net/projects/synce/"
 
LICENSE="MIT"
 

	
 
synce_PV=$(get_version_component_range 1-2)
 

	
 
SLOT="0"
 
KEYWORDS="~amd64 ~x86"
 
IUSE=""
 
DEPEND="dev-lang/python
 
		>=dev-python/pyrex-0.9.6
 
		>=dev-libs/check-0.8.2
 
		=app-pda/synce-libsynce-${synce_PV}*"
 
RDEPEND="${DEPEND}"
 

	
 
SRC_URI="mirror://sourceforge/synce/librapi2-${PV}.tar.gz"
 
S="${WORKDIR}/librapi2-${PV}"
 

	
 
src_configure() {
 
	econf --enable-hal-support=no || die
 
}
 

	
 
src_compile() {
 
	emake || die
 
}
 

	
 
src_install() {
 
	emake DESTDIR="${D}" install || die
 
	dodoc BUGS README README.contributing README.design TODO ChangeLog
 
}
app-portage/findcruft/Manifest
Show inline comments
 
new file 100644
 
DIST findcruft-1.0.4.tar.bz2 16636 RMD160 73e0266e9a83bf7aacfd0a3a3659da179d23b040 SHA1 148f39c562cafccbc1d6f6a9ec0f66c811b381fe SHA256 6fde43f77b83f95dba65174de0505b2914f6fdabd583e039d1009902b21aeed7
 
DIST findcruft-config-20050807.tar.bz2 8125 RMD160 3caf0db0f7931a72ad8d095bddf7e08fea222c71 SHA1 6dac7604b1029f1dce1777a1af592eda3f373a97 SHA256 12577badc39daa00a34ba9935a0a07371d80376bc3025cf43a46e17f86823b01
 
EBUILD findcruft-1.0.4-r1.ebuild 879 RMD160 50974ded249249c30eca53ed01ff187d23a80ec3 SHA1 7f5de28737698df92c514d588ed802089f6bcbc6 SHA256 041a605ee8cd19c49d2ba5435486278652259ad914cac45285f2fc322168d63d
app-portage/findcruft/findcruft-1.0.4-r1.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2005 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
inherit eutils
 

	
 
DEPEND=""
 
DESCRIPTION="Yet another script to find obsolete files"
 
HOMEPAGE="http://forums.gentoo.org/viewtopic.php?t=254197"
 
IUSE=""
 
KEYWORDS="~x86 ~amd64"
 
LICENSE="GPL-2"
 
RESTRICT="nomirror"
 
SLOT="0"
 
SRC_URI="http://user.cs.tu-berlin.de/~sean/${P}.tar.bz2 \
 
         http://ifp.loeber1.de/findcruft-config-20050807.tar.bz2"
 

	
 
src_unpack() {
 
	unpack ${A}
 
	sed -i "s#/usr/local#/usr#" ${WORKDIR}/bin/findcruft || die
 
}
 

	
 
src_install() {
 
	mkdir -p ${D}/usr/lib && mv ${WORKDIR}/findcruft ${D}/usr/lib || die
 
	insinto /usr
 
	dobin ${WORKDIR}/bin/findcruft
 
	dodoc ${WORKDIR}/lib/findcruft/LICENSE
 
}
 

	
 
pkg_postinst() {
 
	einfo "Please check the files findcruft reports as cruft carefully"
 
	einfo "before deleting them! There may be false positives!"
 
}
app-text/catfish/Manifest
Show inline comments
 
new file 100644
 
DIST catfish-0.3.2.tar.gz 35702 RMD160 5f26195a78456e69d988523905fdf3aebe06f782 SHA1 26893bc4fc5947e19289a0d82e214c035ca93936 SHA256 15266b1961ba64552b969c4c84752c931fd29412fe142835cbc3dde6385588f4
 
EBUILD catfish-0.3.2.ebuild 971 RMD160 9dc51b80f98e7ea7f41365407b720210c383db2b SHA1 b748f11c85f3d8f3f854c793d7c41eb8d65adc1e SHA256 adae05bb0f8f0b5daa7736810f1b7799b507c985f4c05622657739ef083b6432
app-text/catfish/catfish-0.3.2.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2008 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header$
 

	
 
EAPI="1"
 

	
 
DESCRIPTION="GTK+2 fontend for different search engines (daemons)"
 
HOMEPAGE="http://software.twotoasts.de/index.php?/pages/catfish_summary.html"
 
SRC_URI="http://www.twotoasts.de/media/catfish/${P}.tar.gz"
 

	
 
LICENSE="GPL-2"
 
SLOT="0"
 
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~ppc-macos ~s390 ~sh ~sparc ~x86 ~x86-fbsd"
 

	
 
IUSE="beagle slocate tracker"
 

	
 
DEPEND="dev-python/pygtk
 
	dev-python/pyxdg
 
	>=gnome-base/libglade-2.0
 
	sys-apps/dbus"
 

	
 
RDEPEND="${DEPEND}
 
	sys-apps/findutils
 
	beagle? ( app-misc/beagle )
 
	slocate? ( sys-apps/slocate )
 
	tracker? ( app-misc/tracker )"
 

	
 
RESTRICT="primaryuri"
 

	
 
export PREFIX="/usr"
 

	
 
src_compile() {
 
	sed -e "s:PREFIX=.*$::g" Makefile.in > Makefile
 
	emake || die "Make failed"
 
}
 

	
 
src_install() {
 
	emake install DESTDIR="${D}" || die "Install failed"
 
	dodoc AUTHORS ChangeLog README TODO
 
}
 

	
dev-cpp/xsd/Manifest
Show inline comments
 
new file 100644
 
AUX 3.3.0-disable_examples_and_tests.patch 2198 RMD160 97c4c410d1bd5f43ad26872ec9503b2e99d66ca0 SHA1 4cd446cd57f1f1fa7a70ba126fb743cc9afddf16 SHA256 03bbbd8253082dd4f843a39e6642257baa6efe6501206e445b24e123ba1e3803
 
AUX 3.3.0-fix_include.patch 510 RMD160 1678b00d6c3903d96ed799c0940da80c19cdb3b0 SHA1 9e3fc1f220613928f6b44712ffbe9c959ae101b7 SHA256 55edb0523f7bbb94ca488990a57442507fdb89a7b74edeff52a053223194b516
 
AUX 3.3.0-fix_tests.patch 518 RMD160 cafe63bb542e6c37d44bcbac3858ded394b18506 SHA1 1e9947f8033290c7d5ee5291f523f522e3763ddd SHA256 c108b896b1c3a3f4da115a89c2e1ef3593a4aaef10639efe7a6072def28c4668
 
AUX 3.3.0-xsdcxx-rename.patch 3825 RMD160 2413da93c44d404fe6242ea885d58d8492f4776e SHA1 f28eb03fe1255758a20060bf944b9fe640885a92 SHA256 d0b9193d9501c6d1d718a3b45de8d6e2a0e20ce11b6f68a4d73d2f77dbe3ceca
 
DIST xsd-3.3.0.tar.bz2 999479 RMD160 881aa481bb3c31a5b913450b7dd33e4f94441f78 SHA1 ebd8f13f164dafa7c4a107686a1402bbfb61c2c2 SHA256 6157e3b0f3108f69a8d9344956020c234841d4a1de28745b19e45f8ee34b0c66
 
EBUILD xsd-3.3.0.ebuild 4102 RMD160 db2a95b652a3dc2213ec573c9ce708ae5b3fe47a SHA1 84fc07e75d37bd133bbd1a718cc88c419834f263 SHA256 b486d6b04711df93ee16595d5dbf61f4d7a523fa5cca17e4d47efbc4e00d52bc
dev-cpp/xsd/files/3.3.0-disable_examples_and_tests.patch
Show inline comments
 
new file 100644
 
diff --git a/makefile b/makefile
 
index 0c07b0d..32c2c93 100644
 
--- a/makefile
 
+++ b/makefile
 
@@ -14,8 +14,6 @@ clean    := $(out_base)/.clean
 
 cleandoc := $(out_base)/.cleandoc
 
 
 
 $(default): $(out_base)/xsd/      \
 
-            $(out_base)/tests/    \
 
-            $(out_base)/examples/ \
 
             $(out_base)/documentation/
 
 
 
 # Test.
 
@@ -27,7 +25,6 @@ $(test): $(out_base)/tests/.test
 
 #
 
 $(install): $(out_base)/xsd/.install           \
 
             $(out_base)/libxsd/.install        \
 
-	    $(out_base)/examples/.install      \
 
             $(out_base)/documentation/.install
 
 	$(call install-dir,$(src_base)/dist/examples/build,$(install_doc_dir)/xsd/examples/build)
 
 	$(call install-dir,$(src_base)/dist/examples/cxx,$(install_doc_dir)/xsd/examples/cxx,-name makefile)
 
@@ -43,7 +40,6 @@ $(install): $(out_base)/xsd/.install           \
 
 #
 
 $(dist): $(out_base)/xsd/.dist           \
 
          $(out_base)/libxsd/.dist        \
 
-         $(out_base)/examples/.dist      \
 
          $(out_base)/documentation/.dist
 
 	$(call install-dir,$(src_base)/dist/examples/build,$(dist_prefix)/examples/build)
 
 	$(call install-dir,$(src_base)/dist/examples/cxx,$(dist_prefix)/examples/cxx,-name makefile)
 
@@ -57,7 +53,6 @@ $(dist): $(out_base)/xsd/.dist           \
 
 
 
 $(dist-win): $(out_base)/xsd/.dist-win           \
 
              $(out_base)/libxsd/.dist-win        \
 
-             $(out_base)/examples/.dist-win      \
 
              $(out_base)/documentation/.dist-win
 
 	$(call install-dir,$(src_base)/dist/etc,$(dist_prefix)/etc)
 
 	$(call install-dir,$(src_base)/dist/examples/build,$(dist_prefix)/examples/build)
 
@@ -81,9 +76,7 @@ $(dist-win): $(out_base)/xsd/.dist-win           \
 
 
 
 # Clean.
 
 #
 
-$(clean): $(out_base)/xsd/.clean      \
 
-          $(out_base)/tests/.clean    \
 
-          $(out_base)/examples/.clean
 
+$(clean): $(out_base)/xsd/.clean
 
 
 
 $(cleandoc): $(out_base)/documentation/.cleandoc
 
 
 
@@ -91,6 +84,4 @@ $(call include,$(bld_root)/install.make)
 
 
 
 $(call import,$(src_base)/xsd/makefile)
 
 $(call import,$(src_base)/libxsd/makefile)
 
-$(call import,$(src_base)/tests/makefile)
 
-$(call import,$(src_base)/examples/makefile)
 
 $(call import,$(src_base)/documentation/makefile)
dev-cpp/xsd/files/3.3.0-fix_include.patch
Show inline comments
 
new file 100644
 
diff --git a/xsd/xsd.cxx b/xsd/xsd.cxx
 
index 1c66a8a..dbbfed9 100644
 
--- a/xsd/xsd.cxx
 
+++ b/xsd/xsd.cxx
 
@@ -18,7 +18,7 @@
 
 
 
 #include <xsd-frontend/parser.hxx>
 
 #include <xsd-frontend/transformations/anonymous.hxx>
 
-#include <xsd-frontend/transformations/enum-synthesis.cxx>
 
+#include <xsd-frontend/transformations/enum-synthesis.hxx>
 
 #include <xsd-frontend/transformations/restriction.hxx>
 
 #include <xsd-frontend/transformations/schema-per-type.hxx>
 
 #include <xsd-frontend/transformations/simplifier.hxx>
dev-cpp/xsd/files/3.3.0-fix_tests.patch
Show inline comments
 
new file 100644
 
diff --git a/tests/cxx/tree/prefix/makefile b/tests/cxx/tree/prefix/makefile
 
index 3317161..77b4b0a 100644
 
--- a/tests/cxx/tree/prefix/makefile
 
+++ b/tests/cxx/tree/prefix/makefile
 
@@ -35,7 +35,7 @@ gen  := $(addprefix $(out_base)/,$(genf))
 
 
 
 $(gen): xsd := $(out_root)/xsd/xsd
 
 $(gen): xsd_options := --generate-serialization --generate-polymorphic \
 
---polymorphic-type foo\\\#base --root-element root
 
+--polymorphic-type foo\\\\\#base --root-element root
 
 $(gen): $(out_root)/xsd/xsd
 
 
 
 $(call include-dep,$(dep))
dev-cpp/xsd/files/3.3.0-xsdcxx-rename.patch
Show inline comments
 
new file 100644
 
diff --git a/documentation/xsd.1 b/documentation/xsd.1
 
index 8b97b14..213f6f6 100644
 
--- a/documentation/xsd.1
 
+++ b/documentation/xsd.1
 
@@ -1,16 +1,16 @@
 
 .\" Process this file with
 
-.\" groff -man -Tascii xsd.1
 
+.\" groff -man -Tascii xsdcxx.1
 
 .\"
 
 .TH XSD 1 "April 2010" "XSD 3.3.0"
 
 .SH NAME
 
-xsd \- W3C XML Schema to C++ Compiler
 
+xsdcxx \- W3C XML Schema to C++ Compiler
 
 .\"
 
 .\"
 
 .\"
 
 .\"--------------------------------------------------------------------
 
 .SH SYNOPSIS
 
 .\"--------------------------------------------------------------------
 
-.B xsd
 
+.B xsdcxx
 
 .I command
 
 .B [
 
 .I options
 
@@ -20,19 +20,19 @@ xsd \- W3C XML Schema to C++ Compiler
 
 .I file
 
 .B ...]
 
 .in
 
-.B xsd help
 
+.B xsdcxx help
 
 .B [
 
 .I command
 
 .B ]
 
 .in
 
-.B xsd version
 
+.B xsdcxx version
 
 .\"
 
 .\"
 
 .\"
 
 .\"--------------------------------------------------------------------
 
 .SH DESCRIPTION
 
 .\"--------------------------------------------------------------------
 
-.B xsd
 
+.B xsdcxx
 
 generates vocabulary-specific, statically-typed C++ mapping from W3C XML
 
 Schema definitions. Particular mapping to produce is selected by a
 
 .IR command .
 
@@ -203,7 +203,7 @@ For example, if you have file
 
 with namespace
 
 .B http://example.com/hello
 
 and you run
 
-.B xsd
 
+.B xsdcxx
 
 on this file, then the string in question will be:
 
 
 
 .B hello.xsd. http://example.com/hello
 
@@ -1877,7 +1877,7 @@ option. With this approach you don't need to worry about shell quoting.
 
 .\"
 
 .SH DIAGNOSTICS
 
 If the input file is not a valid W3C XML Schema definition,
 
-.B xsd
 
+.B xsdcxx
 
 will issue diagnostic messages to
 
 .B STDERR
 
 and exit with non-zero exit code.
 
diff --git a/documentation/xsd.xhtml b/documentation/xsd.xhtml
 
index 4acf822..af630bf 100644
 
--- a/documentation/xsd.xhtml
 
+++ b/documentation/xsd.xhtml
 
@@ -50,19 +50,19 @@
 
 
 
   <h1>NAME</h1>
 
 
 
-  <p>xsd - W3C XML Schema to C++ Compiler</p>
 
+  <p>xsdcxx - W3C XML Schema to C++ Compiler</p>
 
 
 
   <h1>SYNOPSIS</h1>
 
 
 
   <dl id="synopsis">
 
-    <dt><code><b>xsd</b> <i>command</i> [<i>options</i>] <i>file</i> [<i>file</i> ...]</code></dt>
 
-    <dt><code><b>xsd help</b> [<i>command</i>]</code></dt>
 
-    <dt><code><b>xsd version</b></code></dt>
 
+    <dt><code><b>xsdcxx</b> <i>command</i> [<i>options</i>] <i>file</i> [<i>file</i> ...]</code></dt>
 
+    <dt><code><b>xsdcxx help</b> [<i>command</i>]</code></dt>
 
+    <dt><code><b>xsdcxx version</b></code></dt>
 
   </dl>
 
 
 
   <h1>DESCRIPTION</h1>
 
 
 
-  <p><code><b>xsd</b></code> generates vocabulary-specific, statically-typed
 
+  <p><code><b>xsdcxx</b></code> generates vocabulary-specific, statically-typed
 
   C++ mapping from W3C XML Schema definitions. Particular mapping to
 
   produce is selected by a <code><i>command</i></code>. Each mapping has
 
   a number of mapping-specific <code><i>options</i></code> that should
 
@@ -104,7 +104,7 @@
 
 
 
     <dt><code><b>help</b></code></dt>
 
     <dd>Print usage information and exit. Use
 
-      <p><code><b>xsd help</b> <i>command</i></code></p>
 
+      <p><code><b>xsdcxx help</b> <i>command</i></code></p>
 
       for command-specific help.
 
     </dd>
 
 
 
@@ -174,7 +174,7 @@
 
 
 
       <p>For example, if you have file <code><b>hello.xsd</b></code>
 
         with namespace <code><b>http://example.com/hello</b></code> and you run
 
-        <code><b>xsd</b></code> on this file, then the string in question
 
+        <code><b>xsdcxx</b></code> on this file, then the string in question
 
         will be:</p>
 
 
 
       <p><code><b>hello.xsd. http://example.com/hello</b></code></p>
 
@@ -1575,7 +1575,7 @@ namespace .*
 
   <h1>DIAGNOSTICS</h1>
 
 
 
   <p>If the input file is not a valid W3C XML Schema definition,
 
-    <code><b>xsd</b></code> will issue diagnostic messages to STDERR
 
+    <code><b>xsdcxx</b></code> will issue diagnostic messages to STDERR
 
     and exit with non-zero exit code.</p>
 
 
 
   <h1>BUGS</h1>
dev-cpp/xsd/xsd-3.3.0.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2010 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/dev-cpp/xsd/xsd-3.3.0.ebuild,v 1.2 2010/10/21 05:49:02 dev-zero Exp $
 

	
 
EAPI="2"
 

	
 
inherit toolchain-funcs eutils versionator
 

	
 
DESCRIPTION="An open-source, cross-platform W3C XML Schema to C++ data binding compiler."
 
HOMEPAGE="http://www.codesynthesis.com/products/xsd/"
 
SRC_URI="http://www.codesynthesis.com/download/${PN}/$(get_version_component_range 1-2)/${P}.tar.bz2"
 
LICENSE="GPL-2"
 
SLOT="0"
 
KEYWORDS="~amd64 ~x86"
 
IUSE="ace doc examples zlib"
 

	
 
RDEPEND=">=dev-libs/xerces-c-3
 
	>=dev-libs/boost-1.40.0
 
	>=dev-cpp/libcult-1.4.6
 
	>=dev-cpp/libxsd-frontend-1.17.0
 
	>=dev-cpp/libbackend-elements-1.7.2
 
	ace? ( dev-libs/ace )
 
	zlib? ( sys-libs/zlib )"
 
DEPEND="${RDEPEND}
 
	dev-util/build
 
	doc? ( app-doc/doxygen )"
 

	
 
src_prepare() {
 
	epatch \
 
		"${FILESDIR}/${PV}-disable_examples_and_tests.patch" \
 
		"${FILESDIR}/${PV}-xsdcxx-rename.patch" \
 
		"${FILESDIR}/${PV}-fix_include.patch" \
 
		"${FILESDIR}/${PV}-fix_tests.patch"
 
}
 

	
 
use_yesno() {
 
	use $1 && echo "y" || echo "n"
 
}
 

	
 
src_configure() {
 
	BOOST_PKG="$(best_version ">=dev-libs/boost-1.40.0")"
 
	BOOST_VER="$(get_version_component_range 1-2 "${BOOST_PKG/*boost-/}")"
 
	BOOST_VER="$(replace_all_version_separators _ "${BOOST_VER}")"
 
	BOOST_INC="/usr/include/boost-${BOOST_VER}"
 

	
 
	# Maintainer notes:
 
	# * xqilla is not required, this is only whether or not to include the xpath
 
	#   examples which require xqilla
 
	mkdir -p \
 
		build/cxx/gnu \
 
		build/import/lib{ace,boost,cult,backend-elements,xerces-c,xqilla,xsd-frontend,z}
 

	
 
	cat >> build/configuration-dynamic.make <<- EOF
 
xsd_with_zlib := $(use_yesno zlib)
 
xsd_with_ace := $(use_yesno ace)
 
xsd_with_xdr := y
 
xsd_with_dbxml := n
 
xsd_with_xqilla := y
 
xsd_with_boost_date_time := y
 
xsd_with_boost_serialization := y
 
	EOF
 

	
 
	cat >> build/cxx/configuration-dynamic.make <<- EOF
 
cxx_id       := gnu
 
cxx_optimize := n
 
cxx_debug    := n
 
cxx_rpath    := n
 
cxx_pp_extra_options :=
 
cxx_extra_options    := ${CXXFLAGS} -DBOOST_FILESYSTEM_VERSION=2 -I${BOOST_INC}
 
cxx_ld_extra_options := ${LDFLAGS}
 
cxx_extra_libs       :=
 
cxx_extra_lib_paths  :=
 
	EOF
 

	
 
	cat >> build/cxx/gnu/configuration-dynamic.make <<- EOF
 
cxx_gnu := $(tc-getCXX)
 
cxx_gnu_libraries :=
 
cxx_gnu_optimization_options :=
 
	EOF
 

	
 
	cat >> build/import/libace/configuration-dynamic.make <<- EOF
 
libace_installed := y
 
	EOF
 

	
 
	cat >> build/import/libbackend-elements/configuration-dynamic.make <<- EOF
 
libbackend_elements_installed := y
 
	EOF
 

	
 
	cat >> build/import/libboost/configuration-dynamic.make <<- EOF
 
libboost_installed := y
 
libboost_suffix := -mt-${BOOST_VER}
 
libboost_system := n
 
	EOF
 

	
 
	cat >> build/import/libcult/configuration-dynamic.make <<- EOF
 
libcult_installed := y
 
	EOF
 

	
 
	cat >> build/import/libxerces-c/configuration-dynamic.make <<- EOF
 
libxerces_c_installed := y
 
	EOF
 

	
 
	cat >> build/import/libxqilla/configuration-dynamic.make <<- EOF
 
libxqilla_installed := y
 
	EOF
 

	
 
	cat >> build/import/libxsd-frontend/configuration-dynamic.make <<- EOF
 
libxsd_frontend_installed := y
 
	EOF
 

	
 
	cat >> build/import/libz/configuration-dynamic.make <<- EOF
 
libz_installed := y
 
	EOF
 

	
 
	MAKEOPTS+=" verbose=1"
 
}
 

	
 
src_compile() {
 
	default
 
	if use doc ; then
 
		emake -C "${S}/documentation/cxx/tree/reference" || die "generating reference docs failed"
 
	fi
 
	if use test ; then
 
		XERCESC_NLS_HOME="${ROOT}usr/share/xerces-c/msg" emake -C "${S}/tests" || die "building tests failed"
 
	fi
 
}
 

	
 
src_install() {
 
	emake install_prefix="${D}/usr" install || die "emake install failed"
 

	
 
	# Renaming binary/manpage to avoid collision with mono-2.0's xsd/xsd2
 
	mv "${D}"/usr/bin/xsd{,cxx}
 
	mv "${D}"/usr/share/man/man1/xsd{,cxx}.1
 

	
 
	rm -rf "${D}/usr/share/doc"
 

	
 
	dohtml -r -A xhtml -A pdf documentation/*
 

	
 
	dodoc NEWS README FLOSSE documentation/custom-literals.xsd
 
	newdoc libxsd/README README.libxsd
 
	newdoc libxsd/FLOSSE FLOSSE.libxsd
 

	
 
	if use examples; then
 
		insinto /usr/share/doc/${PF}
 
		doins -r examples
 
	fi
 
}
 

	
 
src_test() {
 
	XERCESC_NLS_HOME="${ROOT}usr/share/xerces-c/msg" emake -C "${S}/tests" test || die "tests failed"
 
}
dev-lang/haserl/Manifest
Show inline comments
 
new file 100644
 
DIST haserl-0.9.29.tar.gz 135230 RMD160 a598f37767cd392a89a66853ca7cb95212912132 SHA1 21a9191a97b2b7cead9afbf8117f52b70861cc79 SHA256 0f6569f7af6eaa448d3daf72914c96835a3b1bb62bd53dec8de3571edbdff22d
 
EBUILD haserl-0.9.29.ebuild 720 RMD160 d03aeb7f1719243d5a204eb22a65b68afe14c946 SHA1 119b2c3fb708a78561f704836ee01761758b7100 SHA256 98c84b0f5bfd7399b8a842609cf0303ba1e70a408371f6ffe2360a86a29bbf30
dev-lang/haserl/haserl-0.9.29.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2008 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
# Source: http://bugs.gentoo.org/show_bug.cgi?id=76213
 
# Submitted-By: Nathaniel Copa
 
# Reviewed-By: rl03 2005-12-11
 

	
 
DESCRIPTION="HTML And Shell Embedded Report Language"
 
HOMEPAGE="http://haserl.sourceforge.net/"
 
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
 

	
 
LICENSE="GPL-2"
 
SLOT="0"
 
KEYWORDS="~x86 ~amd64"
 
IUSE="lua"
 

	
 
RDEPEND="lua? ( dev-lang/lua )"
 
DEPEND="${RDEPEND}
 
	dev-util/pkgconfig"
 

	
 

	
 
src_compile() {
 
	econf --prefix=/usr $(use_with lua)
 
	emake || die "emake failed"
 
}
 

	
 
src_install() {
 
	emake DESTDIR="${D}" install || die "install failed"
 
	dodoc AUTHORS ChangeLog README THANKS TODO
 
}
dev-libs/libg15-gnome15/Manifest
Show inline comments
 
new file 100644
 
DIST libg15-1.3.0-with-gnome15-enhancements-g510-fixes.tar.gz 313934 RMD160 b3255f20749abd93d5fd0f277c1dbf0611a33d5c SHA1 8a79d1ef7b1893b06f4aeae40003a044feaca285 SHA256 8eacfa63f5290fda502fd8c9e6cc27670e924067b0d638f6e380a66a7f0f5621
 
EBUILD libg15-gnome15-1.3.0.ebuild 657 RMD160 43cedbd457d8decb788601aa230ba215c4e0ba6f SHA1 0351e9714f8b77a34b51e2fd963844bd1540c8a2 SHA256 04ab9deabb975dfcb0623e2ef5dbf1acaa9484b58eca6c04ba3411ff822a055c
 
MISC g15-debug.txt 149581 RMD160 cd345a9cd50fad130429f24f0e0b888f107901b3 SHA1 50702bdcc40c056057c0a518b1ab45809fb31dad SHA256 6666899bfd895fd2441537daa8635bee6267adde2796a1ff37dc4faf448b623d
dev-libs/libg15-gnome15/g15-debug.txt
Show inline comments
 
new file 100644
 
chain@richBOOK ~/portage/dev-libs/libg15-gnome15 $ g15-desktop-service -f -l DEBUG
 
/usr/lib64/python2.7/site-packages/gobject/constants.py:24: Warning: g_boxed_type_register_static: assertion `g_type_from_name (name) == 0' failed
 
  import gobject._gobject
 
INFO:12:05:09:MainThread:driver:Loading drivers from /usr/lib64/python2.7/site-packages/gnome15/drivers
 
INFO:12:05:09:MainThread:usb.core:find(): using backend "usb.backend.libusb10"
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.enumerate_devices()
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x26346d0>)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x2634810>)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x26348d0>)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x2634990>)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x2634a50>)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x2634b10>)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x2634bd0>)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x2634d50>)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x2634e10>)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x2634ed0>)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x2634f90>)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x263d090>)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x263d150>)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x26346d0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x26346d0>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x26346d0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x26346d0>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x26346d0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x26346d0>, 0, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x26346d0>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x26346d0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x26346d0>, 0, 1, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x26346d0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634810>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634810>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634810>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634810>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634810>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x2634810>, 0, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634810>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634810>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634810>, 0, 1, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634810>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x26348d0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x26348d0>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x26348d0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x26348d0>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x26348d0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x26348d0>, 0, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x26348d0>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x26348d0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x26348d0>, 0, 1, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x26348d0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634990>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634990>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634990>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634990>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634990>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x2634990>, 0, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634990>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634990>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634990>, 0, 1, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634990>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634a50>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634a50>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634a50>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634a50>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634a50>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x2634a50>, 0, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634a50>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634a50>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634a50>, 0, 1, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634a50>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634b10>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634b10>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634b10>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634b10>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634b10>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x2634b10>, 0, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634b10>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634b10>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634b10>, 0, 1, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634b10>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634bd0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634bd0>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634bd0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634bd0>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634bd0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x2634bd0>, 0, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634bd0>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634bd0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634bd0>, 0, 1, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634bd0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0, 1, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 1, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 1, 1, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 1, 1, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0, 1, 1, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 1, 1, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 1, 2, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 1, 2, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0, 1, 2, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 1, 2, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 1, 3, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 1, 3, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0, 1, 3, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 1, 3, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 1, 4, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 1, 4, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0, 1, 4, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 1, 4, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 1, 5, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634c90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634d50>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634d50>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634d50>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634d50>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634d50>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x2634d50>, 0, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634d50>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634d50>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634d50>, 0, 1, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634d50>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634e10>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634e10>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634e10>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634e10>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634e10>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x2634e10>, 0, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634e10>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634e10>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634e10>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634e10>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x2634e10>, 1, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634e10>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634e10>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634e10>, 0, 1, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634e10>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634ed0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634ed0>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634ed0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634ed0>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634ed0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x2634ed0>, 0, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634ed0>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634ed0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634ed0>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634ed0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x2634ed0>, 1, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634ed0>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634ed0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634ed0>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634ed0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x2634ed0>, 2, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634ed0>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634ed0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634ed0>, 0, 1, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634ed0>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634f90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634f90>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634f90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634f90>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634f90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x2634f90>, 0, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634f90>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634f90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634f90>, 0, 1, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634f90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634f90>, 1, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634f90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634f90>, 1, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634f90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x2634f90>, 0, 1, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634f90>, 1, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634f90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x2634f90>, 1, 1, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x2634f90>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x263d090>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x263d090>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x263d090>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x263d090>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x263d090>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x263d090>, 0, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x263d090>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x263d090>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x263d090>, 0, 1, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x263d090>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x263d090>, 1, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x263d090>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x263d090>, 1, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x263d090>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x263d090>, 0, 1, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x263d090>, 1, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x263d090>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x263d090>, 1, 1, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x263d090>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 0, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 0, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 0, 1, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 1, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 1, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 0, 1, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 1, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 1, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 1, 1, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 1, 0, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 1, 1, 0)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x263d150>, 0)
 
DEBUG:12:05:09:MainThread:plugins:Plugin path /home/chain/.gnome15/plugins does not exist.
 
DEBUG:12:05:09:MainThread:plugins:Plugin path /home/chain/.config/gnome15/plugins does not exist.
 
Xlib.protocol.request.QueryExtension
 
Xlib.protocol.request.QueryExtension
 
** Message: pygobject_register_sinkfunc is deprecated (GstObject)
 
ERROR:12:05:09:MainThread:plugins:Failed to load plugin module /usr/share/gnome15/plugins/cal. No module named evolution.ecal
 
Traceback (most recent call last):
 
  File "/usr/lib64/python2.7/site-packages/gnome15/g15pluginmanager.py", line 215, in <module>
 
    for mod in ([__import__(fname) for fname in pluginfiles]):
 
  File "/usr/share/gnome15/plugins/cal/cal.py", line 31, in <module>
 
    import evolution.ecal
 
ImportError: No module named evolution.ecal
 
INFO:12:05:09:MainThread:usb.core:find(): using backend "usb.backend.libusb10"
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.enumerate_devices()
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x35991d0>)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x35992d0>)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599390>)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599450>)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599510>)
 
DEBUG:12:05:09:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599690>)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599750>)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599810>)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x35998d0>)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599990>)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599a50>)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599b10>)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35991d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35991d0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35991d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35991d0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35991d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x35991d0>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35991d0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35991d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35991d0>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35991d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35992d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35992d0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35992d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35992d0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35992d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x35992d0>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35992d0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35992d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35992d0>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35992d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599390>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599390>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599390>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599390>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599390>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599390>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599390>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599390>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599390>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599390>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599450>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599450>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599450>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599450>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599450>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599450>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599450>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599450>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599450>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599450>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599510>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599510>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599510>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599510>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599510>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599510>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599510>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599510>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599510>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599510>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599690>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599690>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599690>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599690>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599690>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599690>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599690>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599690>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599690>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599690>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 1, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 1, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0, 1, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 1, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 1, 2, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 1, 2, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0, 1, 2, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 1, 2, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 1, 3, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 1, 3, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0, 1, 3, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 1, 3, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 1, 4, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 1, 4, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0, 1, 4, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 1, 4, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 1, 5, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599750>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599810>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599810>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599810>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599810>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599810>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599810>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599810>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599810>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599810>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599810>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35998d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35998d0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35998d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35998d0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35998d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x35998d0>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35998d0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35998d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35998d0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35998d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x35998d0>, 1, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35998d0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35998d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35998d0>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35998d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599990>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599990>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599990>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599990>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599990>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599990>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599990>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599990>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599990>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599990>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599990>, 1, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599990>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599990>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599990>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599990>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599990>, 2, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599990>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599990>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599990>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599990>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599a50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599a50>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599a50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599a50>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599a50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599a50>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599a50>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599a50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599a50>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599a50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599a50>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599a50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599a50>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599a50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599a50>, 0, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599a50>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599a50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599a50>, 1, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599a50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599b10>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599b10>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599b10>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599b10>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599b10>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599b10>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599b10>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599b10>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599b10>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599b10>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599b10>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599b10>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599b10>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599b10>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599b10>, 0, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599b10>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599b10>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599b10>, 1, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599b10>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 0, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 1, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 1, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599bd0>, 0)
 
DEBUG:12:05:10:MainThread:service:Starting the DBUS service
 
DEBUG:12:05:10:MainThread:dbus:Getting Session DBUS
 
DEBUG:12:05:10:MainThread:dbus:Exposing service
 
DEBUG:12:05:10:MainThread:dbus:DBUS service ready
 
INFO:12:05:10:MainThread:usb.core:find(): using backend "usb.backend.libusb10"
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.enumerate_devices()
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x35991d0>)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599c50>)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x35992d0>)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599f90>)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x35993d0>)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599fd0>)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599490>)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599510>)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599610>)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599650>)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599710>)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599890>)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599950>)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35991d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35991d0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35991d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35991d0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35991d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x35991d0>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35991d0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35991d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35991d0>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35991d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599c50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599c50>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599c50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599c50>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599c50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599c50>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599c50>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599c50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599c50>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599c50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35992d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35992d0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35992d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35992d0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35992d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x35992d0>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35992d0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35992d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35992d0>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35992d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599f90>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599f90>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599f90>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599f90>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599f90>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599f90>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599f90>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599f90>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599f90>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599f90>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35993d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35993d0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35993d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35993d0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35993d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x35993d0>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35993d0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35993d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35993d0>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35993d0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599fd0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599fd0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599fd0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599fd0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599fd0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599fd0>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599fd0>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599fd0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599fd0>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599fd0>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599490>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599490>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599490>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599490>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599490>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599490>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599490>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599490>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599490>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599490>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 1, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 1, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0, 1, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 1, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 1, 2, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 1, 2, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0, 1, 2, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 1, 2, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 1, 3, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 1, 3, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0, 1, 3, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 1, 3, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 1, 4, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 1, 4, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0, 1, 4, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 1, 4, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 1, 5, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599d50>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599510>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599510>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599510>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599510>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599510>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599510>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599510>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599510>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599510>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599510>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599610>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599610>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599610>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599610>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599610>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599610>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599610>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599610>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599610>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599610>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599610>, 1, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599610>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599610>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599610>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599610>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599650>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599650>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599650>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599650>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599650>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599650>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599650>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599650>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599650>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599650>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599650>, 1, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599650>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599650>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599650>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599650>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599650>, 2, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599650>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599650>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599650>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599650>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599710>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599710>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599710>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599710>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599710>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599710>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599710>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599710>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599710>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599710>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599710>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599710>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599710>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599710>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599710>, 0, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599710>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599710>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599710>, 1, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599710>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599890>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599890>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599890>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599890>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599890>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599890>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599890>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599890>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599890>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599890>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599890>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599890>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599890>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599890>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599890>, 0, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599890>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599890>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599890>, 1, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599890>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 0, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 0, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 0, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 0, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 1, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 1, 0, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 1, 1, 0)
 
DEBUG:12:05:10:MainThread:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599950>, 0)
 
INFO:12:05:10:Thread-2:plugins:Loading tweak
 
INFO:12:05:10:MainThread:root:Starting GLib loop
 
INFO:12:05:10:DesktopService:plugins:Loaded tweak
 
INFO:12:05:10:DesktopService:plugins:Started plugin manager
 
DEBUG:12:05:10:DesktopService:dbus:Sending starting up signal
 
INFO:12:05:10:DesktopService:uinput:Opening uinput device for mouse
 
DEBUG:12:05:10:DesktopService:uinput:UINPUT mouse event at mouse, code = 0, val = 0, syn = True
 
DEBUG:12:05:11:DesktopService:uinput:UINPUT mouse event at mouse, code = 0, val = 1, syn = True
 
INFO:12:05:11:DesktopService:uinput:Opening uinput device for keyboard
 
DEBUG:12:05:11:DesktopService:uinput:UINPUT uinput keyboard event at keyboard, code = 0, val = 0, syn = True
 
DEBUG:12:05:12:DesktopService:uinput:UINPUT uinput keyboard event at keyboard, code = 0, val = 1, syn = True
 
INFO:12:05:12:DesktopService:uinput:Opening uinput device for joystick
 
DEBUG:12:05:12:DesktopService:uinput:UINPUT joystick event at joystick, code = 0, val = 128, syn = False
 
DEBUG:12:05:13:DesktopService:uinput:UINPUT joystick event at joystick, code = 1, val = 128, syn = False
 
which: no jstest-gtk in 
 
(/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.5.3:/usr/i686-pc-linux-gnu/gcc-bin/4.3.4:/opt/android-sdk-update-manager/tools:/opt/android-sdk-update-manager/platform-tools:/usr/games/bin:/opt/cuda/computeprof/bin:/opt/cuda/bin:/usr/lib/wine/bin:~/bin:/home/chain/src/pdtoolkit-3.16/x86_64//bin:/home/chain/src/tau-2.20/x86_64/bin:/usr/lib/wine/bin)
 
INFO:12:05:13:DesktopService:uinput:Opening uinput device for digital-joystick
 
DEBUG:12:05:13:DesktopService:uinput:UINPUT joystick event at digital-joystick, code = 0, val = 128, syn = False
 
DEBUG:12:05:14:DesktopService:uinput:UINPUT joystick event at digital-joystick, code = 1, val = 128, syn = False
 
which: no jstest-gtk in 
 
(/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.5.3:/usr/i686-pc-linux-gnu/gcc-bin/4.3.4:/opt/android-sdk-update-manager/tools:/opt/android-sdk-update-manager/platform-tools:/usr/games/bin:/opt/cuda/computeprof/bin:/opt/cuda/bin:/usr/lib/wine/bin:~/bin:/home/chain/src/pdtoolkit-3.16/x86_64//bin:/home/chain/src/tau-2.20/x86_64/bin:/usr/lib/wine/bin)
 
INFO:12:05:14:DesktopService:service:Looking for devices
 
INFO:12:05:14:DesktopService:usb.core:find(): using backend "usb.backend.libusb10"
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.enumerate_devices()
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599310>)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599ad0>)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599f90>)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599390>)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599f10>)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599450>)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x35994d0>)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x35996d0>)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599790>)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599910>)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x3599250>)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x35a1c90>)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_device_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599310>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599310>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599310>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599310>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599310>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599310>, 0, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599310>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599310>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599310>, 0, 1, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599310>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599ad0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599ad0>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599ad0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599ad0>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599ad0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599ad0>, 0, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599ad0>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599ad0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599ad0>, 0, 1, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599ad0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599f90>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599f90>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599f90>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599f90>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599f90>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599f90>, 0, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599f90>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599f90>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599f90>, 0, 1, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599f90>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599390>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599390>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599390>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599390>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599390>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599390>, 0, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599390>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599390>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599390>, 0, 1, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599390>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599f10>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599f10>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599f10>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599f10>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599f10>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599f10>, 0, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599f10>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599f10>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599f10>, 0, 1, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599f10>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599450>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599450>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599450>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599450>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599450>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599450>, 0, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599450>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599450>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599450>, 0, 1, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599450>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35994d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35994d0>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35994d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35994d0>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35994d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x35994d0>, 0, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35994d0>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35994d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35994d0>, 0, 1, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35994d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0, 1, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 1, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 1, 1, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 1, 1, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0, 1, 1, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 1, 1, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 1, 2, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 1, 2, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0, 1, 2, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 1, 2, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 1, 3, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 1, 3, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0, 1, 3, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 1, 3, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 1, 4, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 1, 4, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0, 1, 4, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 1, 4, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 1, 5, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35995d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35996d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35996d0>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35996d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35996d0>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35996d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x35996d0>, 0, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35996d0>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35996d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35996d0>, 0, 1, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35996d0>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599790>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599790>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599790>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599790>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599790>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599790>, 0, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599790>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599790>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599790>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599790>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599790>, 1, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599790>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599790>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599790>, 0, 1, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599790>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599910>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599910>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599910>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599910>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599910>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599910>, 0, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599910>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599910>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599910>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599910>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599910>, 1, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599910>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599910>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599910>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599910>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599910>, 2, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599910>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599910>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599910>, 0, 1, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599910>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599250>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599250>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599250>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599250>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599250>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599250>, 0, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599250>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599250>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599250>, 0, 1, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599250>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599250>, 1, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599250>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599250>, 1, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599250>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x3599250>, 0, 1, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599250>, 1, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599250>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x3599250>, 1, 1, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x3599250>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35a1c90>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35a1c90>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35a1c90>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35a1c90>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35a1c90>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x35a1c90>, 0, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35a1c90>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35a1c90>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35a1c90>, 0, 1, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35a1c90>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35a1c90>, 1, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35a1c90>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35a1c90>, 1, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35a1c90>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x35a1c90>, 0, 1, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35a1c90>, 1, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35a1c90>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35a1c90>, 1, 1, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35a1c90>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 0, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 0, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 0, 1, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 1, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 1, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 0, 1, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 1, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 1, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_endpoint_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 1, 1, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 1, 0, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_interface_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 1, 1, 0)
 
DEBUG:12:05:14:DesktopService:usb.backend.libusb10:_LibUSB.get_configuration_descriptor(<usb.backend.libusb10._Device object at 0x35a1090>, 0)
 
DEBUG:12:05:14:DesktopService:dbus:Screen added for g510
 
INFO:12:05:14:DesktopService:plugins:Activating plugins
 
INFO:12:05:14:DesktopService:plugins:Activating tweak
 
INFO:12:05:14:MainThread:service:Attempting to set up BAMF
 
DEBUG:12:05:14:DesktopService:plugins:Activated plugins
 
DEBUG:12:05:14:DesktopService:dbus:Sending started up signal
 
WARNING:12:05:14:MainThread:service:BAMF not available, falling back to polling WNCK. org.freedesktop.DBus.Error.ServiceUnknown: The name org.ayatana.bamf was not provided by 
 
any .service files
 
INFO:12:05:14:StartScreeng510_0:screen:Starting g510_0.
 
INFO:12:05:14:MainThread:service:Connecting to system bus
 
INFO:12:05:14:StartScreeng510_0:screen:Attempting connection
 
INFO:12:05:14:StartScreeng510_0:plugins:Loading sysmon
 
INFO:12:05:14:StartScreeng510_0:plugins:Loaded sysmon
 
INFO:12:05:14:StartScreeng510_0:plugins:Loading profiles
 
INFO:12:05:14:MainThread:service:Seats dbus.Array([dbus.ObjectPath('/org/freedesktop/ConsoleKit/Seat1')], signature=dbus.Signature('o')) 
 
INFO:12:05:14:MainThread:service:This session /org/freedesktop/ConsoleKit/Session1 
 
INFO:12:05:14:MainThread:service:Connected to system bus
 
WARNING:12:05:14:MainThread:service:GNOME session manager not available, will not detect logout signal for clean shutdown. org.freedesktop.DBus.Error.ServiceUnknown: The name 
 
org.gnome.SessionManager was not provided by any .service files
 
INFO:12:05:14:StartScreeng510_0:plugins:Loaded profiles
 
INFO:12:05:14:StartScreeng510_0:plugins:Loading volume
 
INFO:12:05:14:StartScreeng510_0:plugins:Loaded volume
 
INFO:12:05:14:StartScreeng510_0:plugins:Loading macro-recorder
 
INFO:12:05:14:StartScreeng510_0:plugins:Loaded macro-recorder
 
INFO:12:05:14:StartScreeng510_0:plugins:Loading weather
 
INFO:12:05:14:StartScreeng510_0:plugins:Loaded weather
 
INFO:12:05:14:StartScreeng510_0:plugins:Loading menu
 
INFO:12:05:14:StartScreeng510_0:plugins:Loaded menu
 
INFO:12:05:14:StartScreeng510_0:plugins:Loading cairo-clock
 
INFO:12:05:14:StartScreeng510_0:plugins:Loaded cairo-clock
 
INFO:12:05:14:StartScreeng510_0:plugins:Started plugin manager
 
DEBUG:12:05:14:StartScreeng510_0:screen:Requesting attention '[Errno 111] Verbindungsaufbau abgelehnt'
 
DEBUG:12:05:14:StartScreeng510_0:dbus:Sending attention requested signal
 
DEBUG:12:05:14:StartScreeng510_0:dbus:Sent attention requested signal
 
DEBUG:12:05:14:StartScreeng510_0:screen:Rescheduling cycle
 
Traceback (most recent call last):
 
  File "/usr/lib64/python2.7/site-packages/gnome15/g15screen.py", line 1094, in attempt_connection
 
    self.driver.connect()
 
  File "/usr/lib64/python2.7/site-packages/gnome15/drivers/driver_g15.py", line 397, in connect
 
    self.socket.connect(("127.0.0.1", port))
 
  File "/usr/lib64/python2.7/socket.py", line 224, in meth
 
    return getattr(self._sock,name)(*args)
 
error: [Errno 111] Verbindungsaufbau abgelehnt
 
INFO:12:05:14:StartScreeng510_0:screen:Attempting connection in 5.000000
 
DEBUG:12:05:14:StartScreeng510_0:root:Queueing ReconnectTimer on default for execution in 5.000000
 
DEBUG:12:05:14:StartScreeng510_0:root:Creating job queue default with 1 workers
 
DEBUG:12:05:14:StartScreeng510_0:root:Queued ReconnectTimer
 
INFO:12:05:14:StartScreeng510_0:screen:Connection for g510_0 is complete.
 
INFO:12:05:14:StartScreeng510_0:keyboard:Starting g510_0's key handler.
 
INFO:12:05:14:StartScreeng510_0:keyboard:Starting of g510_0's key handler is complete.
 
INFO:12:05:14:StartScreeng510_0:screen:Watching GConf settings in /apps/gnome15/g510_0
 
INFO:12:05:14:StartScreeng510_0:screen:Starting for g510_0 is complete.
 
DEBUG:12:05:19:MainThread:root:Executing GTimer ReconnectTimer
 
DEBUG:12:05:19:MainThread:root:Queued task on default
 
DEBUG:12:05:19:MainThread:root:Executed GTimer ReconnectTimer
 
DEBUG:12:05:19:default:root:Running task on default
 
INFO:12:05:19:default:screen:Attempting connection
 
DEBUG:12:05:19:default:root:Cancelled GTimer ReconnectTimer
 
DEBUG:12:05:19:default:screen:Requesting attention '[Errno 111] Verbindungsaufbau abgelehnt'
 
DEBUG:12:05:19:default:dbus:Sending attention requested signal
 
DEBUG:12:05:19:default:dbus:Sent attention requested signal
 
DEBUG:12:05:19:default:screen:Rescheduling cycle
 
Traceback (most recent call last):
 
  File "/usr/lib64/python2.7/site-packages/gnome15/g15screen.py", line 1094, in attempt_connection
 
    self.driver.connect()
 
  File "/usr/lib64/python2.7/site-packages/gnome15/drivers/driver_g15.py", line 397, in connect
 
    self.socket.connect(("127.0.0.1", port))
 
  File "/usr/lib64/python2.7/socket.py", line 224, in meth
 
    return getattr(self._sock,name)(*args)
 
error: [Errno 111] Verbindungsaufbau abgelehnt
 
INFO:12:05:19:default:screen:Attempting connection in 5.000000
 
DEBUG:12:05:19:default:root:Cancelled GTimer ReconnectTimer
 
DEBUG:12:05:19:default:root:Queueing ReconnectTimer on default for execution in 5.000000
 
DEBUG:12:05:19:default:root:Queued ReconnectTimer
 
INFO:12:05:19:default:screen:Connection for g510_0 is complete.
 
DEBUG:12:05:19:default:root:Ran task on default
 
DEBUG:12:05:24:MainThread:root:Executing GTimer ReconnectTimer
 
DEBUG:12:05:24:MainThread:root:Queued task on default
 
DEBUG:12:05:24:MainThread:root:Executed GTimer ReconnectTimer
 
DEBUG:12:05:24:default:root:Running task on default
 
INFO:12:05:24:default:screen:Attempting connection
 
DEBUG:12:05:24:default:root:Cancelled GTimer ReconnectTimer
 
DEBUG:12:05:24:default:screen:Requesting attention '[Errno 111] Verbindungsaufbau abgelehnt'
 
DEBUG:12:05:24:default:dbus:Sending attention requested signal
 
DEBUG:12:05:24:default:dbus:Sent attention requested signal
 
DEBUG:12:05:24:default:screen:Rescheduling cycle
 
Traceback (most recent call last):
 
  File "/usr/lib64/python2.7/site-packages/gnome15/g15screen.py", line 1094, in attempt_connection
 
    self.driver.connect()
 
  File "/usr/lib64/python2.7/site-packages/gnome15/drivers/driver_g15.py", line 397, in connect
 
    self.socket.connect(("127.0.0.1", port))
 
  File "/usr/lib64/python2.7/socket.py", line 224, in meth
 
    return getattr(self._sock,name)(*args)
 
error: [Errno 111] Verbindungsaufbau abgelehnt
 
INFO:12:05:24:default:screen:Attempting connection in 5.000000
 
DEBUG:12:05:24:default:root:Cancelled GTimer ReconnectTimer
 
DEBUG:12:05:24:default:root:Queueing ReconnectTimer on default for execution in 5.000000
 
DEBUG:12:05:24:default:root:Queued ReconnectTimer
 
INFO:12:05:24:default:screen:Connection for g510_0 is complete.
 
DEBUG:12:05:24:default:root:Ran task on default
 
INFO:12:05:26:MainThread:service:Active application is now Firefox
 
DEBUG:12:05:29:MainThread:root:Executing GTimer ReconnectTimer
 
DEBUG:12:05:29:MainThread:root:Queued task on default
 
DEBUG:12:05:29:MainThread:root:Executed GTimer ReconnectTimer
 
DEBUG:12:05:29:default:root:Running task on default
 
INFO:12:05:29:default:screen:Attempting connection
 
DEBUG:12:05:29:default:root:Cancelled GTimer ReconnectTimer
 
DEBUG:12:05:29:default:screen:Requesting attention '[Errno 111] Verbindungsaufbau abgelehnt'
 
DEBUG:12:05:29:default:dbus:Sending attention requested signal
 
DEBUG:12:05:29:default:dbus:Sent attention requested signal
 
DEBUG:12:05:29:default:screen:Rescheduling cycle
 
Traceback (most recent call last):
 
  File "/usr/lib64/python2.7/site-packages/gnome15/g15screen.py", line 1094, in attempt_connection
 
    self.driver.connect()
 
  File "/usr/lib64/python2.7/site-packages/gnome15/drivers/driver_g15.py", line 397, in connect
 
    self.socket.connect(("127.0.0.1", port))
 
  File "/usr/lib64/python2.7/socket.py", line 224, in meth
 
    return getattr(self._sock,name)(*args)
 
error: [Errno 111] Verbindungsaufbau abgelehnt
 
INFO:12:05:29:default:screen:Attempting connection in 5.000000
 
DEBUG:12:05:29:default:root:Cancelled GTimer ReconnectTimer
 
DEBUG:12:05:29:default:root:Queueing ReconnectTimer on default for execution in 5.000000
 
DEBUG:12:05:29:default:root:Queued ReconnectTimer
 
INFO:12:05:29:default:screen:Connection for g510_0 is complete.
 
DEBUG:12:05:29:default:root:Ran task on default
 
DEBUG:12:05:34:MainThread:root:Executing GTimer ReconnectTimer
 
DEBUG:12:05:34:MainThread:root:Queued task on default
 
DEBUG:12:05:34:default:root:Running task on default
 
INFO:12:05:34:default:screen:Attempting connection
 
DEBUG:12:05:34:default:root:Cancelled GTimer ReconnectTimer
 
DEBUG:12:05:34:MainThread:root:Executed GTimer ReconnectTimer
 
DEBUG:12:05:34:default:screen:Requesting attention '[Errno 111] Verbindungsaufbau abgelehnt'
 
DEBUG:12:05:34:default:dbus:Sending attention requested signal
 
DEBUG:12:05:34:default:dbus:Sent attention requested signal
 
DEBUG:12:05:34:default:screen:Rescheduling cycle
 
Traceback (most recent call last):
 
  File "/usr/lib64/python2.7/site-packages/gnome15/g15screen.py", line 1094, in attempt_connection
 
    self.driver.connect()
 
  File "/usr/lib64/python2.7/site-packages/gnome15/drivers/driver_g15.py", line 397, in connect
 
    self.socket.connect(("127.0.0.1", port))
 
  File "/usr/lib64/python2.7/socket.py", line 224, in meth
 
    return getattr(self._sock,name)(*args)
 
error: [Errno 111] Verbindungsaufbau abgelehnt
 
INFO:12:05:34:default:screen:Attempting connection in 5.000000
 
DEBUG:12:05:34:default:root:Cancelled GTimer ReconnectTimer
 
DEBUG:12:05:34:default:root:Queueing ReconnectTimer on default for execution in 5.000000
 
DEBUG:12:05:34:default:root:Queued ReconnectTimer
 
INFO:12:05:34:default:screen:Connection for g510_0 is complete.
 
DEBUG:12:05:34:default:root:Ran task on default
 
DEBUG:12:05:39:MainThread:root:Executing GTimer ReconnectTimer
 
DEBUG:12:05:39:MainThread:root:Queued task on default
 
DEBUG:12:05:39:MainThread:root:Executed GTimer ReconnectTimer
 
DEBUG:12:05:39:default:root:Running task on default
 
INFO:12:05:39:default:screen:Attempting connection
 
DEBUG:12:05:39:default:root:Cancelled GTimer ReconnectTimer
 
DEBUG:12:05:39:default:screen:Requesting attention '[Errno 111] Verbindungsaufbau abgelehnt'
 
DEBUG:12:05:39:default:dbus:Sending attention requested signal
 
DEBUG:12:05:39:default:dbus:Sent attention requested signal
 
DEBUG:12:05:39:default:screen:Rescheduling cycle
 
Traceback (most recent call last):
 
  File "/usr/lib64/python2.7/site-packages/gnome15/g15screen.py", line 1094, in attempt_connection
 
    self.driver.connect()
 
  File "/usr/lib64/python2.7/site-packages/gnome15/drivers/driver_g15.py", line 397, in connect
 
    self.socket.connect(("127.0.0.1", port))
 
  File "/usr/lib64/python2.7/socket.py", line 224, in meth
 
    return getattr(self._sock,name)(*args)
 
error: [Errno 111] Verbindungsaufbau abgelehnt
 
INFO:12:05:39:default:screen:Attempting connection in 5.000000
 
DEBUG:12:05:39:default:root:Cancelled GTimer ReconnectTimer
 
DEBUG:12:05:39:default:root:Queueing ReconnectTimer on default for execution in 5.000000
 
DEBUG:12:05:39:default:root:Queued ReconnectTimer
 
INFO:12:05:39:default:screen:Connection for g510_0 is complete.
 
DEBUG:12:05:39:default:root:Ran task on default
 
DEBUG:12:05:44:MainThread:root:Executing GTimer ReconnectTimer
 
DEBUG:12:05:44:MainThread:root:Queued task on default
 
DEBUG:12:05:44:MainThread:root:Executed GTimer ReconnectTimer
 
DEBUG:12:05:44:default:root:Running task on default
 
INFO:12:05:44:default:screen:Attempting connection
 
DEBUG:12:05:44:default:root:Cancelled GTimer ReconnectTimer
 
DEBUG:12:05:44:default:screen:Requesting attention '[Errno 111] Verbindungsaufbau abgelehnt'
 
DEBUG:12:05:44:default:dbus:Sending attention requested signal
 
DEBUG:12:05:44:default:dbus:Sent attention requested signal
 
DEBUG:12:05:44:default:screen:Rescheduling cycle
 
Traceback (most recent call last):
 
  File "/usr/lib64/python2.7/site-packages/gnome15/g15screen.py", line 1094, in attempt_connection
 
    self.driver.connect()
 
  File "/usr/lib64/python2.7/site-packages/gnome15/drivers/driver_g15.py", line 397, in connect
 
    self.socket.connect(("127.0.0.1", port))
 
  File "/usr/lib64/python2.7/socket.py", line 224, in meth
 
    return getattr(self._sock,name)(*args)
 
error: [Errno 111] Verbindungsaufbau abgelehnt
 
INFO:12:05:44:default:screen:Attempting connection in 5.000000
 
DEBUG:12:05:44:default:root:Cancelled GTimer ReconnectTimer
 
DEBUG:12:05:44:default:root:Queueing ReconnectTimer on default for execution in 5.000000
 
DEBUG:12:05:44:default:root:Queued ReconnectTimer
 
INFO:12:05:44:default:screen:Connection for g510_0 is complete.
 
DEBUG:12:05:44:default:root:Ran task on default
 
^CINFO:12:05:46:MainThread:service:Got SIGINT signal, shutting down
 
INFO:12:05:46:MainThread:service:Shutting down
 
DEBUG:12:05:46:MainThread:uinput:Closing UINPUT device mouse
 
DEBUG:12:05:46:MainThread:uinput:Closing UINPUT device keyboard
 
DEBUG:12:05:46:MainThread:uinput:Closing UINPUT device joystick
 
DEBUG:12:05:46:MainThread:uinput:Closing UINPUT device digital-joystick
 
INFO:12:05:46:MainThread:plugins:De-activating plugins
 
DEBUG:12:05:46:MainThread:plugins:De-activating tweak
 
INFO:12:05:46:MainThread:plugins:De-activated plugins
 
INFO:12:05:46:MainThread:service:Stopping file change notification
 
INFO:12:05:46:MainThread:service:Informing listeners we are stopping
 
DEBUG:12:05:46:MainThread:dbus:Sending stopping down signal
 
INFO:12:05:46:MainThread:service:Stopping screens
 
INFO:12:05:46:MainThread:service:Checking state of 2 devices
 
INFO:12:05:46:CheckDeviceStateg510_0:service:EN device g510_0 = False = <gnome15.g15screen.G15Screen instance at 0x35aeb90>
 
INFO:12:05:46:CheckDeviceStateg510_0:service:Disabling device g510_0
 
INFO:12:05:46:CheckDeviceStateg510_0:screen:Stopping screen for g510_0
 
INFO:12:05:46:CheckDeviceStateg510_0:keyboard:Stopping key handler for g510_0
 
INFO:12:05:46:CheckDeviceStateg510_0:keyboard:Stopped key handler for g510_0
 
DEBUG:12:05:46:CheckDeviceStateg510_0:dbus:Screen removed for g510
 
INFO:12:05:46:CheckDeviceStateg510_0:service:Disabled device g510_0
 
INFO:12:05:46:CheckDeviceStatevirtual_0:service:EN device virtual_0 = False = None
 
INFO:12:05:46:MainThread:service:Screens stopped
 
INFO:12:05:46:MainThread:service:Stopping all schedulers
 
INFO:12:05:46:MainThread:jobs:Stopping all queues
 
INFO:12:05:46:MainThread:jobs:Stopping queue default
 
INFO:12:05:46:MainThread:jobs:Stopped queue default
 
DEBUG:12:05:46:default:root:Running task on default
 
DEBUG:12:05:46:MainThread:dbus:Sending stopped down signal
 
DEBUG:12:05:46:default:root:Ran task on default
 
INFO:12:05:46:MainThread:service:Quiting loop
 
INFO:12:05:46:default:jobs:Exited queue default
 
INFO:12:05:46:MainThread:service:Stopping DBus service
 
INFO:12:05:46:MainThread:root:Exited GLib loop
 

	
dev-libs/libg15-gnome15/libg15-gnome15-1.3.0.ebuild
Show inline comments
 
new file 100644
 
EAPI="3"
 

	
 
MY_S="libg15-${PV}"
 

	
 
DESCRIPTION="This is a library to handle the LCD and extra keys on the Logitech G15 Gaming
 
Keyboard and similar devices."
 
HOMEPAGE="http://www.gnome15.org/"
 
SRC_URI="http://www.gnome15.org/downloads/temp/libg15-${PV}-with-gnome15-enhancements-g510-fixes.tar.gz"
 

	
 
LICENSE="GPL-3"
 
SLOT="0"
 
KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
 
IUSE=""
 

	
 
RDEPEND="dev-libs/libusb"
 
DEPEND="${RDEPEND}"
 

	
 
src_configure() {
 
	cd ${MY_S} && econf || die "econf failed"
 
}
 

	
 
src_compile() {
 
	cd ${MY_S} && emake || die "emake failed"
 
}
 

	
 
src_install() {
 
	cd ${MY_S} && emake DESTDIR="${D}" install || die "emake install failed"
 
}
 

	
 

	
 

	
dev-perl/Acme-Damn/Acme-Damn-0.04.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2009 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
MODULE_AUTHOR="IBB"
 
inherit perl-module
 

	
 
DESCRIPTION="'Unbless' Perl objects"
 

	
 
SLOT="0"
 
KEYWORDS="~x86"
 
IUSE=""
 

	
 
SRC_TEST="do"
 

	
 
COMMON="dev-lang/perl"
 
DEPEND="${COMMON}"
 
RDEPEND="${COMMON}
 
	dev-perl/Test-Exception"
dev-perl/Acme-Damn/Manifest
Show inline comments
 
new file 100644
 
DIST Acme-Damn-0.04.tar.gz 6134 RMD160 0a9bcd57cabab4e198f67a612748a59f8b0f1b0d SHA1 2f9f3d44f947b1f78195aa1d589e237da3051838 SHA256 1765c02fc886b636e00dd57c341f447863a57b40978c2e22a88f67fc27bbec9d
 
EBUILD Acme-Damn-0.04.ebuild 336 RMD160 184918ac16777969ed566ddcdb9c52a9a4c31c66 SHA1 169cc39a732d7e5b4612e2b5818167e2e5a5d7c3 SHA256 6d4d5731ba61a2cae67956480b41861d8a2352c6fa14d3f55e13466937729f61
dev-perl/forks/Manifest
Show inline comments
 
new file 100644
 
DIST forks-0.33.tar.gz 110777 RMD160 2e5f8da249cca7fee7108f9c6e23c9a90659e229 SHA1 99531ded1068fa9c0046512815a7df89e254d141 SHA256 e946baccef3b37be05e24bf9b6a52e0e05a0805c1c6c4f09be8ee7ed62112017
 
EBUILD forks-0.33.ebuild 466 RMD160 109f39958f416b2e79614c4944e2adf71a01ff99 SHA1 f04190c39f2c6e69529c919809bf14f04ae0be2b SHA256 035f1d38d60810b7f7a9254fd5345c1ef1de6bfc061a061e03586f5b0531a531
dev-perl/forks/forks-0.33.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2009 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
MODULE_AUTHOR="RYBSKEJ"
 
inherit perl-module
 

	
 
DESCRIPTION="drop-in replacement for Perl threads using fork()"
 

	
 
SLOT="0"
 
KEYWORDS="~x86"
 
IUSE=""
 

	
 
SRC_TEST="do"
 

	
 
COMMON="dev-lang/perl"
 
RDEPEND="${COMMON}"
 
DEPEND="dev-perl/extutils-depends
 
	dev-perl/extutils-pkgconfig
 
	dev-perl/Devel-Symdump
 
	dev-perl/Acme-Damn
 
	dev-perl/Sys-SigAction
 
	${COMMON}"
dev-util/papi/Manifest
Show inline comments
 
new file 100644
 
DIST papi-4.1.1.tar.gz 3596962 RMD160 a243a807400ad0401943477d323ee5ac728dca4e SHA1 c287052a371fb69c09c1349cd403618de0fdda47 SHA256 8dcd7bbb9edf9f00df397315cd5ae4be41423357733decf1106ff132a81006d0
 
EBUILD papi-4.1.1.ebuild 1191 RMD160 2c61f015b7b6f23ba3cca2e193f13a74334f8fbb SHA1 609dfc95cd8621a93eafd220a4be4a34051eab4d SHA256 f40bc0b82d20d4511346adbe89828af0de20a15deef5dc65b2c5e6b1ec0dedea
dev-util/papi/papi-4.1.1.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2007 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
inherit multilib
 

	
 
DESCRIPTION="Performance Application Programming Interface"
 
HOMEPAGE="http://icl.cs.utk.edu/papi/"
 
SRC_URI="http://icl.cs.utk.edu/projects/papi/downloads/${P}.tar.gz"
 

	
 
LICENSE="BSD"
 
SLOT="0"
 
KEYWORDS="~amd64 ~x86"
 
IUSE="debug"
 

	
 
DEPEND=">=dev-util/perfctr-2.6.37"
 
RDEPEND="${DEPEND}"
 

	
 
S="${WORKDIR}"/${P}/src
 

	
 
src_compile() {
 
	local myconf
 
	if use debug; then
 
		myconf="${myconf} --with-debug=yes"
 
	else
 
		myconf="${myconf} --with-debug=no"
 
	fi
 
	econf ${myconf} \
 
		--with-perfctr-incdir=/usr/include \
 
		--with-perfctr-libdir=/usr/$(get_libdir) \
 
		--with-perfctr-prefix=/usr \
 
		|| die "econf failed"
 
	emake || die "emake failed"
 
}
 

	
 
src_install() {
 
	dodir /usr/$(get_libdir)
 
	# there's something wrong inside those makefiles,
 
	# so lets use the old and ugly way
 
	emake \
 
		DESTDIR="${D}" \
 
		LIBDIR="/usr/$(get_libdir)" \
 
		MANDIR="/usr/share/man" \
 
		install || die "install failed"
 
}
 

	
 
src_test() {
 
	emake check
 
	emake test || die "initial test failed"
 
	#if use fulltest; then
 
	#	./run_tests.sh || ewarn "some tests failed, continuing anyway"
 
	#fi
 
}
dev-util/perfctr/Manifest
Show inline comments
 
new file 100644
 
AUX udev-rules.patch 328 RMD160 c8299db2eb7e8c08fc9c078e11ce46adfe9cb781 SHA1 e270ed440d1937e0ed8b44d816f34fe72953afa0 SHA256 c6224b9db6ead5c0628fed4d88bc30a8d02c1673a24bb29b1c8f701742e43ad2
 
DIST perfctr-2.6.42.tar.gz 268074 RMD160 4d49441061695690fe3c5ecfec79fac7d9bed6e6 SHA1 6909d46b002e34020c337cc16f715f9e493d99e9 SHA256 b195f0a9894445d7e4bb0540a7c9fa2099fa9d546c1850b3ac150cbe64704b7d
 
EBUILD perfctr-2.6.42.ebuild 1506 RMD160 ca3df070bd72afc2586841cdc3e75c1639ecb3ea SHA1 cf8a6542c80b8e07b1d6cd41b2d2df521b638fcc SHA256 03030844439b5b2378d645ed6c0a208379e594edd97cd761277858f9fa0c026a
dev-util/perfctr/files/udev-rules.patch
Show inline comments
 
new file 100644
 
diff -urNp perfctr-2.6.38.orig/etc/perfctr.rules perfctr-2.6.38/etc/perfctr.rules
 
--- perfctr-2.6.38.orig/etc/perfctr.rules	2007-04-09 14:50:36.000000000 +0200
 
+++ perfctr-2.6.38/etc/perfctr.rules	2009-02-17 19:44:05.524194241 +0100
 
@@ -1 +1 @@
 
-KERNEL=="perfctr",		MODE="0644"
 
+KERNEL=="perfctr",		MODE="0660", GROUP="perfctr"
dev-util/perfctr/perfctr-2.6.42.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2007 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
inherit eutils versionator toolchain-funcs multilib linux-info
 

	
 
DESCRIPTION="Linux Performance Counters"
 
HOMEPAGE="http://user.it.uu.se/~mikpe/linux/perfctr/"
 
SRC_URI="http://user.it.uu.se/~mikpe/linux/perfctr/$(get_version_component_range 1-2)/${P}.tar.gz"
 

	
 
LICENSE="LGPL-2.1"
 
SLOT="0"
 
KEYWORDS="~amd64 ~x86"
 
IUSE=""
 

	
 
DEPEND=""
 
RDEPEND=""
 

	
 
CONFIG_CHECK="~PERFCTR"
 
ERROR_PERFCTR="Your kernel needs support for perfctr to use this package!"
 
MY_SRCDIR="${D}/usr/src"
 
MY_SHAREDIR="${D}/usr/share/${P}"
 
MY_DIR="${P}"
 

	
 
pkg_setup() {
 
	enewgroup perfctr
 
}
 

	
 
src_unpack() {
 
	unpack "${A}"
 

	
 
	cd "${S}"
 
	epatch "${FILESDIR}"/udev-rules.patch
 
}
 

	
 
src_compile() {
 
	emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" || die "emake failed"
 
}
 

	
 
src_install() {
 
	emake \
 
		PREFIX="${D}/usr" \
 
		BINDIR="${D}/usr/bin" \
 
		LIBDIR="${D}/usr/$(get_libdir)" \
 
		INCLDIR="${D}/usr/include" \
 
		ETCDIR="${D}/etc" \
 
		install \
 
		|| die "emake install failed"
 

	
 
	# Cleanup
 
	mv "${D}"/etc/rc.d/init.d "${D}"/etc/
 
	rm -rf "${D}"/etc/rc.d
 
#	mv "${D}"/etc/udev.d "${D}"/etc/udev
 

	
 
	mkdir -p "${MY_SRCDIR}"
 
	cd "${MY_SRCDIR}"
 
	unpack "${A}"
 
	cd "${MY_DIR}"
 
	rm -rf usr.lib etc Makefile perfctr.spec
 
	mkdir -p "${MY_SHAREDIR}"
 
	mv examples CHANGES COPYING OTHER TODO "${MY_SHAREDIR}"/
 
	cp INSTALL README "${MY_SHAREDIR}"/
 
}
 

	
 
pkg_postinst() {
 
	elog
 
	elog "To use the PerfCtr framework add your user to the perfctr group."
 
	elog
 
}
games-emulation/dolphin-emu/Manifest
Show inline comments
 
new file 100644
 
DIST dolphin-3.5-src.zip 28805192 SHA256 b95cb6f487c1f77471c08cfb52bc9844bb2385f0ffd8fb45416b4c5095eb8d9a SHA512 4e607f9ed15c19967382a178c725a015fa8e2db4f624e9b54c50af31bdbae333989be8397cd32d0aa3b5283caf85a67e5529583be4423ada5c6f098ca7c309ef WHIRLPOOL a840f15153eff2edb5f2c75410e6fed3cca7fbffe2eb05bbf6441b914f7b27c6d9ee90de27fb9a773b601c44311828b95e3c597000cf607ff12d1141266e50bc
 
EBUILD dolphin-emu-3.5.ebuild 4036 SHA256 bd8aba47af7e6ea08ac9c61fc2dbebe92533b00af5cd2ddfd1a641b02d0f76c7 SHA512 0ef5a078f4a0d1f7bd803bf2e6c194f43e5b00ad245969ce9df664bd719dff9aadb8003842aaae77583dd5692c81633235267fc0aca84abeb135e56b7d2c0dc1 WHIRLPOOL 12a1872a78eec60f3d3a2beb5c25d7645ab451e120a73b4f577763bf9671f8c1699e8ec89c8e28da14ded82dcda7b2b29d2f9998de532c2f8a7bf7817125d593
games-emulation/dolphin-emu/dolphin-emu-3.5.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2012 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
EAPI="5"
 

	
 
WX_GTK_VER="2.9"
 

	
 
#EGIT_REPO_URI="https://code.google.com/p/dolphin-emu/"
 
#EGIT_COMMIT="${PV}"
 

	
 
inherit cmake-utils eutils flag-o-matic git-2 pax-utils toolchain-funcs wxwidgets games
 

	
 
DESCRIPTION="Free, open source emulator for Nintendo GameCube and Wii"
 
HOMEPAGE="http://www.dolphin-emu.com/"
 
SRC_URI="http://dolphin-emu.googlecode.com/files/dolphin-${PV}-src.zip"
 

	
 
LICENSE="GPL-2"
 
SLOT="0"
 
KEYWORDS="~amd64 ~x86 ~ppc ~ppc64"
 

	
 
# NOTES:
 
# - wxWidgets support relies on 2.9 branch, which is currently masked in main tree
 
IUSE="alsa ao bluetooth doc encode +lzo openal opengl openmp portaudio pulseaudio wxwidgets"
 

	
 
RDEPEND=">=media-libs/glew-1.5
 
	>=media-libs/libsdl-1.2[joystick]
 
	<media-libs/libsfml-2.0
 
	sys-libs/readline
 
	x11-libs/libXext
 
	x11-libs/libXrandr
 
	ao? ( media-libs/libao )
 
	alsa? ( media-libs/alsa-lib )
 
	bluetooth? ( net-wireless/bluez )
 
	encode? ( media-video/ffmpeg[encode] )
 
	lzo? ( dev-libs/lzo )
 
	openal? ( media-libs/openal )
 
	opengl? ( virtual/opengl )
 
	portaudio? ( media-libs/portaudio )
 
	pulseaudio? ( media-sound/pulseaudio )
 
	wxwidgets? ( x11-libs/wxGTK:2.9 )"
 
DEPEND="${RDEPEND}
 
	sys-devel/gettext
 
	virtual/pkgconfig
 
	media-gfx/nvidia-cg-toolkit"
 

	
 
S="${WORKDIR}/dolphin-${PV}"
 

	
 
src_unpack() {
 
	unpack "dolphin-${PV}-src.zip"
 
	cd ${S}	
 
}
 

	
 
src_prepare() {
 
	# Remove automagic dependencies
 
	if use !alsa; then
 
		sed -i -e '/^include(FindALSA/d' CMakeLists.txt || die
 
	fi
 
	if use !ao; then
 
		 sed -i -e '/^check_lib(AO/d' CMakeLists.txt || die
 
	fi
 
	if use !bluetooth; then
 
		sed -i -e '/^check_lib(BLUEZ/d' CMakeLists.txt || die
 
	fi
 
	if use !openal; then
 
		sed -i -e '/^include(FindOpenAL/d' CMakeLists.txt || die
 
	fi
 
	if use !portaudio; then
 
		sed -i -e '/CMAKE_REQUIRED_LIBRARIES portaudio/d' CMakeLists.txt || die
 
	fi
 
	if use !pulseaudio; then
 
		sed -i -e '/^check_lib(PULSEAUDIO/d' CMakeLists.txt || die
 
	fi
 

	
 
	# remove bundled libs, except 
 
	# - SOIL, which has not public sources now
 
	# - Bochs_disasm (do not know what is it)
 
	# - CLRun ( some part of OpenCL )
 
	mv Externals/SOIL . || die
 
	mv Externals/Bochs_disasm . || die
 
	mv Externals/CLRun . || die
 
	rm -r Externals/* || die 'failed to remove bundled libs'
 
	mv Bochs_disasm Externals || die
 
	mv CLRun Externals || die
 
	mv SOIL Externals || die
 
}
 

	
 
src_configure() {
 
	# filter problematic compiler flags
 
	filter-flags -flto -fwhole-program
 
	append-flags -fno-pie
 

	
 
	if $($(tc-getPKG_CONFIG) --exists nvidia-cg-toolkit); then
 
		append-flags "$($(tc-getPKG_CONFIG) --cflags nvidia-cg-toolkit)"
 
	else
 
		append-flags "-I/opt/nvidia-cg-toolkit/include"
 
	fi
 

	
 
	if $($(tc-getPKG_CONFIG) --exists nvidia-cg-toolkit); then
 
		append-ldflags "$($(tc-getPKG_CONFIG) --libs-only-L nvidia-cg-toolkit)"
 
	else
 
		append-ldflags "-L/opt/nvidia-cg-toolkit/lib"
 
	fi
 

	
 
	local mycmakeargs=(
 
		"-DDOLPHIN_WC_REVISION=${PV}"
 
		"-DCMAKE_INSTALL_PREFIX=${GAMES_PREFIX}"
 
		"-Dprefix=${GAMES_PREFIX}"
 
		"-Ddatadir=${GAMES_DATADIR}/${PN}"
 
		"-Dplugindir=$(games_get_libdir)/${PN}"
 
		$(cmake-utils_use !wxwidgets DISABLE_WX)
 
		$(cmake-utils_use encode ENCODE_FRAMEDUMPS)
 
		$(cmake-utils_use openmp OPENMP)
 
	)
 

	
 
	cmake-utils_src_configure
 
}
 

	
 
src_install() {
 
	cmake-utils_src_install
 

	
 
	# set binary name
 
	local binary="${PN}"
 
	use wxwidgets || binary+="-nogui"
 

	
 
	# install documentation as appropriate
 
	dodoc Readme.txt
 
	if use doc; then
 
		doins -r docs
 
	fi
 

	
 
	# create menu entry for GUI builds
 
	if use wxwidgets; then
 
		doicon Source/Core/DolphinWX/resources/Dolphin.xpm
 
		make_desktop_entry "${PN}" "Dolphin" "Dolphin" "Game;Emulator"
 
	fi
 

	
 
	prepgamesdirs
 
}
 

	
 
pkg_postinst() {
 
	# hardened fix
 
	pax-mark -m "${EPREFIX}/usr/games/bin/${PN}"
 

	
 
	if ! use portaudio; then
 
		ewarn "If you need to use your microphone for a game, rebuild with USE=portaudio"
 
	fi
 
	if ! use wxwidgets; then
 
		ewarn "Note: It is not currently possible to configure Dolphin without the GUI."
 
		ewarn "Rebuild with USE=wxwidgets to enable the GUI if needed."
 
	fi
 

	
 
	games_pkg_postinst
 
}
games-emulation/qmc2/Manifest
Show inline comments
 
new file 100644
 
AUX qmc2-fullscreen-native-res.patch 2016 RMD160 31317e3b48062de99642e9d99798bc26ee15898d SHA1 a56c83d35e6cf585a49827c3ed3422fd00b8bde4 SHA256 6774411666b68d93d1f26d3d4dd223ca64c6106e0b6729e73996e614cf520f57
 
AUX qmc2-new-makefile.patch 1352 RMD160 5d711f12b19cea39cc5b1acf627fdd0d6168155f SHA1 ccff4f94fb2b09d01318bf56cdb6e39143bc1276 SHA256 7ac029d82774d80d45ec7bfbdf903f0abf1672426601aae3fd34cb30e88b9220
 
DIST qmc2-0.2.b16.tar.bz2 2782301 RMD160 03cf4847b6462a5ee7c5a2cf2deb26fabca7b7a0 SHA1 fdac3fa89995cc7ffc03adf371ed21ecf07b6093 SHA256 b923e4693379337bb0c809317b818e7015e8ed9a16a1e029bf34a811c56834c1
 
EBUILD qmc2-0.2_beta16.ebuild 1576 RMD160 218dfa87294486bb57c8ff4e12f1ddad5af5a86c SHA1 984141624ff1dc2123bd1b9b0096134d4a5c3036 SHA256 733d9edc14423691b0a9694c41f2c0676497caa03527a9ccc0cd0343fa2aeea3
games-emulation/qmc2/files/qmc2-fullscreen-native-res.patch
Show inline comments
 
new file 100644
 
--- data/opt/SDLMAME/template.xml	2008-11-02 12:29:45.000000000 +0100
 
+++ data/opt/SDLMAME/template.xml	2008-11-06 09:35:19.000000000 +0100
 
@@ -227,6 +227,12 @@
 
       <description lang="pl" text="Pokaż wydajność obrazu SDL"/>
 
       <description lang="fr" text="Affiche les performances video de SDL"/>
 
     </option>
 
+    <option name="nativeres" type="bool" default="false">
 
+      <description lang="us" text="UNOFFICIAL: enable native game resolutions in fullscreen mode (-video soft only)"/>
 
+      <description lang="de" text="INOFFIZIELL: Native Spiel-Auflösungen im Vollbildmodus verwenden (nur mit -video soft)"/>
 
+      <description lang="pl" text="NIEOFICJALNE: włącz natywne rozdzielczości gier w trybie pełnoekranowym (tylko z -video soft)"/>
 
+      <description lang="fr" text="NON OFFICIEL: active la résolution native du jeu en plein écran (-video soft uniquement)"/>
 
+    </option>
 
   </section>
 
   <section name="rotation">
 
     <description lang="us" text="Rotation"/>
 
--- data/opt/SDLMESS/template.xml	2008-10-31 23:07:37.000000000 +0100
 
+++ data/opt/SDLMESS/template.xml	2008-11-08 00:18:27.000000000 +0100
 
@@ -232,6 +232,12 @@
 
       <description lang="pl" text="Pokaż wydajność obrazu SDL"/>
 
       <description lang="fr" text="Affiche les performances video de SDL"/>
 
     </option>
 
+    <option name="nativeres" type="bool" default="false">
 
+      <description lang="us" text="UNOFFICIAL: enable native game resolutions in fullscreen mode (-video soft only)"/>
 
+      <description lang="de" text="INOFFIZIELL: Native Spiel-Auflösungen im Vollbildmodus verwenden (nur mit -video soft)"/>
 
+      <description lang="pl" text="NIEOFICJALNE: włącz natywne rozdzielczości gier w trybie pełnoekranowym (tylko z -video soft)"/>
 
+      <description lang="fr" text="NON OFFICIEL: active la résolution native du jeu en plein écran (-video soft uniquement)"/>
 
+    </option>
 
   </section>
 
   <section name="rotation">
 
     <description lang="us" text="Rotation"/>
games-emulation/qmc2/files/qmc2-new-makefile.patch
Show inline comments
 
new file 100644
 
--- qmc2/Makefile.orig	2009-01-30 18:22:40.000000000 +0000
 
+++ qmc2/Makefile	2009-01-30 18:27:21.000000000 +0000
 
@@ -272,7 +272,7 @@ endif
 
 
 
 install: bin
 
 	@echo "Installing QMC2 v$(VERSION)"
 
-	@$(MKDIR) $(DESTDIR)/$(PREFIX)/bin $(DESTDIR)/$(PREFIX)/share/$(PROJECT) $(DESTDIR)/$(SYSCONFDIR)/$(PROJECT)
 
+	@$(MKDIR) $(DESTDIR)/$(PREFIX)/bin $(DESTDIR)/$(DATADIR)/$(PROJECT) $(DESTDIR)/$(SYSCONFDIR)/$(PROJECT)
 
 	@$(RM) -f $(DESTDIR)/$(PREFIX)/bin/$(PROJECT)
 
 	@$(RSYNC) --exclude '*svn*' ./$(TARGET_NAME) $(DESTDIR)/$(PREFIX)/bin
 
 	@(cd $(DESTDIR)/$(PREFIX)/bin/ && $(LN) -s $(TARGET_NAME) $(PROJECT))
 
@@ -285,10 +285,10 @@ install: bin
 
 	@if [ -f $(GLOBAL_QMC2_INI) ] ; then \
 
 	  echo "Preserving system-wide configuration in $(GLOBAL_QMC2_INI)" ; \
 
 	  echo "Installing new system-wide configuration as $(GLOBAL_QMC2_INI).new" ; \
 
-	  $(SED) -e "s_DATADIR_$(DATADIR)_g" < ./inst/$(PROJECT).ini.template > $(GLOBAL_QMC2_INI).new ; \
 
+	  $(SED) -e "s:DATADIR:$(DATADIR):g" < ./inst/$(PROJECT).ini.template > $(GLOBAL_QMC2_INI).new ; \
 
 	else \
 
 	  echo "Installing system-wide configuration as $(GLOBAL_QMC2_INI)" ; \
 
-	  $(SED) -e "s_DATADIR_$(DATADIR)_g" < ./inst/$(PROJECT).ini.template > $(GLOBAL_QMC2_INI) ; \
 
+	  $(SED) -e "s:DATADIR:$(DATADIR):g" < ./inst/$(PROJECT).ini.template > $(GLOBAL_QMC2_INI) ; \
 
 	fi
 
 	@echo "Installation complete"
 
 
games-emulation/qmc2/qmc2-0.2_beta16.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2008 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
inherit eutils qt4 games
 

	
 
MY_PV=${PV/_beta/.b}
 

	
 
DESCRIPTION="An MAME frontend for SDLMAME"
 
HOMEPAGE="http://www.mameworld.net/mamecat/"
 
SRC_URI="mirror://sourceforge/${PN}/${PN}-${MY_PV}.tar.bz2"
 

	
 
EAPI="1"
 

	
 
LICENSE="GPL-2"
 
SLOT="0"
 
KEYWORDS="~x86 ~amd64"
 
IUSE="debug joystick opengl phonon"
 

	
 
DEPEND="x11-libs/qt-gui:4
 
	phonon? ( x11-libs/qt-phonon:4 )
 
	joystick? ( media-libs/libsdl )
 
	opengl? ( virtual/opengl )"
 

	
 
RDEPEND="${DEPEND}
 
	games-emulation/sdlmame"
 

	
 
S="${WORKDIR}/${PN}"
 

	
 
QT4_BUILT_WITH_USE_CHECK="accessibility"
 

	
 
src_unpack() {
 
	unpack ${A}
 
	cd ${S}
 

	
 
	epatch "${FILESDIR}/${PN}-fullscreen-native-res.patch"
 
}
 

	
 
src_compile() {
 
	## This is not as it appears, ARCH means something different to qmc2's Makefile
 
	## then it means to the portage/portage-compatible package manager
 
	sed -ie 's%ifndef ARCH%ifdef ARCH%' Makefile
 

	
 
	# Should really use GAMES_DATADIR, but then it bombs out
 
	FLAGS="QTDIR=/usr DESTDIR=${D} PREFIX=${GAMES_PREFIX} DATADIR=${GAMES_DATADIR} CTIME=0"
 

	
 
	use debug || FLAGS="${FLAGS} DEBUG=0"
 
	use joystick && FLAGS="${FLAGS} JOYSTICK=1"
 
	use opengl && FLAGS="${FLAGS} OPENGL=1"
 
	use phonon || FLAGS="${FLAGS} PHONON=0"
 
	emake ${FLAGS} || die "make failed"
 
}
 

	
 
src_install() {
 
	emake ${FLAGS} install || die "make install failed"
 

	
 
	## Not a big fan of doing this, but it's necessary due to build system
 
	sed -ie "s%${D}%/%g" "${D}etc/${PN}/${PN}.ini" 
 
	rm "${D}etc/${PN}/${PN}.inie"
 
	make_desktop_entry ${PN}
 
	
 
	prepgamesdirs
 
}
licenses/APL
Show inline comments
 
new file 100644
 
ADAPTIVE PUBLIC LICENSE Version 1.0 
 

	
 
THE LICENSED WORK IS PROVIDED UNDER THE TERMS OF THIS ADAPTIVE PUBLIC
 
LICENSE ("LICENSE"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE
 
LICENSED WORK CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS LICENSE AND
 
ITS TERMS, WHETHER OR NOT SUCH RECIPIENT READS THE TERMS OF THIS
 
LICENSE. "LICENSED WORK" AND "RECIPIENT" ARE DEFINED BELOW.
 

	
 
IMPORTANT NOTE: This License is "adaptive", and the generic version or
 
another version of an Adaptive Public License should not be relied upon
 
to determine your rights and obligations under this License. You must
 
read the specific Adaptive Public License that you receive with the
 
Licensed Work, as certain terms are defined at the outset by the
 
Initial Contributor.
 

	
 
See Section 2.2 below, Exhibit A attached, and any Suppfile.txt
 
accompanying this License to determine the specific adaptive features
 
applicable to this License. For example, without limiting the
 
foregoing, (a) for selected choice of law and jurisdiction see Part 3
 
of Exhibit A; (b) for the selected definition of Third Party see Part 4
 
of Exhibit A; and (c) for selected patent licensing terms (if any) see
 
Section 2.2 below and Part 6 of Exhibit A.
 

	
 
1. DEFINITIONS.
 

	
 
    1.1. "CONTRIBUTION" means:
 

	
 
        (a) In the case of the Initial Contributor, the Initial Work
 
        distributed under this License by the Initial Contributor; and
 

	
 
        (b) In the case of each Subsequent Contributor, the Subsequent
 
        Work originating from and distributed by such Subsequent
 
        Contributor.
 

	
 
    1.2. "DESIGNATED WEB SITE" means the web site having the URL
 
    identified in Part 1 of Exhibit A, which URL may be changed by the
 
    Initial Contributor by posting on the current Designated Web Site
 
    the new URL for at least sixty (60) days.
 

	
 
    1.3. "DISTRIBUTOR" means any Person that distributes the Licensed
 
    Work or any portion thereof to at least one Third Party.
 

	
 
    1.4. "ELECTRONIC DISTRIBUTION MECHANISM" means any mechanism
 
    generally accepted in the software development community for the
 
    electronic transfer of data.
 

	
 
    1.5. "EXECUTABLE" means the Licensed Work in any form other than
 
    Source Code.
 

	
 
    1.6. "GOVERNING JURISDICTION" means the state, province or other
 
    legal jurisdiction identified in Part 3 of Exhibit A.
 

	
 
    1.7. "INDEPENDENT MODULE" means a separate module of software
 
    and/or data that is not a derivative work of or copied from the
 
    Licensed Work or any portion thereof. In addition, a module does
 
    not qualify as an Independent Module but instead forms part of the
 
    Licensed Work if the module: (a) is embedded in the Licensed Work;
 
    (b) is included by reference in the Licensed Work other than by a
 
    function call or a class reference; or (c) must be included or
 
    contained, in whole or in part, within a file directory or
 
    subdirectory actually containing files making up the Licensed Work.
 

	
 
    1.8. "INITIAL CONTRIBUTOR" means the Person or entity identified as
 
    the Initial Contributor in the notice required by Part 1 of Exhibit
 
    A.
 

	
 
    1.9. "INITIAL WORK" means the initial Source Code, object code (if
 
    any) and documentation for the computer program identified in Part
 
    2 of Exhibit A, as such Source Code, object code and documentation
 
    is distributed under this License by the Initial Contributor.
 

	
 
    1.10. "LARGER WORK" means a work that combines the Licensed Work or
 
    portions thereof with code not governed by this License.
 

	
 
    1.11. "LICENSED WORK" means the Initial Work and/or any Subsequent
 
    Work, in each case including portions thereof.
 

	
 
    1.12. "LICENSE NOTICE" has the meaning assigned in Part 5 of
 
    Exhibit A.
 

	
 
    1.13. "MODIFICATION" or "MODIFICATIONS" means any change to and/or
 
    addition to the Licensed Work.
 

	
 
    1.14. "PERSON" means an individual or other legal entity, including
 
    a corporation, partnership or other body.
 

	
 
    1.15. "RECIPIENT" means any Person who receives or obtains the
 
    Licensed Work under this License (by way of example, without
 
    limiting the foregoing, any Subsequent Contributor or Distributor).
 

	
 
    1.16. "SOURCE CODE" means the source code for a computer program,
 
    including the source code for all modules and components of the
 
    computer program, plus any associated interface definition files,
 
    and scripts used to control compilation and installation of an
 
    executable.
 

	
 
    1.17. "SUBSEQUENT CONTRIBUTOR" means any Person that makes or
 
    contributes to the making of any Subsequent Work and that
 
    distributes that Subsequent Work to at least one Third Party.
 

	
 
    1.18. "SUBSEQUENT WORK" means a work that has resulted or arises
 
    from changes to and/or additions to:
 

	
 
        (a) the Initial Work;
 

	
 
        (b) any other Subsequent Work; or
 

	
 
        (c) to any combination of the Initial Work and any such other
 
        Subsequent Work;
 

	
 
        where such changes and/or additions originate from a Subsequent
 
        Contributor. A Subsequent Work will "originate" from a
 
        Subsequent Contributor if the Subsequent Work was a result of
 
        efforts by such Subsequent Contributor (or anyone acting on
 
        such Subsequent Contributor's behalf, such as, a contractor or
 
        other entity that is engaged by or under the direction of the
 
        Subsequent Contributor). For greater certainty, a Subsequent
 
        Work expressly excludes and shall not capture within its
 
        meaning any Independent Module.
 

	
 
    1.19. "SUPPLEMENT FILE" means a file distributed with the Licensed
 
    Work having a file name "suppfile.txt".
 

	
 
    1.20. "THIRD PARTY" has the meaning assigned in Part 4 of Exhibit
 
    A.
 

	
 
2. LICENSE.
 

	
 
    2.1. COPYRIGHT LICENSE FROM INITIAL AND SUBSEQUENT CONTRIBUTORS.
 

	
 
        (a) Subject to the terms of this License, the Initial
 
        Contributor hereby grants each Recipient a world-wide,
 
        royalty-free, non-exclusive copyright license to:
 

	
 
            (i) reproduce, prepare derivative works of, publicly
 
            display, publicly perform, distribute and sublicense the
 
            Initial Work; and
 

	
 
            (ii) reproduce, publicly display, publicly perform,
 
            distribute, and sublicense any derivative works (if any)
 
            prepared by Recipient;
 

	
 
        in Source Code and Executable form, either with other
 
        Modifications, on an unmodified basis, or as part of a Larger
 
        Work.
 

	
 
        (b) Subject to the terms of this License, each Subsequent
 
        Contributor hereby grants each Recipient a world-wide,
 
        royalty-free, non-exclusive copyright license to:
 

	
 
            (i) reproduce, prepare derivative works of, publicly
 
            display, publicly perform, distribute and sublicense the
 
            Subsequent Work of such Subsequent Contributor; and
 

	
 
            (ii) reproduce, publicly display, publicly perform,
 
            distribute, and sublicense any derivative works (if any)
 
            prepared by Recipient;
 

	
 
        in Source Code and Executable form, either with other
 
        Modifications, on an unmodified basis, or as part of a Larger
 
        Work.
 

	
 
    2.2. PATENT LICENSE FROM INITIAL AND SUBSEQUENT CONTRIBUTORS.
 

	
 
        (a) This License does not include or grant any patent license
 
        whatsoever from the Initial Contributor, Subsequent
 
        Contributor, or any Distributor unless, at the time the Initial
 
        Work is first distributed or made available under this License
 
        (as the case may be), the Initial Contributor has selected
 
        pursuant to Part 6 of Exhibit A the patent terms in paragraphs
 
        A, B, C, D and E from Part 6 of Exhibit A. If this is not done
 
        then the Initial Work and any other Subsequent Work is made
 
        available under the License without any patent license (the
 
        "PATENTS-EXCLUDED LICENSE").
 

	
 
        (b) However, the Initial Contributor may subsequently
 
        distribute or make available (as the case may be) future copies
 
        of: (1) the Initial Work; or (2) any Licensed Work distributed
 
        by the Initial Contributor which includes the Initial Work (or
 
        any portion thereof) and/or any Modification made by the
 
        Initial Contributor; available under a License which includes a
 
        patent license (the "PATENTS-INCLUDED LICENSE") by selecting
 
        pursuant to Part 6 of Exhibit A the patent terms in paragraphs
 
        A, B, C, D and E from Part 6 of Exhibit A, when the Initial
 
        Contributor distributes or makes available (as the case may be)
 
        such future copies under this License.
 

	
 
        (c) If any Recipient receives or obtains one or more copies of
 
        the Initial Work or any other portion of the Licensed Work
 
        under the Patents-Included License, then all licensing of such
 
        copies under this License shall include the terms in paragraphs
 
        A, B, C, D and E from Part 6 of Exhibit A and that Recipient
 
        shall not be able to rely upon the Patents-Excluded License for
 
        any such copies. However, all Recipients that receive one or
 
        more copies of the Initial Work or any other portion of the
 
        Licensed Work under a copy of the License which includes the
 
        Patents-Excluded License shall have no patent license with
 
        respect to such copies received under the Patents-Excluded
 
        License and availability and distribution of such copies,
 
        including Modifications made by such Recipient to such copies,
 
        shall be under a copy of the License without any patent
 
        license.
 

	
 
        (d) Where a Recipient uses in combination or combines any copy
 
        of the Licensed Work (or portion thereof) licensed under a copy
 
        of the License having a Patents-Excluded License with any copy
 
        of the Licensed Work (or portion thereof) licensed under a copy
 
        of the License having a Patents-Included License, the
 
        combination (and any portion thereof) shall, from the first
 
        time such Recipient uses, makes available or distributes the
 
        combination (as the case may be), be subject to only the terms
 
        of the License having the Patents-Included License which shall
 
        include the terms in paragraphs A, B, C, D and E from Part 6 of
 
        Exhibit A.
 

	
 
    2.3. ACKNOWLEDGEMENT AND DISCLAIMER.
 

	
 
    Recipient understands and agrees that although Initial Contributor
 
    and each Subsequent Contributor grants the licenses to its
 
    Contributions set forth herein, no representation, warranty,
 
    guarantee or assurance is provided by any Initial Contributor,
 
    Subsequent Contributor, or Distributor that the Licensed Work does
 
    not infringe the patent or other intellectual property rights of
 
    any other entity. Initial Contributor, Subsequent Contributor, and
 
    each Distributor disclaims any liability to Recipient for claims
 
    brought by any other entity based on infringement of intellectual
 
    property rights or otherwise, in relation to the Licensed Works. As
 
    a condition to exercising the rights and licenses granted
 
    hereunder, each Recipient hereby assumes sole responsibility to
 
    secure any other intellectual property rights needed, if any. For
 
    example, without limiting the foregoing disclaimers, if a third
 
    party patent license is required to allow Recipient to distribute
 
    the Licensed Work, it is Recipient's responsibility to acquire that
 
    license before distributing the Licensed Work.
 

	
 
    2.4. RESERVATION.
 

	
 
    Nothing in this License shall be deemed to grant any rights to
 
    trademarks, copyrights, patents, trade secrets or any other
 
    intellectual property of Initial Contributor, Subsequent
 
    Contributor, or Distributor except as expressly stated herein.
 

	
 
3. DISTRIBUTION OBLIGATIONS.
 

	
 
    3.1. DISTRIBUTION GENERALLY.
 

	
 
        (a) A Subsequent Contributor shall make that Subsequent
 
        Contributor's Subsequent Work(s) available to the public via an
 
        Electronic Distribution Mechanism for a period of at least
 
        twelve (12) months. The aforesaid twelve (12) month period
 
        shall begin within a reasonable time after the creation of the
 
        Subsequent Work and no later than sixty (60) days after first
 
        distribution of that Subsequent Contributor's Subsequent Work.
 

	
 
        (b) All Distributors must distribute the Licensed Work in
 
        accordance with the terms of the License, and must include a
 
        copy of this License (including without limitation Exhibit A
 
        and the accompanying Supplement File) with each copy of the
 
        Licensed Work distributed. In particular, this License must be
 
        prominently distributed with the Licensed Work in a file called
 
        "license.txt." In addition, the License Notice in Part 5 of
 
        Exhibit A must be included at the beginning of all Source Code
 
        files, and viewable to a user in any executable such that the
 
        License Notice is reasonably brought to the attention of any
 
        party using the Licensed Work.
 

	
 
    3.2. EXECUTABLE DISTRIBUTIONS OF THE LICENSED WORK.
 

	
 
    A Distributor may choose to distribute the Licensed Work, or any
 
    portion thereof, in Executable form (an "EXECUTABLE DISTRIBUTION")
 
    to any third party, under the terms of Section 2 of this License,
 
    provided the Executable Distribution is made available under and
 
    accompanied by a copy of this License, AND provided at least ONE of
 
    the following conditions is fulfilled:
 

	
 
        (a) The Executable Distribution must be accompanied by the
 
        Source Code for the Licensed Work making up the Executable
 
        Distribution, and the Source Code must be distributed on the
 
        same media as the Executable Distribution or using an
 
        Electronic Distribution Mechanism; or
 

	
 
        (b) The Executable Distribution must be accompanied with a
 
        written offer, valid for at least thirty six (36) months, to
 
        give any third party under the terms of this License, for a
 
        charge no more than the cost of physically performing source
 
        distribution, a complete machine-readable copy of the Source
 
        Code for the Licensed Work making up the Executable
 
        Distribution, to be available and distributed using an
 
        Electronic Distribution Mechanism, and such Executable
 
        Distribution must remain available in Source Code form to any
 
        third party via the Electronic Distribution Mechanism (or any
 
        replacement Electronic Distribution Mechanism the particular
 
        Distributor may reasonably need to turn to as a substitute) for
 
        said at least thirty six (36) months.
 

	
 
    For greater certainty, the above-noted requirements apply to any
 
    Licensed Work or portion thereof distributed to any third party in
 
    Executable form, whether such distribution is made alone, in
 
    combination with a Larger Work or Independent Modules, or in some
 
    other combination.
 

	
 
    3.3. SOURCE CODE DISTRIBUTIONS.
 

	
 
    When a Distributor makes the Licensed Work, or any portion thereof,
 
    available to any Person in Source Code form, it must be made
 
    available under this License and a copy of this License must be
 
    included with each copy of the Source Code, situated so that the
 
    copy of the License is conspicuously brought to the attention of
 
    that Person. For greater clarification, this Section 3.3 applies to
 
    all distribution of the Licensed Work in any Source Code form. A
 
    Distributor may charge a fee for the physical act of transferring a
 
    copy, which charge shall be no more than the cost of physically
 
    performing source distribution.
 

	
 
    3.4. REQUIRED NOTICES IN SOURCE CODE.
 

	
 
    Each Subsequent Contributor must ensure that the notice set out in
 
    Part 5 of Exhibit A is included in each file of the Source Code for
 
    each Subsequent Work originating from that particular Subsequent
 
    Contributor, if such notice is not already included in each such
 
    file. If it is not possible to put such notice in a particular
 
    Source Code file due to its structure, then the Subsequent
 
    Contributor must include such notice in a location (such as a
 
    relevant directory in which the file is stored) where a user would
 
    be likely to look for such a notice.
 

	
 
    3.5. NO DISTRIBUTION REQUIREMENTS FOR INTERNALLY USED
 
    MODIFICATIONS.
 

	
 
    Notwithstanding Sections 3.2, 3.3 and 3.4, Recipient may,
 
    internally within its own corporation or organization use the
 
    Licensed Work, including the Initial Work and Subsequent Works, and
 
    make Modifications for internal use within Recipient's own
 
    corporation or organization (collectively, "INTERNAL USE
 
    MODIFICATIONS"). The Recipient shall have no obligation to
 
    distribute, in either Source Code or Executable form, any such
 
    Internal Use Modifications made by Recipient in the course of such
 
    internal use, except where required below in this Section 3.5. All
 
    Internal Use Modifications distributed to any Person, whether or
 
    not a Third Party, shall be distributed pursuant to and be
 
    accompanied by the terms of this License. If the Recipient chooses
 
    to distribute any such Internal Use Modifications to any Third
 
    Party, then the Recipient shall be deemed a Subsequent Contributor,
 
    and any such Internal Use Modifications distributed to any Third
 
    Party shall be deemed a Subsequent Work originating from that
 
    Subsequent Contributor, and shall from the first such instance
 
    become part of the Licensed Work that must thereafter be
 
    distributed and made available to third parties in accordance with
 
    the terms of Sections 3.1 to 3.4 inclusive.
 

	
 
    3.6. INDEPENDENT MODULES.
 

	
 
    This License shall not apply to Independent Modules of any Initial
 
    Contributor, Subsequent Contributor, Distributor or any Recipient,
 
    and such Independent Modules may be licensed or made available
 
    under one or more separate license agreements.
 

	
 
    3.7. LARGER WORKS.
 

	
 
    Any Distributor or Recipient may create or contribute to a Larger
 
    Work by combining any of the Licensed Work with other code not
 
    governed by the terms of this License, and may distribute the
 
    Larger Work as one or more products. However, in any such case,
 
    Distributor or Recipient (as the case may be) must make sure that
 
    the requirements of this License are fulfilled for the Licensed
 
    Work portion of the Larger Work.
 

	
 
    3.8. DESCRIPTION OF DISTRIBUTED MODIFICATIONS.
 

	
 
        (a) Each Subsequent Contributor (including the Initial
 
        Contributor where the Initial Contributor also qualifies as a
 
        Subsequent Contributor) must cause each Subsequent Work created
 
        or contributed to by that Subsequent Contributor to contain a
 
        file documenting the changes, in accordance with the
 
        requirements of Part 1 of the Supplement File, that such
 
        Subsequent Contributor made in the creation or contribution to
 
        that Subsequent Work. If no Supplement File exists or no
 
        requirements are set out in Part 1 of the Supplement File, then
 
        there are no requirements for Subsequent Contributors to
 
        document changes that they make resulting in Subsequent Works.
 

	
 
        (b) The Initial Contributor may at any time introduce
 
        requirements or add to or change earlier requirements (in each
 
        case, the "EARLIER DESCRIPTION REQUIREMENTS") for documenting
 
        changes resulting in Subsequent Works by revising Part 1 of
 
        each copy of the Supplement File distributed by the Initial
 
        Contributor with future copies of the Licensed Work so that
 
        Part 1 then contains new requirements (the "NEW DESCRIPTION
 
        REQUIREMENTS") for documenting such changes.
 

	
 
        (c) Any Recipient receiving at any time any copy of an Initial
 
        Work or any Subsequent Work under a copy of this License (in
 
        each case, an "Earlier LICENSED COPY") having the Earlier
 
        Description Requirements may choose, with respect to each such
 
        Earlier Licensed Copy, to comply with the Earlier Description
 
        Requirements or the New Description Requirements. Where a
 
        Recipient chooses to comply with the New Description
 
        Requirements, that Recipient will, when thereafter distributing
 
        any copies of any such Earlier Licensed Copy, include a
 
        Supplement File having a section entitled Part 1 that contains
 
        a copy of the New Description Requirements.
 

	
 
        (d) For greater certainty, the intent of Part 1 of the
 
        Supplement File is to provide a mechanism (if any) by which
 
        Subsequent Contributors must document changes that they make to
 
        the Licensed Work resulting in Subsequent Works. Part 1 of any
 
        Supplement File shall not be used to increase or reduce the
 
        scope of the license granted in Article 2 of this License or in
 
        any other way increase or decrease the rights and obligations
 
        of any Recipient, and shall at no time serve as the basis for
 
        terminating the License. Further, a Recipient can be required
 
        to correct and change its documentation procedures to comply
 
        with Part 1 of the Supplement File, but cannot be penalised
 
        with damages. Part 1 of any Supplement File is only binding on
 
        each Recipient of any Licensed Work to the extent Part 1 sets
 
        out the requirements for documenting changes to the Initial
 
        Work or any Subsequent Work.
 

	
 
        (e) An example of a set of requirements for documenting changes
 
        and contributions made by Subsequent Contributor is set out in
 
        Part 7 of Exhibit A of this License. Part 7 is a sample only
 
        and is not binding on Recipients, unless (subject to the
 
        earlier paragraphs of this Section 3.8) those are the
 
        requirements that the Initial Contributor includes in Part 1 of
 
        the Supplement File with the copies of the Initial Work
 
        distributed under this License.
 

	
 
    3.9. USE OF DISTRIBUTOR NAME.
 

	
 
    The name of a Distributor may not be used by any other Distributor
 
    to endorse or promote the Licensed Work or products derived from
 
    the Licensed Work, without prior written permission.
 

	
 
    3.10. LIMITED RECOGNITION OF INITIAL CONTRIBUTOR.
 

	
 
        (a) As a modest attribution to the Initial Contributor, in the
 
        hope that its promotional value may help justify the time,
 
        money and effort invested in writing the Initial Work, the
 
        Initial Contributor may include in Part 2 of the Supplement
 
        File a requirement that each time an executable program
 
        resulting from the Initial Work or any Subsequent Work, or a
 
        program dependent thereon, is launched or run, a prominent
 
        display of the Initial Contributor's attribution information
 
        must occur (the "ATTRIBUTION INFORMATION"). The Attribution
 
        Information must be included at the beginning of each Source
 
        Code file. For greater certainty, the Initial Contributor may
 
        specify in the Supplement File that the above attribution
 
        requirement only applies to an executable program resulting
 
        from the Initial Work or any Subsequent Work, but not a program
 
        dependent thereon. The intent is to provide for reasonably
 
        modest attribution, therefore the Initial Contributor may not
 
        require Recipients to display, at any time, more than the
 
        following Attribution Information: (a) a copyright notice
 
        including the name of the Initial Contributor; (b) a word or
 
        one phrase (not exceeding 10 words); (c) one digital image or
 
        graphic provided with the Initial Work; and (d) a URL
 
        (collectively, the "ATTRIBUTION LIMITS").
 

	
 
        (b) If no Supplement File exists, or no Attribution Information
 
        is set out in Part 2 of the Supplement File, then there are no
 
        requirements for Recipients to display any Attribution
 
        Information of the Initial Contributor.
 

	
 
        (c) Each Recipient acknowledges that all trademarks, service
 
        marks and/or trade names contained within Part 2 of the
 
        Supplement File distributed with the Licensed Work are the
 
        exclusive property of the Initial Contributor and may only be
 
        used with the permission of the Initial Contributor, or under
 
        circumstances otherwise permitted by law, or as expressly set
 
        out in this License.
 

	
 
    3.11. For greater certainty, any description or attribution
 
    provisions contained within a Supplement File may only be used to
 
    specify the nature of the description or attribution requirements,
 
    as the case may be. Any provision in a Supplement File that
 
    otherwise purports to modify, vary, nullify or amend any right,
 
    obligation or representation contained herein shall be deemed void
 
    to that extent, and shall be of no force or effect.
 

	
 
4. COMMERCIAL USE AND INDEMNITY.
 

	
 
    4.1. COMMERCIAL SERVICES.
 

	
 
    A Recipient ("COMMERCIAL RECIPIENT") may choose to offer, and to
 
    charge a fee for, warranty, support, indemnity or liability
 
    obligations (collectively, "SERVICES") to one or more other
 
    Recipients or Distributors. However, such Commercial Recipient may
 
    do so only on that Commercial Recipient's own behalf, and not on
 
    behalf of any other Distributor or Recipient, and Commercial
 
    Recipient must make it clear than any such warranty, support,
 
    indemnity or liability obligation(s) is/are offered by Commercial
 
    Recipient alone. At no time may Commercial Recipient use any
 
    Services to deny any party the Licensed Work in Source Code or
 
    Executable form when so required under any of the other terms of
 
    this License. For greater certainty, this Section 4.1 does not
 
    diminish any of the other terms of this License, including without
 
    limitation the obligation of the Commercial Recipient as a
 
    Distributor, when distributing any of the Licensed Work in Source
 
    Code or Executable form, to make such distribution royalty-free
 
    (subject to the right to charge a fee of no more than the cost of
 
    physically performing Source Code or Executable distribution (as
 
    the case may be)).
 

	
 
    4.2. INDEMNITY.
 

	
 
    Commercial distributors of software may accept certain
 
    responsibilities with respect to end users, business partners and
 
    the like. While this License is intended to facilitate the
 
    commercial use of the Licensed Work, the Distributor who includes
 
    any of the Licensed Work in a commercial product offering should do
 
    so in a manner which does not create potential liability for other
 
    Distributors. Therefore, if a Distributor includes the Licensed
 
    Work in a commercial product offering or offers any Services, such
 
    Distributor ("COMMERCIAL DISTRIBUTOR") hereby agrees to defend and
 
    indemnify every other Distributor or Subsequent Contributor (in
 
    each case an "INDEMNIFIED PARTY") against any losses, damages and
 
    costs (collectively "LOSSES") arising from claims, lawsuits and
 
    other legal actions brought by a third party against the
 
    Indemnified Party to the extent caused by the acts or omissions of
 
    such Commercial Distributor in connection with its distribution of
 
    any of the Licensed Work in a commercial product offering or in
 
    connection with any Services. The obligations in this section do
 
    not apply to any claims or Losses relating to any actual or alleged
 
    intellectual property infringement. In order to qualify, an
 
    Indemnified Party must: (a) promptly notify the Commercial
 
    Distributor in writing of such claim; and (b) allow the Commercial
 
    Distributor to control, and co-operate with the Commercial
 
    Distributor in, the defense and any related settlement
 
    negotiations. The Indemnified Party may participate in any such
 
    claim at its own expense.
 

	
 
5. VERSIONS OF THE LICENSE.
 

	
 
    5.1. NEW VERSIONS.
 

	
 
    The Initial Contributor may publish revised and/or new versions of
 
    the License from time to time. Each version will be given a
 
    distinguishing version number.
 

	
 
    5.2. EFFECT OF NEW VERSIONS.
 

	
 
    Once the Licensed Work or any portion thereof has been published by
 
    Initial Contributor under a particular version of the License,
 
    Recipient may choose to continue to use it under the terms of that
 
    version. However, if a Recipient chooses to use the Licensed Work
 
    under the terms of any subsequent version of the License published
 
    by the Initial Contributor, then from the date of making this
 
    choice, the Recipient must comply with the terms of that subsequent
 
    version with respect to all further reproduction, preparation of
 
    derivative works, public display of, public performance of,
 
    distribution and sublicensing by the Recipient in connection with
 
    the Licensed Work. No one other than the Initial Contributor has
 
    the right to modify the terms applicable to the Licensed Work
 

	
 
6. DISCLAIMER OF WARRANTY.
 

	
 
    6.1. GENERAL DISCLAIMER.
 

	
 
    EXCEPT AS EXPRESSLY SET FORTH IN THIS LICENSE, THE LICENSED WORK IS
 
    PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT ANY
 
    REPRESENTATION, WARRANTY, GUARANTEE, ASSURANCE OR CONDITION OF ANY
 
    KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
 
    WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
 
    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE
 
    RISK AS TO THE QUALITY AND PERFORMANCE OF THE LICENSED WORK IS WITH
 
    RECIPIENT. SHOULD ANY LICENSED WORK PROVE DEFECTIVE IN ANY RESPECT,
 
    RECIPIENT (NOT THE INITIAL CONTRIBUTOR OR ANY SUBSEQUENT
 
    CONTRIBUTOR) ASSUMES THE COST OF ANY NECESSARY SERVICING, REPAIR OR
 
    CORRECTION. THIS CLAUSE CONSTITUTES AN ESSENTIAL PART OF THIS
 
    LICENSE. NO USE OF ANY LICENSED WORK IS AUTHORIZED HEREUNDER EXCEPT
 
    UNDER THIS LICENSE INCLUDING WITHOUT LIMITATION THIS DISCLAIMER.
 

	
 
    6.2. RESPONSIBILITY OF RECIPIENTS.
 

	
 
    Each Recipient is solely responsible for determining the
 
    appropriateness of using and distributing the Licensed Work and
 
    assumes all risks associated with its exercise of rights under this
 
    License, including but not limited to the risks and costs of
 
    program errors, compliance with applicable laws, damage to or loss
 
    of data, programs or equipment, and unavailability or interruption
 
    of operations.
 

	
 
7. TERMINATION.
 

	
 
    7.1. This License shall continue until terminated in accordance
 
    with the express terms herein.
 

	
 
    7.2. Recipient may choose to terminate this License automatically
 
    at any time.
 

	
 
    7.3. This License, including without limitation the rights granted
 
    hereunder to a particular Recipient, will terminate automatically
 
    if such Recipient is in material breach of any of the terms of this
 
    License and fails to cure such breach within sixty (60) days of
 
    becoming aware of the breach. Without limiting the foregoing, any
 
    material breach by such Recipient of any term of any other License
 
    under which such Recipient is granted any rights to the Licensed
 
    Work shall constitute a material breach of this License.
 

	
 
    7.4. Upon termination of this License by or with respect to a
 
    particular Recipient for any reason, all rights granted hereunder
 
    and under any other License to that Recipient shall terminate.
 
    However, all sublicenses to the Licensed Work which were previously
 
    properly granted by such Recipient under a copy of this License (in
 
    each case, an "Other License" and in plural, "Other Licenses")
 
    shall survive any such termination of this License, including
 
    without limitation the rights and obligations under such Other
 
    Licenses as set out in their respective Sections 2, 3, 4, 5, 6, 7
 
    and 8, mutatis mutandis, for so long as the respective sublicensees
 
    (i.e. other Recipients) remain in compliance with the terms of the
 
    copy of this License under which such sublicensees received rights
 
    to the Licensed Work. Any termination of such Other Licenses shall
 
    be pursuant to their respective Section 7, mutatis mutandis.
 
    Provisions which, by their nature, must remain in effect beyond the
 
    termination of this License shall survive.
 

	
 
    7.5. Upon any termination of this License by or with respect to a
 
    particular Recipient, Sections 4.1, 4.2, 6.1, 6.2, 7.4, 7.5, 8.1,
 
    and 8.2, together with all provisions of this License necessary for
 
    the interpretation and enforcement of same, shall expressly survive
 
    such termination.
 

	
 
8. LIMITATION OF LIABILITY.
 

	
 
    8.1. IN NO EVENT SHALL ANY OF INITIAL CONTRIBUTOR, ITS
 
    SUBSIDIARIES, OR AFFILIATES, OR ANY OF ITS OR THEIR RESPECTIVE
 
    OFFICERS, DIRECTORS, EMPLOYEES, AND/OR AGENTS (AS THE CASE MAY BE),
 
    HAVE ANY LIABILITY FOR ANY DIRECT DAMAGES, INDIRECT DAMAGES,
 
    PUNITIVE DAMAGES, INCIDENTAL DAMAGES, SPECIAL DAMAGES, EXEMPLARY
 
    DAMAGES, CONSEQUENTIAL DAMAGES OR ANY OTHER DAMAGES WHATSOEVER
 
    (INCLUDING WITHOUT LIMITATION LOSS OF USE, DATA OR PROFITS, OR ANY
 
    OTHER LOSS ARISING OUT OF OR IN ANY WAY RELATED TO THE USE,
 
    INABILITY TO USE, UNAUTHORIZED USE, PERFORMANCE, OR NON-PERFORMANCE
 
    OF THE LICENSED WORK OR ANY PART THEREOF OR THE PROVISION OF OR
 
    FAILURE TO PROVIDE SUPPORT SERVICES, OR THAT RESULT FROM ERRORS,
 
    DEFECTS, OMISSIONS, DELAYS IN OPERATION OR TRANSMISSION, OR ANY
 
    OTHER FAILURE OF PERFORMANCE), HOWEVER CAUSED AND ON ANY THEORY OF
 
    LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
    (INCLUDING NEGLIGENCE OR OTHERWISE) IN RELATION TO OR ARISING IN
 
    ANY WAY OUT OF THIS LICENSE OR THE USE OR DISTRIBUTION OF THE
 
    LICENSED WORK OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN
 
    IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
 
    LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
 
    RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
 
    PROHIBITS SUCH LIMITATION. THIS CLAUSE CONSTITUTES AN ESSENTIAL
 
    PART OF THIS LICENSE. NO USE OF ANY LICENSED WORK IS AUTHORIZED
 
    HEREUNDER EXCEPT UNDER THIS LICENSE INCLUDING WITHOUT LIMITATION
 
    THE LIMITATIONS SET FORTH IN THIS SECTION 8.1.
 

	
 
    8.2. EXCEPT AS EXPRESSLY SET FORTH IN THIS LICENSE, EACH RECIPIENT
 
    SHALL NOT HAVE ANY LIABILITY FOR ANY EXEMPLARY, OR CONSEQUENTIAL
 
    DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED
 
    AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 
    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
 
    ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE LICENSED WORK OR THE
 
    EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
 
    POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT
 
    APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH
 
    PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH
 
    LIMITATION.
 

	
 
9. GOVERNING LAW AND LEGAL ACTION.
 

	
 
    9.1. This License shall be governed by and construed in accordance
 
    with the laws of the Governing Jurisdiction assigned in Part 3 of
 
    Exhibit A, without regard to its conflict of law provisions. No
 
    party may bring a legal action under this License more than one
 
    year after the cause of the action arose. Each party waives its
 
    rights (if any) to a jury trial in any litigation arising under
 
    this License. Note that if the Governing Jurisdiction is not
 
    assigned in Part 3 of Exhibit A, then the Governing Jurisdiction
 
    shall be the State of New York.
 

	
 
    9.2. The courts of the Governing Jurisdiction shall have
 
    jurisdiction, but not exclusive jurisdiction, to entertain and
 
    determine all disputes and claims, whether for specific
 
    performance, injunction, damages or otherwise, both at law and in
 
    equity, arising out of or in any way relating to this License,
 
    including without limitation, the legality, validity, existence and
 
    enforceability of this License. Each party to this License hereby
 
    irrevocably attorns to and accepts the jurisdiction of the courts
 
    of the Governing Jurisdiction for such purposes.
 

	
 
    9.3. Except as expressly set forth elsewhere herein, in the event
 
    of any action or proceeding brought by any party against another
 
    under this License the prevailing party shall be entitled to
 
    recover all costs and expenses including the fees of its attorneys
 
    in such action or proceeding in such amount as the court may
 
    adjudge reasonable.
 

	
 
10. MISCELLANEOUS.
 

	
 
    10.1. The obligations imposed by this License are for the benefit
 
    of the Initial Contributor and any Recipient, and each Recipient
 
    acknowledges and agrees that the Initial Contributor and/or any
 
    other Recipient may enforce the terms and conditions of this
 
    License against any Recipient.
 

	
 
    10.2. This License represents the complete agreement concerning
 
    subject matter hereof, and supersedes and cancels all previous oral
 
    and written communications, representations, agreements and
 
    understandings between the parties with respect to the subject
 
    matter hereof.
 

	
 
    10.3. The application of the United Nations Convention on Contracts
 
    for the International Sale of Goods is expressly excluded.
 

	
 
    10.4. The language in all parts of this License shall be in all
 
    cases construed simply according to its fair meaning, and not
 
    strictly for or against any of the parties hereto. Any law or
 
    regulation which provides that the language of a contract shall be
 
    construed against the drafter shall not apply to this License.
 

	
 
    10.5. If any provision of this License is invalid or unenforceable
 
    under the laws of the Governing Jurisdiction, it shall not affect
 
    the validity or enforceability of the remainder of the terms of
 
    this License, and without further action by the parties hereto,
 
    such provision shall be reformed to the minimum extent necessary to
 
    make such provision valid and enforceable.
 

	
 
    10.6. The paragraph headings of this License are for reference and
 
    convenience only and are not a part of this License, and they shall
 
    have no effect upon the construction or interpretation of any part
 
    hereof.
 

	
 
    10.7. Each of the terms "including", "include" and "includes", when
 
    used in this License, is not limiting whether or not non-limiting
 
    language (such as "without limitation" or "but not limited to" or
 
    words of similar import) is used with reference thereto.
 

	
 
    10.8. The parties hereto acknowledge they have expressly required
 
    that this License and notices relating thereto be drafted in the
 
    English language.
 

	
 
//***THE LICENSE TERMS END HERE (OTHER THAN AS SET OUT IN EXHIBIT
 
//A).***//
 

	
 
EXHIBIT A (to the Adaptive Public License)
 

	
 
    PART 1: INITIAL CONTRIBUTOR AND DESIGNATED WEB SITE The Initial
 
    Contributor is:
 
    	____________________________________________________
 

	
 
    [Enter full name of Initial Contributor]
 

	
 
    Address of Initial Contributor:
 
    	________________________________________________
 
    ________________________________________________
 
    ________________________________________________
 

	
 
    [Enter address above]
 

	
 
    The Designated Web Site is:
 
    	__________________________________________________
 

	
 
    [Enter URL for Designated Web Site of Initial Contributor]
 

	
 
    NOTE: The Initial Contributor is to complete this Part 1, along
 
    with Parts 2, 3, and 5, and, if applicable, Parts 4 and 6.
 

	
 
    PART 2: INITIAL WORK
 

	
 
    The Initial Work comprises the computer program(s) distributed by
 
    the Initial Contributor having the following title(s):
 
    _______________________________________________.
 

	
 
    The date on which the Initial Work was first available under this
 
    License: _________________
 

	
 
    PART 3: GOVERNING JURISDICTION
 

	
 
    For the purposes of this License, the Governing Jurisdiction is
 
    _________________________________________________. [Initial
 
    Contributor to Enter Governing Jurisdiction here]
 

	
 
    PART 4: THIRD PARTIES
 

	
 
    For the purposes of this License, "Third Party" has the definition
 
    set forth below in the ONE paragraph selected by the Initial
 
    Contributor from paragraphs A, B, C, D and E when the Initial Work
 
    is distributed or otherwise made available by the Initial
 
    Contributor. To select one of the following paragraphs, the Initial
 
    Contributor must place an "X" or "x" in the selection box alongside
 
    the one respective paragraph selected. SELECTION BOX 	PARAGRAPH
 
    [  ] 	A. "THIRD PARTY" means any third party.
 

	
 
    [  ] 	B. "THIRD PARTY" means any third party except for any of
 
    the following: (a) a wholly owned subsidiary of the Subsequent
 
    Contributor in question; (b) a legal entity (the "PARENT") that
 
    wholly owns the Subsequent Contributor in question; or (c) a wholly
 
    owned subsidiary of the wholly owned subsidiary in (a) or of the
 
    Parent in (b).
 

	
 
    [  ] 	C. "THIRD PARTY" means any third party except for any of
 
    the following: (a) any Person directly or indirectly owning a
 
    majority of the voting interest in the Subsequent Contributor or
 
    (b) any Person in which the Subsequent Contributor directly or
 
    indirectly owns a majority voting interest.
 

	
 
    [  ] 	D. "THIRD PARTY" means any third party except for any
 
    Person directly or indirectly controlled by the Subsequent
 
    Contributor. For purposes of this definition, "control" shall mean
 
    the power to direct or cause the direction of, the management and
 
    policies of such Person whether through the ownership of voting
 
    interests, by contract, or otherwise.
 

	
 
    [  ] 	E. "THIRD PARTY" means any third party except for any
 
    Person directly or indirectly controlling, controlled by, or under
 
    common control with the Subsequent Contributor. For purposes of
 
    this definition, "control" shall mean the power to direct or cause
 
    the direction of, the management and policies of such Person
 
    whether through the ownership of voting interests, by contract, or
 
    otherwise.
 

	
 
    The default definition of "THIRD PARTY" is the definition set forth
 
    in paragraph A, if NONE OR MORE THAN ONE of paragraphs A, B, C, D
 
    or E in this Part 4 are selected by the Initial Contributor.
 

	
 
    PART 5: NOTICE
 

	
 
    THE LICENSED WORK IS PROVIDED UNDER THE TERMS OF THE ADAPTIVE
 
    PUBLIC LICENSE ("LICENSE") AS FIRST COMPLETED BY:
 
    ______________________ [Insert the name of the Initial Contributor
 
    here]. ANY USE, PUBLIC DISPLAY, PUBLIC PERFORMANCE, REPRODUCTION OR
 
    DISTRIBUTION OF, OR PREPARATION OF DERIVATIVE WORKS BASED ON, THE
 
    LICENSED WORK CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS LICENSE
 
    AND ITS TERMS, WHETHER OR NOT SUCH RECIPIENT READS THE TERMS OF THE
 
    LICENSE. "LICENSED WORK" AND "RECIPIENT" ARE DEFINED IN THE
 
    LICENSE. A COPY OF THE LICENSE IS LOCATED IN THE TEXT FILE ENTITLED
 
    "LICENSE.TXT" ACCOMPANYING THE CONTENTS OF THIS FILE. IF A COPY OF
 
    THE LICENSE DOES NOT ACCOMPANY THIS FILE, A COPY OF THE LICENSE MAY
 
    ALSO BE OBTAINED AT THE FOLLOWING WEB SITE:
 
    ___________________________________________________ [Insert Initial
 
    Contributor's Designated Web Site here]
 

	
 
    Software distributed under the License is distributed on an "AS IS"
 
    basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
 
    the License for the specific language governing rights and
 
    limitations under the License.
 

	
 
    PART 6: PATENT LICENSING TERMS
 

	
 
    For the purposes of this License, paragraphs A, B, C, D and E of
 
    this Part 6 of Exhibit A are only incorporated and form part of the
 
    terms of the License if the Initial Contributor places an "X" or
 
    "x" in the selection box alongside the YES answer to the question
 
    immediately below.
 

	
 
    Is this a Patents-Included License pursuant to Section 2.2 of the
 
    License?
 

	
 
        YES 	[      ] NO 	[      ]
 

	
 
    By default, if YES is not selected by the Initial Contributor, the
 
    answer is NO.
 

	
 
        A. For the purposes of the paragraphs in this Part 6 of Exhibit
 
        A, "LICENSABLE" means having the right to grant, to the maximum
 
        extent possible, whether at the time of the initial grant or
 
        subsequently acquired, any and all of the rights granted
 
        herein.
 

	
 
        B. The Initial Contributor hereby grants all Recipients a
 
        world-wide, royalty-free, non-exclusive license, subject to
 
        third party intellectual property claims, under patent claim(s)
 
        Licensable by the Initial Contributor that are or would be
 
        infringed by the making, using, selling, offering for sale,
 
        having made, importing, exporting, transfer or disposal of such
 
        Initial Work or any portion thereof. Notwithstanding the
 
        foregoing, no patent license is granted under this Paragraph B
 
        by the Initial Contributor: (1) for any code that the Initial
 
        Contributor deletes from the Initial Work (or any portion
 
        thereof) distributed by the Initial Contributor prior to such
 
        distribution; (2) for any Modifications made to the Initial
 
        Work (or any portion thereof) by any other Person; or (3)
 
        separate from the Initial Work (or portions thereof)
 
        distributed or made available by the Initial Contributor.
 

	
 
        C. Effective upon distribution by a Subsequent Contributor to a
 
        Third Party of any Modifications made by that Subsequent
 
        Contributor, such Subsequent Contributor hereby grants all
 
        Recipients a world-wide, royalty-free, non-exclusive license,
 
        subject to third party intellectual property claims, under
 
        patent claim(s) Licensable by such Subsequent Contributor that
 
        are or would be infringed by the making, using, selling,
 
        offering for sale, having made, importing, exporting, transfer
 
        or disposal of any such Modifications made by that Subsequent
 
        Contributor alone and/or in combination with its Subsequent
 
        Work (or portions of such combination) to make, use, sell,
 
        offer for sale, have made, import, export, transfer and
 
        otherwise dispose of:
 

	
 
            (1) Modifications made by that Subsequent Contributor (or
 
            portions thereof); and
 

	
 
            (2) the combination of Modifications made by that
 
            Subsequent Contributor with its Subsequent Work (or
 
            portions of such combination);
 

	
 
        (collectively and in each case, the "SUBSEQUENT CONTRIBUTOR
 
        VERSION").
 

	
 
        Notwithstanding the foregoing, no patent license is granted
 
        under this Paragraph C by such Subsequent Contributor: (1) for
 
        any code that such Subsequent Contributor deletes from the
 
        Subsequent Contributor Version (or any portion thereof)
 
        distributed by the Subsequent Contributor prior to such
 
        distribution; (2) for any Modifications made to the Subsequent
 
        Contributor Version (or any portion thereof) by any other
 
        Person; or (3) separate from the Subsequent Contributor Version
 
        (or portions thereof) distributed or made available by the
 
        Subsequent Contributor.
 

	
 
        D. Effective upon distribution of any Licensed Work by a
 
        Distributor to a Third Party, such Distributor hereby grants
 
        all Recipients a world-wide, royalty-free, non-exclusive
 
        license, subject to third party intellectual property claims,
 
        under patent claim(s) Licensable by such Distributor that are
 
        or would be infringed by the making, using, selling, offering
 
        for sale, having made, importing, exporting, transfer or
 
        disposal of any such Licensed Work distributed by such
 
        Distributor, to make, use, sell, offer for sale, have made,
 
        import, export, transfer and otherwise dispose of such Licensed
 
        Work or portions thereof (collectively and in each case, the
 
        "DISTRIBUTOR VERSION"). Notwithstanding the foregoing, no
 
        patent license is granted under this Paragraph D by such
 
        Distributor: (1) for any code that such Distributor deletes
 
        from the Distributor Version (or any portion thereof)
 
        distributed by the Distributor prior to such distribution; (2)
 
        for any Modifications made to the Distributor Version (or any
 
        portion thereof) by any other Person; or (3) separate from the
 
        Distributor Version (or portions thereof) distributed or made
 
        available by the Distributor.
 

	
 
        E. If Recipient institutes patent litigation against another
 
        Recipient (a "USER") with respect to a patent applicable to a
 
        computer program or software (including a cross-claim or
 
        counterclaim in a lawsuit, and whether or not any of the patent
 
        claims are directed to a system, method, process, apparatus,
 
        device, product, article of manufacture or any other form of
 
        patent claim), then any patent or copyright license granted by
 
        that User to such Recipient under this License or any other
 
        copy of this License shall terminate. The termination shall be
 
        effective ninety (90) days after notice of termination from
 
        User to Recipient, unless the Recipient withdraws the patent
 
        litigation claim before the end of the ninety (90) day period.
 
        To be effective, any such notice of license termination must
 
        include a specific list of applicable patents and/or a copy of
 
        the copyrighted work of User that User alleges will be
 
        infringed by Recipient upon License termination. License
 
        termination is only effective with respect to patents and/or
 
        copyrights for which proper notice has been given.
 

	
 
    PART 7: SAMPLE REQUIREMENTS FOR THE DESCRIPTION OF DISTRIBUTED
 
    MODIFICATIONS
 

	
 
    Each Subsequent Contributor (including the Initial Contributor
 
    where the Initial Contributor qualifies as a Subsequent
 
    Contributor) is invited (but not required) to cause each Subsequent
 
    Work created or contributed to by that Subsequent Contributor to
 
    contain a file documenting the changes such Subsequent Contributor
 
    made to create that Subsequent Work and the date of any change.
 

	
 
//***EXHIBIT A ENDS HERE.***// 
licenses/RCSL-1.0
Show inline comments
 
new file 100644
 
    REALNETWORKS COMMUNITY SOURCE LICENSE
 

	
 
    (RCSL)
 

	
 
Version 1.0 (Rev. Date October 28, 2002).
 

	
 

	
 
  RECITALS
 

	
 
Original Contributor has developed Specifications, Source Code 
 
implementations and Executables of certain Technology; and
 

	
 
Original Contributor desires to license the Technology to a large 
 
community to facilitate research, innovation and product development 
 
while maintaining compatibility of such products with the Technology as 
 
delivered by Original Contributor; and
 

	
 
Original Contributor desires to license certain Trademarks for the 
 
purpose of branding products that are compatible with the relevant 
 
Technology delivered by Original Contributor; and
 

	
 
You desire to license the Technology and possibly certain Trademarks 
 
from Original Contributor on the terms and conditions specified in this 
 
License.
 

	
 
In consideration for the mutual covenants contained herein, You and 
 
Original Contributor agree as follows:
 

	
 

	
 
  AGREEMENT
 

	
 
*1. Introduction.*
 

	
 
The RealNetworks Community Source License ("RCSL") and effective 
 
attachments ("License") may include six distinct licenses:
 

	
 
i. Research Use license - License plus Attachments A, B and C only.
 

	
 
ii. Commercial Use License, which may be for Internal Deployment Use or
 
external distribution, or both -- License plus Attachments A, B, C, D and E.
 

	
 
iii. Technology Compatibility Kit (TCK) license - Attachment C.
 

	
 
iv. Trademark license - Attachment E.
 

	
 
v. RealAudio/RealVideo Technology License (Executable) Client
 
Distribution License -Attachment F.
 

	
 
vi) RealAudio/RealVideo Technology Source Code Porting 
 
License -Attachment G.
 

	
 
The Research Use license is effective when You click and accept this 
 
License. The TCK is effective when You click and accept this License, 
 
unless otherwise specified in the TCK attachments. The Commercial Use, 
 
Trademark, RealAudio/RealVideo Technology Licenses, and the 
 
RealAudio/RealVideo Source Code Porting licenses must each be signed by 
 
You and Original Contributor to become effective. Once effective, these 
 
licenses and the associated requirements and responsibilities are 
 
cumulative. Capitalized terms used in this License are defined in the 
 
Glossary. 
 

	
 
*2. License Grants.*
 

	
 
2.1 Original Contributor Grant.
 

	
 
Subject to Your compliance with Sections 3, 8.10 and Attachment A of 
 
this License, Original Contributor grants to You a worldwide, 
 
royalty-free, non-exclusive license, to the extent of Original 
 
Contributor's Intellectual Property Rights covering the Original Code, 
 
Upgraded Code and Specifications, to do the following:
 

	
 
(a) Research Use License:
 

	
 
(i) use, reproduce and modify the Original Code, Upgraded Code and 
 
Specifications to create Modifications and Reformatted Specifications 
 
for Research Use by You;
 

	
 
(ii) publish and display Original Code, Upgraded Code and Specifications 
 
with, or as part of Modifications, as permitted under Section 3.1(b) 
 
below;
 

	
 
(iii) reproduce and distribute copies of Original Code and Upgraded Code 
 
to Licensees and students for Research Use by You;
 

	
 
(iv) compile, reproduce and distribute Original Code and Upgraded Code 
 
in Executable form, and Reformatted Specifications to anyone for 
 
Research Use by You.
 

	
 
(b) Other than the licenses expressly granted in this License, Original 
 
Contributor retains all right, title, and interest in Original Code and 
 
Upgraded Code and Specifications.
 

	
 
2.2 Your Grants.
 

	
 
(a) To Other Licensees. You hereby grant to each Licensee a license to 
 
Your Error Corrections and Shared Modifications, of the same scope and 
 
extent as Original Contributor's licenses under Section 2.1 a) above 
 
relative to Research Use and Attachment D relative to Commercial Use.
 

	
 
(b) To Original Contributor. You hereby grant to Original Contributor a 
 
worldwide, royalty-free, non-exclusive, perpetual and irrevocable 
 
license, to the extent of Your Intellectual Property Rights covering 
 
Your Error Corrections, Shared Modifications and Reformatted 
 
Specifications, to use, reproduce, modify, display and distribute Your 
 
Error Corrections, Shared Modifications and Reformatted Specifications, 
 
in any form, including the right to sublicense such rights through 
 
multiple tiers of distribution.
 

	
 
(c) Other than the licenses expressly granted in Sections 2.2(a) and (b) 
 
above, and the restrictions set forth in Section 3.1(d)(iv) below, You 
 
retain all right, title, and interest in Your Error Corrections, Shared 
 
Modifications and Reformatted Specifications.
 

	
 
2.3 Contributor Modifications.
 

	
 
You may use, reproduce, modify, display and distribute Contributor Error 
 
Corrections, Shared Modifications and Reformatted Specifications, 
 
obtained by You under this License, to the same scope and extent as with 
 
Original Code, Upgraded Code and Specifications.
 

	
 
2.4 Subcontracting.
 

	
 
You may deliver the Source Code of Covered Code to other Licensees 
 
having at least a Research Use license, for the sole purpose of 
 
furnishing development services to You in connection with Your rights 
 
granted in this License. All such Licensees must execute appropriate 
 
documents with respect to such work consistent with the terms of this 
 
License, and acknowledging their work-made-for-hire status or assigning 
 
exclusive right to the work product and associated Intellectual Property 
 
Rights to You.
 

	
 
*3. Requirements and Responsibilities.*
 

	
 
3.1 Research Use License.
 

	
 
As a condition of exercising the rights granted under Section 2.1(a) 
 
above, You agree to comply with the following:
 

	
 
(a) Your Contribution to the Community. All Error Corrections and Shared 
 
Modifications which You create or contribute to are automatically 
 
subject to the licenses granted under Section 2.2 above. You are 
 
encouraged to license all of Your other Modifications under Section 2.2 
 
as Shared Modifications, but are not required to do so. You agree to 
 
notify Original Contributor of any errors in the Specification.
 

	
 
(b) Source Code Availability. You agree to provide all Your Error 
 
Corrections to Original Contributor as soon as reasonably practicable 
 
and, in any event, prior to Internal Deployment Use or Commercial Use, 
 
if applicable. Original Contributor may, at its discretion, post Source 
 
Code for Your Error Corrections and Shared Modifications on the 
 
Community Webserver. You may also post Error Corrections and Shared 
 
Modifications on a web-server of Your choice; provided, that You must 
 
take reasonable precautions to ensure that only Licensees have access to 
 
such Error Corrections and Shared Modifications. Such precautions shall 
 
include, without limitation, a password protection scheme limited to 
 
Licensees and a click-on, download certification of Licensee status 
 
required of those attempting to download from the server. An example of 
 
an acceptable certification is attached as Attachment A-2.
 

	
 
(c) Notices. All Error Corrections and Shared Modifications You create 
 
or contribute to must include a file documenting the additions and 
 
changes You made and the date of such additions and changes. You must 
 
also include the notice set forth in Attachment A-1 in the file header. 
 
If it is not possible to put the notice in a particular Source Code file 
 
due to its structure, then You must include the notice in a location 
 
(such as a relevant directory file), where a recipient would be most 
 
likely to look for such a notice.
 

	
 
(d) Redistribution.
 

	
 
(i) Source. Covered Code may be distributed in Source Code form only to 
 
another Licensee (except for students as provided below). You may not 
 
offer or impose any terms on any Covered Code that alter the rights, 
 
requirements, or responsibilities of such Licensee. You may distribute 
 
Covered Code to students for use in connection with their course work 
 
and research projects undertaken at accredited educational institutions. 
 
Such students need not be Licensees, but must be given a copy of the 
 
notice set forth in Attachment A-3 and such notice must also be included 
 
in a file header or prominent location in the Source Code made available 
 
to such students.
 

	
 
(ii) Executable. You may distribute Executable version(s) of Covered 
 
Code to Licensees and other third parties only for the purpose of 
 
evaluation and comment in connection with Research Use by You and under 
 
a license of Your choice, but which limits use of such Executable 
 
version(s) of Covered Code only to that purpose.
 

	
 
(iii) Modified Class, Interface and Package Naming. In connection with 
 
Research Use by You only, You may use Original Contributor's class, 
 
Interface and package names only to accurately reference or invoke the 
 
Source Code files You modify. Original Contributor grants to You a 
 
limited license to the extent necessary for such purposes.
 

	
 
(iv) You expressly agree that any distribution, in whole or in part, of 
 
Modifications developed by You shall only be done pursuant to the terms 
 
and conditions of this License.
 

	
 
(e) Extensions.
 

	
 
(i) Covered Code. You may not include any Source Code of Community Code 
 
in any Extensions. You may include the compiled Header Files of 
 
Community Code in an Extension provided that your use of the Covered 
 
Code, including Heading Files, complies with the Commercial Use License, 
 
the TCK and all other terms of this License.
 

	
 
(ii) Publication. No later than the date on which You first distribute 
 
such Extension for Commercial Use, You must publish to the industry, on 
 
a non-confidential basis and free of all copyright restrictions with 
 
respect to reproduction and use, an accurate and current specification 
 
for any Extension. In addition, You must make available an appropriate 
 
test suite, pursuant to the same rights as the specification, 
 
sufficiently detailed to allow any third party reasonably skilled in the 
 
technology to produce implementations of the Extension compatible with 
 
the specification. Such test suites must be made available as soon as 
 
reasonably practicable but, in no event, later than ninety (90) days 
 
after Your first Commercial Use of the Extension. You must use 
 
reasonable efforts to promptly clarify and correct the specification and 
 
the test suite upon written request by Original Contributor.
 

	
 
(iii) Open. You agree to refrain from enforcing any Intellectual 
 
Property Rights You may have covering any interface(s) of Your 
 
Extension, which would prevent the implementation of such interface(s) 
 
by Original Contributor or any Licensee. This obligation does not 
 
prevent You from enforcing any Intellectual Property Right You have that 
 
would otherwise be infringed by an implementation of Your Extension.
 

	
 
(iv) Interface Modifications and Naming. You may not modify or add to 
 
the GUID space "xxxxxxxx-0901-11d1-8B06-00A024406D59" or any other GUID 
 
space designated by Original Contributor. You may not modify any 
 
Interface prefix provided with the Covered Code or any other prefix 
 
designated by Original Contributor.
 

	
 
(f) You agree that any Specifications provided to You by Original 
 
Contributor are confidential and proprietary information of Original 
 
Contributor. You must maintain the confidentiality of the Specifications 
 
and may not disclose them to any third party without Original 
 
Contributor's prior written consent. You may only use the Specifications 
 
under the terms of this License and only for the purpose of implementing 
 
the terms of this License with respect to Covered Code. You agree not 
 
use, copy or distribute any such Specifications except as provided in 
 
writing by Original Contributor.
 

	
 
*4. Versions of the License.*
 

	
 
4.1 License Versions.
 

	
 
Original Contributor may publish revised versions of the License from 
 
time to time. Each version will be given a distinguishing version 
 
number.
 

	
 
4.2 Effect.
 

	
 
Once a particular version of Covered Code has been provided under a 
 
version of the License, You may always continue to use such Covered Code 
 
under the terms of that version of the License. You may also choose to 
 
use such Covered Code under the terms of any subsequent version of the 
 
License. No one other than Original Contributor has the right to 
 
promulgate License versions.
 

	
 
4.3 Multiple-Licensed Code.
 

	
 
Original Contributor may designate portions of the Covered Code as 
 
.Multiple-Licensed.. .Multiple-Licensed. means that the Original 
 
Contributor permits you to utilize those designated portions of the 
 
Covered Code under Your choice of this License or the alternative 
 
license(s), if any, specified by the Original Contributor in an 
 
Attachment to this License.
 

	
 
*5. Disclaimer of Warranty.*
 

	
 
5.1 COVERED CODE PROVIDED AS IS.
 

	
 
COVERED CODE IS PROVIDED UNDER THIS LICENSE "AS IS," WITHOUT WARRANTY OF 
 
ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, 
 
WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT 
 
FOR A PARTICULAR PURPOSE OR NON-INFRINGING. YOU AGREE TO BEAR THE ENTIRE 
 
RISK IN CONNECTION WITH YOUR USE AND DISTRIBUTION OF COVERED CODE UNDER 
 
THIS LICENSE. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART 
 
OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER 
 
EXCEPT SUBJECT TO THIS DISCLAIMER.
 

	
 
5.2 Not Designed for High Risk Activities.
 

	
 
You acknowledge that Original Code, Upgraded Code and Specifications are 
 
not designed or intended for use in high risk activities including, but 
 
not limited to: (i) on-line control of aircraft, air traffic, aircraft 
 
navigation or aircraft communications; or (ii) in the design, 
 
construction, operation or maintenance of any nuclear facility. Original 
 
Contributor disclaims any express or implied warranty of fitness for 
 
such uses.
 

	
 
*6. Termination.*
 

	
 
6.1 By You.
 

	
 
You may terminate this Research Use license at anytime by providing 
 
written notice to Original Contributor.
 

	
 
6.2 By Original Contributor.
 

	
 
This License and the rights granted hereunder will terminate:
 

	
 
(i) automatically if You fail to comply with the terms of this License 
 
and fail to cure such breach within 30 days of receipt of written notice 
 
of the breach;
 

	
 
(ii) immediately in the event of circumstances specified in Sections 7.1 
 
and 8.4; or
 

	
 
(iii) at Original Contributor's discretion upon any action initiated by 
 
You (including by cross-claim or counter claim) alleging that use or 
 
distribution by Original Contributor or any Licensee, of Original Code, 
 
Upgraded Code, Error Corrections, Shared Modifications or Specifications 
 
infringe a patent owned or controlled by You.
 

	
 
6.3 Effective of Termination.
 

	
 
Upon termination, You agree to discontinue use of and destroy all copies 
 
of Covered Code in your possession. All sublicenses to the Covered Code 
 
which you have properly granted shall survive any termination of this 
 
License. Provisions that, by their nature, should remain in effect 
 
beyond the termination of this License shall survive including, without 
 
limitation, Sections 2.2, 3, 5, 7 and 8.
 

	
 
6.4 No Compensation.
 

	
 
Each party waives and releases the other from any claim to compensation 
 
or indemnity for permitted or lawful termination of the business 
 
relationship established by this License.
 

	
 
*7. Liability.*
 

	
 
7.1 Infringement. Should any of the Original Code, Upgraded Code, TCK or 
 
Specifications ("Materials") become the subject of a claim of 
 
infringement, Original Contributor may, at its sole option, (i) attempt 
 
to procure the rights necessary for You to continue using the Materials, 
 
(ii) modify the Materials so that they are no longer infringing, or 
 
(iii) terminate Your right to use the Materials, immediately upon 
 
written notice, and refund to You the amount, if any, having then 
 
actually been paid by You to Original Contributor for the Original Code, 
 
Upgraded Code and TCK, depreciated on a straight line, five year basis.
 

	
 
7.2 LIMITATION OF LIABILITY. TO THE FULL EXTENT ALLOWED BY APPLICABLE 
 
LAW, ORIGINAL CONTRIBUTOR'S LIABILITY TO YOU FOR CLAIMS RELATING TO THIS 
 
LICENSE, WHETHER FOR BREACH OR IN TORT, SHALL BE LIMITED TO ONE HUNDRED 
 
PERCENT (100%) OF THE AMOUNT HAVING THEN ACTUALLY BEEN PAID BY YOU TO 
 
ORIGINAL CONTRIBUTOR FOR ALL COPIES LICENSED HEREUNDER OF THE PARTICULAR 
 
ITEMS GIVING RISE TO SUCH CLAIM, IF ANY, DURING THE TWELVE MONTHS 
 
PRECEDING THE CLAIMED BREACH. IN NO EVENT WILL YOU (RELATIVE TO YOUR 
 
SHARED MODIFICATIONS OR ERROR CORRECTIONS) OR ORIGINAL CONTRIBUTOR BE 
 
LIABLE FOR ANY INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL OR CONSEQUENTIAL 
 
DAMAGES IN CONNECTION WITH OR RISING OUT OF THIS LICENSE (INCLUDING, 
 
WITHOUT LIMITATION, LOSS OF PROFITS, USE, DATA, OR OTHER ECONOMIC 
 
ADVANTAGE), HOWEVER IT ARISES AND ON ANY THEORY OF LIABILITY, WHETHER IN 
 
AN ACTION FOR CONTRACT, STRICT LIABILITY OR TORT (INCLUDING NEGLIGENCE) 
 
OR OTHERWISE, WHETHER OR NOT YOU OR ORIGINAL CONTRIBUTOR HAS BEEN 
 
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE AND NOTWITHSTANDING THE 
 
FAILURE OF ESSENTIAL PURPOSE OF ANY REMEDY.
 

	
 
*8. Miscellaneous.*
 

	
 
8.1 Trademark.
 

	
 
You shall not use any Trademark unless You and Original Contributor 
 
execute a copy of the Trademark License Agreement attached hereto as 
 
Attachment F. Except as expressly provided in the License, You are 
 
granted no right, title or license to, or interest in, any Trademarks. 
 
Whether or not You and Original Contributor enter into the Trademark 
 
License, You agree not to (i) challenge Original Contributor's ownership 
 
or use of Trademarks; (ii) attempt to register any Trademarks, or any 
 
mark or logo substantially similar thereto; or (iii) incorporate any 
 
Trademarks into your own trademarks, product names, service marks, 
 
company names, or domain names.
 

	
 
8.2 Integration.
 

	
 
This License represents the complete agreement concerning the subject 
 
matter hereof.
 

	
 
8.3 Assignment.
 

	
 
Original Contributor may assign this License, and its rights and 
 
obligations hereunder, in its sole discretion. You may assign the 
 
Research Use portions of this License to a third party upon prior 
 
written notice to Original Contributor (which may be provided 
 
electronically via the Community Web-Server). You may not assign the 
 
Commercial Use license or TCK license, including by way of merger 
 
(regardless of whether You are the surviving entity) or acquisition, 
 
without Original Contributor's prior written consent.
 

	
 
8.4 Severability.
 

	
 
If any provision of this License is held to be unenforceable, such 
 
provision shall be reformed only to the extent necessary to make it 
 
enforceable. Notwithstanding the foregoing, if You are prohibited by law 
 
from fully and specifically complying with Sections 2.2 or 3, this 
 
License will immediately terminate and You must immediately discontinue 
 
any use of Covered Code.
 

	
 
8.5 Governing Law.
 

	
 
This License shall be governed by the laws of the United States and the 
 
State of Washington, as applied to contracts entered into and to be 
 
performed in Washington between Washington residents. The application of 
 
the United Nations Convention on Contracts for the International Sale of 
 
Goods is expressly excluded. You agree that the state and federal courts 
 
located in Seattle, Washington have exclusive jurisdiction over any 
 
claim relating to the License, including contract and tort claims.
 

	
 
8.6 Dispute Resolution.
 

	
 
a) Arbitration. Any dispute arising out of or relating to this License 
 
shall be finally settled by arbitration as set out herein, except that 
 
either party may bring any action, in a court of competent jurisdiction 
 
(which jurisdiction shall be exclusive), with respect to any dispute 
 
relating to such party's Intellectual Property Rights or with respect to 
 
Your compliance with the TCK license. Arbitration shall be administered: 
 
(i) by the American Arbitration Association (AAA), (ii) in accordance 
 
with the rules of the United Nations Commission on International Trade 
 
Law (UNCITRAL) (the "Rules") in effect at the time of arbitration as 
 
modified herein; and (iii) the arbitrator will apply the substantive 
 
laws of Washington and the United States. Judgment upon the award 
 
rendered by the arbitrator may be entered in any court having 
 
jurisdiction to enforce such award.
 

	
 
b) Arbitration language, venue and damages. All arbitration proceedings 
 
shall be conducted in English by a single arbitrator selected in 
 
accordance with the Rules, who must be fluent in English and be either a 
 
retired judge or practicing attorney having at least ten (10) years 
 
litigation experience and be reasonably familiar with the technology 
 
matters relative to the dispute. Unless otherwise agreed, arbitration 
 
venue shall be in Seattle, Washington. The arbitrator may award monetary 
 
damages only and nothing shall preclude either party from seeking 
 
provisional or emergency relief from a court of competent jurisdiction. 
 
The arbitrator shall have no authority to award damages in excess of 
 
those permitted in this License and any such award in excess is void. 
 
All awards will be payable in U.S. dollars and may include, for the 
 
prevailing party (i) pre-judgment award interest, (ii) reasonable 
 
attorneys' fees incurred in connection with the arbitration, and (iii) 
 
reasonable costs and expenses incurred in enforcing the award. The 
 
arbitrator will order each party to produce identified documents and 
 
respond to no more than twenty-five single question interrogatories.
 

	
 
8.7 Construction.
 

	
 
Any law or regulation, which provides that the language of a contract 
 
shall be construed against the drafter, shall not apply to this License.
 

	
 
8.8 U.S. Government End Users.
 

	
 
The Covered Code is a "commercial item," as that term is defined in 48 
 
C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" 
 
and "commercial computer software documentation," as such terms are used 
 
in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 
 
48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government 
 
End Users acquire Covered Code with only those rights set forth herein. 
 
You agree to pass this notice to our licensees.
 

	
 
8.9 Marketing Activities.
 

	
 
Licensee hereby grants Original Contributor a non-exclusive, 
 
non-transferable, limited license to use the Licensee's company name and 
 
logo ("Licensee Marks") in any presentations, press releases, or 
 
marketing materials solely for the purpose of identifying Licensee as a 
 
member of the Helix Community. Licensee shall provide samples of 
 
Licensee Marks to Original Contributor upon request by Original 
 
Contributor. Original Contributor acknowledges that the Licensee Marks 
 
are the trademarks of Licensee. Original Contributor shall not use the 
 
Licensee Marks in a way that may imply that Original Contributor is an 
 
agency or branch of Licensee. Original Contributor understands and 
 
agrees that the use of any Licensee Marks in connection with this 
 
Agreement shall not create any right, title or interest, in, or to the 
 
Licensee Marks or any Licensee trademarks and that all such use and 
 
goodwill associated with any such trademarks will inure to the benefit 
 
of Licensee. Further the Original Contributor will stop usage of the 
 
Licensee Marks upon Licensee's request.
 

	
 
   1. Press Announcements.
 

	
 
You agree not to make any press announcement or other public statement 
 
regarding this License without the prior written consent of the Original 
 
Contributor.
 

	
 
8.11 International Use.
 

	
 
a) Export/Import laws. Covered Code is subject to U.S. export control 
 
laws and may be subject to export or import regulations in other 
 
countries. Each party agrees to comply strictly with all such laws and 
 
regulations and acknowledges their responsibility to obtain such 
 
licenses to export, re-export, or import as may be required. You agree 
 
to pass these obligations to Your licensees.
 

	
 
b) Intellectual Property Protection. Due to limited intellectual 
 
property protection and enforcement in certain countries, You agree not 
 
to redistribute the Original Code, Upgraded Code, TCK and Specifications 
 
to any country on the list of restricted countries on the Community Web 
 
Server.
 

	
 
8.12 Language.
 

	
 
This License is in the English language only, which language shall be 
 
controlling in all respects, and all versions of this License in any 
 
other language shall be for accommodation only and shall not be binding 
 
on the parties to this License. All communications and notices made or 
 
given pursuant to this License, and all documentation and support to be 
 
provided, unless otherwise noted, shall be in the English language.
 

	
 
PLEASE READ THE TERMS OF THIS LICENSE CAREFULLY. BY CLICKING ON THE 
 
"ACCEPT" BUTTON BELOW YOU ARE ACCEPTING AND AGREEING TO THE TERMS AND 
 
CONDITIONS OF THIS LICENSE WITH REALNETWORKS, INC. IF YOU ARE AGREEING 
 
TO THIS LICENSE ON BEHALF OF A COMPANY, YOU REPRESENT THAT YOU ARE 
 
AUTHORIZED TO BIND THE COMPANY TO SUCH A LICENSE. WHETHER YOU ARE ACTING 
 
ON YOUR OWN BEHALF, OR REPRESENTING A COMPANY, YOU MUST BE OF MAJORITY 
 
AGE AND BE OTHERWISE COMPETENT TO ENTER INTO CONTRACTS. IF YOU DO NOT 
 
MEET THIS CRITERIA OR YOU DO NOT AGREE TO ANY OF THE TERMS AND 
 
CONDITIONS OF THIS LICENSE, CLICK ON THE REJECT BUTTON TO EXIT.
 

	
 

	
 
  GLOSSARY
 

	
 
1. "Applicable Patent Rights" mean: (a) in the case where Original 
 
Contributor is the grantor of rights, claims of patents that (i) are now 
 
or hereafter acquired, owned by or assigned to Original Contributor and 
 
(ii) are necessarily infringed by using or making the Original Code or 
 
Upgraded Code, including Modifications provided by Original Contributor, 
 
alone and not in combination with other software or hardware; and (b) in 
 
the case where Licensee is the grantor of rights, claims of patents that 
 
(i) are now or hereafter acquired, owned by or assigned to Licensee and 
 
(ii) are infringed (directly or indirectly) by using or making 
 
Licensee's Modifications or Error Corrections, taken alone or in 
 
combination with Covered Code.
 

	
 
2. "Application Programming Interfaces (APIs)" means the interfaces, 
 
associated header files, service provider interfaces, and protocols that 
 
enable a device, application, Operating System, or other program to 
 
obtain services from or make requests of (or provide services in 
 
response to requests from) other programs, and to use, benefit from, or 
 
rely on the resources, facilities, and capabilities of the relevant 
 
programs using the APIs. APIs includes the technical documentation 
 
describing the APIs, the Source Code constituting the API, and any 
 
Header Files used with the APIs.
 

	
 
3. "Commercial Use" means any use (internal or external), copying, 
 
sublicensing or distribution (internal or external), directly or 
 
indirectly of Covered Code by You other than Your Research Use of 
 
Covered Code within your business or organization or in conjunction with 
 
other Licensees with equivalent Research Use rights. Commercial Use 
 
includes any use of the Covered Code for direct or indirect commercial 
 
or strategic gain, advantage or other business purpose. Any Commercial 
 
Use requires execution of both Attachment D and Attachment E by You and 
 
Original Contributor.
 

	
 
4. "Community Code" means the Original Code, Upgraded Code, Error 
 
Corrections, Shared Modifications, or any combination thereof.
 

	
 
5. "Community Webserver(s)" means the webservers designated by Original 
 
Contributor for access to the Original Code, Upgraded Code, TCK and 
 
Specifications and for posting Error Corrections and Shared 
 
Modifications.
 

	
 
6. "Compliant Covered Code" means Covered Code that complies with the 
 
requirements of the TCK.
 

	
 
7. "Contributor" means each Licensee that creates or contributes to the 
 
creation of any Error Correction or Shared Modification.
 

	
 
8. "Covered Code" means the Original Code, Upgraded Code, Modifications, 
 
or any combination thereof.
 

	
 
9. "Error Correction" means any change made to Community Code which 
 
conforms to the Specification and corrects the adverse effect of a 
 
failure of Community Code to perform any function set forth in or 
 
required by the Specifications.
 

	
 
10. "Executable" means Covered Code that has been converted from Source 
 
Code to the preferred form for execution by a computer or digital 
 
processor (e.g. binary form).
 

	
 
11. "Extension(s)" means any additional Interfaces developed by or for 
 
You which:  (i) are designed for use with the Technology; (ii) 
 
constitute an API for a library of computing functions or services; and 
 
(iii) are disclosed or otherwise made available to third party software 
 
developers for the purpose of developing software which invokes such 
 
additional Interfaces.  The foregoing shall not apply to software 
 
developed by Your subcontractors to be exclusively used by You.
 

	
 
12. "Header File(s)" means that portion of the Source Code that provides 
 
the names and types of member functions, data members, class 
 
definitions, and interface definitions necessary to implement the APIs 
 
for the Covered Code. Header Files include, files specifically 
 
designated by Original Contributor as Header Files. Header Files do not 
 
include the code necessary to implement the functionality underlying the 
 
Interface.
 

	
 
13. "Intellectual Property Rights" means worldwide statutory and common 
 
law rights associated solely with (i) Applicable Patent Rights; (ii) 
 
works of authorship including copyrights, copyright applications, 
 
copyright registrations and "moral rights"; (iii) the protection of 
 
trade and industrial secrets and confidential information; and (iv) 
 
divisions, continuations, renewals, and re-issuances of the foregoing 
 
now existing or acquired in the future.
 

	
 
14. "Interface" means interfaces, functions, properties, class 
 
definitions, APIs, Header Files, GUIDs, V-Tables, and/or protocols 
 
allowing one piece of software, firmware or hardware to communicate or 
 
interoperate with another piece of software, firmware or hardware.
 

	
 
15. "Internal Deployment Use" means use of Compliant Covered Code 
 
(excluding Research Use) within Your business or organization only by 
 
Your employees and/or agents on behalf of Your business or organization, 
 
but not to provide services, including content distribution, to third 
 
parties, subject to execution of Attachment D by You and Original 
 
Contributor, if required.
 

	
 
16. "Licensee" means any party that has entered into and has in effect a 
 
version of this License with Original Contributor.
 

	
 
17. "Modification(s)" means (i) any addition to, deletion from and/or 
 
change to the substance and/or structure of the Covered Code; (ii) the 
 
combination of any Covered Code and any previous Modifications; (iii) 
 
any new file or other representation of computer program statements that 
 
contains any portion of Covered Code; and/or (iv) any new Source Code 
 
implementing any portion of the Specifications.
 

	
 
18. "MPEG-4 Patents" means any patents necessary to make, use or sell 
 
technology implementing any portion of the specification developed by 
 
the Moving Pictures Experts Group known as MPEG-4, including but not 
 
limited to all past and future versions, profiles, extensions, parts and 
 
amendments relating to the MPEG-4 specification.
 

	
 
19. "Original Code" means the initial Source Code for the Technology as 
 
described on the Community Web Server.
 

	
 
20. "Original Contributor" means RealNetworks, Inc., its affiliates and 
 
its successors and assigns.
 

	
 
21. "Personal Use" means use of Covered Code by an individual solely for 
 
his or her personal, private and non-commercial purposes. An 
 
individual's use of Covered Code in his or her capacity as an officer, 
 
employee, member, independent contractor or agent of a corporation, 
 
business or organization (commercial or non-commercial) does not qualify 
 
as Personal Use.
 

	
 
22. "RCSL Webpage" means the RealNetworks Community Source License 
 
webpage located at https://www.helixcommunity.org/content/rcsl or such 
 
other URL that Original Contributor may designate from time to time.
 

	
 
23. "Reformatted Specifications" means any revision to the 
 
Specifications which translates or reformats the Specifications (as for 
 
example in connection with Your documentation) but which does not alter, 
 
subset or superset the functional or operational aspects of the 
 
Specifications.
 

	
 
24. "Research Use" means use and distribution of Covered Code only for 
 
Your Personal Use, research or development use and expressly excludes 
 
Internal Deployment Use and Commercial Use. Research Use also includes 
 
use of Covered Code to teach individuals how to use Covered Code.
 

	
 
25. "Shared Modifications" means Modifications that you distribute or 
 
use for a Commercial Use, in addition to any Modifications provided by 
 
You, at Your option, pursuant to Section 2.2, or received by You from a 
 
Contributor pursuant to Section 2.3.
 

	
 
26. "Source Code" means the preferred form of the Covered Code for 
 
making modifications to it, including all modules it contains, plus any 
 
associated interface definition files, scripts used to control 
 
compilation and installation of an Executable, or source code 
 
differential comparisons against either the Original Code or another 
 
well known, available Covered Code of the Contributor's choice. The 
 
Source Code can be in a compressed or archival form, provided the 
 
appropriate decompression or de-archiving software is widely available 
 
for no charge.
 

	
 
27. "Specifications" means the specifications for the Technology and 
 
other documentation, as designated on the Community Web Server, as may 
 
be revised by Original Contributor from time to time.
 

	
 
28. "Trademarks" means Original Contributor's trademarks and logos, 
 
including, but not limited to, RealNetworks, RealAudio, RealVideo, 
 
RealOne, RealSystem, SureStream, Helix, Helix DNA and other trademarks 
 
whether now used or adopted in the future.
 

	
 
29. "Technology" means the technology described in Attachment B, and 
 
Upgrades.
 

	
 
30. "Technology Compatibility Kit" or "TCK" means the test programs, 
 
procedures, acceptance criteria and/or other requirements, designated by 
 
Original Contributor for use in verifying compliance of Covered Code 
 
with the Specifications, in conjunction with the Original Code and 
 
Upgraded Code. Original Contributor may, in its sole discretion and from 
 
time to time, revise a TCK to correct errors and/or omissions and in 
 
connection with Upgrades.
 

	
 
31. "Upgrade(s)" means new versions of Technology designated exclusively 
 
by Original Contributor as an "Upgrade" and released by Original 
 
Contributor from time to time under the terms of the License.
 

	
 
32. "Upgraded Code" means the Source Code and/or Executables for 
 
Upgrades, possibly including Modifications made by Contributors.
 

	
 
33. "You(r)" means an individual, or a legal entity acting by and 
 
through an individual or individuals, exercising rights either under 
 
this License or under a future version of this License issued pursuant 
 
to Section 4.1. For legal entities, "You(r)" includes any entity that by 
 
majority voting interest controls, is controlled by, or is under common 
 
control with You.
 

	
 
34. "Your Products" means any (i) hardware products you distribute 
 
integrating the Covered Code; (ii) any software products you distribute 
 
with the Covered Code that utilize the APIs of the Covered Code; or 
 
(iii) any services you provide using the Covered Code.
 

	
 

	
 
  ATTACHMENT A
 

	
 
REQUIRED NOTICES
 

	
 

	
 
    ATTACHMENT A-1
 

	
 
REQUIRED IN ALL CASES
 

	
 
Notice to be included in header file of all Error Corrections and Shared 
 
Modifications:
 

	
 
Portions Copyright 1994-2002 © RealNetworks, Inc.  All rights reserved. 
 

	
 
The contents of this file, and the files included with this file, are 
 
subject to the current version of RealNetworks Community Source License 
 
Version 1.0 (the "License"). You may not use this file except in 
 
compliance with the License executed by both you and RealNetworks.  You 
 
may obtain a copy of the License at 
 
https://www.helixcommunity.org/content/rcsl. You may also obtain a copy 
 
of the License by contacting RealNetworks directly. Please see the 
 
License for the rights, obligations and limitations governing use of the 
 
contents of the file.
 

	
 
This file is part of the Helix DNA technology.  RealNetworks, Inc., is 
 
the developer of the Original code and owns the copyrights in the 
 
portions it created. 
 

	
 
This file, and the files included with this file, are distributed on an 
 
'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, 
 
AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT 
 
LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 
 
PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
 

	
 

	
 

	
 
Contributor(s):
 

	
 
_______________________________________________
 

	
 
Technology Compatibility Kit Test Suite(s) Location:
 

	
 
________________________________
 

	
 

	
 
    ATTACHMENT A-2
 

	
 
SAMPLE LICENSEE CERTIFICATION
 

	
 
"By clicking the `Agree' button below, You certify that You are a 
 
Licensee in good standing under the RealNetworks Community Source 
 
License, ("License") and that Your access, use and distribution of code 
 
and information You may obtain at this site is subject to the License. 
 
If you are not a Licensee under the RealNetworks Community Source 
 
License you agree not to download, copy or use the Helix DNA technology.
 

	
 

	
 
    ATTACHMENT A-3
 

	
 
REQUIRED STUDENT NOTIFICATION
 

	
 
"This software and related documentation has been obtained by your 
 
educational institution subject to the RealNetworks Community Source 
 
License. You have been provided access to the software and related 
 
documentation for use only in connection with your course work and 
 
research activities as a matriculated student of your educational 
 
institution. Any other use is expressly prohibited.
 

	
 
THIS SOFTWARE AND RELATED DOCUMENTATION CONTAINS PROPRIETARY MATERIAL OF 
 
REALNETWORKS, INC, WHICH ARE PROTECTED BY VARIOUS INTELLECTUAL PROPERTY 
 
RIGHTS.
 

	
 
You may not use this file except in compliance with the License. You may 
 
obtain a copy of the License on the web at 
 
https://www.helixcommunity.org/content/rcsl.
 

	
 

	
 
  ATTACHMENT B
 

	
 
Description of Technology
 

	
 
Helix DNA, which consists of Helix DNA Client, Helix DNA Server and 
 
Helix DNA Producer.
 

	
 
Description of "Technology"
 

	
 
Helix DNA Technology v1.0 as described on the Community Web Server.
 

	
 

	
 
  ATTACHMENT C
 

	
 
TECHNOLOGY COMPATIBILITY KIT LICENSE
 

	
 
The following license is effective for the Helix DNA Technology 
 
Compatibility Kit - as described on the Community Web Server. The 
 
Technology Compatibility Kit(s) for the Technology specified in 
 
Attachment B may be accessed at the Community Web Server.
 

	
 
1. TCK License.
 

	
 
1.1) Grants to use TCK
 

	
 
Subject to the terms and restrictions set forth below and the 
 
RealNetworks Community Source License, the Research Use license, and the 
 
Commercial Use License, Original Contributor grants to You a worldwide, 
 
non-exclusive, non-transferable license, to the extent of Original 
 
Contributor's Intellectual Property Rights in the TCK (without the right 
 
to sublicense), to use the TCK to develop and test Covered Code.
 

	
 
1.2) TCK Use Restrictions.
 

	
 
You are not authorized to create derivative works of the TCK or use the 
 
TCK to test any implementation of the Specification that is not Covered 
 
Code. You may not publish your test results or make claims of 
 
comparative compatibility with respect to other implementations of the 
 
Specification. In consideration for the license grant in Section 1.1 
 
above you agree not to develop your own tests that are intended to 
 
validate conformation with the Specification.
 

	
 
2. Requirements for Determining Compliance.
 

	
 
2.1 Definitions.
 

	
 
a) "Added Value" means code which:
 

	
 
(i) has a principal purpose which is substantially different from that 
 
of the stand-alone Technology;
 

	
 
(ii) represents a significant functional and value enhancement to the 
 
Technology;
 

	
 
(iii) operates in conjunction with the Technology; and
 

	
 
(iv) is not marketed as a technology which replaces or substitutes for 
 
the Technology.
 

	
 
b) "Helix DNA Server Technology" means the program(s) that implement the 
 
Helix Universal Server streaming engine for the Technology as defined in 
 
the Specification.
 

	
 
c) .Helix DNA Client Technology. means the Covered Code that implements 
 
the Helix DNA Client engine as defined in the Specification.
 

	
 
d) .Helix DNA Producer Technology. means the Covered Code that 
 
implements the Helix Producer engine as defined in the Specification.
 

	
 
e) .Helix DNA Technology. means the Helix DNA Server Technology, the 
 
Helix DNA Client Technology, the Helix DNA Producer Technology and other 
 
Helix technologies designated by Original Contributor.
 

	
 
f) "User's Guide" means the users guide for the TCK which Original 
 
Contributor makes available to You to provide direction in how to run 
 
the TCK and properly interpret the results, as may be revised by 
 
Original Contributor from time to time.
 

	
 
2.2 Development Restrictions.
 

	
 
Compliant Covered Code:
 

	
 
a) must include Added Value for any Extensions or Shared Modifications
 

	
 
b) must fully comply with the Specifications for the Technology 
 
specified in Attachment B;
 

	
 
c) may not modify or remove the Interfaces or underlying functionality 
 
of the Covered Code except where explicitly allowed under the terms of 
 
the TCK and Commercial Use License.
 

	
 
d) must expose all APIs to developers and enable developers to directly 
 
access those APIs concurrently with any other APIs that you expose to 
 
developers. All such APIs must be fully functional for concurrent 
 
access. You must provide developers with the same level and quality of 
 
information regarding access to APIs for the Covered Code that You 
 
provide for other APIs You expose to developers.
 

	
 
e) may not modify the GUIDs identifying Interfaces, the definition of 
 
Interfaces or the names identifying Interfaces in the Covered Code.
 

	
 
f) for Helix DNA Client Technology, implement Ask, Tell, Help Compliance 
 
in accordance with this paragraph and the policy set forth on 
 
https://www.helixcommunity.org/2002/intro/ask-tell-help. For any 
 
application that uses the Helix DNA Client Technology, You agree that 
 
for all file extensions and MIME types proprietary to Original 
 
Contributor or otherwise supported by a Helix DNA Client, You will not 
 
change MIME registry, browser preferences or local file associations 
 
invoking any other party media player without first presenting the user 
 
with a dialog box or sequence of dialog boxes informing them of the fact 
 
that they already have such player as the default player for such files 
 
and of the consequences of making a change and asking the user whether 
 
the user wants to change the default player. Such dialog box shall 
 
conform to the .Ask, Tell, Help. policy set forth on 
 
https://www.helixcommunity.org/2002/intro/ask-tell-help. When asking for 
 
permission to become the default program you shall provide to the user 
 
an explanation of any limitations on your program's ability to read 
 
and/or write the type(s) of files that your are proposing to take by 
 
default.
 

	
 
2.3 Compatibility Testing.
 

	
 
Successful compatibility testing must be completed by You, or at 
 
Original Contributor's option, a third party designated by Original 
 
Contributor, to conduct such tests, in accordance with the User's Guide, 
 
and using the most current version of the applicable TCK available from 
 
Original Contributor thirty (30) days (ninety [90] days in the case of 
 
silicon implementations) prior to: (i) Your Internal Deployment Use; and 
 
(ii) each release of Compliant Covered Code by You for Commercial Use, 
 
together with Your Products, if any. In the event that You elect to use 
 
a version of Upgraded Code that is newer than that which is required 
 
under this Section 2.3, then You agree to pass the version of the TCK 
 
that corresponds to such newer version of Upgraded Code
 

	
 
2.4 Test Results.
 

	
 
You agree to provide to Original Contributor or the third party test 
 
facility if applicable, Your test results that demonstrate that Covered 
 
Code is Compliant Covered Code and that Original Contributor may publish 
 
or otherwise distribute such test results.
 

	
 
PLEASE READ THE TERMS OF THIS LICENSE CAREFULLY. BY CLICKING ON THE 
 
"ACCEPT" BUTTON BELOW YOU ARE ACCEPTING AND AGREEING TO THE TERMS AND 
 
CONDITIONS OF THIS LICENSE WITH THE ORIGINAL CONTRIBUTOR, REALNETWORKS, 
 
INC. IF YOU ARE AGREEING TO THIS LICENSE ON BEHALF OF A COMPANY, YOU 
 
REPRESENT THAT YOU ARE AUTHORIZED TO BIND THE COMPANY TO SUCH A LICENSE. 
 
WHETHER YOU ARE ACTING ON YOUR OWN BEHALF, OR REPRESENTING A COMPANY, 
 
YOU MUST BE OF MAJORITY AGE AND BE OTHERWISE COMPETENT TO ENTER INTO 
 
CONTRACTS. IF YOU DO NOT MEET THIS CRITERIA OR YOU DO NOT AGREE TO ANY 
 
OF THE TERMS AND CONDITIONS OF THIS LICENSE, CLICK ON THE REJECT BUTTON 
 
TO EXIT.
 

	
 
RCSL v1.0 rev. date 10-28-02
 

	
licenses/RCSL-1.2
Show inline comments
 
new file 100644
 
The RCSL is made up of a base agreement and a few Attachments.
 

	
 
For Research and Development use, you agree to the terms of the
 
RCSL R&D License (base RCSL and Attachments A, B, and C) 
 

	
 
For Commercial Use (either distribution or internal commercial
 
deployment) of the Helix DNA with or without support for RealNetworks'
 
RealAudio and RealVideo Add-on Technology, you agree to the
 
terms of the same RCSL R&D license
 
and execute one or more additional Commercial Use License attachments
 
<see http://www.helixcommunity.org/content/rcsl-attachments>.
 

	
 
------------------------------------------------------------------------
 

	
 

	
 
    REALNETWORKS COMMUNITY SOURCE LICENSE
 

	
 
Version 1.2 (Rev. Date: January 22, 2003).
 

	
 

	
 
  RECITALS
 

	
 
Original Contributor has developed Specifications, Source Code
 
implementations and Executables of certain Technology; and
 

	
 
Original Contributor desires to license the Technology to a large
 
community to facilitate research, innovation and product development
 
while maintaining compatibility of such products with the Technology as
 
delivered by Original Contributor; and
 

	
 
Original Contributor desires to license certain Trademarks for the
 
purpose of branding products that are compatible with the relevant
 
Technology delivered by Original Contributor; and
 

	
 
You desire to license the Technology and possibly certain Trademarks
 
from Original Contributor on the terms and conditions specified in this
 
License.
 

	
 
In consideration for the mutual covenants contained herein, You and
 
Original Contributor agree as follows:
 

	
 

	
 
  AGREEMENT
 

	
 
*1. Introduction.*
 

	
 
The RealNetworks Community Source License ("RCSL") and effective
 
attachments ("License") may include five distinct licenses:
 

	
 
i) Research Use license -- License plus Attachments A, B and C only.
 

	
 
ii) Commercial Use and Trademark License, which may be for Internal
 
Deployment Use or external distribution, or both -- License plus
 
Attachments A, B, C, and D.
 

	
 
iii) Technology Compatibility Kit (TCK) license -- Attachment C.
 

	
 
iv) Add-On Technology License (Executable) Commercial Use License
 
-Attachment F.
 

	
 
v) Add-On Technology Source Code Porting and Optimization
 
License-Attachment G.
 

	
 
The Research Use license is effective when You click and accept this
 
License. The TCK is effective when You click and accept this License,
 
unless otherwise specified in the TCK attachments. The Commercial Use
 
and Trademark, Add-On Technology License, and the Add-On Technology
 
Source Code Porting and Optimization licenses must each be signed by You
 
and Original Contributor to become effective. Once effective, these
 
licenses and the associated requirements and responsibilities are
 
cumulative. Capitalized terms used in this License are defined in the
 
Glossary.
 

	
 
*2. License Grants.*
 

	
 
2.1 Original Contributor Grant.
 

	
 
Subject to Your compliance with Sections 3, 8.10 and Attachment A of
 
this License, Original Contributor grants to You a worldwide,
 
royalty-free, non-exclusive license, to the extent of Original
 
Contributor's Intellectual Property Rights covering the Original Code,
 
Upgraded Code and Specifications, to do the following:
 

	
 
(a) Research Use License:
 

	
 
(i) use, reproduce and modify the Original Code, Upgraded Code and
 
Specifications to create Modifications and Reformatted Specifications
 
for Research Use by You;
 

	
 
(ii) publish and display Original Code, Upgraded Code and Specifications
 
with, or as part of Modifications, as permitted under Section 3.1(b) below;
 

	
 
(iii) reproduce and distribute copies of Original Code and Upgraded Code
 
to Licensees and students for Research Use by You;
 

	
 
(iv) compile, reproduce and distribute Original Code and Upgraded Code
 
in Executable form, and Reformatted Specifications to anyone for
 
Research Use by You.
 

	
 
(b) Other than the licenses expressly granted in this License, Original
 
Contributor retains all right, title, and interest in Original Code and
 
Upgraded Code and Specifications.
 

	
 
2.2 Your Grants.
 

	
 
(a) To Other Licensees. You hereby grant to each Licensee a license to
 
Your Error Corrections and Shared Modifications, of the same scope and
 
extent as Original Contributor's licenses under Section 2.1 a) above
 
relative to Research Use and Attachment D relative to Commercial Use.
 

	
 
(b) To Original Contributor. You hereby grant to Original Contributor a
 
worldwide, royalty-free, non-exclusive, perpetual and irrevocable
 
license, to the extent of Your Intellectual Property Rights covering
 
Your Error Corrections, Shared Modifications and Reformatted
 
Specifications, to use, reproduce, modify, display and distribute Your
 
Error Corrections, Shared Modifications and Reformatted Specifications,
 
in any form, including the right to sublicense such rights through
 
multiple tiers of distribution.
 

	
 
(c) Other than the licenses expressly granted in Sections 2.2(a) and (b)
 
above, and the restrictions set forth in Section 3.1(d)(iv) below, You
 
retain all right, title, and interest in Your Error Corrections, Shared
 
Modifications and Reformatted Specifications.
 

	
 
2.3 Contributor Modifications.
 

	
 
You may use, reproduce, modify, display and distribute Contributor Error
 
Corrections, Shared Modifications and Reformatted Specifications,
 
obtained by You under this License, to the same scope and extent as with
 
Original Code, Upgraded Code and Specifications.
 

	
 
2.4 Subcontracting.
 

	
 
You may deliver the Source Code of Covered Code to other Licensees
 
having at least a Research Use license, for the sole purpose of
 
furnishing development services to You in connection with Your rights
 
granted in this License. All such Licensees must execute appropriate
 
documents with respect to such work consistent with the terms of this
 
License, and acknowledging their work-made-for-hire status or assigning
 
exclusive right to the work product and associated Intellectual Property
 
Rights to You.
 

	
 
*3. Requirements and Responsibilities*.
 

	
 
3.1 Research Use License.
 

	
 
As a condition of exercising the rights granted under Section 2.1(a)
 
above, You agree to comply with the following:
 

	
 
(a) Your Contribution to the Community. All Error Corrections and Shared
 
Modifications which You create or contribute to are automatically
 
subject to the licenses granted under Section 2.2 above. You are
 
encouraged to license all of Your other Modifications under Section 2.2
 
as Shared Modifications, but are not required to do so. You agree to
 
notify Original Contributor of any errors in the Specification.
 

	
 
(b) Source Code Availability. You agree to provide all Your Error
 
Corrections to Original Contributor as soon as reasonably practicable
 
and, in any event, prior to Internal Deployment Use or Commercial Use,
 
if applicable. Original Contributor may, at its discretion, post Source
 
Code for Your Error Corrections and Shared Modifications on the
 
Community Webserver. You may also post Error Corrections and Shared
 
Modifications on a web-server of Your choice; provided, that You must
 
take reasonable precautions to ensure that only Licensees have access to
 
such Error Corrections and Shared Modifications. Such precautions shall
 
include, without limitation, a password protection scheme limited to
 
Licensees and a click-on, download certification of Licensee status
 
required of those attempting to download from the server. An example of
 
an acceptable certification is attached as Attachment A-2.
 

	
 
(c) Notices. All Error Corrections and Shared Modifications You create
 
or contribute to must include a file documenting the additions and
 
changes You made and the date of such additions and changes. You must
 
also include the notice set forth in Attachment A-1 in the file header.
 
If it is not possible to put the notice in a particular Source Code file
 
due to its structure, then You must include the notice in a location
 
(such as a relevant directory file), where a recipient would be most
 
likely to look for such a notice.
 

	
 
(d) Redistribution.
 

	
 
(i) Source. Covered Code may be distributed in Source Code form only to
 
another Licensee (except for students as provided below). You may not
 
offer or impose any terms on any Covered Code that alter the rights,
 
requirements, or responsibilities of such Licensee. You may distribute
 
Covered Code to students for use in connection with their course work
 
and research projects undertaken at accredited educational institutions.
 
Such students need not be Licensees, but must be given a copy of the
 
notice set forth in Attachment A-3 and such notice must also be included
 
in a file header or prominent location in the Source Code made available
 
to such students.
 

	
 
(ii) Executable. You may distribute Executable version(s) of Covered
 
Code to Licensees and other third parties only for the purpose of
 
evaluation and comment in connection with Research Use by You and under
 
a license of Your choice, but which limits use of such Executable
 
version(s) of Covered Code only to that purpose.
 

	
 
(iii) Modified Class, Interface and Package Naming. In connection with
 
Research Use by You only, You may use Original Contributor's class,
 
Interface and package names only to accurately reference or invoke the
 
Source Code files You modify. Original Contributor grants to You a
 
limited license to the extent necessary for such purposes.
 

	
 
(iv) You expressly agree that any distribution, in whole or in part, of
 
Modifications developed by You shall only be done pursuant to the terms
 
and conditions of this License.
 

	
 
(e) Extensions.
 

	
 
(i) Covered Code. You may not include any Source Code of Community Code
 
in any Extensions. You may include the compiled Header Files of
 
Community Code in an Extension provided that Your use of the Covered
 
Code, including Heading Files, complies with the Commercial Use License,
 
the TCK and all other terms of this License.
 

	
 
(ii) Publication. No later than the date on which You first distribute
 
such Extension for Commercial Use, You must publish to the industry, on
 
a non-confidential basis and free of all copyright restrictions with
 
respect to reproduction and use, an accurate and current specification
 
for any Extension. In addition, You must make available an appropriate
 
test suite, pursuant to the same rights as the specification,
 
sufficiently detailed to allow any third party reasonably skilled in the
 
technology to produce implementations of the Extension compatible with
 
the specification. Such test suites must be made available as soon as
 
reasonably practicable but, in no event, later than ninety (90) days
 
after Your first Commercial Use of the Extension. You must use
 
reasonable efforts to promptly clarify and correct the specification and
 
the test suite upon written request by Original Contributor.
 

	
 
(iii) Open. You agree to refrain from enforcing any Intellectual
 
Property Rights You may have covering any interface(s) of Your
 
Extension, which would prevent the implementation of such interface(s)
 
by Original Contributor or any Licensee. This obligation does not
 
prevent You from enforcing any Intellectual Property Right You have that
 
would otherwise be infringed by an implementation of Your Extension.
 

	
 
(iv) Interface Modifications and Naming. You may not modify or add to
 
the GUID space * * "xxxxxxxx-0901-11d1-8B06-00A024406D59" or any other
 
GUID space designated by Original Contributor. You may not modify any
 
Interface prefix provided with the Covered Code or any other prefix
 
designated by Original Contributor.* *
 

	
 
* *
 

	
 
(f) You agree that any Specifications provided to You by Original
 
Contributor are confidential and proprietary information of Original
 
Contributor. You must maintain the confidentiality of the Specifications
 
and may not disclose them to any third party without Original
 
Contributor's prior written consent. You may only use the Specifications
 
under the terms of this License and only for the purpose of implementing
 
the terms of this License with respect to Covered Code. You agree not
 
use, copy or distribute any such Specifications except as provided in
 
writing by Original Contributor.
 

	
 
3.2 Commercial Use License.
 

	
 
You may not make Commercial Use of any Covered Code unless You and
 
Original Contributor have executed a copy of the Commercial Use and
 
Trademark License attached as Attachment D.
 

	
 
*4. Versions of the License.*
 

	
 
4.1 License Versions.
 

	
 
Original Contributor may publish revised versions of the License from
 
time to time. Each version will be given a distinguishing version number.
 

	
 
4.2 Effect.
 

	
 
Once a particular version of Covered Code has been provided under a
 
version of the License, You may always continue to use such Covered Code
 
under the terms of that version of the License. You may also choose to
 
use such Covered Code under the terms of any subsequent version of the
 
License. No one other than Original Contributor has the right to
 
promulgate License versions.
 

	
 
4.3 Multiple-Licensed Code.
 

	
 
Original Contributor may designate portions of the Covered Code as
 
"Multiple-Licensed." "Multiple-Licensed" means that the Original
 
Contributor permits You to utilize those designated portions of the
 
Covered Code under Your choice of this License or the alternative
 
license(s), if any, specified by the Original Contributor in an
 
Attachment to this License.
 

	
 
*5. Disclaimer of Warranty.*
 

	
 
5.1 COVERED CODE PROVIDED AS IS.
 

	
 
COVERED CODE IS PROVIDED UNDER THIS LICENSE "AS IS," WITHOUT WARRANTY OF
 
ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
 
WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT
 
FOR A PARTICULAR PURPOSE OR NON-INFRINGING. YOU AGREE TO BEAR THE ENTIRE
 
RISK IN CONNECTION WITH YOUR USE AND DISTRIBUTION OF COVERED CODE UNDER
 
THIS LICENSE. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART
 
OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER
 
EXCEPT SUBJECT TO THIS DISCLAIMER.
 

	
 
5.2 Not Designed for High Risk Activities.
 

	
 
You acknowledge that Original Code, Upgraded Code and Specifications are
 
not designed or intended for use in high risk activities including, but
 
not limited to: (i) on-line control of aircraft, air traffic, aircraft
 
navigation or aircraft communications; or (ii) in the design,
 
construction, operation or maintenance of any nuclear facility. Original
 
Contributor disclaims any express or implied warranty of fitness for
 
such uses.
 

	
 
*6. Termination.*
 

	
 
6.1 By You.
 

	
 
You may terminate this Research Use license at anytime by providing
 
written notice to Original Contributor.
 

	
 
6.2 By Original Contributor.
 

	
 
This License and the rights granted hereunder will terminate:
 

	
 
(i) automatically if You fail to comply with the terms of this License
 
and fail to cure such breach within 30 days of receipt of written notice
 
of the breach;
 

	
 
(ii) immediately in the event of circumstances specified in Sections 7.1
 
and 8.4; or
 

	
 
(iii) at Original Contributor's discretion upon any action initiated by
 
You (including by cross-claim or counter claim) alleging that use or
 
distribution by Original Contributor or any Licensee, of Original Code,
 
Upgraded Code, Error Corrections, Shared Modifications or Specifications
 
infringe a patent owned or controlled by You.
 

	
 
6.3 Effective of Termination.
 

	
 
Upon termination, You agree to discontinue use of and destroy all copies
 
of Covered Code in Your possession. All sublicenses to the Covered Code
 
which You have properly granted shall survive any termination of this
 
License. Provisions that, by their nature, should remain in effect
 
beyond the termination of this License shall survive including, without
 
limitation, Sections 2.2, 3, 5, 7 and 8.
 

	
 
6.4 No Compensation.
 

	
 
Each party waives and releases the other from any claim to compensation
 
or indemnity for permitted or lawful termination of the business
 
relationship established by this License.
 

	
 
*7. Liability.*
 

	
 
7.1 Infringement. Should any of the Original Code, Upgraded Code, TCK or
 
Specifications ("Materials") become the subject of a claim of
 
infringement, Original Contributor may, at its sole option, (i) attempt
 
to procure the rights necessary for You to continue using the Materials,
 
(ii) modify the Materials so that they are no longer infringing, or
 
(iii) terminate Your right to use the Materials, immediately upon
 
written notice, and refund to You the amount, if any, having then
 
actually been paid by You to Original Contributor for the Original Code,
 
Upgraded Code and TCK, depreciated on a straight line, five year basis.
 

	
 
7.2 LIMITATION OF LIABILITY. TO THE FULL EXTENT ALLOWED BY APPLICABLE
 
LAW, ORIGINAL CONTRIBUTOR'S LIABILITY TO YOU FOR CLAIMS RELATING TO THIS
 
LICENSE, WHETHER FOR BREACH OR IN TORT, SHALL BE LIMITED TO ONE HUNDRED
 
PERCENT (100%) OF THE AMOUNT HAVING THEN ACTUALLY BEEN PAID BY YOU TO
 
ORIGINAL CONTRIBUTOR FOR ALL COPIES LICENSED HEREUNDER OF THE PARTICULAR
 
ITEMS GIVING RISE TO SUCH CLAIM, IF ANY, DURING THE TWELVE MONTHS
 
PRECEDING THE CLAIMED BREACH. IN NO EVENT WILL YOU (RELATIVE TO YOUR
 
SHARED MODIFICATIONS OR ERROR CORRECTIONS) OR ORIGINAL CONTRIBUTOR BE
 
LIABLE FOR ANY INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
 
DAMAGES IN CONNECTION WITH OR RISING OUT OF THIS LICENSE (INCLUDING,
 
WITHOUT LIMITATION, LOSS OF PROFITS, USE, DATA, OR OTHER ECONOMIC
 
ADVANTAGE), HOWEVER IT ARISES AND ON ANY THEORY OF LIABILITY, WHETHER IN
 
AN ACTION FOR CONTRACT, STRICT LIABILITY OR TORT (INCLUDING NEGLIGENCE)
 
OR OTHERWISE, WHETHER OR NOT YOU OR ORIGINAL CONTRIBUTOR HAS BEEN
 
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE AND NOTWITHSTANDING THE
 
FAILURE OF ESSENTIAL PURPOSE OF ANY REMEDY.
 

	
 
*8. Miscellaneous.*
 

	
 
8.1 Trademark.
 

	
 
You shall not use any Trademark unless You and Original Contributor
 
execute a copy of the Commercial Use and Trademark License Agreement
 
attached hereto as Attachment D. Except as expressly provided in the
 
License, You are granted no right, title or license to, or interest in,
 
any Trademarks. Whether or not You and Original Contributor enter into
 
the Trademark License, You agree not to (i) challenge Original
 
Contributor's ownership or use of Trademarks; (ii) attempt to register
 
any Trademarks, or any mark or logo substantially similar thereto; or
 
(iii) incorporate any Trademarks into Your own trademarks, product
 
names, service marks, company names, or domain names.
 

	
 
8.2 Integration.
 

	
 
This License represents the complete agreement concerning the subject
 
matter hereof.
 

	
 
8.3 Assignment.
 

	
 
Original Contributor may assign this License, and its rights and
 
obligations hereunder, in its sole discretion. You may assign the
 
Research Use portions of this License and the TCK license to a third
 
party upon prior written notice to Original Contributor (which may be
 
provided electronically via the Community Web-Server). You may not
 
assign the Commercial Use and Trademark license, the Add-On Technology
 
License, or the Add-On Technology Source Code Porting License, including
 
by way of merger (regardless of whether You are the surviving entity) or
 
acquisition, without Original Contributor's prior written consent.
 

	
 
8.4 Severability.
 

	
 
If any provision of this License is held to be unenforceable, such
 
provision shall be reformed only to the extent necessary to make it
 
enforceable. Notwithstanding the foregoing, if You are prohibited by law
 
from fully and specifically complying with Sections 2.2 or 3, this
 
License will immediately terminate and You must immediately discontinue
 
any use of Covered Code.
 

	
 
8.5 Governing Law.
 

	
 
This License shall be governed by the laws of the United States and the
 
State of Washington, as applied to contracts entered into and to be
 
performed in Washington between Washington residents. The application of
 
the United Nations Convention on Contracts for the International Sale of
 
Goods is expressly excluded. You agree that the state and federal courts
 
located in Seattle, Washington have exclusive jurisdiction over any
 
claim relating to the License, including contract and tort claims.
 

	
 
8.6 Dispute Resolution.
 

	
 
a) Arbitration. Any dispute arising out of or relating to this License
 
shall be finally settled by arbitration as set out herein, except that
 
either party may bring any action, in a court of competent jurisdiction
 
(which jurisdiction shall be exclusive), with respect to any dispute
 
relating to such party's Intellectual Property Rights or with respect to
 
Your compliance with the TCK license. Arbitration shall be administered:
 
(i) by the American Arbitration Association (AAA), (ii) in accordance
 
with the rules of the United Nations Commission on International Trade
 
Law (UNCITRAL) (the "Rules") in effect at the time of arbitration as
 
modified herein; and (iii) the arbitrator will apply the substantive
 
laws of Washington and the United States. Judgment upon the award
 
rendered by the arbitrator may be entered in any court having
 
jurisdiction to enforce such award.
 

	
 
b) Arbitration language, venue and damages. All arbitration proceedings
 
shall be conducted in English by a single arbitrator selected in
 
accordance with the Rules, who must be fluent in English and be either a
 
retired judge or practicing attorney having at least ten (10) years
 
litigation experience and be reasonably familiar with the technology
 
matters relative to the dispute. Unless otherwise agreed, arbitration
 
venue shall be in Seattle, Washington. The arbitrator may award monetary
 
damages only and nothing shall preclude either party from seeking
 
provisional or emergency relief from a court of competent jurisdiction.
 
The arbitrator shall have no authority to award damages in excess of
 
those permitted in this License and any such award in excess is void.
 
All awards will be payable in U.S. dollars and may include, for the
 
prevailing party (i) pre-judgment award interest, (ii) reasonable
 
attorneys' fees incurred in connection with the arbitration, and (iii)
 
reasonable costs and expenses incurred in enforcing the award. The
 
arbitrator will order each party to produce identified documents and
 
respond to no more than twenty-five single question interrogatories.
 

	
 
8.7 Construction.
 

	
 
Any law or regulation, which provides that the language of a contract
 
shall be construed against the drafter, shall not apply to this License.
 

	
 
8.8 U.S. Government End Users.
 

	
 
The Covered Code is a "commercial item," as that term is defined in 48
 
C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software"
 
and "commercial computer software documentation," as such terms are used
 
in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and
 
48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government
 
End Users acquire Covered Code with only those rights set forth herein.
 
You agree to pass this notice to our licensees.
 

	
 
8.9 Marketing Activities.
 

	
 
Licensee hereby grants Original Contributor a non-exclusive,
 
non-transferable, limited license to use the Licensee's company name and
 
logo ("Licensee Marks") in any presentations, press releases, or
 
marketing materials solely for the purpose of identifying Licensee as a
 
member of the Helix Community. Licensee shall provide samples of
 
Licensee Marks to Original Contributor upon request by Original
 
Contributor. Original Contributor acknowledges that the Licensee Marks
 
are the trademarks of Licensee. Original Contributor shall not use the
 
Licensee Marks in a way that may imply that Original Contributor is an
 
agency or branch of Licensee. Original Contributor understands and
 
agrees that the use of any Licensee Marks in connection with this
 
Agreement shall not create any right, title or interest, in, or to the
 
Licensee Marks or any Licensee trademarks and that all such use and
 
goodwill associated with any such trademarks will inure to the benefit
 
of Licensee. Further the Original Contributor will stop usage of the
 
Licensee Marks upon Licensee's request.
 

	
 
8.10 Press Announcements.
 

	
 
You may make press announcements or other public statements regarding
 
this License without the prior written consent of the Original
 
Contributor, if Your statement is limited to announcing the licensing of
 
the Covered Code or the availability of Your Product and its
 
compatibility with the Covered Code. All other public announcements
 
regarding this license require the prior written consent of the Original
 
Contributor. Consent requests are welcome at press@helixcommunity.org.
 

	
 
8.11 International Use.
 

	
 
a) Export/Import laws. Covered Code is subject to U.S. export control
 
laws and may be subject to export or import regulations in other
 
countries. Each party agrees to comply strictly with all such laws and
 
regulations and acknowledges their responsibility to obtain such
 
licenses to export, re-export, or import as may be required. You agree
 
to pass these obligations to Your licensees.
 

	
 
b) Intellectual Property Protection. Due to limited intellectual
 
property protection and enforcement in certain countries, You agree not
 
to redistribute the Original Code, Upgraded Code, TCK and Specifications
 
to any country on the list of restricted countries on the Community Web
 
Server.
 

	
 
8.12 Language.
 

	
 
This License is in the English language only, which language shall be
 
controlling in all respects, and all versions of this License in any
 
other language shall be for accommodation only and shall not be binding
 
on the parties to this License. All communications and notices made or
 
given pursuant to this License, and all documentation and support to be
 
provided, unless otherwise noted, shall be in the English language.
 

	
 
PLEASE READ THE TERMS OF THIS LICENSE CAREFULLY. BY CLICKING ON THE
 
"ACCEPT" BUTTON BELOW YOU ARE ACCEPTING AND AGREEING TO THE TERMS AND
 
CONDITIONS OF THIS LICENSE WITH REALNETWORKS, INC. IF YOU ARE AGREEING
 
TO THIS LICENSE ON BEHALF OF A COMPANY, YOU REPRESENT THAT YOU ARE
 
AUTHORIZED TO BIND THE COMPANY TO SUCH A LICENSE. WHETHER YOU ARE ACTING
 
ON YOUR OWN BEHALF, OR REPRESENTING A COMPANY, YOU MUST BE OF MAJORITY
 
AGE AND BE OTHERWISE COMPETENT TO ENTER INTO CONTRACTS. IF YOU DO NOT
 
MEET THIS CRITERIA OR YOU DO NOT AGREE TO ANY OF THE TERMS AND
 
CONDITIONS OF THIS LICENSE, CLICK ON THE REJECT BUTTON TO EXIT.
 

	
 

	
 
    GLOSSARY
 

	
 
1. *"Added Value"* means code which:
 

	
 
(i) has a principal purpose which is substantially different from that
 
of the stand-alone Technology;
 

	
 
(ii) represents a significant functional and value enhancement to the
 
Technology;
 

	
 
(iii) operates in conjunction with the Technology; and
 

	
 
(iv) is not marketed as a technology which replaces or substitutes for
 
the Technology
 

	
 
2. "*Applicable Patent Rights*" mean: (a) in the case where Original
 
Contributor is the grantor of rights, claims of patents that (i) are now
 
or hereafter acquired, owned by or assigned to Original Contributor and
 
(ii) are necessarily infringed by using or making the Original Code or
 
Upgraded Code, including Modifications provided by Original Contributor,
 
alone and not in combination with other software or hardware; and (b) in
 
the case where Licensee is the grantor of rights, claims of patents that
 
(i) are now or hereafter acquired, owned by or assigned to Licensee and
 
(ii) are infringed (directly or indirectly) by using or making
 
Licensee's Modifications or Error Corrections, taken alone or in
 
combination with Covered Code.
 

	
 
3. "*Application Programming Interfaces (APIs)"* means the interfaces,
 
associated header files, service provider interfaces, and protocols that
 
enable a device, application, Operating System, or other program to
 
obtain services from or make requests of (or provide services in
 
response to requests from) other programs, and to use, benefit from, or
 
rely on the resources, facilities, and capabilities of the relevant
 
programs using the APIs. APIs includes the technical documentation
 
describing the APIs, the Source Code constituting the API, and any
 
Header Files used with the APIs.
 

	
 
4. "*Commercial Use*" means any use (internal or external), copying,
 
sublicensing or distribution (internal or external), directly or
 
indirectly of Covered Code by You other than Your Research Use of
 
Covered Code within Your business or organization or in conjunction with
 
other Licensees with equivalent Research Use rights. Commercial Use
 
includes any use of the Covered Code for direct or indirect commercial
 
or strategic gain, advantage or other business purpose. Any Commercial
 
Use requires execution of Attachment D by You and Original Contributor.
 

	
 
5. "*Community Code*" means the Original Code, Upgraded Code, Error
 
Corrections, Shared Modifications, or any combination thereof.
 

	
 
6. "*Community Webserver(s)"* means the webservers designated by
 
Original Contributor for access to the Original Code, Upgraded Code, TCK
 
and Specifications and for posting Error Corrections and Shared
 
Modifications.
 

	
 
7. "*Compliant Covered Code*" means Covered Code that complies with the
 
requirements of the TCK.
 

	
 
8. "*Contributor*" means each Licensee that creates or contributes to
 
the creation of any Error Correction or Shared Modification.
 

	
 
9. "*Covered Code*" means the Original Code, Upgraded Code,
 
Modifications, or any combination thereof.
 

	
 
10. "*Error Correction*" means any change made to Community Code which
 
conforms to the Specification and corrects the adverse effect of a
 
failure of Community Code to perform any function set forth in or
 
required by the Specifications.
 

	
 
11. "*Executable*" means Covered Code that has been converted from
 
Source Code to the preferred form for execution by a computer or digital
 
processor (e.g. binary form).
 

	
 
12. "*Extension(s)"* means any additional Interfaces developed by or for
 
You which: (i) are designed for use with the Technology; (ii) constitute
 
an API for a library of computing functions or services; and (iii) are
 
disclosed or otherwise made available to third party software developers
 
for the purpose of developing software which invokes such additional
 
Interfaces. The foregoing shall not apply to software developed by Your
 
subcontractors to be exclusively used by You.
 

	
 
13. "*Header File(s)"* means that portion of the Source Code that
 
provides the names and types of member functions, data members, class
 
definitions, and interface definitions necessary to implement the APIs
 
for the Covered Code. Header Files include, files specifically
 
designated by Original Contributor as Header Files. Header Files do not
 
include the code necessary to implement the functionality underlying the
 
Interface.
 

	
 
14. *"Helix DNA Server Technology"* means the program(s) that implement
 
the Helix Universal Server streaming engine for the Technology as
 
defined in the Specification.
 

	
 
15. *"Helix DNA Client Technology"* means the Covered Code that
 
implements the RealOne Player engine as defined in the Specification.
 

	
 
16. *"Helix DNA Producer Technology"* means the Covered Code that
 
implements the Helix Producer engine as defined in the Specification.
 

	
 
17. *"Helix DNA Technology"* means the Helix DNA Server Technology, the
 
Helix DNA Client Technology, the Helix DNA Producer Technology and other
 
Helix technologies designated by Original Contributor.
 

	
 
18. "*Intellectual Property Rights*" means worldwide statutory and
 
common law rights associated solely with (i) Applicable Patent Rights;
 
(ii) works of authorship including copyrights, copyright applications,
 
copyright registrations and "moral rights"; (iii) the protection of
 
trade and industrial secrets and confidential information; and (iv)
 
divisions, continuations, renewals, and re-issuances of the foregoing
 
now existing or acquired in the future.
 

	
 
19. *"Interface*" means interfaces, functions, properties, class
 
definitions, APIs, Header Files, GUIDs, V-Tables, and/or protocols
 
allowing one piece of software, firmware or hardware to communicate or
 
interoperate with another piece of software, firmware or hardware.
 

	
 
20. "*Internal Deployment Use*" means use of Compliant Covered Code
 
(excluding Research Use) within Your business or organization only by
 
Your employees and/or agents on behalf of Your business or organization,
 
but not to provide services, including content distribution, to third
 
parties, subject to execution of Attachment D by You and Original
 
Contributor, if required.
 

	
 
21. "*Licensee*" means any party that has entered into and has in effect
 
a version of this License with Original Contributor.
 

	
 
22. "*MIME type*" means a description of what type of media or other
 
content is in a file, including by way of example but not limited to
 
'audio/x-pn-realaudio-plugin.'
 

	
 
23. "*Modification(s)"* means (i) any addition to, deletion from and/or
 
change to the substance and/or structure of the Covered Code, including
 
Interfaces; (ii) the combination of any Covered Code and any previous
 
Modifications; (iii) any new file or other representation of computer
 
program statements that contains any portion of Covered Code; and/or
 
(iv) any new Source Code implementing any portion of the Specifications.
 

	
 
24. "*MP3 Patents*" means any patents necessary to make, use or sell
 
technology implementing any portion of the specification developed by
 
the Moving Picture Experts Group known as MPEG-1 Audio Layer-3 or MP3,
 
including but not limited to all past and future versions, profiles,
 
extensions, parts and amendments relating to the MP3 specification.
 

	
 
25. "*MPEG-4 Patents*" means any patents necessary to make, use or sell
 
technology implementing any portion of the specification developed by
 
the Moving Pictures Experts Group known as MPEG-4, including but not
 
limited to all past and future versions, profiles, extensions, parts and
 
amendments relating to the MPEG-4 specification.
 

	
 
26. "*Original Code*" means the initial Source Code for the Technology
 
as described on the Community Web Server.
 

	
 
27. "*Original Contributor*" means RealNetworks, Inc., its affiliates
 
and its successors and assigns.
 

	
 
28. "*Original Contributor MIME Type*" means the MIME registry, browser
 
preferences, or local file/protocol associations invoking any Helix DNA
 
Client-based application, including the RealOne Player, for playback of
 
RealAudio, RealVideo, other RealMedia MIME types or datatypes (e.g.,
 
.ram, .rnx, .rpm, .ra, .rm, .rp, .rt, .rf, .prx, .mpe, .rmp, .rmj, .rav,
 
.rjs, .rmx, .rjt, .rms), and any other Original Contributor-specific or
 
proprietary MIME types that Original Contributor may introduce in the
 
future.
 

	
 
29. "*Personal Use*" means use of Covered Code by an individual solely
 
for his or her personal, private and non-commercial purposes. An
 
individual's use of Covered Code in his or her capacity as an officer,
 
employee, member, independent contractor or agent of a corporation,
 
business or organization (commercial or non-commercial) does not qualify
 
as Personal Use.
 

	
 
30. "*RealMedia File Format*" means the file format designed and
 
developed by RealNetworks for storing multimedia data and used to store
 
RealAudio and RealVideo encoded streams. Valid RealMedia File Format
 
extensions include: .rm, .rmj, .rmc, .rmvb, .rms.
 

	
 
31. "*RCSL Webpage*" means the RealNetworks Community Source License
 
webpage located at https://www.helixcommunity.org/content/rcsl or such
 
other URL that Original Contributor may designate from time to time.
 

	
 
32. "*Reformatted Specifications*" means any revision to the
 
Specifications which translates or reformats the Specifications (as for
 
example in connection with Your documentation) but which does not alter,
 
subset or superset * *the functional or operational aspects of the
 
Specifications.
 

	
 
33. "*Research Use*" means use and distribution of Covered Code only for
 
Your Personal Use, research or development use and expressly excludes
 
Internal Deployment Use and Commercial Use. Research Use also includes
 
use of Covered Code to teach individuals how to use Covered Code.
 

	
 
34. "*Shared Modifications*" means Modifications that You distribute or
 
use for a Commercial Use, in addition to any Modifications provided by
 
You, at Your option, pursuant to Section 2.2, or received by You from a
 
Contributor pursuant to Section 2.3.
 

	
 
35. "*Source Code*" means the preferred form of the Covered Code for
 
making modifications to it, including all modules it contains, plus any
 
associated interface definition files, scripts used to control
 
compilation and installation of an Executable, or source code
 
differential comparisons against either the Original Code or another
 
well known, available Covered Code of the Contributor's choice. The
 
Source Code can be in a compressed or archival form, provided the
 
appropriate decompression or de-archiving software is widely available
 
for no charge.
 

	
 
36. "*Specifications*" means the specifications for the Technology and
 
other documentation, as designated on the Community Web Server, as may
 
be revised by Original Contributor from time to time.
 

	
 
37. "*Trademarks*" means Original Contributor's trademarks and logos,
 
including, but not limited to, RealNetworks, RealAudio, RealVideo,
 
RealOne, RealSystem, SureStream, Helix, Helix DNA and other trademarks
 
whether now used or adopted in the future.
 

	
 
38. "*Technology*" means the technology described in Attachment B, and
 
Upgrades.
 

	
 
39. "*Technology Compatibility Kit"* or *"TCK*" means the test programs,
 
procedures, acceptance criteria and/or other requirements, designated by
 
Original Contributor for use in verifying compliance of Covered Code
 
with the Specifications, in conjunction with the Original Code and
 
Upgraded Code. Original Contributor may, in its sole discretion and from
 
time to time, revise a TCK to correct errors and/or omissions and in
 
connection with Upgrades.
 

	
 
40. "*Upgrade(s)"* means new versions of Technology designated
 
exclusively by Original Contributor as an "Upgrade" and released by
 
Original Contributor from time to time under the terms of the License.
 

	
 
41. "*Upgraded Code*" means the Source Code and/or Executables for
 
Upgrades, possibly including Modifications made by Contributors.
 

	
 
42. *"User's Guide"* means the users guide for the TCK which Original
 
Contributor makes available to You to provide direction in how to run
 
the TCK and properly interpret the results, as may be revised by
 
Original Contributor from time to time.
 

	
 
43. "*You(r)*" means an individual, or a legal entity acting by and
 
through an individual or individuals, exercising rights either under
 
this License or under a future version of this License issued pursuant
 
to Section 4.1. For legal entities, "You(r)" includes any entity that by
 
majority voting interest controls, is controlled by, or is under common
 
control with You.
 

	
 
44. "*Your Products*" means any (i) hardware products You distribute
 
integrating the Covered Code; (ii) any software products You distribute
 
with the Covered Code that utilize the APIs of the Covered Code; or
 
(iii) any services You provide using the Covered Code.
 

	
 

	
 
  ATTACHMENT A
 

	
 
REQUIRED NOTICES
 

	
 

	
 
    ATTACHMENT A-1
 

	
 
REQUIRED IN ALL CASES
 

	
 
Notice to be included in header file of all Error Corrections and Shared
 
Modifications:
 

	
 
Portions Copyright 1994-2003 © RealNetworks, Inc. All rights reserved.
 

	
 
The contents of this file, and the files included with this file, are
 
subject to the current version of RealNetworks Community Source License
 
Version 1.1 (the "License"). You may not use this file except in
 
compliance with the License executed by both You and RealNetworks. You
 
may obtain a copy of the License at *
 
https://www.helixcommunity.org/content/rcsl.* You may also obtain a copy
 
of the License by contacting RealNetworks directly. Please see the
 
License for the rights, obligations and limitations governing use of the
 
contents of the file.
 

	
 
This file is part of the Helix DNA technology. RealNetworks, Inc., is
 
the developer of the Original code and owns the copyrights in the
 
portions it created.
 

	
 
This file, and the files included with this file, are distributed on an
 
'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
 
AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT
 
LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 
PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
 

	
 
Contributor(s):
 

	
 
_______________________________________________
 

	
 
Technology Compatibility Kit Test Suite(s) Location:
 

	
 
________________________________
 

	
 

	
 
    ATTACHMENT A-2
 

	
 
SAMPLE LICENSEE CERTIFICATION
 

	
 
"By clicking the `Agree' button below, You certify that You are a
 
Licensee in good standing under the RealNetworks Community Source
 
License, ("License") and that Your access, use and distribution of code
 
and information You may obtain at this site is subject to the License.
 
If You are not a Licensee under the RealNetworks Community Source
 
License You agree not to download, copy or use the Helix DNA technology.
 

	
 

	
 
    ATTACHMENT A-3
 

	
 
REQUIRED STUDENT NOTIFICATION
 

	
 
"This software and related documentation has been obtained by Your
 
educational institution subject to the RealNetworks Community Source
 
License. You have been provided access to the software and related
 
documentation for use only in connection with your course work and
 
research activities as a matriculated student of Your educational
 
institution. Any other use is expressly prohibited.
 

	
 
THIS SOFTWARE AND RELATED DOCUMENTATION CONTAINS PROPRIETARY MATERIAL OF
 
REALNETWORKS, INC, WHICH ARE PROTECTED BY VARIOUS INTELLECTUAL PROPERTY
 
RIGHTS.
 

	
 
You may not use this file except in compliance with the License. You may
 
obtain a copy of the License on the web at
 
https://www.helixcommunity.org/content/rcsl.
 

	
 
*
 
*
 

	
 

	
 
  ATTACHMENT B
 

	
 
Description of Technology
 

	
 
Helix DNA, which consists of Helix DNA Client, Helix DNA Server and
 
Helix DNA Producer.
 

	
 
Description of "Technology"
 

	
 
Helix DNA Technology v1.0 as described on the Community Web Server.
 

	
 

	
 
  ATTACHMENT C
 

	
 
TECHNOLOGY COMPATIBILITY KIT LICENSE
 

	
 
The following license is effective for the *Helix DNA* Technology
 
Compatibility Kit - as described on the Community Web Server. The
 
Technology Compatibility Kit(s) for the Technology specified in
 
Attachment B may be accessed at the Community Web Server.
 

	
 
1. TCK License.
 

	
 
1.1 Grants to use TCK
 

	
 
Subject to the terms and restrictions set forth below and the
 
RealNetworks Community Source License, and the Research Use license,
 
Original Contributor grants to You a worldwide, non-exclusive,
 
non-transferable license, to the extent of Original Contributor's
 
Intellectual Property Rights in the TCK (without the right to
 
sublicense), to use the TCK to develop and test Covered Code.
 

	
 
1.2 TCK Use Restrictions.
 

	
 
You are not authorized to create derivative works of the TCK or use the
 
TCK to test any implementation of the Specification that is not Covered
 
Code. You may not publish Your test results or make claims of
 
comparative compatibility with respect to other implementations of the
 
Specification. In consideration for the license grant in Section 1.1
 
above You agree not to develop Your own tests that are intended to
 
validate conformation with the Specification.
 

	
 
2. Test Results.
 

	
 
You agree to provide to Original Contributor or the third party test
 
facility if applicable, Your test results that demonstrate that Covered
 
Code is Compliant Covered Code and that Original Contributor may publish
 
or otherwise distribute such test results.
 

	
 
PLEASE READ THE TERMS OF THIS LICENSE CAREFULLY. BY CLICKING ON THE
 
"ACCEPT" BUTTON BELOW YOU ARE ACCEPTING AND AGREEING TO THE TERMS AND
 
CONDITIONS OF THIS LICENSE WITH THE ORIGINAL CONTRIBUTOR, REALNETWORKS,
 
INC. IF YOU ARE AGREEING TO THIS LICENSE ON BEHALF OF A COMPANY, YOU
 
REPRESENT THAT YOU ARE AUTHORIZED TO BIND THE COMPANY TO SUCH A LICENSE.
 
WHETHER YOU ARE ACTING ON YOUR OWN BEHALF, OR REPRESENTING A COMPANY,
 
YOU MUST BE OF MAJORITY AGE AND BE OTHERWISE COMPETENT TO ENTER INTO
 
CONTRACTS. IF YOU DO NOT MEET THIS CRITERIA OR YOU DO NOT AGREE TO ANY
 
OF THE TERMS AND CONDITIONS OF THIS LICENSE, CLICK ON THE REJECT BUTTON
 
TO EXIT.
 

	
 
*ACCEPT / REJECT
 
*
 

	
 
*
 
*
 

	
 
*To agree to the R&D/academic terms of this license, please register
 
<https://www.helixcommunity.org/2002/intro/why-register> on the site --
 
you will then be given a chance to agree to the clickwrap RCSL
 
<https://reguseronly.helixcommunity.org/2002/clickwrap/rcsl-clickwrap>
 
R&D License
 
<https://reguseronly.helixcommunity.org/2002/clickwrap/rcsl-clickwrap>
 
and gain access to the RCSL-licensed source code.  To build or deploy
 
commercial applications based on the RCSL, you will need to agree to the
 
Commercial Use license attachments
 
<https://www.helixcommunity.org/content/rcsl-attachments>*
 

	
 

	
 

	
licenses/RPSL
Show inline comments
 
new file 100644
 
RealNetworks Public Source License Version 1.0
 
(Rev. Date October 28, 2002)
 

	
 
1. General Definitions. This License applies to any program or other work which
 
RealNetworks, Inc., or any other entity that elects to use this license,
 
("Licensor") makes publicly available and which contains a notice placed by
 
Licensor identifying such program or work as "Original Code" and stating that it
 
is subject to the terms of this RealNetworks Public Source License version 1.0
 
(or subsequent version thereof) ("License"). You are not required to accept this
 
License. However, nothing else grants You permission to use, copy, modify or
 
distribute the software or its derivative works. These actions are prohibited by
 
law if You do not accept this License. Therefore, by modifying, copying or
 
distributing the software (or any work based on the software), You indicate your
 
acceptance of this License to do so, and all its terms and conditions. In
 
addition, you agree to the terms of this License by clicking the Accept button
 
or downloading the software. As used in this License:
 

	
 
1.1 "Applicable Patent Rights" mean: (a) in the case where Licensor is the
 
grantor of rights, claims of patents that (i) are now or hereafter acquired,
 
owned by or assigned to Licensor and (ii) are necessarily infringed by using or
 
making the Original Code alone and not in combination with other software or
 
hardware; and (b) in the case where You are the grantor of rights, claims of
 
patents that (i) are now or hereafter acquired, owned by or assigned to You and
 
(ii) are infringed (directly or indirectly) by using or making Your
 
Modifications, taken alone or in combination with Original Code.
 

	
 
1.2 "Compatible Source License" means any one of the licenses listed on Exhibit
 
B or at https://www.helixcommunity.org/content/complicense or other licenses
 
specifically identified by Licensor in writing. Notwithstanding any term to the
 
contrary in any Compatible Source License, any code covered by any Compatible
 
Source License that is used with Covered Code must be made readily available in
 
Source Code format for royalty-free use under the terms of the Compatible Source
 
License or this License.
 

	
 
1.3 "Contributor" means any person or entity that creates or contributes to the
 
creation of Modifications.
 

	
 
1.4 "Covered Code" means the Original Code, Modifications, the combination of
 
Original Code and any Modifications, and/or any respective portions thereof.
 

	
 
1.5 "Deploy" means to use, sublicense or distribute Covered Code other than for
 
Your internal research and development (R&D) and/or Personal Use, and includes
 
without limitation, any and all internal use or distribution of Covered Code
 
within Your business or organization except for R&D use and/or Personal Use, as
 
well as direct or indirect sublicensing or distribution of Covered Code by You
 
to any third party in any form or manner.
 

	
 
1.6 "Derivative Work" means either the Covered Code or any derivative work under
 
United States copyright law, and including any work containing or including any
 
portion of the Covered Code or Modifications, either verbatim or with
 
modifications and/or translated into another language. Derivative Work also
 
includes any work which combines any portion of Covered Code or Modifications
 
with code not otherwise governed by the terms of this License.
 

	
 
1.7 "Externally Deploy" means to Deploy the Covered Code in any way that may be
 
accessed or used by anyone other than You, used to provide any services to
 
anyone other than You, or used in any way to deliver any content to anyone other
 
than You, whether the Covered Code is distributed to those parties, made
 
available as an application intended for use over a computer network, or used to
 
provide services or otherwise deliver content to anyone other than You.
 

	
 
1.8. "Interface" means interfaces, functions, properties, class definitions,
 
APIs, header files, GUIDs, V-Tables, and/or protocols allowing one piece of
 
software, firmware or hardware to communicate or interoperate with another piece
 
of software, firmware or hardware.
 

	
 
1.9 "Modifications" mean any addition to, deletion from, and/or change to, the
 
substance and/or structure of the Original Code, any previous Modifications, the
 
combination of Original Code and any previous Modifications, and/or any
 
respective portions thereof. When code is released as a series of files, a
 
Modification is: (a) any addition to or deletion from the contents of a file
 
containing Covered Code; and/or (b) any new file or other representation of
 
computer program statements that contains any part of Covered Code.
 

	
 
1.10 "Original Code" means (a) the Source Code of a program or other work as
 
originally made available by Licensor under this License, including the Source
 
Code of any updates or upgrades to such programs or works made available by
 
Licensor under this License, and that has been expressly identified by Licensor
 
as such in the header file(s) of such work; and (b) the object code compiled
 
from such Source Code and originally made available by Licensor under this
 
License.
 

	
 
1.11 "Personal Use" means use of Covered Code by an individual solely for his or
 
her personal, private and non-commercial purposes. An individual's use of
 
Covered Code in his or her capacity as an officer, employee, member, independent
 
contractor or agent of a corporation, business or organization (commercial or
 
non-commercial) does not qualify as Personal Use.
 

	
 
1.12 "Source Code" means the human readable form of a program or other work that
 
is suitable for making modifications to it, including all modules it contains,
 
plus any associated interface definition files, scripts used to control
 
compilation and installation of an executable (object code).
 

	
 
1.13 "You" or "Your" means an individual or a legal entity exercising rights
 
under this License. For legal entities, "You" or "Your" includes any entity
 
which controls, is controlled by, or is under common control with, You, where
 
"control" means (a) the power, direct or indirect, to cause the direction or
 
management of such entity, whether by contract or otherwise, or (b) ownership of
 
fifty percent (50%) or more of the outstanding shares or beneficial ownership of
 
such entity.
 

	
 
2. Permitted Uses; Conditions & Restrictions. Subject to the terms and
 
conditions of this License, Licensor hereby grants You, effective on the date
 
You accept this License (via downloading or using Covered Code or otherwise
 
indicating your acceptance of this License), a worldwide, royalty-free,
 
non-exclusive copyright license, to the extent of Licensor's copyrights cover
 
the Original Code, to do the following:
 

	
 
2.1 You may reproduce, display, perform, modify and Deploy Covered Code,
 
provided that in each instance:
 

	
 
(a) You must retain and reproduce in all copies of Original Code the copyright
 
and other proprietary notices and disclaimers of Licensor as they appear in the
 
Original Code, and keep intact all notices in the Original Code that refer to
 
this License;
 

	
 
(b) You must include a copy of this License with every copy of Source Code of
 
Covered Code and documentation You distribute, and You may not offer or impose
 
any terms on such Source Code that alter or restrict this License or the
 
recipients' rights hereunder, except as permitted under Section 6;
 

	
 
(c) You must duplicate, to the extent it does not already exist, the notice in
 
Exhibit A in each file of the Source Code of all Your Modifications, and cause
 
the modified files to carry prominent notices stating that You changed the files
 
and the date of any change;
 

	
 
(d) You must make Source Code of all Your Externally Deployed Modifications
 
publicly available under the terms of this License, including the license grants
 
set forth in Section 3 below, for as long as you Deploy the Covered Code or
 
twelve (12) months from the date of initial Deployment, whichever is longer. You
 
should preferably distribute the Source Code of Your Deployed Modifications
 
electronically (e.g. download from a web site); and
 

	
 
(e) if You Deploy Covered Code in object code, executable form only, You must
 
include a prominent notice, in the code itself as well as in related
 
documentation, stating that Source Code of the Covered Code is available under
 
the terms of this License with information on how and where to obtain such
 
Source Code. You must also include the Object Code Notice set forth in Exhibit A
 
in the "about" box or other appropriate place where other copyright notices are
 
placed, including any packaging materials.
 

	
 
2.2 You expressly acknowledge and agree that although Licensor and each
 
Contributor grants the licenses to their respective portions of the Covered Code
 
set forth herein, no assurances are provided by Licensor or any Contributor that
 
the Covered Code does not infringe the patent or other intellectual property
 
rights of any other entity. Licensor and each Contributor disclaim any liability
 
to You for claims brought by any other entity based on infringement of
 
intellectual property rights or otherwise. As a condition to exercising the
 
rights and licenses granted hereunder, You hereby assume sole responsibility to
 
secure any other intellectual property rights needed, if any. For example, if a
 
third party patent license is required to allow You to make, use, sell, import
 
or offer for sale the Covered Code, it is Your responsibility to acquire such
 
license(s).
 

	
 
2.3 Subject to the terms and conditions of this License, Licensor hereby grants
 
You, effective on the date You accept this License (via downloading or using
 
Covered Code or otherwise indicating your acceptance of this License), a
 
worldwide, royalty-free, perpetual, non-exclusive patent license under
 
Licensor's Applicable Patent Rights to make, use, sell, offer for sale and
 
import the Covered Code, provided that in each instance you comply with the
 
terms of this License.
 

	
 
3. Your Grants. In consideration of, and as a condition to, the licenses granted
 
to You under this License:
 

	
 
(a) You grant to Licensor and all third parties a non-exclusive, perpetual,
 
irrevocable, royalty free license under Your Applicable Patent Rights and other
 
intellectual property rights owned or controlled by You, to make, sell, offer
 
for sale, use, import, reproduce, display, perform, modify, distribute and
 
Deploy Your Modifications of the same scope and extent as Licensor's licenses
 
under Sections 2.1 and 2.2; and
 

	
 
(b) You grant to Licensor and its subsidiaries a non-exclusive, worldwide,
 
royalty-free, perpetual and irrevocable license, under Your Applicable Patent
 
Rights and other intellectual property rights owned or controlled by You, to
 
make, use, sell, offer for sale, import, reproduce, display, perform,
 
distribute, modify or have modified (for Licensor and/or its subsidiaries),
 
sublicense and distribute Your Modifications, in any form and for any purpose,
 
through multiple tiers of distribution.
 

	
 
(c) You agree not use any information derived from Your use and review of the
 
Covered Code, including but not limited to any algorithms or inventions that may
 
be contained in the Covered Code, for the purpose of asserting any of Your
 
patent rights, or assisting a third party to assert any of its patent rights,
 
against Licensor or any Contributor.
 

	
 
4. Derivative Works. You may create a Derivative Work by combining Covered Code
 
with other code not otherwise governed by the terms of this License and
 
distribute the Derivative Work as an integrated product. In each such instance,
 
You must make sure the requirements of this License are fulfilled for the
 
Covered Code or any portion thereof, including all Modifications.
 

	
 
4.1 You must cause any Derivative Work that you distribute, publish or
 
Externally Deploy, that in whole or in part contains or is derived from the
 
Covered Code or any part thereof, to be licensed as a whole at no charge to all
 
third parties under the terms of this License and no other license except as
 
provided in Section 4.2. You also must make Source Code available for the
 
Derivative Work under the same terms as Modifications, described in Sections 2
 
and 3, above.
 

	
 
4.2 Compatible Source Licenses. Software modules that have been independently
 
developed without any use of Covered Code and which contain no portion of the
 
Covered Code, Modifications or other Derivative Works, but are used or combined
 
in any way wtih the Covered Code or any Derivative Work to form a larger
 
Derivative Work, are exempt from the conditions described in Section 4.1 but
 
only to the extent that: the software module, including any software that is
 
linked to, integrated with, or part of the same applications as, the software
 
module by any method must be wholly subject to one of the Compatible Source
 
Licenses. Notwithstanding the foregoing, all Covered Code must be subject to the
 
terms of this License. Thus, the entire Derivative Work must be licensed under a
 
combination of the RPSL (for Covered Code) and a Compatible Source License for
 
any independently developed software modules within the Derivative Work. The
 
foregoing requirement applies even if the Compatible Source License would
 
ordinarily allow the software module to link with, or form larger works with,
 
other software that is not subject to the Compatible Source License. For
 
example, although the Mozilla Public License v1.1 allows Mozilla code to be
 
combined with proprietary software that is not subject to the MPL, if
 
MPL-licensed code is used with Covered Code the MPL-licensed code could not be
 
combined or linked with any code not governed by the MPL. The general intent of
 
this section 4.2 is to enable use of Covered Code with applications that are
 
wholly subject to an acceptable open source license. You are responsible for
 
determining whether your use of software with Covered Code is allowed under Your
 
license to such software.
 

	
 
4.3 Mere aggregation of another work not based on the Covered Code with the
 
Covered Code (or with a work based on the Covered Code) on a volume of a storage
 
or distribution medium does not bring the other work under the scope of this
 
License. If You deliver the Covered Code for combination and/or integration with
 
an application previously provided by You (for example, via automatic updating
 
technology), such combination and/or integration constitutes a Derivative Work
 
subject to the terms of this License.
 

	
 
5. Exclusions From License Grant. Nothing in this License shall be deemed to
 
grant any rights to trademarks, copyrights, patents, trade secrets or any other
 
intellectual property of Licensor or any Contributor except as expressly stated
 
herein. No right is granted to the trademarks of Licensor or any Contributor
 
even if such marks are included in the Covered Code. Nothing in this License
 
shall be interpreted to prohibit Licensor from licensing under different terms
 
from this License any code that Licensor otherwise would have a right to
 
license. Modifications, Derivative Works and/or any use or combination of
 
Covered Code with other technology provided by Licensor or third parties may
 
require additional patent licenses from Licensor which Licensor may grant in its
 
sole discretion. No patent license is granted separate from the Original Code or
 
combinations of the Original Code with other software or hardware.
 

	
 
5.1. Trademarks. This License does not grant any rights to use the trademarks or
 
trade names owned by Licensor ("Licensor Marks" defined in Exhibit C) or to any
 
trademark or trade name belonging to any Contributor. No Licensor Marks may be
 
used to endorse or promote products derived from the Original Code other than as
 
permitted by the Licensor Trademark Policy defined in Exhibit C.
 

	
 
6. Additional Terms. You may choose to offer, and to charge a fee for, warranty,
 
support, indemnity or liability obligations and/or other rights consistent with
 
the scope of the license granted herein ("Additional Terms") to one or more
 
recipients of Covered Code. However, You may do so only on Your own behalf and
 
as Your sole responsibility, and not on behalf of Licensor or any Contributor.
 
You must obtain the recipient's agreement that any such Additional Terms are
 
offered by You alone, and You hereby agree to indemnify, defend and hold
 
Licensor and every Contributor harmless for any liability incurred by or claims
 
asserted against Licensor or such Contributor by reason of any such Additional
 
Terms.
 

	
 
7. Versions of the License. Licensor may publish revised and/or new versions of
 
this License from time to time. Each version will be given a distinguishing
 
version number. Once Original Code has been published under a particular version
 
of this License, You may continue to use it under the terms of that version. You
 
may also choose to use such Original Code under the terms of any subsequent
 
version of this License published by Licensor. No one other than Licensor has
 
the right to modify the terms applicable to Covered Code created under this
 
License.
 

	
 
8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in part
 
pre-release, untested, or not fully tested works. The Covered Code may contain
 
errors that could cause failures or loss of data, and may be incomplete or
 
contain inaccuracies. You expressly acknowledge and agree that use of the
 
Covered Code, or any portion thereof, is at Your sole and entire risk. THE
 
COVERED CODE IS PROVIDED "AS IS" AND WITHOUT WARRANTY, UPGRADES OR SUPPORT OF
 
ANY KIND AND LICENSOR AND LICENSOR'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS
 
"LICENSOR" FOR THE PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY
 
DISCLAIM ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT
 
NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF MERCHANTABILITY, OF
 
SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR PURPOSE, OF ACCURACY, OF QUIET
 
ENJOYMENT, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. LICENSOR AND EACH
 
CONTRIBUTOR DOES NOT WARRANT AGAINST INTERFERENCE WITH YOUR ENJOYMENT OF THE
 
COVERED CODE, THAT THE FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR
 
REQUIREMENTS, THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR
 
ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO ORAL OR
 
WRITTEN DOCUMENTATION, INFORMATION OR ADVICE GIVEN BY LICENSOR, A LICENSOR
 
AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY. You
 
acknowledge that the Covered Code is not intended for use in high risk
 
activities, including, but not limited to, the design, construction, operation
 
or maintenance of nuclear facilities, aircraft navigation, aircraft
 
communication systems, or air traffic control machines in which case the failure
 
of the Covered Code could lead to death, personal injury, or severe physical or
 
environmental damage. Licensor disclaims any express or implied warranty of
 
fitness for such uses.
 

	
 
9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT
 
SHALL LICENSOR OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL, SPECIAL,
 
INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO THIS LICENSE OR
 
YOUR USE OR INABILITY TO USE THE COVERED CODE, OR ANY PORTION THEREOF, WHETHER
 
UNDER A THEORY OF CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE OR STRICT
 
LIABILITY), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF LICENSOR OR SUCH
 
CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES AND
 
NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY REMEDY. SOME
 
JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF INCIDENTAL OR
 
CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY TO YOU. In no event
 
shall Licensor's total liability to You for all damages (other than as may be
 
required by applicable law) under this License exceed the amount of ten dollars
 
($10.00).
 

	
 
10. Ownership. Subject to the licenses granted under this License, each
 
Contributor retains all rights, title and interest in and to any Modifications
 
made by such Contributor. Licensor retains all rights, title and interest in and
 
to the Original Code and any Modifications made by or on behalf of Licensor
 
("Licensor Modifications"), and such Licensor Modifications will not be
 
automatically subject to this License. Licensor may, at its sole discretion,
 
choose to license such Licensor Modifications under this License, or on
 
different terms from those contained in this License or may choose not to
 
license them at all.
 

	
 
11. Termination. 
 

	
 
11.1 Term and Termination. The term of this License is perpetual unless
 
terminated as provided below. This License and the rights granted hereunder will
 
terminate:
 

	
 
(a) automatically without notice from Licensor if You fail to comply with any
 
term(s) of this License and fail to cure such breach within 30 days of becoming
 
aware of such breach;
 

	
 
(b) immediately in the event of the circumstances described in Section 12.5(b);
 
or
 

	
 
(c) automatically without notice from Licensor if You, at any time during the
 
term of this License, commence an action for patent infringement against
 
Licensor (including by cross-claim or counter claim in a lawsuit);
 

	
 
(d) upon written notice from Licensor if You, at any time during the term of
 
this License, commence an action for patent infringement against any third party
 
alleging that the Covered Code itself (excluding combinations with other
 
software or hardware) infringes any patent (including by cross-claim or counter
 
claim in a lawsuit).
 

	
 
11.2 Effect of Termination. Upon termination, You agree to immediately stop any
 
further use, reproduction, modification, sublicensing and distribution of the
 
Covered Code and to destroy all copies of the Covered Code that are in your
 
possession or control. All sublicenses to the Covered Code which have been
 
properly granted prior to termination shall survive any termination of this
 
License. Provisions which, by their nature, should remain in effect beyond the
 
termination of this License shall survive, including but not limited to Sections
 
3, 5, 8, 9, 10, 11, 12.2 and 13. No party will be liable to any other for
 
compensation, indemnity or damages of any sort solely as a result of terminating
 
this License in accordance with its terms, and termination of this License will
 
be without prejudice to any other right or remedy of any party.
 

	
 
12. Miscellaneous.
 

	
 
12.1 Government End Users. The Covered Code is a "commercial item" as defined in
 
FAR 2.101. Government software and technical data rights in the Covered Code
 
include only those rights customarily provided to the public as defined in this
 
License. This customary commercial license in technical data and software is
 
provided in accordance with FAR 12.211 (Technical Data) and 12.212 (Computer
 
Software) and, for Department of Defense purchases, DFAR 252.227-7015 (Technical
 
Data -- Commercial Items) and 227.7202-3 (Rights in Commercial Computer Software
 
or Computer Software Documentation). Accordingly, all U.S. Government End Users
 
acquire Covered Code with only those rights set forth herein.
 

	
 
12.2 Relationship of Parties. This License will not be construed as creating an
 
agency, partnership, joint venture or any other form of legal association
 
between or among You, Licensor or any Contributor, and You will not represent to
 
the contrary, whether expressly, by implication, appearance or otherwise.
 

	
 
12.3 Independent Development. Nothing in this License will impair Licensor's
 
right to acquire, license, develop, have others develop for it, market and/or
 
distribute technology or products that perform the same or similar functions as,
 
or otherwise compete with, Modifications, Derivative Works, technology or
 
products that You may develop, produce, market or distribute.
 

	
 
12.4 Waiver; Construction. Failure by Licensor or any Contributor to enforce any
 
provision of this License will not be deemed a waiver of future enforcement of
 
that or any other provision. Any law or regulation which provides that the
 
language of a contract shall be construed against the drafter will not apply to
 
this License.
 

	
 
12.5 Severability. (a) If for any reason a court of competent jurisdiction finds
 
any provision of this License, or portion thereof, to be unenforceable, that
 
provision of the License will be enforced to the maximum extent permissible so
 
as to effect the economic benefits and intent of the parties, and the remainder
 
of this License will continue in full force and effect. (b) Notwithstanding the
 
foregoing, if applicable law prohibits or restricts You from fully and/or
 
specifically complying with Sections 2 and/or 3 or prevents the enforceability
 
of either of those Sections, this License will immediately terminate and You
 
must immediately discontinue any use of the Covered Code and destroy all copies
 
of it that are in your possession or control.
 

	
 
12.6 Dispute Resolution. Any litigation or other dispute resolution between You
 
and Licensor relating to this License shall take place in the Seattle,
 
Washington, and You and Licensor hereby consent to the personal jurisdiction of,
 
and venue in, the state and federal courts within that District with respect to
 
this License. The application of the United Nations Convention on Contracts for
 
the International Sale of Goods is expressly excluded.
 

	
 
12.7 Export/Import Laws. This software is subject to all export and import laws
 
and restrictions and regulations of the country in which you receive the Covered
 
Code and You are solely responsible for ensuring that You do not export,
 
re-export or import the Covered Code or any direct product thereof in violation
 
of any such restrictions, laws or regulations, or without all necessary
 
authorizations.
 

	
 
12.8 Entire Agreement; Governing Law. This License constitutes the entire
 
agreement between the parties with respect to the subject matter hereof. This
 
License shall be governed by the laws of the United States and the State of
 
Washington.
 

	
 
Where You are located in the province of Quebec, Canada, the following clause
 
applies: The parties hereby confirm that they have requested that this License
 
and all related documents be drafted in English. Les parties ont exig&eacute;
 
que le pr&eacute;sent contrat et tous les documents connexes soient
 
r&eacute;dig&eacute;s en anglais.
 

	
 
								EXHIBIT A.  
 

	
 
"Copyright &copy; 1995-2002
 
RealNetworks, Inc. and/or its licensors. All Rights Reserved.
 

	
 
The contents of this file, and the files included with this file, are subject to
 
the current version of the RealNetworks Public Source License Version 1.0 (the
 
"RPSL") available at https://www.helixcommunity.org/content/rpsl unless you have
 
licensed the file under the RealNetworks Community Source License Version 1.0
 
(the "RCSL") available at https://www.helixcommunity.org/content/rcsl, in which
 
case the RCSL will apply. You may also obtain the license terms directly from
 
RealNetworks. You may not use this file except in compliance with the RPSL or,
 
if you have a valid RCSL with RealNetworks applicable to this file, the RCSL.
 
Please see the applicable RPSL or RCSL for the rights, obligations and
 
limitations governing use of the contents of the file.
 

	
 
This file is part of the Helix DNA Technology. RealNetworks is the developer of
 
the Original code and owns the copyrights in the portions it created.
 

	
 
This file, and the files included with this file, is distributed and made
 
available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
 
IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING
 
WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 
PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
 

	
 
Contributor(s): ____________________________________ 
 

	
 
Technology Compatibility Kit Test
 
Suite(s) Location (if licensed under the RCSL): ______________________________ 
 

	
 
Object Code Notice: Helix DNA Client technology included. Copyright (c)
 
RealNetworks, Inc., 1995-2002. All rights reserved.
 

	
 

	
 
								EXHIBIT B 
 

	
 
Compatible Source Licenses for the RealNetworks Public Source License. The
 
following list applies to the most recent version of the license as of October
 
25, 2002, unless otherwise indicated.
 

	
 
* Academic Free License
 
* Apache Software License
 
* Apple Public Source License
 
* Artistic license
 
* Attribution Assurance Licenses
 
* BSD license
 
* Common Public License (1)
 
* Eiffel Forum License
 
* GNU General Public License (GPL) (1)
 
* GNU Library or "Lesser" General Public License (LGPL) (1)
 
* IBM Public License
 
* Intel Open Source License
 
* Jabber Open Source License
 
* MIT license
 
* MITRE Collaborative Virtual Workspace License (CVW License)
 
* Motosoto License
 
* Mozilla Public License 1.0 (MPL)
 
* Mozilla Public License 1.1 (MPL)
 
* Nokia Open Source License
 
* Open Group Test Suite License
 
* Python Software Foundation License
 
* Ricoh Source Code Public License
 
* Sun Industry Standards Source License (SISSL)
 
* Sun Public License
 
* University of Illinois/NCSA Open Source License
 
* Vovida Software License v. 1.0
 
* W3C License
 
* X.Net License
 
* Zope Public License
 
* zlib/libpng license
 

	
 
(1) Note: because this license contains certain reciprocal licensing terms that
 
purport to extend to independently developed code, You may be prohibited under
 
the terms of this otherwise compatible license from using code licensed under
 
its terms with Covered Code because Covered Code may only be licensed under the
 
RealNetworks Public Source License. Any attempt to apply non RPSL license terms,
 
including without limitation the GPL, to Covered Code is expressly forbidden.
 
You are responsible for ensuring that Your use of Compatible Source Licensed
 
code does not violate either the RPSL or the Compatible Source License.
 

	
 
The latest version of this list can be found at:
 
https://www.helixcommunity.org/content/complicense
 

	
 
								EXHIBIT C 
 

	
 
RealNetworks' Trademark policy.  
 

	
 
RealNetworks defines the following trademarks collectively as "Licensor
 
Trademarks": "RealNetworks", "RealPlayer", "RealJukebox", "RealSystem",
 
"RealAudio", "RealVideo", "RealOne Player", "RealMedia", "Helix" or any other
 
trademarks or trade names belonging to RealNetworks.
 

	
 
RealNetworks "Licensor Trademark Policy" forbids any use of Licensor Trademarks
 
except as permitted by and in strict compliance at all times with RealNetworks'
 
third party trademark usage guidelines which are posted at
 
http://www.realnetworks.com/info/helixlogo.html.
 

	
media-gfx/gscan2pdf/Manifest
Show inline comments
 
new file 100644
 
AUX metadata.xml 1171 RMD160 485b1ee406cd4f6dbea62e124e7bf78a287cf9b7 SHA1 5abccb0088d7147fdf55bb1c27c49128e1239a77 SHA256 0b023ae0644efbf6cc9f29fdd05e8c57cdf385aeeeba5ffd83266db3cee51a19
 
DIST gscan2pdf-0.9.29.tar.gz 398700 RMD160 6167acae9bb6b2e8d852c25adf24fa7ba460fe01 SHA1 a4e84cfcd98f50bc606983c261abe48c7fbd0b1e SHA256 06e9c9866d6e2752176431d64ae1a73252289cccb4bbdad68558cc1ced7121c4
 
DIST gscan2pdf-0.9.31.tar.gz 486224 RMD160 bf12952dcea1b323cc2026c4569cee20cb4751b6 SHA1 87f91269ce33e66668f4c20e342b1d22e668decb SHA256 5cca2f17015574d283799c3a4adaa78fd0e612259e790ebad495be3dee6ef549
 
DIST gscan2pdf-1.0.0.tar.gz 564958 RMD160 0344bffdb12a9636de76fadffa84f4a7cd028eb7 SHA1 a9788d53f9a4e046c9f2a855308c291dec58378a SHA256 29f7bfecaec1ced7fa49d842775719e6b9869682d4676c95ea59df4a2aa2da14
 
EBUILD gscan2pdf-0.9.29.ebuild 1262 RMD160 42a184eeb724c5f7a1aeb555f31392e20f9ca8bc SHA1 8e1cbbc4c8f1574c8a507c1f62f70311947fcbde SHA256 f017c7f53a94f4fda10d04f743424ef9fccf3936850e5827bf8190856ba062e5
 
EBUILD gscan2pdf-0.9.31.ebuild 1434 RMD160 ec4baf4f1a5aeb8d319079e633334922a70bbe63 SHA1 96560ffa9a8d2ff44aa26d377a53338c63a801ed SHA256 56f56bd166b2602ab282c9a88f7e12583b25f4436a970752ca800b15e7dc901e
 
EBUILD gscan2pdf-1.0.0.ebuild 1523 RMD160 fe35d12c8d285f45fa24a76700e07edd2b729239 SHA1 d47313e4074d8371cdc1c8603f109f5c590f5e86 SHA256 05a4057215a791d781d9c417d96afb4a1e4bfb5917d95537b12081fae1772402
media-gfx/gscan2pdf/files/metadata.xml
Show inline comments
 
new file 100644
 
<?xml version="1.0" encoding="UTF-8"?>
 
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 
<pkgmetadata>
 
	<herd></herd>
 
	<maintainer>
 
		<email></email>
 
		<name></name>
 
	</maintainer>
 
	<longdescription lang="en">
 
		A GUI to ease the process of producing a multipage PDF or DjVu from a
 
		scan.
 
	</longdescription>
 
	<use>
 
		<flag name="tesseract">
 
			Enable support to <pkg>app-text/tesseract</pkg> for OCR service.
 
		</flag>
 
		<flag name="gocr">
 
			Enable support to <pkg>app-text/gocr</pkg> for OCR service.
 
		</flag>
 
		<flag name="unpaper">
 
			Add support for post-processor functions for scanned and photocopied
 
			book pages, especially for book pages that have been scanned from
 
			previously created photocopies; <pkg>app-text/unpaper</pkg> main
 
			purpose is to make scanned book pages better readable on screen
 
			after conversion to PDF.
 
		</flag>
 
		<flag name="xdg">
 
			Enable Desktop integration utilities from freedesktop.org. Required
 
			for Email as PDF. See http://portland.freedesktop.org/wiki/
 
		</flag>
 
		<flag name="adf">
 
			Add the <pkg>media-gfx/sane-frontends</pkg> scanner graphical
 
			frontends.
 
		</flag>
 
	</use>
 
</pkgmetadata>
 

	
media-gfx/gscan2pdf/gscan2pdf-0.9.29.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2009 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
EAPI="2"
 
inherit perl-app
 

	
 
DESCRIPTION="Create PDF of selected pages with File/Save PDF"
 
HOMEPAGE="http://gscan2pdf.sourceforge.net/"
 
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
 

	
 
LICENSE="GPL-2"
 
SLOT="0"
 
KEYWORDS="~amd64 ~x86"
 
IUSE="adf doc djvu gocr tesseract unpaper +xdg"
 

	
 
DEPEND="dev-lang/perl
 
	>=dev-perl/config-general-2.40"
 

	
 
RDEPEND=">=dev-perl/gtk2-perl-1.140-r1
 
	dev-perl/PDF-API2
 
	dev-perl/Gtk2-Ex-Simple-List
 
	dev-perl/Gtk2-ImageView
 
	dev-perl/Sane
 
	dev-perl/prefork
 
	>=dev-perl/Locale-gettext-1.05
 
	dev-perl/Set-IntSpan
 
	dev-perl/forks
 
	dev-perl/Test-Perl-Critic
 
	virtual/perl-Archive-Tar
 
	media-gfx/imagemagick[perl]
 
	media-gfx/sane-backends
 
	media-libs/tiff
 
	xdg? ( x11-misc/xdg-utils )
 
	adf? ( media-gfx/sane-frontends )
 
	doc? ( dev-perl/Gtk2-Ex-PodViewer )
 
	djvu? ( app-text/djvu )
 
	gocr? ( app-text/gocr )
 
	tesseract? ( app-text/tesseract )
 
	unpaper? ( app-text/unpaper )"
 

	
 
src_install() {
 
	perl-module_src_install
 
	dodoc History
 
}
 

	
 
pkg_postinst() {
 
	ewarn "Thunderbird users can't use the Email to PDF feature"
 
	ewarn "because xdg-email doesn't support creating new emails"
 
	ewarn "with attachments in Thunderbird."
 
}
media-gfx/gscan2pdf/gscan2pdf-0.9.31.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2009 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
EAPI="2"
 
inherit perl-app
 

	
 
DESCRIPTION="Create PDF of selected pages with File/Save PDF"
 
HOMEPAGE="http://gscan2pdf.sourceforge.net/"
 
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
 

	
 
LICENSE="GPL-2"
 
SLOT="0"
 
KEYWORDS="~amd64 ~x86"
 
IUSE="adf cuneiform doc djvu gocr ocropus tesseract unpaper +xdg"
 

	
 
DEPEND="dev-lang/perl
 
	>=dev-perl/config-general-2.40"
 

	
 
RDEPEND=">=dev-perl/gtk2-perl-1.143-r1
 
	>=dev-perl/glib-perl-1.100-r1
 
	dev-perl/PDF-API2
 
	dev-perl/Proc-ProcessTable
 
	dev-perl/Gtk2-Ex-Simple-List
 
	dev-perl/Gtk2-ImageView
 
	dev-perl/Goo-Canvas
 
	dev-perl/Sane
 
	dev-perl/prefork
 
	>=dev-perl/Locale-gettext-1.05
 
	dev-perl/Set-IntSpan
 
	dev-perl/forks
 
	dev-perl/Test-Perl-Critic
 
	virtual/perl-Archive-Tar
 
	media-gfx/imagemagick[perl]
 
	media-gfx/sane-backends
 
	media-libs/tiff
 
	xdg? ( x11-misc/xdg-utils )
 
	adf? ( media-gfx/sane-frontends )
 
        cuneiform? ( app-text/cuneiform )
 
	doc? ( dev-perl/Gtk2-Ex-PodViewer )
 
	djvu? ( app-text/djvu )
 
	gocr? ( app-text/gocr )
 
	ocropus? ( app-text/ocropus )
 
	tesseract? ( app-text/tesseract )
 
	unpaper? ( app-text/unpaper )
 
"
 

	
 
src_install() {
 
	perl-module_src_install
 
	dodoc History
 
}
 

	
 
pkg_postinst() {
 
	ewarn "Thunderbird users can't use the Email to PDF feature"
 
	ewarn "because xdg-email doesn't support creating new emails"
 
	ewarn "with attachments in Thunderbird."
 
}
media-gfx/gscan2pdf/gscan2pdf-1.0.0.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2009 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
EAPI="2"
 
inherit perl-app
 

	
 
DESCRIPTION="Create PDF of selected pages with File/Save PDF"
 
HOMEPAGE="http://gscan2pdf.sourceforge.net/"
 
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
 

	
 
LICENSE="GPL-2"
 
SLOT="0"
 
KEYWORDS="~amd64 ~x86"
 
IUSE="adf cuneiform doc djvu gocr ocropus tesseract unpaper +xdg"
 

	
 
DEPEND="dev-lang/perl[ithreads]
 
	>=dev-perl/config-general-2.40"
 

	
 
RDEPEND=">=dev-perl/forks-0.34
 
	>=dev-perl/glib-perl-1.100-r1
 
	dev-perl/Goo-Canvas
 
	dev-perl/Gtk2-Ex-Simple-List
 
	dev-perl/Gtk2-ImageView
 
	>=dev-perl/gtk2-perl-1.043.1
 
        >=dev-perl/Locale-gettext-1.05
 
        dev-perl/Log-Log4perl
 
        dev-perl/PDF-API2
 
	dev-perl/prefork
 
        dev-perl/Proc-ProcessTable
 
	dev-perl/Readonly-XS
 
        dev-perl/Sane
 
	dev-perl/Set-IntSpan
 
	dev-perl/Test-Perl-Critic
 
	virtual/perl-Archive-Tar
 
	media-gfx/imagemagick[perl]
 
	media-gfx/sane-backends
 
	media-libs/tiff
 
	xdg? ( x11-misc/xdg-utils )
 
	adf? ( media-gfx/sane-frontends )
 
	cuneiform? ( app-text/cuneiform )
 
	doc? ( dev-perl/Gtk2-Ex-PodViewer )
 
	djvu? ( app-text/djvu )
 
	gocr? ( app-text/gocr )
 
	ocropus? ( app-text/ocropus )
 
	tesseract? ( app-text/tesseract )
 
	unpaper? ( app-text/unpaper )"
 

	
 
src_install() {
 
	perl-module_src_install
 
	dodoc History
 
}
 

	
 
pkg_postinst() {
 
	ewarn "Thunderbird users can't use the Email to PDF feature"
 
	ewarn "because xdg-email doesn't support creating new emails"
 
	ewarn "with attachments in Thunderbird."
 
}
 

	
media-libs/libaacs/Manifest
Show inline comments
 
new file 100644
 
EBUILD libaacs-9999.ebuild 781 RMD160 4cd316efe6ea95deb2de78dc8ca62ab99a92ab65 SHA1 94b6d543dd4911560a2ef8f628e336c10388ee12 SHA256 3ac36633ff9b7b542c6c88a2253aa3933b01694a104c0900054a5c091648be06
media-libs/libaacs/libaacs-9999.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2011 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: Exp $
 

	
 
EAPI=2
 

	
 
inherit autotools git
 

	
 
EGIT_REPO_URI="git://git.videolan.org/${PN}.git"
 

	
 
DESCRIPTION="Implementation of the Advanced Access Content System specification"
 
HOMEPAGE="http://www.videolan.org/developers/${PN}.html"
 

	
 
LICENSE="GPL-2"
 
SLOT="0"
 
KEYWORDS=""
 
IUSE="static-libs examples"
 

	
 
DEPEND="sys-libs/glibc"
 
RDEPEND="${DEPEND}
 
"
 

	
 
src_prepare() {
 
	eautoreconf
 
}
 

	
 
src_configure() {
 
	econf $(use_enable static-libs static) || die
 
}
 

	
 
src_compile() {
 
	emake || die
 

	
 
}
 

	
 
src_install() {
 
	emake DESTDIR="${D}" install || die
 

	
 
	dodoc README.txt KEYDB.cfg || die
 

	
 
	if use examples; then
 
		cd "${S}"/src/examples/.libs
 
		dobin libaacs_test parser_test || die
 
	fi
 
}
media-libs/libopenspc/Manifest
Show inline comments
 
new file 100644
 
DIST libopenspc.tar.bz2 240382 RMD160 e7d64c9209f0acf376978cadf40724328daa038e SHA1 5f12938f07612b0f0138557263338ad74f7a83d5 SHA256 e59357524d669149885d89f3ebe2ef75c568f42aa819f086f03d4324688cc49c
 
EBUILD libopenspc-0.3.99.ebuild 694 RMD160 88b25669cbd55e8aa40657acb60a06159a9b818d SHA1 1035fefa6b49e0f24583a001bbf5d1bee465063c SHA256 b284036bdccb962a7d733db364917a6627f8306be134b21ae691d6ed4c3e65a8
 
MD5 90a22041cf507f164b08e0444b1eb266 libopenspc-0.3.99.ebuild 694
 
RMD160 88b25669cbd55e8aa40657acb60a06159a9b818d libopenspc-0.3.99.ebuild 694
 
SHA256 b284036bdccb962a7d733db364917a6627f8306be134b21ae691d6ed4c3e65a8 libopenspc-0.3.99.ebuild 694
 
MD5 be29c1684126e083dd90c82054814298 files/digest-libopenspc-0.3.99 235
 
RMD160 aaff7fc14b6d8b448e6f036c79683175ac005d81 files/digest-libopenspc-0.3.99 235
 
SHA256 d3bf5202b3c9e99fd75eaac41db501c7069cc11480ca75b786ac3d2cbe573803 files/digest-libopenspc-0.3.99 235
media-libs/libopenspc/files/digest-libopenspc-0.3.99
Show inline comments
 
new file 100644
 
MD5 a7b4e60e3780bb06608c1bd73f1bf1b4 libopenspc.tar.bz2 240382
 
RMD160 e7d64c9209f0acf376978cadf40724328daa038e libopenspc.tar.bz2 240382
 
SHA256 e59357524d669149885d89f3ebe2ef75c568f42aa819f086f03d4324688cc49c libopenspc.tar.bz2 240382
media-libs/libopenspc/libopenspc-0.3.99.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2007 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
inherit eutils
 

	
 
SLOT=0
 
LICENSE="LGPL-2.1"
 
KEYWORDS="~x86 ~amd64"
 
DESCRIPTION="Library to play Super Nintendo SPC music files."
 
HOMEPAGE="http://bugzilla.gnome.org/show_bug.cgi?id=348220"
 
SRC_URI="http://hg.c133.org/~clee/${PN}.tar.bz2"
 
IUSE="examples"
 
DEPEND=">=sys-libs/zlib-1.2"
 

	
 
src_unpack() {
 
	unpack ${A}
 
	cd ${S}
 

	
 
	# If not using examples, patch them out
 
	use examples || sed -i -e 's/examples//' Makefile.am
 
}
 

	
 
src_compile() {
 
	econf || die "econf failed"
 
	emake || die "emake failed"
 
}
 

	
 
src_install() {
 
	emake DESTDIR="${D}" install || die "emake install failed"
 
}
media-libs/libopenspc/libopenspc-0.3.99a.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2007 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
inherit eutils
 

	
 
SLOT=0
 
LICENSE="LGPL-2.1"
 
KEYWORDS="~x86 ~amd64"
 
DESCRIPTION="Library to play Super Nintendo SPC music files."
 
HOMEPAGE="http://bugzilla.gnome.org/show_bug.cgi?id=348220"
 
SRC_URI="http://hg.c133.org/~clee/${P}.tar.gz"
 
IUSE="examples"
 
DEPEND=">=sys-libs/zlib-1.2"
 

	
 
src_unpack() {
 
	unpack ${A}
 
	cd ${S}
 

	
 
	# If not using examples, patch them out
 
	use examples || sed -i -e 's/examples//' Makefile.am
 
}
 

	
 
src_compile() {
 
	econf || die "econf failed"
 
	emake || die "emake failed"
 
}
 

	
 
src_install() {
 
	emake DESTDIR="${D}" install || die "emake install failed"
 
}
media-plugins/gst-plugins-spc/Manifest
Show inline comments
 
new file 100644
 
DIST gst-plugins-bad-0.10.11.tar.bz2 2564601 RMD160 59c5b91d1dcd4090073a72a095837bd8e4fdc129 SHA1 0850df0ef0ac64b57866f5275a3794849c7ece82 SHA256 b50072ff6f36087b8ecebf509e6d44ab2e91292b1a3a5806a7f1437a382723e9
 
EBUILD gst-plugins-spc-0.10.11.ebuild 442 RMD160 f7563a2c44a78148cdf7986211715b68658c985b SHA1 fc02aca0f1984b3924c6b2b5604981a264d92cda SHA256 343b0038477dba0131d9a5b42e8de7d0ab5cd61d442acacc4f32520d250acf5f
media-plugins/gst-plugins-spc/gst-plugins-spc-0.10.11.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2009 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/media-plugins/gst-plugins-sidplay/gst-plugins-sidplay-0.10.11.ebuild,v 1.7 2009/07/01 16:46:13 armin76 Exp $
 

	
 
inherit gst-plugins-bad
 

	
 
KEYWORDS="alpha amd64 ppc ppc64 sparc x86"
 
IUSE=""
 

	
 
DEPEND="=media-libs/libopenspc-0.3.99*
 
	 >=media-libs/gstreamer-0.10.22
 
	 >=media-libs/gst-plugins-base-0.10.22"
media-plugins/gst-plugins-timidity/Manifest
Show inline comments
 
new file 100644
 
DIST gst-plugins-bad-0.10.11.tar.bz2 2564601 RMD160 59c5b91d1dcd4090073a72a095837bd8e4fdc129 SHA1 0850df0ef0ac64b57866f5275a3794849c7ece82 SHA256 b50072ff6f36087b8ecebf509e6d44ab2e91292b1a3a5806a7f1437a382723e9
 
EBUILD gst-plugins-timidity-0.10.11.ebuild 434 RMD160 65303e74c5c7eaa3f4e216555727b0c866a06cf1 SHA1 16b576092f4d4b6386b16b6b78c2cf8e38a8af1b SHA256 3d3b7126fe2ff312415c940d933b9f393e8c81fc84f95cb10b8a220b8aea1ce0
media-plugins/gst-plugins-timidity/gst-plugins-timidity-0.10.11.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2009 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/media-plugins/gst-plugins-sidplay/gst-plugins-sidplay-0.10.11.ebuild,v 1.7 2009/07/01 16:46:13 armin76 Exp $
 

	
 
inherit gst-plugins-bad
 

	
 
KEYWORDS="alpha amd64 ppc ppc64 sparc x86"
 
IUSE=""
 

	
 
DEPEND="media-libs/libtimidity
 
	 >=media-libs/gstreamer-0.10.22
 
	 >=media-libs/gst-plugins-base-0.10.22"
media-plugins/gst-spc/Manifest
Show inline comments
 
new file 100644
 
AUX gst-spc-0.5-fix-gstspc.c.patch.gz 3954 RMD160 8278e83ca8492b9a9039c7ea4c866d2341b9ea87 SHA1 32c234f001080579684c37d1b62feec765147272 SHA256 eb1aa0c8f6728fbc5a44b7623cac9ff31e8b49e4842c7619905b799c8cfff98b
 
MD5 ae65d633f45281ca2c95cbf5ac019d0d files/gst-spc-0.5-fix-gstspc.c.patch.gz 3954
 
RMD160 8278e83ca8492b9a9039c7ea4c866d2341b9ea87 files/gst-spc-0.5-fix-gstspc.c.patch.gz 3954
 
SHA256 eb1aa0c8f6728fbc5a44b7623cac9ff31e8b49e4842c7619905b799c8cfff98b files/gst-spc-0.5-fix-gstspc.c.patch.gz 3954
 
AUX gst-spc-0.5-fix-gstspc.h.patch.gz 1250 RMD160 5b81939c54a4e0d4486c4d792878e7fc97ebd983 SHA1 f76d9b3ce828bb7aa040c9e52a353e336960a9b5 SHA256 90bfd90c601556f364356de32db3604ca2a59c28002fc7a083efd4872f8554a2
 
MD5 60160950e12668aca55727c55800dd13 files/gst-spc-0.5-fix-gstspc.h.patch.gz 1250
 
RMD160 5b81939c54a4e0d4486c4d792878e7fc97ebd983 files/gst-spc-0.5-fix-gstspc.h.patch.gz 1250
 
SHA256 90bfd90c601556f364356de32db3604ca2a59c28002fc7a083efd4872f8554a2 files/gst-spc-0.5-fix-gstspc.h.patch.gz 1250
 
DIST gst-spc-0.5.tar.bz2 6730 RMD160 af22d3820a39d4aef71733d6d6e6f9feea2f203e SHA1 69ba910ac78f64bef4e4919e6f262d24515759f3 SHA256 64291256ec724f937810b00b7012e246dfb49dc14b1aa56828818a8ff7d527c7
 
EBUILD gst-spc-0.5.ebuild 1068 RMD160 fc0923c3ac0260654e6f67c4e7c4aa964785e907 SHA1 579deebef362beeea430d82937110eb2c2bf92b6 SHA256 00b57a5708aeafac6693cdf7da331800bef8109943ee7ab6eebafbe8b22f63c8
 
MD5 de6a7ebf387ec64c355b4712e64b0f10 gst-spc-0.5.ebuild 1068
 
RMD160 fc0923c3ac0260654e6f67c4e7c4aa964785e907 gst-spc-0.5.ebuild 1068
 
SHA256 00b57a5708aeafac6693cdf7da331800bef8109943ee7ab6eebafbe8b22f63c8 gst-spc-0.5.ebuild 1068
 
MD5 6eb99ef5bbf1c69ca0fad80715d23183 files/digest-gst-spc-0.5 232
 
RMD160 c01c05fe77567e916fe36bb6f29e082e97b7628d files/digest-gst-spc-0.5 232
 
SHA256 3781318772a854dfbe5eb5ef2dc3061289cedefde35cb4eeb3b6709bfbf357d9 files/digest-gst-spc-0.5 232
media-plugins/gst-spc/files/digest-gst-spc-0.5
Show inline comments
 
new file 100644
 
MD5 bea1d45e502fd233afa102f1604b38c6 gst-spc-0.5.tar.bz2 6730
 
RMD160 af22d3820a39d4aef71733d6d6e6f9feea2f203e gst-spc-0.5.tar.bz2 6730
 
SHA256 64291256ec724f937810b00b7012e246dfb49dc14b1aa56828818a8ff7d527c7 gst-spc-0.5.tar.bz2 6730
media-plugins/gst-spc/files/gst-spc-0.5-fix-gstspc.c.patch.gz
Show inline comments
 
new file 100644
 
binary diff not shown
media-plugins/gst-spc/files/gst-spc-0.5-fix-gstspc.h.patch.gz
Show inline comments
 
new file 100644
 
binary diff not shown
media-plugins/gst-spc/gst-spc-0.5.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2007 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
inherit eutils
 

	
 
SLOT=0
 
LICENSE="LGPL-2"
 
KEYWORDS="~x86 ~amd64"
 
DESCRIPTION="gstreamer plugin to play Super Nintendo SPC music files."
 
HOMEPAGE="http://bugzilla.gnome.org/show_bug.cgi?id=348220"
 

	
 
# We'll be using source from gstreamer release, which is why we're using an
 
# exact version
 
SRC_URI="http://hg.c133.org/~clee/${P}.tar.bz2"
 
DEPEND=">=media-libs/gstreamer-0.10.4
 
        >=media-libs/libopenspc-0.3.99"
 

	
 
src_unpack() {
 
	unpack ${A}
 
	cd ${S}
 

	
 
	# Update gst-spc to way it is in gstreamer-plugins-bad-0.10.4
 
	epatch "${FILESDIR}/${P}-fix-gstspc.h.patch.gz"
 
	epatch "${FILESDIR}/${P}-fix-gstspc.c.patch.gz"
 

	
 
	# Autogen is evil and will try to automatically run configure,
 
	# so stop it. /foo/d just deletes the line in question.
 
	sed -i -e "/.\/configure/d" autogen.sh
 
}
 

	
 
src_compile() {
 
	./autogen.sh
 
	econf || die "econf failed"
 
	emake || die "emake failed"
 
}
 

	
 
src_install() {
 
	emake DESTDIR="${D}" install || die "emake install failed"
 
}
media-sound/sidplayer/Manifest
Show inline comments
 
new file 100644
 
DIST SIDPlayer-4.4.tar.gz 230703 RMD160 ccff971fc073cd2539a5161b259d10ce05109d24 SHA1 ab6d0650b3469b27e5b2a0e52d0de6ecf1b1e7ae SHA256 fd1f73047abeb8234f850975786c805262678e77013835a8e621dcfd237624d7
 
EBUILD sidplayer-4.4.ebuild 639 RMD160 5d4668e4d387dca2e6ae02408d599575241a49e2 SHA1 c56db81dfeb235368b1c062f87ed7ad9070b13f8 SHA256 3d4bfccbab709425ae2df483bf48547f03462ee25bf4a33e19eda3caac3dd6fc
media-sound/sidplayer/sidplayer-4.4.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2009 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
inherit eutils
 

	
 
MY_P="SIDPlayer-${PV}"
 

	
 
DESCRIPTION="Sidplayer is a replayer program for C64 music"
 
HOMEPAGE="http://sidplayer.cebix.net/"
 
SRC_URI="http://sidplayer.cebix.net/downloads/${MY_P}.tar.gz"
 

	
 
LICENSE="GPL"
 
SLOT="0"
 
KEYWORDS="x86 amd64" 
 
IUSE="sdl"
 

	
 
DEPEND=">=media-libs/libsdl-1.2.10
 
	media-libs/sdl-sound"
 

	
 
RDEPEND="${DEPEND}"
 

	
 
S="${WORKDIR}/${MY_P}"
 

	
 
src_compile() {
 
	econf || die "econf failed"
 
	emake || die "emake failed"
 
}
 

	
 
src_install() {
 
	emake DESTDIR="${D}" install || die "emake install failed"
 
}
media-tv/mediathekview/Manifest
Show inline comments
 
new file 100644
 
DIST mediathekview-2.5.0.tar.bz2 933189 RMD160 09eb6d3cfdc26e9041ddf81fcc39817230349223 SHA1 1f719d9203fc5384544702d7402cedaf73505d16 SHA256 cb5ac22039388ecbd4215c2754ec66f56e702c87257982dd6911f13c90c51dce
 
EBUILD mediathekview-2.5.0.ebuild 1280 RMD160 c065a6d56ff37cbbcd25f1ea5efca673d995778a SHA1 c5f81391a86adcface7afc1e19be89ecb14b3c94 SHA256 d6002e193a1488fcc09561a7ed7b18da35a725cfb5d2b2472660d10c6f2637d6
media-tv/mediathekview/mediathekview-2.5.0.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2010 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
EAPI=2
 

	
 
JAVA_PKG_IUSE="doc source"
 

	
 
WANT_ANT_TASKS="ant-nodeps"
 

	
 
inherit java-pkg-2 java-ant-2
 

	
 
DESCRIPTION="Download files from the public broadcasting services"
 
HOMEPAGE="http://zdfmediathek.sourceforge.net"
 
SRC_URI="http://users.minet.uni-jena.de/~veelai/${P}.tar.bz2"
 

	
 
LICENSE="GPL-3"
 
SLOT="0"
 
KEYWORDS="~amd64 ~x86"
 

	
 
COMMONDEPEND="dev-java/rome
 
			  dev-java/jdom:1.0
 
			  dev-java/commons-lang:2.1"
 
DEPEND="${DEPEND}
 
		>=virtual/jdk-1.4
 
		${COMMONDEPEND}"
 
RDEPEND="${RDEPEND}
 
		 >=virtual/jre-1.4
 
		 media-video/vlc
 
		 media-video/mplayer
 
		 media-video/flvstreamer
 
		 ${COMMONDEPEND}"
 

	
 
src_prepare() {
 
	einfo "Removing bundled jars."
 
	rm libs/jdom.jar || die
 
	rm libs/rome.jar || die
 
	rm libs/commons-lang.jar || die
 

	
 
	cd "${S}"/libs || die
 
	java-pkg_jar-from jdom-1.0 jdom.jar
 
	java-pkg_jar-from rome rome.jar
 
	java-pkg_jar-from commons-lang-2.1 commons-lang.jar
 
}
 

	
 
src_install() {
 
	java-pkg_dojar dist/Mediathek.jar
 
	java-pkg_jarinto /usr/share/${PN}/lib/lib/
 
	java-pkg_dojar libs/jdom.jar
 
	java-pkg_dojar libs/rome.jar
 
	java-pkg_dojar libs/commons-lang.jar
 
	java-pkg_dojar libs/commons-compress.jar
 
	java-pkg_dolauncher ${PN} --main mediathek.Main
 
}
 
\ No newline at end of file
media-tv/pctv_gtk/Manifest
Show inline comments
 
new file 100644
 
DIST pctv_gtk-1.4.tar.gz 307455 RMD160 bc28ba53aa32c39326bf80a97387faf14f273b3b SHA1 c513046955e5c823ab97655bf6ce8059f4eb7722 SHA256 035007e9ec4398fa4978332c02cc9b4d9c7c8cda9663135017d17c82a28462d0
 
EBUILD pctv_gtk-1.4.ebuild 410 RMD160 a68f449e4a40fa8f48ac330c7635a4187b02148a SHA1 5c188f7cbc78ae7aee76b7877d11688973e0bd55 SHA256 c13df5585426552a42d90b267328330a56c6f06954bcef1f3fe919507e7ab2c7
media-tv/pctv_gtk/pctv_gtk-1.4.ebuild
Show inline comments
 
new file 100644
 
DESCRIPTION="Pinnacle PCTV Deluxe Gtk-2 GUI for PCTV Deluxe Tools and MPlayer/Xine."
 
SRC_URI="http://dl.sourceforge.net/sourceforge/pctvgtk/${PN}-${PV}.tar.gz"
 
HOMEPAGE="http://pctvgtk.sourceforge.net"
 
SLOT="0"
 
LICENSE="GPL-2"
 
KEYWORDS="x86"
 
DEPEND=">=x11-libs/gtk+-2.4
 
	mplayer? ( media-video/mplayer )
 
	xine? (
 
		media-libs/xine-lib
 
		media-video/xine-ui
 
	)"
 
IUSE="mplayer xine"
 
src_install () {
 
	einstall
 
}
media-tv/xbmc/Manifest
Show inline comments
 
new file 100644
 
DIST xbmc-12.0.tar.gz 67176825 SHA256 53018cd014b5203df5e5ef4080931ef499d3740815f32d17dce92ef7d050c16f SHA512 37da579b055d4ea72cd18cf92541b47e6c42682091ef123baccdbce740b23842ac7c28eea032ada9a9c2232be034c7c4113ee8107ac3c7287834d08d4bcb67d6 WHIRLPOOL 6282dd7a728696c9a4577725d949d54992996d18a7b3c054c7d318b070fcad33efc4292afb83aa934c586cf718de67e294b2c498e491311b896e6a632cfa5b73
 
EBUILD xbmc-12.0.ebuild 6485 SHA256 6945111215e22e4257a159df698d8091bf4e49f1da287351f847b1a46f8eb599 SHA512 60aaa6edcfc5bde08dfd74a42a1ea36536acbe8aac17967c9209b18da4bf546b0f27c1e14d05869eb3e07ac13e2482e4ad69259ebd733ad5369bafed8253a079 WHIRLPOOL 32e008b48d094f4cde1b06e8d16fb8f6d3e9b5381f7f8d5abed1a16a002658dd87f94f646bb1c4f398140e3eb9abab2eceb3efa5d47cae7c4f124a3ce1f24a17
media-tv/xbmc/xbmc-12.0.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2013 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/media-tv/xbmc/xbmc-12.0_rc3.ebuild,v 1.1 2013/01/18 05:55:25 vapier Exp $
 

	
 
EAPI="4"
 

	
 
# Does not work with py3 here
 
# It might work with py:2.5 but I didn't test that
 
PYTHON_DEPEND="2:2.6"
 
PYTHON_USE_WITH=sqlite
 

	
 
inherit eutils python multiprocessing autotools
 

	
 
case ${PV} in
 
9999)
 
	EGIT_REPO_URI="git://github.com/xbmc/xbmc.git"
 
	inherit git-2
 
	SRC_URI="!java? ( mirror://gentoo/${P}-20121224-generated-addons.tar.xz )"
 
	;;
 
*_alpha*|*_beta*|*_rc*)
 
	MY_PV="Frodo_${PV#*_}"
 
	MY_P="${PN}-${MY_PV}"
 
	SRC_URI="https://github.com/xbmc/xbmc/archive/${MY_PV}.tar.gz -> ${P}.tar.gz
 
		!java? ( mirror://gentoo/${P}-generated-addons.tar.xz )"
 
	KEYWORDS="~amd64 ~x86"
 
	;;
 
*)
 
	MY_P=${P/_/-*_}
 
	SRC_URI="http://mirrors.xbmc.org/releases/source/${MY_P}.tar.gz"
 
	KEYWORDS="~amd64 ~x86"
 
	;;
 
esac
 

	
 
DESCRIPTION="XBMC is a free and open source media-player and entertainment hub"
 
HOMEPAGE="http://xbmc.org/"
 

	
 
LICENSE="GPL-2"
 
SLOT="0"
 
IUSE="airplay alsa altivec avahi bluetooth bluray cec css debug goom java joystick midi mysql nfs profile +projectm pulseaudio pvr +rsxs rtmp +samba sse sse2 sftp udev upnp vaapi vdpau webserver +xrandr"
 
REQUIRED_USE="pvr? ( mysql )"
 

	
 
COMMON_DEPEND="virtual/glu
 
	virtual/opengl
 
	app-arch/bzip2
 
	app-arch/unzip
 
	app-arch/zip
 
	app-i18n/enca
 
	airplay? ( app-pda/libplist )
 
	>=dev-lang/python-2.4
 
	dev-libs/boost
 
	dev-libs/fribidi
 
	dev-libs/libcdio[-minimal]
 
	cec? ( >=dev-libs/libcec-2 )
 
	dev-libs/libpcre[cxx]
 
	>=dev-libs/lzo-2.04
 
	dev-libs/tinyxml[stl]
 
	dev-libs/yajl
 
	dev-python/simplejson
 
	media-libs/alsa-lib
 
	media-libs/flac
 
	media-libs/fontconfig
 
	media-libs/freetype
 
	>=media-libs/glew-1.5.6
 
	media-libs/jasper
 
	media-libs/jbigkit
 
	>=media-libs/libass-0.9.7
 
	bluray? ( media-libs/libbluray )
 
	css? ( media-libs/libdvdcss )
 
	media-libs/libmad
 
	media-libs/libmodplug
 
	media-libs/libmpeg2
 
	media-libs/libogg
 
	media-libs/libpng
 
	projectm? ( media-libs/libprojectm )
 
	media-libs/libsamplerate
 
	media-libs/libsdl[audio,opengl,video,X]
 
	alsa? ( media-libs/libsdl[alsa] )
 
	>=media-libs/taglib-1.8
 
	media-libs/libvorbis
 
	media-libs/sdl-gfx
 
	>=media-libs/sdl-image-1.2.10[gif,jpeg,png]
 
	media-libs/sdl-mixer
 
	media-libs/sdl-sound
 
	media-libs/tiff
 
	pulseaudio? ( media-sound/pulseaudio )
 
	media-sound/wavpack
 
	|| ( media-libs/libpostproc <media-video/libav-0.8.2-r1 media-video/ffmpeg )
 
	>=virtual/ffmpeg-0.6[encode]
 
	rtmp? ( media-video/rtmpdump )
 
	avahi? ( net-dns/avahi )
 
	nfs? ( net-fs/libnfs )
 
	webserver? ( net-libs/libmicrohttpd[messages] )
 
	sftp? ( net-libs/libssh )
 
	net-misc/curl
 
	samba? ( >=net-fs/samba-3.4.6[smbclient] )
 
	bluetooth? ( net-wireless/bluez )
 
	sys-apps/dbus
 
	sys-libs/zlib
 
	virtual/jpeg
 
	mysql? ( virtual/mysql )
 
	x11-apps/xdpyinfo
 
	x11-apps/mesa-progs
 
	vaapi? ( x11-libs/libva[opengl] )
 
	vdpau? (
 
		|| ( x11-libs/libvdpau >=x11-drivers/nvidia-drivers-180.51 )
 
		virtual/ffmpeg[vdpau]
 
	)
 
	x11-libs/libXinerama
 
	xrandr? ( x11-libs/libXrandr )
 
	x11-libs/libXrender"
 
RDEPEND="${COMMON_DEPEND}
 
	udev? (	sys-fs/udisks:0 sys-power/upower )"
 
DEPEND="${COMMON_DEPEND}
 
	app-arch/xz-utils
 
	dev-lang/swig
 
	dev-util/gperf
 
	x11-proto/xineramaproto
 
	dev-util/cmake
 
	x86? ( dev-lang/nasm )
 
	java? ( virtual/jre )"
 

	
 
S=${WORKDIR}/${MY_P}
 

	
 
pkg_setup() {
 
	python_set_active_version 2
 
	python_pkg_setup
 
}
 

	
 
src_unpack() {
 
	[[ ${PV} == "9999" ]] && git-2_src_unpack || default
 
}
 

	
 
src_prepare() {
 
	epatch "${FILESDIR}"/${PN}-9999-nomythtv.patch
 
	epatch "${FILESDIR}"/${PN}-9999-no-arm-flags.patch #400617
 
	# The mythtv patch touches configure.ac, so force a regen
 
	rm -f configure
 

	
 
	# some dirs ship generated autotools, some dont
 
	multijob_init
 
	local d
 
	for d in $(printf 'f:\n\t@echo $(BOOTSTRAP_TARGETS)\ninclude bootstrap.mk\n' | emake -f - f) ; do
 
		[[ -e ${d} ]] && continue
 
		pushd ${d/%configure/.} >/dev/null || die
 
		AT_NOELIBTOOLIZE="yes" AT_TOPLEVEL_EAUTORECONF="yes" \
 
		multijob_child_init eautoreconf
 
		popd >/dev/null
 
	done
 
	multijob_finish
 
	elibtoolize
 

	
 
	# Disable internal func checks as our USE/DEPEND
 
	# stuff handles this just fine already #408395
 
	export ac_cv_lib_avcodec_ff_vdpau_vc1_decode_picture=yes
 

	
 
	local squish #290564
 
	use altivec && squish="-DSQUISH_USE_ALTIVEC=1 -maltivec"
 
	use sse && squish="-DSQUISH_USE_SSE=1 -msse"
 
	use sse2 && squish="-DSQUISH_USE_SSE=2 -msse2"
 
	sed -i \
 
		-e '/^CXXFLAGS/{s:-D[^=]*=.::;s:-m[[:alnum:]]*::}' \
 
		-e "1iCXXFLAGS += ${squish}" \
 
		lib/libsquish/Makefile.in || die
 

	
 
	# Fix XBMC's final version string showing as "exported"
 
	# instead of the SVN revision number.
 
	export HAVE_GIT=no GIT_REV=${EGIT_VERSION:-exported}
 

	
 
	# avoid long delays when powerkit isn't running #348580
 
	sed -i \
 
		-e '/dbus_connection_send_with_reply_and_block/s:-1:3000:' \
 
		xbmc/linux/*.cpp || die
 

	
 
	epatch_user #293109
 

	
 
	# Tweak autotool timestamps to avoid regeneration
 
	find . -type f -print0 | xargs -0 touch -r configure
 
}
 

	
 
src_configure() {
 
	# Disable documentation generation
 
	export ac_cv_path_LATEX=no
 
	# Avoid help2man
 
	export HELP2MAN=$(type -P help2man || echo true)
 
	# No configure flage for this #403561
 
	export ac_cv_lib_bluetooth_hci_devid=$(usex bluetooth)
 
	# Requiring java is asine #434662
 
	export ac_cv_path_JAVA_EXE=$(which $(usex java java true))
 

	
 
	econf \
 
		--docdir=/usr/share/doc/${PF} \
 
		--disable-ccache \
 
		--disable-optimizations \
 
		--enable-external-libraries \
 
		--enable-gl \
 
		$(use_enable airplay) \
 
		$(use_enable avahi) \
 
		$(use_enable bluray libbluray) \
 
		$(use_enable cec libcec) \
 
		$(use_enable css dvdcss) \
 
		$(use_enable debug) \
 
		$(use_enable goom) \
 
		--disable-hal \
 
		$(use_enable joystick) \
 
		$(use_enable midi mid) \
 
		$(use_enable mysql) \
 
		$(use_enable nfs) \
 
		$(use_enable profile profiling) \
 
		$(use_enable projectm) \
 
		$(use_enable pulseaudio pulse) \
 
		$(use_enable pvr mythtv) \
 
		$(use_enable rsxs) \
 
		$(use_enable rtmp) \
 
		$(use_enable samba) \
 
		$(use_enable sftp ssh) \
 
		$(use_enable upnp) \
 
		$(use_enable vaapi) \
 
		$(use_enable vdpau) \
 
		$(use_enable webserver) \
 
		$(use_enable xrandr)
 
}
 

	
 
src_install() {
 
	default
 
	rm "${ED}"/usr/share/doc/*/{LICENSE.GPL,copying.txt}*
 

	
 
	domenu tools/Linux/xbmc.desktop
 
	newicon tools/Linux/xbmc-48x48.png xbmc.png
 

	
 
	insinto "$(python_get_sitedir)" #309885
 
	doins tools/EventClients/lib/python/xbmcclient.py || die
 
	newbin "tools/EventClients/Clients/XBMC Send/xbmc-send.py" xbmc-send || die
 
}
 

	
 
pkg_postinst() {
 
	elog "Visit http://wiki.xbmc.org/?title=XBMC_Online_Manual"
 
}
media-video/dvdbackup/Manifest
Show inline comments
 
new file 100644
 
DIST dvdbackup-0.4.1.tar.gz 232885 RMD160 0b0efcfe795cb08019b9406350dbcce88add814a SHA1 3e31cd3915b06be24e4387b248f23fa873182e45 SHA256 ac9138b3265ef7f113d139e68130663937ce25322ae00922f74bab55aa63347b
 
EBUILD dvdbackup-0.4.1.ebuild 626 RMD160 04f6c6845c62d28ee8f3672ad6426f72976b021a SHA1 6b8921604d16423a7023543d66969b6657ebfdfa SHA256 8dd2939e25a441cb1b8c7938d7f73dd0c6368ecaad3ad1b4452a22143078267d
media-video/dvdbackup/dvdbackup-0.4.1.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2009 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
inherit toolchain-funcs eutils
 

	
 
DESCRIPTION="Backup content from DVD to hard disk"
 
HOMEPAGE="http://dvdbackup.sourceforge.net/"
 
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
 

	
 
LICENSE="GPL-2"
 
SLOT="0"
 
KEYWORDS="x86"
 
IUSE=""
 

	
 
DEPEND="media-libs/libdvdread
 
	sys-libs/glibc
 
	"
 

	
 
src_unpack() {
 
	unpack ${A}
 
}
 

	
 
src_compile() {
 
	econf || die "econf failed"
 
	emake || die "emake failed"
 
}
 

	
 
src_install() {
 
	einstall || die "einstall failed"
 
	dodoc AUTHORS COPYING ChangeLog NEWS README || die "dodoc failed"
 
}
media-video/handbrake/Manifest
Show inline comments
 
new file 100644
 
DIST a52dec-0.7.4-handbrake-0.9.5_p4039.tar.gz 242978 RMD160 5f8ff682a43ffdafdb88a4231bfa64bb40f138d8 SHA1 7c406b9b5351cdec56279b6d02f3f556711424d2 SHA256 54981ab08fc09a675b9924372cf0cca5aa5363b918c4c19065c2d40e2858be47
 
DIST faac-1.28-handbrake-0.9.5_p4039.tar.gz 678891 RMD160 03902393488f04223aabdc804bfe77bb32a61c94 SHA1 d00b023a3642f81bb1fb13d962a65079121396ee SHA256 c5141199f4cfb17d749c36ba8cfe4b25f838da67c22f0fec40228b6b9c3d19df
 
DIST faad2-2.7-handbrake-0.9.5_p4039.tar.gz 1137407 RMD160 3f0ca461e2953014d5b17edccb3337767d478b8d SHA1 80eaaa5cc576c35dd28863767b795c50cbcc0511 SHA256 ee26ed1e177c0cd8fa8458a481b14a0b24ca0b51468c8b4c8b676fd3ceccd330
 
DIST ffmpeg-git-v0.7b2-406-g7b20d35-handbrake-0.9.5_p4039.tar.bz2 4091754 RMD160 e8a401a83cb1917f7eb3eb6569bd2185a2dae8b2 SHA1 f12a3f01d09d81f8575dbe93eaad2da15b8c8435 SHA256 7a2019ed1fb04c73d4af8b56d7668b1eab4278597f18d69136c061f2790c98bc
 
DIST fontconfig-2.8.0-handbrake-0.9.5_p4039.tar.gz 1548409 RMD160 fefee412cad4fa71b573e997e14f1df12f439be2 SHA1 570fb55eb14f2c92a7b470b941e9d35dbfafa716 SHA256 fa2a1c6eea654d9fce7a4b1220f10c99cdec848dccaf1625c01f076b31382335
 
DIST freetype-2.3.9-handbrake-0.9.5_p4039.tar.gz 1809558 RMD160 97fcb0fa731f5e0f279f22f7d49fadf5b79a196e SHA1 2c82a4f87b076c13d878129c8651645803585ff4 SHA256 3c3fc489c75af93e9f4367951114b0274bddef60d70ffe419b7e22cda210b9c0
 
DIST handbrake-0.9.5_p4039.tar.bz2 3117911 RMD160 ea5e4697f687bbc4e87f410578d665950290794f SHA1 b64d2664d5c130a32a92e039a119ed21175a1047 SHA256 fc58187c8358338de0b9f449533e048f5c2f36abb90495d71ae9522690fea142
 
DIST lame-3.98-handbrake-0.9.5_p4039.tar.gz 1411318 RMD160 c10c20128622e16f9cac3d346bea8e390e4bfdc5 SHA1 2908edcf0628512c407aadad317866826c6df5c7 SHA256 40235e84dfe4760ad3f352590a64b7bda1502a386c97d06229df356426e37686
 
DIST libass-0.9.9-handbrake-0.9.5_p4039.tar.bz2 280779 RMD160 a9b535ebab05ee8c30363c207fe736c36ac1c378 SHA1 e95923d7833f9ec8aa4f826a6fe113ea30404ad5 SHA256 aa2df48567ec60ff05456419c723bcf5f5686fa54282cd20a2ffc26c9831858b
 
DIST libbluray-0.0.1-pre-213-ga869da8-handbrake-0.9.5_p4039.tar.gz 241927 RMD160 77ea3b642fa1b58fe3acef32ee457173586ed403 SHA1 760bee28398c89b52942f771f6087e2b32af2c65 SHA256 4aa7127201a5d3d4148d99c37c7701ede6e0707456dacc8a59464dc68e231b76
 
DIST libdca-r81-strapped-handbrake-0.9.5_p4039.tar.gz 523282 RMD160 f8af6ac0df89e221d0b95caf68ee3aa3904ab178 SHA1 aace1f940184fad9ec033de48f7d1efc3d0c0ffa SHA256 ab2519af6c2f12411a2bd674b83615af9b0d5fb09f28ad5dab714ea1bfab9df1
 
DIST libdvdnav-svn1168-handbrake-0.9.5_p4039.tar.gz 1844832 RMD160 9628b3cf9cf29bf617047da6c387552d35de5e3d SHA1 2e0b1cb2e215f231fcf7b94f8be6a4a4a6643e94 SHA256 7cf4ff6ab0b5d3db3c300fc3cdb24e1ad59f22dd90352df075a604bc698d01c7
 
DIST libdvdread-svn1168-handbrake-0.9.5_p4039.tar.gz 946033 RMD160 25d1460a175e4dedb0c463d0b2a9f1c826238c80 SHA1 f6db5b9b5cce837e0c3dfd34f9c434b243bfc6fa SHA256 a489b618962e31a2b151b2e6d7b0c3fcb42cccc196ec7cb352c559898c3f1f1e
 
DIST libiconv-1.13-handbrake-0.9.5_p4039.tar.bz2 3951797 RMD160 3be2b308d84dd5ac0a3d8b1f836549102a508c4c SHA1 9df08d44e39b2ab1598a609a38566a631d22f3c1 SHA256 f29298bf34aef55e20f79c5d658e8e5d41fe98ccb497308f75a34b927f81c82e
 
DIST libmkv-0.6.4.1-3-g62ce8b9-handbrake-0.9.5_p4039.tar.gz 32395 RMD160 e738d15691c15d0829b8e54e2d51343537fa9ca4 SHA1 f4792a7c01dab8bb255d027f3ecc1350b70207aa SHA256 23e237695f6f81a9312a99d810a691e10dfa944183357db082c1146a021d00bc
 
DIST libogg-1.1.3-handbrake-0.9.5_p4039.tar.gz 401303 RMD160 fba18455f80b738239ccdd0fc19d518243140cce SHA1 9ce317cfe225e121deee68cd81db39f15b602caa SHA256 645676dd006c8424fde52df2edd0f52d6402b12c563b50c46e9540083241d50c
 
DIST libsamplerate-0.1.4-handbrake-0.9.5_p4039.tar.gz 4259244 RMD160 b2ac47d592702a410d5524e1550251c0e75f1879 SHA1 d6974129497ba141d43c36826a23deb6c0b3e5d8 SHA256 4b4af3ecaee05c8875a9b113c6a2f816f06f283fb882914e57b21c0b08b67b75
 
DIST libtheora-1.1.0-handbrake-0.9.5_p4039.tar.bz2 1785634 RMD160 c89c7d0622a89dbf2fcb5e6cf00c7e1bae42b0da SHA1 fb1686a8318d79f889f248ff774265d0ec4c6430 SHA256 74be9fe9f85d18c45bdcbb018cebf12c74e2234aeecb4d4c4cb92d80bdd287e2
 
DIST libvorbis-aotuv_b5-handbrake-0.9.5_p4039.tar.gz 1345888 RMD160 3c8cf3f1415cbbd037ec149427fda23e8a6dbe52 SHA1 ec446e9d2c480210ec8c5a02e479e52336450e3d SHA256 1e3c5b974e3d16a924eb0af12516a2b0b14aae24d46d32395cd997d833e84509
 
DIST libxml2-2.7.7-handbrake-0.9.5_p4039.tar.gz 2920320 RMD160 59bdb5f2c560561fbb431f256c0b3ff50dcc3804 SHA1 ef6e8971e62b69f783df9705115feadf351cadef SHA256 6f6e24d03c5a0a8244eb95d711c954aa9a6cd4645739aa1fe604be39c50e50f9
 
DIST mp4v2-trunk-r355-handbrake-0.9.5_p4039.tar.bz2 475488 RMD160 cc942dd7f20bb943cccfd9443694ebbd63558818 SHA1 18a10807c5a05e0361e77d126599f8717ad7c8f5 SHA256 5b7d4e62df506b1246463da82cc2f02415eb462e6ccd5848f98f5cdcfc1f3d4f
 
DIST mpeg2dec-0.5.1-handbrake-0.9.5_p4039.tar.gz 522405 RMD160 3986798a30b33e689b1d7c5390380c13b74f8c76 SHA1 c39a95d18e133cd81e890fd7672f592ed41fadfc SHA256 161539061aa89864968a5150ed6c6a028a830c4868f7dd7c500732baef47fb71
 
DIST x264-r1995-c1e60b9-handbrake-0.9.5_p4039.tar.gz 608626 RMD160 e7bf926f9bd5e5d62cd61d5a814593e879bb9686 SHA1 0dbdc0c2875172d89318a7a2f0144d403dc56eb3 SHA256 5c5936ea57d4618f0d27a11253fc2cd9cd4eb4111f84e3d7d979c94f779325dc
 
EBUILD handbrake-0.9.5_p4039.ebuild 4051 RMD160 65394ca875c047ba05d3d2060f483decc3d7f9f3 SHA1 9ebe61579824e326a113d9da25a17f2bd527a282 SHA256 af1c82a9fa1655803cb6685e5bbef6137e7a8a19533c9bf93652d465e3d395be
media-video/handbrake/handbrake-0.9.5_p4039.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2011 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
EAPI="2"
 
WANT_AUTOMAKE="1.9"
 
inherit gnome2-utils autotools
 

	
 
# SRC_HB="http://download.m0k.org/handbrake/contrib/"
 
SRC_CONTRIB="http://download.handbrake.fr/handbrake/contrib/"
 
DESCRIPTION="Open-source DVD to MPEG-4 converter"
 
HOMEPAGE="http://handbrake.fr/"
 
SRC_URI="http://spaceparanoids.org/gentoo/distfiles/${P}.tar.bz2
 
	${SRC_CONTRIB}a52dec-0.7.4.tar.gz -> a52dec-0.7.4-${P}.tar.gz
 
	${SRC_CONTRIB}faac-1.28.tar.gz -> faac-1.28-${P}.tar.gz
 
	${SRC_CONTRIB}faad2-2.7.tar.gz -> faad2-2.7-${P}.tar.gz
 
	${SRC_CONTRIB}ffmpeg-git-v0.7b2-406-g7b20d35.tar.bz2 -> ffmpeg-git-v0.7b2-406-g7b20d35-${P}.tar.bz2
 
	${SRC_CONTRIB}fontconfig-2.8.0.tar.gz -> fontconfig-2.8.0-${P}.tar.gz
 
	${SRC_CONTRIB}freetype-2.3.9.tar.gz -> freetype-2.3.9-${P}.tar.gz
 
	${SRC_CONTRIB}lame-3.98.tar.gz -> lame-3.98-${P}.tar.gz
 
	${SRC_CONTRIB}libass-0.9.9.tar.bz2 -> libass-0.9.9-${P}.tar.bz2
 
	${SRC_CONTRIB}libbluray-0.0.1-pre-213-ga869da8.tar.gz -> libbluray-0.0.1-pre-213-ga869da8-${P}.tar.gz
 
	${SRC_CONTRIB}libdca-r81-strapped.tar.gz -> libdca-r81-strapped-${P}.tar.gz
 
	${SRC_CONTRIB}libdvdnav-svn1168.tar.gz -> libdvdnav-svn1168-${P}.tar.gz
 
	${SRC_CONTRIB}libdvdread-svn1168.tar.gz -> libdvdread-svn1168-${P}.tar.gz
 
	${SRC_CONTRIB}libiconv-1.13.tar.bz2 -> libiconv-1.13-${P}.tar.bz2
 
	${SRC_CONTRIB}libmkv-0.6.4.1-3-g62ce8b9.tar.gz -> libmkv-0.6.4.1-3-g62ce8b9-${P}.tar.gz
 
	${SRC_CONTRIB}libogg-1.1.3.tar.gz -> libogg-1.1.3-${P}.tar.gz
 
	${SRC_CONTRIB}libsamplerate-0.1.4.tar.gz -> libsamplerate-0.1.4-${P}.tar.gz
 
	${SRC_CONTRIB}libtheora-1.1.0.tar.bz2 -> libtheora-1.1.0-${P}.tar.bz2
 
	${SRC_CONTRIB}libvorbis-aotuv_b5.tar.gz -> libvorbis-aotuv_b5-${P}.tar.gz
 
	${SRC_CONTRIB}libxml2-2.7.7.tar.gz -> libxml2-2.7.7-${P}.tar.gz
 
	${SRC_CONTRIB}mp4v2-trunk-r355.tar.bz2 -> mp4v2-trunk-r355-${P}.tar.bz2
 
	${SRC_CONTRIB}mpeg2dec-0.5.1.tar.gz -> mpeg2dec-0.5.1-${P}.tar.gz
 
	${SRC_CONTRIB}x264-r1995-c1e60b9.tar.gz -> x264-r1995-c1e60b9-${P}.tar.gz
 
"
 

	
 
# ${SRC_CONTRIB}bzip2-1.0.6.tar.gz ${SRC_CONTRIB}zlib-1.2.3.tar.gz
 
# ${SRC_CONTRIB}pthreads-w32-cvs20100909.tar.bz2
 

	
 
unset SRC_CONTRIB
 

	
 
LICENSE="GPL-2 GPL-3 BSD MIT"
 
SLOT="0"
 
KEYWORDS="~amd64 ~x86"
 

	
 
IUSE="+css gtk"
 
RDEPEND="sys-libs/zlib
 
	css? ( media-libs/libdvdcss )
 
	gtk? (
 
			app-text/enchant
 
			dev-db/sqlite
 
			dev-libs/atk
 
			dev-libs/dbus-glib
 
			dev-libs/expat
 
			dev-libs/glib
 
			dev-libs/icu
 
			dev-libs/libgcrypt
 
			dev-libs/libgpg-error
 
			dev-libs/libtasn1
 
			dev-libs/libxml2
 
			dev-libs/libxslt
 
			net-libs/webkit-gtk
 
			media-libs/fontconfig
 
			media-libs/gst-plugins-base
 
			media-libs/gstreamer
 
			media-libs/libpng
 
			net-libs/gnutls
 
			sys-libs/glibc
 
			sys-libs/zlib
 
			virtual/jpeg
 
			x11-libs/cairo
 
			x11-libs/gdk-pixbuf
 
			x11-libs/gtk+:2
 
			x11-libs/libnotify
 
			x11-libs/libSM
 
			x11-libs/libX11
 
			x11-libs/pango
 
	)"
 
DEPEND="dev-lang/yasm
 
	dev-lang/python
 
	dev-util/pkgconfig
 
	${RDEPEND}"
 

	
 
# Handbrake attempts to download tarballs itself in its build system,
 
# so copy them to the expected location instead.
 
src_prepare() {
 
	mkdir "${S}"/download || die
 
	local x
 
	for x in ${A}; do
 
		# cp "${DISTDIR}"/${x} "${S}"/download/ || die "copying failed"
 
		cp "${DISTDIR}/${x}" "${S}/download/${x/-${P}}" \
 
			|| die "copying ${x} failed"
 
	done
 
}
 

	
 
# Don't waste time unpacking all the tarballs, when we just
 
# need the handbrake one.
 
src_unpack() {
 
	unpack ${P}.tar.bz2
 
}
 

	
 
src_configure() {
 
	# Python configure script doesn't accept all econf flags
 
	./configure --force --prefix=/usr \
 
		$(use_enable gtk) \
 
		|| die "configure failed"
 
}
 

	
 
src_compile() {
 
	emake -C build || die "failed compiling ${PN}"
 
}
 

	
 
src_install() {
 
	emake -C build DESTDIR="${D}" install || die "failed installing ${PN}"
 
	emake -C build doc || die "emake doc failed"
 
	dodoc AUTHORS CREDITS NEWS THANKS || die "dodoc (1) failed"
 
	dodoc build/doc/articles/txt/* || die "dodoc (2) failed"
 
}
 

	
 
pkg_preinst() {
 
	gnome2_icon_savelist
 
}
 

	
 
pkg_postinst() {
 
	gnome2_icon_cache_update
 
}
 

	
 
pkg_postrm() {
 
	gnome2_icon_cache_update
 
}
media-video/iriverter/Manifest
Show inline comments
 
new file 100644
 
DIST iriverter-0.14.tar.bz2 296451 RMD160 a7c22b3412905202affbee9a7c94277e5aff6aeb SHA1 fd70447ef688b4c58dc407da378ee6f27d806fae SHA256 4ed7c0ba0023892324e39a15d438fb8f615f48285ab9361a9bb68d92768bd492
 
EBUILD iriverter-0.14.ebuild 1381 RMD160 bee212f4a879e7b31e12c6e70c2671e2fed2ca20 SHA1 93fa54b3a89d45bd8b90bf5a7569772153c71224 SHA256 71f65285f1a6f2d977955b52db443ae263e0633f95b253abfe6edccf2af13f5c
media-video/iriverter/iriverter-0.14.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2005 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
inherit eutils
 

	
 
DESCRIPTION="iriverter is a simple video converter for portable media players"
 
HOMEPAGE="http://iriverter.sourceforge.net/"
 
SRC_URI="mirror://sourceforge/iriverter/${P}.tar.bz2"
 

	
 
LICENSE="LGPL-2"
 
SLOT="0"
 
KEYWORDS="~x86 ~amd64"
 
IUSE="gcj"
 

	
 
RDEPEND="media-video/mplayer"
 

	
 
DEPEND="${RDEPEND}
 
	dev-java/swt"
 

	
 
pkg_setup() {
 
	if use gcj && ! built_with_use sys-devel/gcc gcj; then
 
		eerror "GCC was not built with GCJ support!"
 
		eerror "Rebuild sys-devel/gcc with \"gcj\" in your use-flags."
 
		die "no gcj"
 
	fi
 
}
 

	
 
src_compile() {
 
	econf \
 
		$(use_with gcj) \
 
		--with-swt=`java-config -p swt-3` \
 
		|| die "econf failed"
 

	
 
	emake || die "emake failed"
 
}
 

	
 
src_install() {
 
	make DESTDIR="${D}" install || die
 
}
 

	
 
pkg_postinst() {
 
	if ! built_with_use media-video/mplayer encode; then
 
		ewarn "iriverter requires MPlayer to have MEncoder!"
 
		ewarn "Rebuild media-video/mplayer with \"encode\" in your use-flags."
 
	fi
 
	
 
	if ! built_with_use media-video/mplayer xvid; then
 
		ewarn "iriverter requires MPlayer to have XviD support!"
 
		ewarn "Rebuild media-video/mplayer with \"xvid\" in your use-flags."
 
	fi
 

	
 
	ewarn "MPlayer from Portage doesn't have the necessary patches for manual A/V sync."
 
	ewarn "Do not expect this function of iriverter to work!"
 
}
media-video/makemkv/Manifest
Show inline comments
 
new file 100644
 
AUX makemkv-1.7.7-makefile.linux.patch 592 SHA256 85ec887388dba2bfde25138ee21920172772abf89b4e6efbc578acdbed2b1e42 SHA512 5865f967944ff6b7bd29a18e9abd886059d5b6fb24e99deb849fb2008919fdaf61eb7d8c774d42a7166e8dc623b69da25dc62d64b1bb3097689eeb81e4cf0434 WHIRLPOOL 5a5c14bda50e461720ff3486c3977a1cb82afe2bfe847ed9028c46600e7d9f8d738e10214e7fd340763bcb60c397d19f1fde4d2c205cff9e85c808b2b38aeaec
 
DIST makemkv-bin-1.7.7.tar.gz 6586450 SHA256 3aa259389888479612cae50dc7134733a58ce93cb76d31f73290cf607335984b SHA512 96c256ac60ea0da72295a03a7f6e76f5819215f34265414e0964dffcbd33741260e86fa4f378ddfc73047e0fe4ddc0e08123963e8de8004274a46338c6ccb1d8 WHIRLPOOL 1e98cd711283d826ada15b4e6920922bca82d3a3137f09afe8117f1e012c5d72d7f291ab329debfe44339779f73b635f4b504b16bc1eacb3553eabc0f913dccb
 
DIST makemkv-oss-1.7.7.tar.gz 484029 SHA256 05c15168a9fdca5a3b992ee9ea1789bff43d2e71b07546cf54967f6ccd4a296b SHA512 ac9ddf8868292161096b60cb130b0a6ea8090f7b6c9f08f21edd6b9d28bad0388c12ab4fd66700e7d4350e7dd7fb16321dcf86cd9b6d1125c3ae0b382fb3ea0a WHIRLPOOL feb707265e0f50e4668186f4e7795427c9fd6370dec174bf594e270c3c05c919776375f83d49ef60417ab6918ff1cc75840d9ba71ebf6689afaaed56ff57898c
 
EBUILD makemkv-1.7.7.ebuild 2759 SHA256 d6f4acd6867cd137b3eb5e05d5537cc14c27d699879e85ecab4690d93df3d6c7 SHA512 2645401565a09f59f23d7202272bfee8f9585cf26d6cd3b1f94ef20737f31d7c78c40bbebcd56e3b24269ef45d9644d2e4bc27513115f1df3b7ecf888afd2098 WHIRLPOOL 8adf83455d0160e2273d61b0e47998c6369b8e0f9431dfed644e086a87a148fb5f6f36248a9de00b7391253c7865099e3ad7ff0fb5a12ca07f8334f215eedf2d
media-video/makemkv/files/makemkv-1.7.7-makefile.linux.patch
Show inline comments
 
new file 100644
 
--- makemkv-oss-1.7.6/makefile.linux.orig
 
+++ makemkv-oss-1.7.6/makefile.linux
 
@@ -8,7 +8,7 @@
 
 MOC=moc
 
 endif
 
 
 
-CXXOPTS=-Os -D_GNU_SOURCE -D_linux_
 
+CXXOPTS=-D_GNU_SOURCE -D_linux_
 
 
 
 BUILDINFO_ARCH_NAME=$(shell $(GCC) -dumpmachine)
 
 BUILDINFO_BUILD_DATE=$(shell date)
 
@@ -38,7 +38,7 @@
 
        install -D -m 644 makemkvgui/src/img/128/mkv_icon.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps/makemkv.png
 
 
 
 out/%: out/%.full
 
-	objcopy --strip-all --strip-debug --strip-unneeded --discard-all $< $@ 
 
+	objcopy --discard-all $< $@ 
 
 
 
 out/libdriveio.so.0.full:
 
        mkdir -p out
media-video/makemkv/makemkv-1.7.7.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2012 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/media-video/makemkv/makemkv-1.7.6.ebuild,v 1.6 2012/07/04 09:28:35 ssuominen Exp $
 

	
 
EAPI=4
 
inherit eutils gnome2-utils multilib
 

	
 
MY_P=makemkv-oss-${PV}
 
MY_PB=makemkv-bin-${PV}
 

	
 
DESCRIPTION="Tool for ripping Blu-Ray, HD-DVD and DVD discs and copying content to a Matroska container"
 
HOMEPAGE="http://www.makemkv.com/"
 
SRC_URI="http://www.makemkv.com/download/${MY_P}.tar.gz
 
	http://www.makemkv.com/download/${MY_PB}.tar.gz"
 

	
 
LICENSE="LGPL-2.1 MPL-1.1 MakeMKV-EULA openssl"
 
SLOT="0"
 
KEYWORDS="~amd64 ~x86"
 
IUSE="multilib"
 

	
 
QA_PREBUILT="opt/bin/makemkvcon opt/bin/mmdtsdec"
 
RESTRICT="mirror"
 

	
 
RDEPEND="dev-libs/expat
 
	dev-libs/openssl:0
 
	sys-libs/zlib
 
	virtual/opengl
 
	x11-libs/qt-core:4
 
	x11-libs/qt-dbus:4
 
	x11-libs/qt-gui:4
 
	amd64? ( multilib? ( app-emulation/emul-linux-x86-baselibs ) )"
 
DEPEND="${RDEPEND}"
 

	
 
S=${WORKDIR}/${MY_P}
 

	
 
src_prepare() {
 
	epatch "${FILESDIR}"/${P}-makefile.linux.patch
 
}
 

	
 
src_compile() {
 
	emake GCC="$(tc-getCC) ${CFLAGS} ${LDFLAGS}" -f makefile.linux
 
}
 

	
 
src_install() {
 
	# install oss package
 
	dolib.so out/libdriveio.so.0
 
	dolib.so out/libmakemkv.so.1
 
	dosym libdriveio.so.0 /usr/$(get_libdir)/libdriveio.so.0.${PV}
 
	dosym libdriveio.so.0 /usr/$(get_libdir)/libdriveio.so
 
	dosym libmakemkv.so.1 /usr/$(get_libdir)/libmakemkv.so.1.${PV}
 
	dosym libmakemkv.so.1 /usr/$(get_libdir)/libmakemkv.so
 
	into /opt
 
	dobin out/makemkv
 

	
 
	local res
 
	for res in 16 22 32 64 128; do
 
		newicon -s ${res} makemkvgui/src/img/${res}/mkv_icon.png ${PN}.png
 
	done
 

	
 
	make_desktop_entry ${PN} MakeMKV ${PN} 'Qt;AudioVideo;Video'
 

	
 
	# install bin package
 
	pushd "${WORKDIR}"/${MY_PB}/bin >/dev/null
 
	if use x86; then
 
		dobin i386/{makemkvcon,mmdtsdec}
 
	elif use amd64; then
 
		dobin amd64/makemkvcon
 
		use multilib && dobin i386/mmdtsdec
 
	fi
 
	popd >/dev/null
 

	
 
	# install license and default profile
 
	pushd "${WORKDIR}"/${MY_PB}/src/share >/dev/null
 
	insinto /usr/share/MakeMKV
 
	doins *.{gz,xml}
 
	popd >/dev/null
 
}
 

	
 
pkg_preinst() {	gnome2_icon_savelist; }
 

	
 
pkg_postinst() {
 
	gnome2_icon_cache_update
 

	
 
	elog "While MakeMKV is in beta mode, upstream has provided a license"
 
	elog "to use if you do not want to purchase one."
 
	elog ""
 
	elog "See this forum thread for more information, including the key:"
 
	elog "http://www.makemkv.com/forum2/viewtopic.php?f=5&t=1053"
 
	elog ""
 
	elog "Note that beta license may have an expiration date and you will"
 
	elog "need to check for newer licenses/releases. "
 
	elog ""
 
	elog "If this is a new install, remember to copy the default profile"
 
	elog "to the config directory:"
 
	elog "cp /usr/share/MakeMKV/default.mmcp.xml ~/.MakeMKV/"
 
}
 

	
 
pkg_postrm() { gnome2_icon_cache_update; }
media-video/qpspmanager/Manifest
Show inline comments
 
new file 100644
 
DIST qpspmanager-1.1.2.tar.gz 40217 RMD160 1c24ad11bec8db609c3b5db3df3ab6f8745674a1 SHA1 61a3bd8c29c30272e5f73699bd66492501d65286 SHA256 dcc4c1f0c1bbe67c38560998d9d5487ce34217fdc3a15c7b9fa9594e6cdf41da
 
EBUILD qpspmanager-1.1.2-r1.ebuild 615 RMD160 55d73b17adeb9f2bbb5925b033ce3e5eb045e36c SHA1 1c628b5c6bdf1d159b551a1d9fdbe3f3db79065a SHA256 43f12c82aa6c5bfe5b79cae725c33440a66edbb7266fad7e4c0d31b7a4a17086
media-video/qpspmanager/qpspmanager-1.1.2-r1.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2005 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
SLOT="0"
 
LICENSE="GPL-2"
 
KEYWORDS="~x86 ~amd64"
 
DESCRIPTION="PBP File manager for Linux (PSP)"
 
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
 
HOMEPAGE="http://qpspmanager.sourceforge.net/"
 
IUSE=""
 

	
 
DEPEND=">=x11-libs/qt-3.3.4"
 

	
 
inherit qt3
 

	
 
src_unpack(){
 
	unpack ${A}
 
	cd "${S}"
 
}
 

	
 
src_compile() {
 
	addwrite "$QTDIR/etc/settings"
 
	"${QTDIR}"/bin/qmake -o Makefile qpspmanager.pro
 
	emake || die "emake failed"
 
}
 

	
 
src_install() {
 
	dobin "${S}"/bin/qpspmanager
 
	dodoc README Changelog COPYING
 
}
media-video/r5u870/Manifest
Show inline comments
 
new file 100644
 
AUX 10-r5u870-webcam.fdi 747 RMD160 a1804b70b834fc0454f4ccce000502f2f3ab8dc1 SHA1 1d77fa4f1f95ceeae7d7a255a77eb9e908d5f43c SHA256 48009ff203a1628fa15583db33e17cab56ac0643f81fb9337d446035c19a0332
 
AUX 30-r5u870.fdi 658 RMD160 1b84f8b59533e6589130beebfb4141205ccf1c9d SHA1 111bcbe18088031a4450473c4832bede1de19c40 SHA256 305147ae5068ba9eca5eefe722a63d50b69ea23198d7c0fe61556dd33e2ab670
 
AUX r5u870-2.6.34_fix.patch 266 RMD160 efc9e85270d87cc3fa928e8ee9cf12cf50e1d71b SHA1 a0924852e09c623c7c7c3de93ba80e63c5e69409 SHA256 00a5cced9713690f4721437374cfeeb1178e59a39c1e1fe270217bae73cfb560
 
AUX vivi-dmasg-config.patch 389 RMD160 4ea9b9a51dad8c4e82a92338d077605a1714a2b3 SHA1 0b37009486b50f35d1e682f3e64d761ba51b51a0 SHA256 fba678b768826f81dd9970ea4f78fd8a4b00bb1eee64a3149dc14cf353ae7dc7
 
DIST r5u870_k2.6.30_amd64.tar.bz2 195029 RMD160 0e1623e2425579b2eee125a7538c903096ee438f SHA1 86a135c01031c52d70ffd8dee40ccb2d41b1c09f SHA256 bbda4e437736b83e7128b754565613726948c7f470d98610679b4c20cd0b38cf
 
DIST r5u870_k2.6.30_i386.tar.bz2 195038 RMD160 149c7db629d9d9d03d99d2d4e752f2f8ea91b3f0 SHA1 6a732ca4cbb2ee29bc006761d651940679752abe SHA256 2a973f92ef0c5801b5a6dd0d8825d46100a6a657cb9d3579989f044cc9b70cf2
 
EBUILD r5u870-2.6.30.ebuild 1355 RMD160 7981142050730b4e7e253e3b827f2eb8871e40ba SHA1 366362e2c72290ff3efaee0047532966bb313da1 SHA256 0f562e7a0afb2428330aa3e640abec75ef544f94142830b0a2339754fae44b07
 
EBUILD r5u870-2.6.3x.ebuild 1404 RMD160 543e414659c3cc0e099d537c1fd7d9f7df83a40b SHA1 17e9cf67fa6d5d7388245bc27dbae80085ca0772 SHA256 fcc3166850ac2702d75febef07cf109a59966b8d940b6238da9f786d6f3f21b4
media-video/r5u870/files/10-r5u870-webcam.fdi
Show inline comments
 
new file 100644
 
<?xml version="1.0" encoding="UTF-8"?>
 

	
 
<deviceinfo version="0.2">
 
  <device>
 
    <match key="info.subsystem" string="usb">
 
      <match key="usb.interface.class" int="0x0e">
 
        <match key="usb.interface.subclass" int="0x02">
 
          <match key="usb.interface.protocol" int="0x00">
 
            <merge key="info.category" type="string">video4linux</merge>
 
	    <append key="info.capabilities" type="strlist">video4linux</append>
 
            <merge key="linux.subsystem" type="string">video4linux</merge>
 
            <merge key="video4linux.device" type="string">/dev/video0</merge>
 
            <merge key="video4linux.version" type="string">2</merge>
 
          </match>
 
        </match>
 
      </match>
 
    </match>
 
  </device>
 
</deviceinfo>
media-video/r5u870/files/30-r5u870.fdi
Show inline comments
 
new file 100644
 
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->
 

	
 
<deviceinfo version="0.2">
 
  <device>
 

	
 
     <!-- Xerion : Added so that R5U870 is recognised from HAL-->
 

	
 
     <match key="info.udi" string="/org/freedesktop/Hal/devices/usb_device_5ca_1834_noserial">
 
       <merge key="info.category" type="string">video4linux</merge>
 
       <append key="info.capabilities" type="strlist">video4linux</append>
 
       <merge key="linux.subsystem" type="string">video4linux</merge>
 
       <merge key="video4linux.device" type="string">/dev/video1</merge>
 
       <merge key="video4linux.version" type="string">2</merge>
 
     </match>
 
  </device>
 
</deviceinfo>
media-video/r5u870/files/r5u870-2.6.34_fix.patch
Show inline comments
 
new file 100644
 
*** r5u870m.c	Wed Jul  7 15:27:33 2010
 
--- r5u870.c	Wed Jul  7 15:23:19 2010
 
***************
 
*** 55,60 ****
 
--- 55,61 ----
 
  #include <linux/firmware.h>
 
  #include <linux/dmi.h>
 
  #include <linux/ctype.h>
 
+ #include <linux/slab.h>
 
  
 
  #include "usbcam/usbcam.h"
 
  
media-video/r5u870/files/vivi-dmasg-config.patch
Show inline comments
 
new file 100644
 
--- orig/drivers/media/video/Kconfig	2008-01-20 05:09:40.060442881 +0100
 
+++ mod/drivers/media/video/Kconfig	2008-01-20 05:11:24.769587993 +0100
 
@@ -365,6 +365,7 @@
 
 	tristate "Virtual Video Driver"
 
 	depends on VIDEO_V4L2 && !SPARC32 && !SPARC64
 
 	select VIDEOBUF_VMALLOC
 
+	select VIDEOBUF_DMA_SG
 
 	default n
 
 	---help---
 
 	  Enables a virtual video driver. This device shows a color bar
media-video/r5u870/r5u870-2.6.30.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2009 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
inherit linux-mod
 

	
 
DESCRIPTION="Driver for webcams based on the Ricoh r5u870 chip"
 
HOMEPAGE="http://www.palmix.org/r5u870-en.html"
 
SRC_URI="amd64? ( http://www.palmix.org/download/${PN}_k${PV}_amd64.tar.bz2 )
 
	x86?	( http://www.palmix.org/download/${PN}_k${PV}_i386.tar.bz2 )"
 

	
 
LICENSE="GPL-2"
 
SLOT="0"
 
KEYWORDS="~amd64 ~x86"
 
IUSE=""
 
S="${WORKDIR}/${PN}"
 

	
 
MODULE_NAMES="r5u870(media/video:) usbcam/usbcam(media/video:)"
 
CONFIG_CHECK="VIDEO_V4L2 VIDEO_V4L1_COMPAT FW_LOADER
 
	VIDEO_VIVI V4L_USB_DRIVERS"
 
MODULESD_R5U870_DOCS="readme"
 
BUILD_TARGETS="all"
 

	
 
src_unpack() {
 
	unpack ${A}
 
	cd "${S}"
 
}          
 

	
 

	
 
src_install () {
 
	linux-mod_src_install
 
	insinto /$(get_libdir)/firmware
 
	doins *.fw
 
	insinto /usr/share/doc/${P}
 
	#doins "${FILESDIR}/vivi-dmasg-config.patch"
 
}
 

	
 
pkg_setup () {
 
#	ewarn "If you get warnings about missing symbols, you may need to apply"
 
#	ewarn "the supplied patch and rebuild your kernel, as follows:"
 
#	ewarn
 
#	ewarn "   # cd /usr/src/linux"
 
#	ewarn "   # < /usr/share/doc/${P}/vivi-dmasg-config.patch \| patch -p1"
 
#	ewarn
 
#	ewarn "Alternatively, you can edit the .config file and make sure that"
 
#	ewarn "VIDEOBUF_DMA_SG, VIDEOBUF_GEN and VIDEOBUF_VMALLOC are set"
 
#	ebeep 5 && epause
 
	linux-mod_pkg_setup
 
}
media-video/r5u870/r5u870-2.6.3x.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2010 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
inherit linux-mod
 

	
 
DESCRIPTION="Driver for webcams based on the Ricoh r5u870 chip"
 
HOMEPAGE="http://www.palmix.org/r5u870-en.html"
 
SRC_URI="amd64? ( http://www.palmix.org/download/${PN}_k2.6.30_amd64.tar.bz2 )
 
	x86?	( http://www.palmix.org/download/${PN}_k2.6.30_i386.tar.bz2 )"
 

	
 
LICENSE="GPL-2"
 
SLOT="0"
 
KEYWORDS="~amd64 ~x86"
 
IUSE=""
 
S="${WORKDIR}/${PN}"
 

	
 
MODULE_NAMES="r5u870(media/video:) usbcam/usbcam(media/video:)"
 
CONFIG_CHECK="VIDEO_V4L2 VIDEO_V4L1_COMPAT FW_LOADER
 
	VIDEO_VIVI V4L_USB_DRIVERS"
 
MODULESD_R5U870_DOCS="readme"
 
BUILD_TARGETS="all"
 

	
 
src_unpack() {
 
	unpack ${A}
 
	cd "${S}"
 
	kernel_is ge 2 6 34 && epatch "${FILESDIR}/${PN}-2.6.34_fix.patch"
 
}
 

	
 
src_install () {
 
	linux-mod_src_install
 
	insinto /$(get_libdir)/firmware
 
	doins *.fw
 
	insinto /usr/share/doc/${P}
 
	doins "${FILESDIR}/vivi-dmasg-config.patch"
 
}
 

	
 
pkg_setup () {
 
	ewarn "If you get warnings about missing symbols, you may need to apply"
 
	ewarn "the supplied patch and rebuild your kernel, as follows:"
 
	ewarn
 
	ewarn "   # cd /usr/src/linux"
 
	ewarn "   # < /usr/share/doc/${P}/vivi-dmasg-config.patch \| patch -p1"
 
	ewarn
 
	ewarn "Alternatively, you can edit the .config file and make sure that"
 
	ewarn "VIDEOBUF_DMA_SG, VIDEOBUF_GEN and VIDEOBUF_VMALLOC are set"
 
	ebeep 5 && epause
 
	linux-mod_pkg_setup
 
}
net-analyzer/centreon/Manifest
Show inline comments
 
new file 100644
 
AUX 99_centreon.conf 257 RMD160 0ee38f9c1bba533c2f547aed016302b928ac8d23 SHA1 d9555c2062b69bada7876ed07679d8973c796ad5 SHA256 4f6c817c3217ec98075bf254c6e92fb98d7e54ef312f999198b8dc3aacd7de58
 
AUX centreon-2.cron 515 RMD160 0468292744937ba66a926ee76a7c606bce966cd0 SHA1 d76341a4c7e4d50571c7050a2fc545c278390e4c SHA256 5f98cdd79d824abc2b010d1d6bde795d743f002faeb1e26f0552a3cd36adddc6
 
AUX centreon.initd 1066 RMD160 28006c17aabd1d28d0065c278dd8aade2cf176e8 SHA1 d899eaa82f0cc51386701060d4737f1bf7780aac SHA256 eb8da2f57d9510607c4baf7f6c20a93e2c84bd854f6f2c3e62eeb37917787ddd
 
AUX initial-installconf.php 3059 RMD160 f2f18bbc391c770f8f0b20a73815f1513b1d761d SHA1 84de5ad08b2f947ed0364c7dcaa634129eef5de3 SHA256 2a14afb060567ea9c15cbb0ee3a726d53369d2c3ad83cc2ed6bba96b2c9e3004
 
DIST centreon-2.1.3.tar.gz 6085498 RMD160 2532cdbc6fe3bb5c6ce0f1627af184f3fe34e273 SHA1 b4faf5d8e7c9e68f1305a6fe133b990cf7124932 SHA256 c4afcf969b2decf48e30bd8fc42e96320799be83744d4a093ba4ccbc21cb41cb
 
EBUILD centreon-2.1.3.ebuild 8278 RMD160 1a9ac1663e6dc5a6737ac391f1c79ecf564076ea SHA1 db9448e3f5e64e74988668595e6b9be5f7a47b24 SHA256 a1d823748d9f95925c0e5071cd309532b73734396cf73c6bd19c39593882b93c
net-analyzer/centreon/centreon-2.1.3.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2008 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/net-analyzer/centreon/centreon-1.4.2.4.ebuild,v 1.3 2008/04/03 08:30:17 hollow Exp $
 

	
 
inherit depend.apache depend.php
 

	
 
DESCRIPTION="Centreon is a monitoring web-frontend based on the nagios monitoring engine"
 
HOMEPAGE="http://www.centreon.org"
 
SRC_URI="http://download.centreon.com/${PN}/${P}.tar.gz"
 

	
 
EAPI=2
 
LICENSE="GPL-2"
 
SLOT="0"
 
KEYWORDS="~amd64 ~x86"
 
IUSE="ldap xmlwriter"
 

	
 
#version 1 cannot be upgraded
 
DEPEND="!<net-analyzer/centreon-2"
 

	
 
RDEPEND="
 
	>=net-analyzer/nagios-3
 
	net-analyzer/rrdtool[perl]
 
	net-analyzer/net-snmp[perl]
 
	net-analyzer/snmptt
 
	net-analyzer/ndoutils
 
	app-admin/sudo
 
	>=dev-lang/php-5[xmlwriter?,mysql,ldap?,posix,snmp,soap,truetype]
 
	>=dev-php/PEAR-PEAR-1.8.1
 
	dev-php/smarty
 
	dev-php/PEAR-Archive_Tar
 
	dev-php/PEAR-Console_Getopt
 
	>=dev-php/PEAR-DB-1.7.6
 
	>=dev-php/PEAR-DB_DataObject_FormBuilder-1.0.0_rc4
 
	>=dev-php/PEAR-Date-1.4.6
 
	>=dev-php/PEAR-HTML_QuickForm_advmultiselect-1.1.0
 
	>=dev-php/PEAR-HTML_Table-1.6.1
 
	>=dev-php/PEAR-MDB2-2.0.0
 
	>=dev-php/PEAR-Net_Ping-2.4.1
 
	>=dev-php/PEAR-Net_Traceroute-0.21
 
	>=dev-php/PEAR-SOAP-0.10.1
 
	>=dev-php/PEAR-Validate-0.6.2
 
	dev-perl/Config-IniFiles
 
	dev-perl/Crypt-DES
 
	dev-perl/DBI
 
	dev-perl/Digest-HMAC
 
	dev-perl/Digest-SHA1
 
	dev-perl/GD
 
	dev-perl/IO-Socket-INET6
 
	dev-perl/Net-SNMP
 
	dev-perl/Socket6"
 

	
 
need_apache2
 
need_php5
 

	
 
setup_vars() {
 
	INSTALL_DIR_OREON="/usr/share/centreon"
 
	INSTALL_DIR_CENTREON="/usr/share/centreon"
 
	OREON_PATH=${INSTALL_DIR_OREON}
 
	CENTREON_ETC="/etc/centreon"
 
	CENTREON_VARLIB="/var/lib/centreon"
 
	VARLIB_CENTERON=${CENTERON_VARLIB}
 
	CENTREON_LOG="/var/log/centreon"
 
	CENTREON_PATH=${OREON_PATH}
 
	CENTREON_RUNDIR="/var/run/centreon"
 
	CENTREON_GENDIR="/var/cache/centreon"
 
	CENTSTORAGE_RRD="${CENTREON_GENDIR}/rrd"
 
	CENTSTORAGE_LIB="${CENTREON_RRD}"
 
	CENTPLUGINS_TMP="${CENTREON_GENDIR}/tmp"
 
	CENTPLUGINSTRAPS_BINDIR="/usr/sbin"
 

	
 
	INSTALL_DIR_NAGIOS="/usr/share/nagios"
 
	NAGIOS_ETC="/etc/nagios"
 
	NAGIOS_VAR="/var/nagios"
 
	NAGIOS_BIN="/usr/sbin"
 
	NAGIOS_BINARY="${NAGIOS_BIN}/nagios"
 
	NAGIOSTATS_BINARY="${NAGIOS_BINARY}tats"
 
	NAGIOS_PLUGINS="/usr/lib/nagios/plugins"
 
	NAGIOS_PLUGIN=${NAGIOS_PLUGINS}
 
	NAGIOS_IMG="${INSTALL_DIR_NAGIOS}/htdocs/images"
 
	NAGIOS_INIT_SCRIPT="/etc/init.d/nagios"
 
	NAGIOS_USER="nagios"
 
	NAGIOS_GROUP="nagios"
 

	
 
	NDOMOD_BINARY="/usr/bin/ndomod-3x.o"
 
	BIN_RRDTOOL="/usr/bin/rrdtool"
 
	BIN_MAIL="/bin/mail"
 
	BIN_SSH="/usr/bin/ssh"
 
	BIN_SCP="/usr/bin/scp"
 
	MAILER="/bin/mail"
 
}
 

	
 
pkg_setup() {
 
	require_php_sapi_from apache2 cli
 
	require_gd
 

	
 
	setup_vars
 
}
 

	
 
varsubst() {
 
	local path=$1
 

	
 
	for var in "$@"; do
 
		sed -i -e "s:@${var}@:$(eval echo \$${var}):g" "${D}${path}"
 
	done
 
}
 

	
 
install_centreon() {
 
	cd "${S}"
 

	
 
	# copy www and doc files
 
	insinto "${OREON_PATH}"
 
	doins -r www
 
	dosym /usr/share/nagios/htdocs/docs "${OREON_PATH}"/doc
 

	
 
	# sanitize file modes
 
	find "${D}${OREON_PATH}" -type d -exec chmod 755 {} \;
 
	find "${D}${OREON_PATH}" -type f -exec chmod 644 {} \;
 

	
 
	# keep important directories
 
	keepdir "${OREON_PATH}"/www/modules
 
	keepdir /var/log/centreon
 
	keepdir /var/cache/centreon/rrd
 
	keepdir /var/cache/centreon/smarty/{cache,config,compile}
 
	keepdir /var/cache/centreon/generate/{nagiosCFG,osm}
 
	keepdir /var/cache/centreon/tmp
 
	keepdir /var/cache/centreon/upload/nagiosCFG
 
	dosym /var/cache/centreon/generate /var/cache/centreon/filesGeneration
 

	
 
	# prepare SQL files
 
	varsubst "${OREON_PATH}"/www/install/insertBaseConf.sql \
 
		NAGIOS_{USER,GROUP,ETC,BIN,VAR,PLUGIN,PLUGINS,IMG,BINARY,INIT_SCRIPT} \
 
		INSTALL_DIR_NAGIOS INSTALL_DIR_{OREON,CENTREON} \
 
		BIN_RRDTOOL BIN_MAIL MAILER NDOMOD_BINARY NAGIOSTATS_BINARY
 

	
 
	varsubst "${OREON_PATH}"/www/install/createTablesCentstorage.sql \
 
		NAGIOS_VAR CENTSTORAGE_RRD
 

	
 
	# fix paths in php files
 
	varsubst "${OREON_PATH}"/www/include/configuration/configCGI/formCGI.php \
 
		NAGIOS_ETC INSTALL_DIR_NAGIOS
 

	
 
	varsubst "${OREON_PATH}"/www/include/options/oreon/upGrade/preUpdate.php \
 
		OREON_PATH
 
        for i in $(find www/ -type f); do
 
                varsubst "${OREON_PATH}"/${i} CENTREON_{ETC,VARLIB,GENDIR,LOG} \
 
			MAILER CENTPLUGINSTRAPS_BINDIR
 
        done
 

	
 
	# fix preinstalled smarty
 
	sed -i "s:\.\./GPL_LIB/Smarty/libs/:Smarty/:" \
 
		"${D}${OREON_PATH}/www/header.php"
 
	sed -i "s:\(\(../\)\+\|$centreon_path/\)GPL_LIB/SmartyCache:/var/cache/centreon/smarty:" \
 
                  "${D}${OREON_PATH}/www/include/common/common-Func.php"
 
	sed -i "s:$centreon_path . 'GPL_LIB/Smarty/libs/':'Smarty/':" \
 
		"${D}${OREON_PATH}/www/include/monitoring/external_cmd/popup/popup.php"
 

	
 

	
 
	# install apache config
 
	insinto "${APACHE_MODULES_CONFDIR}"
 
	doins "${FILESDIR}"/99_centreon.conf
 

	
 
	# install global installation config
 
	insinto "${OREON_PATH}"/www/install
 
	newins "${FILESDIR}"/initial-installconf.php install.conf.php
 

	
 
	# set permissions
 
	fowners -R apache:apache \
 
		/var/cache/centreon \
 
		"${OREON_PATH}"/www
 

	
 
	fowners -R nagios:apache \
 
		/var/log/centreon
 
}
 

	
 
install_plugins() {
 
	cd "${S}"
 

	
 
	# install plugin configuration
 
	insinto /etc/centreon
 
	doins ./plugins/src/centreon.conf
 
	rm -f ./plugins/src/centreon.conf
 
	dosym "${NAGIOS_PLUGINS}/centreon.conf" /etc/centreon/centreon.conf
 

	
 
	varsubst /etc/centreon/centreon.conf \
 
		INSTALL_DIR_NAGIOS INSTALL_DIR_OREON \
 
		NAGIOS_ETC NAGIOS_PLUGINS
 

	
 
	fowners -R apache:apache \
 
		/etc/centreon
 

	
 
	# install nagios plugins
 
	exeinto "${NAGIOS_PLUGINS}"
 

	
 
	for plugin in ./plugins/src/*; do
 
		if [[ ! -d "${plugin}" ]]; then
 
			doexe "${plugin}"
 
			varsubst "${NAGIOS_PLUGINS}/$(basename "${plugin}")" \
 
				NAGIOS_PLUGINS NAGIOS_VAR CENTREON_ETC \
 
				CENTPLUGINS_TMP
 
		fi
 
	done
 
}
 

	
 
install_traps() {
 
	cd "${S}"
 

	
 
	# install snmp traps plugins
 
	dodir "${NAGIOS_PLUGINS}"/traps
 
	dodir /etc/snmp/centreon
 
	dosym /etc/snmp/centreon /etc/snmp/centreon_traps
 

	
 
	# install snmp configs
 
	insinto /etc/snmp/centreon
 
	doins plugins/src/traps/conf/snmptt.ini
 
	fowners -R apache:nagios /etc/snmp/centreon
 

	
 
	insinto /etc/snmp/
 
	doins plugins/src/traps/conf/snmp.conf
 
	doins plugins/src/traps/conf/snmptrapd.conf
 
}
 

	
 
install_daemons() {
 
	cd "${S}"
 

	
 
	# install daemon
 
	insinto /usr
 
	dosbin bin/*
 
	for i in $(find bin/ -type f); do
 
	        varsubst /usr/sbin/$(basename "${i}") \
 
			CENTREON_{LOG,PATH,RUNDIR,ETC,VARLIB,DIR} \
 
			NAGIOS_{USER,GROUP} BIN_{SSH,SCP} CENTPLUGINS_TMP \
 
			CENTSTORAGE_LIB
 
        done
 
	# install daemon library files
 
	insinto /usr/share/centreon/lib
 
	doins lib/*
 

	
 
	# install init script
 
	newinitd "${FILESDIR}"/centreon.initd centreon
 

	
 
	# keep important directories
 
	keepdir /etc/centreon
 
	keepdir /var/run/centreon
 
	keepdir /var/log/centreon
 
	keepdir /var/lib/centreon
 
	keepdir /var/lib/centreon/database
 

	
 
	# set permissions
 
	fowners -R nagios:nagios \
 
		/var/run/centreon \
 
		/var/log/centreon \
 
		/var/lib/centreon/database
 
}
 

	
 
install_cron() {
 
	cd "${S}"
 

	
 
	insinto "${OREON_PATH}"
 
	doins -r cron
 

	
 
	fperms +x "${OREON_PATH}"/cron/*
 

	
 
	for i in $(find cron/ -type f); do
 
		varsubst "${OREON_PATH}"/${i} \
 
			CENTREON_{PATH,ETC,VARLIB,LOG,RUNDIR} \
 
			VARLIB_CENTREON
 
	done
 

	
 
	insinto /etc/cron.d
 
	newins "${FILESDIR}"/centreon-2.cron centreon
 
}
 

	
 
src_install() {
 
	install_centreon
 
	install_plugins
 
	install_traps
 
	install_daemons
 
	install_cron
 
}
 

	
 
pkg_config() {
 
	setup_vars
 

	
 
	einfo "Setting permissions on ${ROOT}${NAGIOS_ETC}"
 
	chown nagios:apache "${ROOT}${NAGIOS_ETC}"
 
	chmod 0775 "${ROOT}${NAGIOS_ETC}"
 

	
 
	einfo "Setting permissions on ${ROOT}${NAGIOS_PLUGINS}"
 
	chown nagios:apache "${ROOT}${NAGIOS_PLUGINS}"
 
	chmod 0775 "${ROOT}${NAGIOS_PLUGINS}"
 

	
 
	einfo "Setting permissions on ${ROOT}${NAGIOS_PLUGINS}/contrib"
 
	chown nagios:apache "${ROOT}${NAGIOS_PLUGINS}"/contrib
 
	chmod 0775 "${ROOT}${NAGIOS_PLUGINS}"/contrib
 

	
 
	einfo "Adding user apache to group nagios"
 
	usermod -a -G nagios apache
 

	
 
	SUDOERS="${ROOT}etc/sudoers"
 

	
 
	if ! grep -q CENTREON "${SUDOERS}"; then
 
		einfo "Adding sudo configuration"
 
		echo >> "${SUDOERS}"
 
		echo "# centreon configuration" >> "${SUDOERS}"
 
		echo "User_Alias  CENTREON=apache" >> "${SUDOERS}"
 
		echo "CENTREON    ALL = NOPASSWD: /etc/init.d/nagios restart" >> "${SUDOERS}"
 
		echo "CENTREON    ALL = NOPASSWD: /etc/init.d/nagios reload"  >> "${SUDOERS}"
 
		echo "CENTREON    ALL = NOPASSWD: /etc/init.d/snmptrapd restart" >> "${SUDOERS}"
 
	fi
 
}
net-analyzer/centreon/files/99_centreon.conf
Show inline comments
 
new file 100644
 
<IfDefine CENTREON>
 
	AddType application/x-java-jnlp-file .jnlp
 
	Alias /centreon/ /usr/share/centreon/www/
 
	<Directory /usr/share/centreon/www/>
 
		Options None
 
		AllowOverride AuthConfig Options
 
		Order allow,deny
 
		Allow from all
 
	</Directory>
 
</IfDefine>
net-analyzer/centreon/files/centreon-2.cron
Show inline comments
 
new file 100644
 
OREON_DIR=/usr/share/centreon
 
LOG_DIR=/var/log/centreon
 

	
 
*/2 * * * *    nagios /usr/bin/php -q ${OREON_DIR}/cron/centAcl.php 2>&1 >> ${LOG_DIR}/centAcl.log
 
0 1 1-31 * * nagios /usr/bin/perl ${OREON_DIR}/cron/archiveDayLog 2>&1 >> ${LOG_DIR}/archiveDayLog.log
 
* * * * *    nagios /usr/sbin/logAnalyser 2>&1 >> ${LOG_DIR}/logAnalyser.log
 
*/5 * * * *    nagios /usr/sbin/nagiosPerfTrace 2>&1 >> ${LOG_DIR}/nagiosPerfTrace.log
 
0 2 * * *    nagios ${OREON_DIR}/cron/centreonPurge.sh 2>&1 >> ${LOG_DIR}/centreonPurge.log
net-analyzer/centreon/files/centreon.initd
Show inline comments
 
new file 100644
 
#!/sbin/runscript
 
# Copyright 1999-2006 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/net-analyzer/centreon/files/ods.initd,v 1.1 2008/03/28 18:38:07 hollow Exp $
 

	
 
depend() {
 
	need mysql
 
}
 

	
 
start() {
 
	ebegin "Starting CentCore"
 
	start-stop-daemon --start --pidfile /var/run/centreon/centcore.pid \
 
		--user nagios --chuid nagios \
 
		--group nagios \
 
		--startas /usr/sbin/centcore -- \
 
		>> /var/log/centreon/centcore.log 2>&1
 
	eend
 
        ebegin "Starting CentStorage Collector"
 
        start-stop-daemon --start --pidfile /var/run/centreon/centstorage.pid \
 
                --user nagios --chuid nagios \
 
                --group nagios \
 
		--startas /usr/sbin/centstorage -- \
 
		>> /var/log/centreon/centstorage.log 2>&1
 
        eend
 
}
 

	
 
stop() {
 
	ebegin "Stopping CentStorage Collector"
 
	start-stop-daemon  --stop --pidfile /var/run/centreon/centstorage.pid
 
	eend
 
        ebegin "Stopping CentCore"
 
        start-stop-daemon  --stop --pidfile /var/run/centreon/centcore.pid
 
        eend
 
}
net-analyzer/centreon/files/initial-installconf.php
Show inline comments
 
new file 100644
 
<?php
 
/* 
 
 * Centreon is developped with GPL Licence 2.0 : 
 
 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt 
 
 * Developped by : Julien Mathis - Romain Le Merlus  
 
 *  
 
 * The Software is provided to you AS IS and WITH ALL FAULTS. 
 
 * Centreon makes no representation and gives no warranty whatsoever, 
 
 * whether express or implied, and without limitation, with regard to the quality, 
 
 * any particular or intended purpose of the Software found on the Centreon web site. 
 
 * In no event will Centreon be liable for any direct, indirect, punitive, special, 
 
 * incidental or consequential damages however they may arise and even if Centreon has 
 
 * been previously advised of the possibility of such damages. 
 
 *  
 
 * For information : contact@centreon.com 
 
 */
 
 
$conf_centreon['centreon_dir'] = "/usr/share/centreon/";
 
$conf_centreon['centreon_etc'] = "/etc/centreon/";
 
$conf_centreon['centreon_dir_www'] = "/usr/share/centreon/www/";
 
$conf_centreon['centreon_dir_rrd'] = "/usr/share/centreon/rrd/";
 
$conf_centreon['nagios'] = "/usr/share/nagios/";
 
$conf_centreon['nagios_conf'] = "/etc/nagios/";
 
$conf_centreon['nagios_plugins'] = "/usr/lib/nagios/plugins/";
 
$conf_centreon['nagios_binary'] = "/usr/sbin/nagios";
 
$conf_centreon['nagiostats_binary'] = "/usr/sbin/nagiostats";
 
$conf_centreon['nagios_init_script'] = "/etc/init.d/nagios";
 
$conf_centreon['rrdtool_dir'] = "/usr/bin/rrdtool";
 
$conf_centreon['apache_user'] = "apache";
 
$conf_centreon['apache_group'] = "apache";
 
$conf_centreon['nagios_user'] = "nagios";
 
$conf_centreon['nagios_group'] = "nagios";
 
$conf_centreon['mail'] = "/usr/bin/mail";
 
$conf_centreon['pear_dir'] = "/usr/share/php";
 
 
$conf_centreon['log_file'] = "/var/nagios/nagios.log";
 
$conf_centreon['cfg_file'] = "/etc/nagios/objects/commands.cfg";
 
$conf_centreon['cfg_file'] = "/etc/nagios/objects/contacts.cfg";
 
$conf_centreon['cfg_file'] = "/etc/nagios/objects/timeperiods.cfg";
 
$conf_centreon['cfg_file'] = "/etc/nagios/objects/templates.cfg";
 
$conf_centreon['cfg_file'] = "/etc/nagios/objects/localhost.cfg";
 
$conf_centreon['object_cache_file'] = "/var/nagios/objects.cache";
 
$conf_centreon['precached_object_file'] = "/var/nagios/objects.precache";
 
$conf_centreon['resource_file'] = "/etc/nagios/resource.cfg";
 
$conf_centreon['status_file'] = "/var/nagios/status.dat";
 
$conf_centreon['command_file'] = "/var/nagios/rw/nagios.cmd";
 
$conf_centreon['lock_file'] = "/var/nagios/nagios.lock";
 
$conf_centreon['temp_file'] = "/var/nagios/nagios.tmp";
 
$conf_centreon['max_check_result_file_age'] = "3600";
 
$conf_centreon['state_retention_file'] = "/var/nagios/retention.dat";
 
$conf_centreon['p1_file'] = "/usr/sbin/p1.pl";
 
$conf_centreon['debug_file'] = "/var/nagios/nagios.debug";
 
$conf_centreon['max_debug_file_size'] = "1000000";
 
$conf_centreon['temp_path'] = "/tmp";
 
$conf_centreon['log_archive_path'] = "/var/nagios/archives";
 
$conf_centreon['check_result_path'] = "/var/nagios/spool/checkresults";
 
$conf_centreon['physical_html_path'] = "/usr/share/nagios/htdocs";
 
?>
net-im/ejabberd/Manifest
Show inline comments
 
new file 100644
 
AUX ejabberd-2.1.x-remote-roster.patch 12478 RMD160 af67ef86dd5cb51e040bae985437fcd87db65df9 SHA1 f6d7f9398e098ef445bf980406c62a019d501d87 SHA256 7305d005385188d5a883b9259e05a00ca4a5e2a00e1cff420bb6d1bb31549b71
 
AUX ejabberd-3.confd 161 RMD160 3b2c2b2a871c42c75e854a3c592c0d399a5dd387 SHA1 01e72bda178e7bf26a66321c4330bbcc1607e540 SHA256 0296d3d281a321cd7380772c1d89a94e4a86f85b7f43bf9dc1af74935c2e6386
 
AUX ejabberd-3.initd 1018 RMD160 1d52bc9c664a6477d10b1396aba4a2c626da910a SHA1 fd0bb049df3d8a04410b3ccf59b9d78b40ee9d49 SHA256 1c07fa02152b42bee44a8d1cd3f031596aeee37276ec4a36d765e3c54aa23075
 
DIST ejabberd-2.1.9.tar.gz 1872544 RMD160 6a6431a54999f5ca40273fef289ae7fd9b289476 SHA1 7faff4252eb2a10c046f1e6a2fcb11fd4f500ea8 SHA256 f97f2daad497d9d9979455b67ce31e2ddbd3a3cd638a97b2e1d76a6ac8758781
 
DIST ejabberd-mod_statsdx-1080.patch.gz 14024 RMD160 eb40aa4c3b7b4529a317c8b521a883d156f90ce9 SHA1 ba669e917393b4400878613464ff83a84ff414da SHA256 0f3a3a991c14d797e795ef4fffcf19aa9a54608f5053b759187ec7d3696b9edb
 
EBUILD ejabberd-2.1.9-r1.ebuild 8284 RMD160 401bd4b44a78c4c74f050cf343d1a935a8a06203 SHA1 3d3e7a39a04fbd3b8ecbac0c922677a7a8349dc7 SHA256 30d36c6d46301b6c8bad96687d90aad76a5eb01713c590eee74da0f4c8a7ad89
net-im/ejabberd/ejabberd-2.1.9-r1.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2012 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/net-im/ejabberd/ejabberd-2.1.9.ebuild,v 1.4 2012/03/06 11:40:51 radhermit Exp $
 

	
 
EAPI=4
 

	
 
inherit eutils multilib pam ssl-cert
 

	
 
DESCRIPTION="The Erlang Jabber Daemon"
 
HOMEPAGE="http://www.ejabberd.im/"
 
SRC_URI="http://www.process-one.net/downloads/${PN}/${PV}/${P}.tar.gz
 
	mod_statsdx? ( mirror://gentoo/ejabberd-mod_statsdx-1080.patch.gz )"
 

	
 
LICENSE="GPL-2"
 
SLOT="0"
 
KEYWORDS="amd64 ~arm ~ia64 ~ppc ~sparc x86"
 
EJABBERD_MODULES="mod_irc mod_muc mod_proxy65 mod_pubsub mod_statsdx"
 
IUSE="captcha debug ldap odbc pam remoteroster +web zlib ${EJABBERD_MODULES}"
 

	
 
DEPEND=">=net-im/jabber-base-0.01
 
	>=dev-libs/expat-1.95
 
	>=dev-lang/erlang-12.2.5[ssl]
 
	odbc? ( dev-db/unixODBC )
 
	ldap? ( =net-nds/openldap-2* )
 
	>=dev-libs/openssl-0.9.8e
 
	captcha? ( media-gfx/imagemagick[truetype,png] )
 
	zlib? ( sys-libs/zlib )"
 
#>=sys-apps/shadow-4.1.4.2-r3 - fixes bug in su that made ejabberdctl unworkable.
 
RDEPEND="${DEPEND}
 
	>=sys-apps/shadow-4.1.4.2-r3
 
	pam? ( virtual/pam )"
 

	
 
S=${WORKDIR}/${P}/src
 

	
 
# paths in net-im/jabber-base
 
JABBER_ETC="${EPREFIX}/etc/jabber"
 
#JABBER_RUN="/var/run/jabber"
 
JABBER_SPOOL="${EPREFIX}/var/spool/jabber"
 
JABBER_LOG="${EPREFIX}/var/log/jabber"
 
JABBER_DOC="${EPREFIX}/usr/share/doc/${PF}"
 

	
 
src_prepare() {
 
	if use mod_statsdx; then
 
		ewarn "mod_statsdx is not a part of upstream tarball but is a third-party module"
 
		ewarn "taken from here: http://www.ejabberd.im/mod_stats2file"
 
		EPATCH_OPTS="-p2" epatch "${WORKDIR}/ejabberd-mod_statsdx-1080.patch"
 
	fi
 

	
 
	if use remoteroster; then
 
		ewarn "Remote roster has not yet been accepted for consideration or"
 
		ewarn "approved in any official manner by the XMPP Standards Foundation,"
 
		ewarn "and is not yet an XMPP Extension Protocol (XEP)."
 
		EPATCH_OPTS="-d ${WORKDIR}/${P}" epatch "${FILESDIR}/ejabberd-2.1.x-remote-roster.patch"
 
	fi
 

	
 
	# don't install release notes (we'll do this manually)
 
	sed '/install .* [.][.]\/doc\/[*][.]txt $(DOCDIR)/d' -i Makefile.in || die
 
	# Set correct paths
 
	sed -e "/^EJABBERDDIR[[:space:]]*=/{s:ejabberd:${PF}:}" \
 
		-e "/^ETCDIR[[:space:]]*=/{s:@sysconfdir@/ejabberd:${JABBER_ETC}:}" \
 
		-e "/^LOGDIR[[:space:]]*=/{s:@localstatedir@/log/ejabberd:${JABBER_LOG}:}" \
 
		-e "/^SPOOLDIR[[:space:]]*=/{s:@localstatedir@/lib/ejabberd:${JABBER_SPOOL}:}" \
 
			-i Makefile.in || die
 
	sed -e "/EJABBERDDIR=/{s:ejabberd:${PF}:}" \
 
		-e "s|\(ETCDIR=\)@SYSCONFDIR@.*|\1${JABBER_ETC}|" \
 
		-e "s|\(LOGS_DIR=\)@LOCALSTATEDIR@.*|\1${JABBER_LOG}|" \
 
		-e "s|\(SPOOLDIR=\)@LOCALSTATEDIR@.*|\1${JABBER_SPOOL}|" \
 
			-i ejabberdctl.template || die
 

	
 
	# Set shell, so it'll work even in case jabber user have no shell
 
	# This is gentoo specific I guess since other distributions may have
 
	# ejabberd user with reall shell, while we share this user among different
 
	# jabberd implementations.
 
	sed '/^HOME/aSHELL=/bin/sh' -i ejabberdctl.template || die
 
	sed '/^export HOME/aexport SHELL' -i ejabberdctl.template || die
 

	
 
	#sed -e "s:/share/doc/ejabberd/:${JABBER_DOC}:" -i web/ejabberd_web_admin.erl
 

	
 
	# fix up the ssl cert paths in ejabberd.cfg to use our cert
 
	sed -e "s:/path/to/ssl.pem:/etc/ssl/ejabberd/server.pem:g" \
 
		-i ejabberd.cfg.example || die "Failed sed ejabberd.cfg.example"
 

	
 
	# correct path to captcha script in default ejabberd.cfg
 
	sed -e 's|\({captcha_cmd,[[:space:]]*"\).\+"}|\1/usr/'$(get_libdir)'/erlang/lib/'${P}'/priv/bin/captcha.sh"}|' \
 
			-i ejabberd.cfg.example || die "Failed sed ejabberd.cfg.example"
 

	
 
	# disable mod_irc in ejabberd.cfg
 
	if ! use mod_irc; then
 
		sed -i -e "s/{mod_irc,/%{mod_irc,/" \
 
			-i ejabberd.cfg.example || die "Failed to disable mod_irc"
 
	fi
 

	
 
}
 

	
 
src_configure() {
 
	econf \
 
		--docdir="${EPREFIX}/usr/share/doc/${PF}/html" \
 
		--libdir="${EPREFIX}/usr/$(get_libdir)/erlang/lib/" \
 
		$(use_enable mod_irc) \
 
		$(use_enable ldap eldap) \
 
		$(use_enable mod_muc) \
 
		$(use_enable mod_proxy65) \
 
		$(use_enable mod_pubsub) \
 
		$(use_enable web) \
 
		$(use_enable odbc) \
 
		$(use_enable zlib ejabberd_zlib) \
 
		$(use_enable pam) \
 
		--enable-user=jabber
 
}
 

	
 
src_compile() {
 
	emake $(use debug && echo debug=true ejabberd_debug=true)
 
}
 

	
 
src_install() {
 
	emake DESTDIR="${ED}" install
 

	
 
	# Pam helper module permissions
 
	# http://www.process-one.net/docs/ejabberd/guide_en.html
 
	if use pam; then
 
		pamd_mimic_system xmpp auth account || die "Cannot create pam.d file"
 
		fowners root:jabber "/usr/$(get_libdir)/erlang/lib/${PF}/priv/bin/epam"
 
		fperms 4750 "/usr/$(get_libdir)/erlang/lib/${PF}/priv/bin/epam"
 
	fi
 

	
 
	cd "${WORKDIR}/${P}/doc"
 
	dodoc "release_notes_${PV%%_rc*}.txt"
 

	
 
	#dodir /var/lib/ejabberd
 
	newinitd "${FILESDIR}/${PN}-3.initd" ${PN}
 
	newconfd "${FILESDIR}/${PN}-3.confd" ${PN}
 
}
 

	
 
pkg_postinst() {
 
	elog "For configuration instructions, please see"
 
	elog "/usr/share/doc/${PF}/html/guide.html, or the online version at"
 
	elog "http://www.process-one.net/en/ejabberd/docs/guide_en/"
 

	
 
	if ! use web ; then
 
		ewarn
 
		ewarn "The web USE flag is off, this has disabled the web admin interface."
 
		ewarn
 
	fi
 

	
 
	elog
 
	elog '===================================================================='
 
	elog 'Quick Start Guide:'
 
	elog '1) Add output of `hostname -f` to /etc/jabber/ejabberd.cfg line 91'
 
	elog '   {hosts, ["localhost", "thehost"]}.'
 
	elog '2) Add an admin user to /etc/jabber/ejabberd.cfg line 360'
 
	elog '   {acl, admin, {user, "theadmin", "thehost"}}.'
 
	elog '3) Start the server'
 
	elog '   # /etc/init.d/ejabberd start'
 
	elog '4) Register the admin user'
 
	elog '   # /usr/sbin/ejabberdctl register theadmin thehost thepassword'
 
	elog '5) Log in with your favourite jabber client or using the web admin'
 

	
 
	# Upgrading from ejabberd-2.0.x:
 
	if grep -E '^[^#]*EJABBERD_NODE=' "${EROOT}/etc/conf.d/ejabberd" >/dev/null 2>&1; then
 
		source "${EROOT}/etc/conf.d/ejabberd"
 
		ewarn
 
		ewarn "!!! WARNING !!!  WARNING !!!  WARNING !!!  WARNING !!!"
 
		ewarn "Starting with 2.1.x some paths and configuration files were"
 
		ewarn "changed to reflect upstream intentions better. Notable changes are:"
 
		ewarn
 
		ewarn "1. Everything (even init scripts) is now handled with ejabberdctl script."
 
		ewarn "Thus main configuration file became /etc/jabberd/ejabberdctl.cfg"
 
		ewarn "You must update ERLANG_NODE there with the value of EJABBERD_NODE"
 
		ewarn "from /etc/conf.d/ejebberd or ejabberd will refuse to start."
 
		ewarn
 
		ewarn "2. SSL certificate is now generated with ssl-cert eclass and resides"
 
		ewarn "at standard location: /etc/ssl/ejabberd/server.pem."
 
		ewarn
 
		ewarn "3. Cookie now resides at /var/spool/jabber/.erlang.cookie"
 
		ewarn
 
		ewarn "4. /var/log/jabber/sasl.log is now /var/log/jabber/erlang.log"
 
		ewarn
 
		ewarn "5. Crash dumps (if any) will be located at /var/log/jabber"
 

	
 
		local i ctlcfg new_ctlcfg
 
		i=0
 
		ctlcfg=${EROOT}/etc/jabber/ejabberdctl.cfg
 
		while :; do
 
			new_ctlcfg=$(printf "${EROOT}/etc/jabber/._cfg%04d_ejabberdctl.cfg" ${i})
 
			[[ ! -e ${new_ctlcfg} ]] && break
 
			ctlcfg=${new_ctlcfg}
 
			((i++))
 
		done
 

	
 
		ewarn
 
		ewarn "Updating ${ctlcfg} (debug: ${new_ctlcfg})"
 
		sed -e "/#ERLANG_NODE=/aERLANG_NODE=$EJABBERD_NODE" "${ctlcfg}" > "${new_ctlcfg}" || die
 

	
 
		if [[ -e ${EROOT}/var/run/jabber/.erlang.cookie ]]; then
 
			ewarn "Moving .erlang.cookie..."
 
			if [[ -e ${EROOT}/var/spool/jabber/.erlang.cookie ]]; then
 
				mv -v "${EROOT}"/var/spool/jabber/.erlang.cookie{,bak}
 
			fi
 
			mv -v "${EROOT}"/var/{run/jabber,spool/jabber}/.erlang.cookie
 
		fi
 
		ewarn
 
		ewarn "We'll try to handle upgrade automagically but, please, do your"
 
		ewarn "own checks and do not forget to run 'etc-update'!"
 
		ewarn "PLEASE! Run 'etc-update' now!"
 
	fi
 

	
 
	SSL_ORGANIZATION="${SSL_ORGANIZATION:-Ejabberd XMPP Server}"
 
	install_cert /etc/ssl/ejabberd/server
 
	# Fix ssl cert permissions bug #369809
 
	chown root:jabber "${EROOT}/etc/ssl/ejabberd/server.pem"
 
	chmod 0440 "${EROOT}/etc/ssl/ejabberd/server.pem"
 
	if [[ -e ${EROOT}/etc/jabber/ssl.pem ]]; then
 
		ewarn
 
		ewarn "The location of SSL certificates has changed. If you are"
 
		ewarn "upgrading from ${CATEGORY}/${PN}-2.0.5* or earlier  you might"
 
		ewarn "want to move your old certificates from /etc/jabber into"
 
		ewarn "/etc/ssl/ejabberd/, update config files and"
 
		ewarn "rm /etc/jabber/ssl.pem to avoid this message."
 
		ewarn
 
	fi
 
}
net-im/ejabberd/ejabberd-2.1.9-r1.ebuild.patch
Show inline comments
 
new file 100644
 
--- /usr/portage/net-im/ejabberd/ejabberd-2.1.9.ebuild	2012-03-06 13:01:20.000000000 +0100
 
+++ ejabberd-2.1.9-r1.ebuild	2012-03-28 17:16:06.000000000 +0200
 
@@ -15,7 +15,7 @@
 
 SLOT="0"
 
 KEYWORDS="amd64 ~arm ~ia64 ~ppc ~sparc x86"
 
 EJABBERD_MODULES="mod_irc mod_muc mod_proxy65 mod_pubsub mod_statsdx"
 
-IUSE="captcha debug ldap odbc pam +web zlib ${EJABBERD_MODULES}"
 
+IUSE="captcha debug ldap odbc pam remoteroster +web zlib ${EJABBERD_MODULES}"
 
 
 
 DEPEND=">=net-im/jabber-base-0.01
 
 	>=dev-libs/expat-1.95
 
@@ -46,6 +46,13 @@
 
 		EPATCH_OPTS="-p2" epatch "${WORKDIR}/ejabberd-mod_statsdx-1080.patch"
 
 	fi
 
 
 
+	if use remoteroster; then
 
+		ewarn "Remote roster has not yet been accepted for consideration or"
 
+		ewarn "approved in any official manner by the XMPP Standards Foundation,"
 
+		ewarn "and is not yet an XMPP Extension Protocol (XEP)."
 
+		EPATCH_OPTS="-d ${WORKDIR}/${P}" epatch "${FILESDIR}/ejabberd-2.1.x-remote-roster.patch"
 
+	fi
 
+
 
 	# don't install release notes (we'll do this manually)
 
 	sed '/install .* [.][.]\/doc\/[*][.]txt $(DOCDIR)/d' -i Makefile.in || die
 
 	# Set correct paths
net-im/ejabberd/files/ejabberd-2.1.x-remote-roster.patch
Show inline comments
 
new file 100644
 
diff --git a/doc/guide.tex b/doc/guide.tex
 
index 044fab8..25598ca 100644
 
--- a/doc/guide.tex
 
+++ b/doc/guide.tex
 
@@ -3864,6 +3864,15 @@ It also supports Roster Versioning (\xepref{0237}).
 
 Options:
 
 \begin{description}
 
 \iqdiscitem{Roster Management (\ns{jabber:iq:roster})}
 
+  \titem{\{managers, [Domainname]\}} \ind{options!managers}
 
+  List of components (or servers) that can manage users rosters using
 
+  \footahref{http://jkaluza.fedorapeople.org/remote-roster.html}{XEP-xxxx: Remote Roster Management}.
 
+  The protocol sections implemented are:
 
+  \term{2.3. Component requests user's roster},
 
+  \term{2.4. Client sends roster update},
 
+  \term{2.5. Component sends roster update}.
 
+  A component only gets or can modify roster items that have the same domain as the component.
 
+  Default value is: \term{[]}.
 
   \titem{\{versioning, false|true\}} \ind{options!versioning}Enables
 
   Roster Versioning.
 
   This option is disabled by default.
 
@@ -3877,12 +3886,13 @@ Options:
 
   Important: if you use \modsharedroster, you must disable this option.
 
 \end{description}
 
 
 
-This example configuration enables Roster Versioning with storage of current id:
 
+This example configuration enables Roster Versioning with storage of current id.
 
+The ICQ and MSN transports can get ICQ and MSN contacts, add them, or remove them for any local account:
 
 \begin{verbatim}
 
 {modules,
 
  [
 
   ...
 
-  {mod_roster, [{versioning, true}, {store_current_id, true}]},
 
+  {mod_roster, [{versioning, true}, {store_current_id, true}, {["icq.example.org", "msn.example.org"]} ]},
 
   ...
 
  ]}.
 
 \end{verbatim}
 
diff --git a/src/mod_roster.erl b/src/mod_roster.erl
 
index 90c4601..f837ba4 100644
 
--- a/src/mod_roster.erl
 
+++ b/src/mod_roster.erl
 
@@ -123,6 +123,8 @@ stop(Host) ->
 
 			  ?MODULE, webadmin_user, 50),
 
     gen_iq_handler:remove_iq_handler(ejabberd_sm, Host, ?NS_ROSTER).
 
 
 
+process_iq(From, To, IQ) when ((From#jid.luser == "") andalso (From#jid.lresource == "")) ->
 
+    process_iq_manager(From, To, IQ);
 
 
 
 process_iq(From, To, IQ) ->
 
     #iq{sub_el = SubEl} = IQ,
 
@@ -281,12 +283,13 @@ item_to_xml(Item) ->
 
     {xmlelement, "item", Attrs4, SubEls}.
 
 
 
 
 
-process_iq_set(From, To, #iq{sub_el = SubEl} = IQ) ->
 
+process_iq_set(From, To, #iq{sub_el = SubEl, id = Id} = IQ) ->
 
     {xmlelement, _Name, _Attrs, Els} = SubEl,
 
-    lists:foreach(fun(El) -> process_item_set(From, To, El) end, Els),
 
+    Managed = is_managed_from_id(Id),
 
+    lists:foreach(fun(El) -> process_item_set(From, To, El, Managed) end, Els),
 
     IQ#iq{type = result, sub_el = []}.
 
 
 
-process_item_set(From, To, {xmlelement, _Name, Attrs, Els}) ->
 
+process_item_set(From, To, {xmlelement, _Name, Attrs, Els}, Managed) ->
 
     JID1 = jlib:string_to_jid(xml:get_attr_s("jid", Attrs)),
 
     #jid{user = User, luser = LUser, lserver = LServer} = From,
 
     case JID1 of
 
@@ -308,7 +311,8 @@ process_item_set(From, To, {xmlelement, _Name, Attrs, Els}) ->
 
 						groups = [],
 
 						xs = []}
 
 			       end,
 
-			Item1 = process_item_attrs(Item, Attrs),
 
+%			Item11 = process_item_attrs(Item, Attrs),
 
+			Item1 = process_item_attrs_managed(Item, Attrs, Managed),
 
 			Item2 = process_item_els(Item1, Els),
 
 			case Item2#roster.subscription of
 
 			    remove ->
 
@@ -316,6 +320,7 @@ process_item_set(From, To, {xmlelement, _Name, Attrs, Els}) ->
 
 			    _ ->
 
 				mnesia:write(Item2)
 
 			end,
 
+			send_itemset_to_managers(From, Item2, Managed),
 
 			%% If the item exist in shared roster, take the
 
 			%% subscription information from there:
 
 			Item3 = ejabberd_hooks:run_fold(roster_process_item,
 
@@ -341,7 +346,7 @@ process_item_set(From, To, {xmlelement, _Name, Attrs, Els}) ->
 
 		    ok
 
 	    end
 
     end;
 
-process_item_set(_From, _To, _) ->
 
+process_item_set(_From, _To, _, _Managed) ->
 
     ok.
 
 
 
 process_item_attrs(Item, [{Attr, Val} | Attrs]) ->
 
@@ -1098,3 +1103,89 @@ us_to_list({User, Server}) ->
 
 webadmin_user(Acc, _User, _Server, Lang) ->
 
     Acc ++ [?XE("h3", [?ACT("roster/", "Roster")])].
 
 
 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
+
 
+%% Implement http://jkaluza.fedorapeople.org/remote-roster.html#sect-id188012
 
+
 
+%% Handle 2.3 and 2.5
 
+
 
+process_iq_manager(From, To, IQ) ->
 
+    %% Check what access is allowed for From to To
 
+    MatchDomain = From#jid.lserver,
 
+    case is_domain_managed(MatchDomain, To#jid.lserver) of
 
+	true ->
 
+	    process_iq_manager2(MatchDomain, To, IQ);
 
+	false ->
 
+	    #iq{sub_el = SubEl} = IQ,
 
+	    IQ#iq{type = error, sub_el = [SubEl, ?ERR_BAD_REQUEST]}
 
+    end.
 
+
 
+process_iq_manager2(MatchDomain, To, IQ) ->
 
+    %% If IQ is SET, filter the input IQ
 
+    IQFiltered = maybe_filter_request(MatchDomain, IQ),
 
+    %% Call the standard function with reversed JIDs
 
+    IdInitial = IQFiltered#iq.id,
 
+    ResIQ = process_iq(To, To, IQFiltered#iq{id = "roster-remotely-managed"}),
 
+    %% Filter the output IQ
 
+    filter_stanza(MatchDomain, ResIQ#iq{id = IdInitial}).
 
+
 
+is_domain_managed(ContactHost, UserHost) ->
 
+    Managers = gen_mod:get_module_opt(UserHost, ?MODULE, managers, []),
 
+    lists:member(ContactHost, Managers).
 
+
 
+maybe_filter_request(MatchDomain, IQ) when IQ#iq.type == set ->
 
+    filter_stanza(MatchDomain, IQ);
 
+maybe_filter_request(_MatchDomain, IQ) ->
 
+    IQ.
 
+
 
+filter_stanza(_MatchDomain, #iq{sub_el = []} = IQ) ->
 
+    IQ;
 
+filter_stanza(MatchDomain, #iq{sub_el = [SubEl | _]} = IQ) ->
 
+    #iq{sub_el = SubElFiltered} = IQRes =
 
+	filter_stanza(MatchDomain, IQ#iq{sub_el = SubEl}),
 
+    IQRes#iq{sub_el = [SubElFiltered]};
 
+filter_stanza(MatchDomain, #iq{sub_el = SubEl} = IQ) ->
 
+    {xmlelement, Type, Attrs, Items} = SubEl,
 
+    ItemsFiltered = lists:filter(
 
+		      fun(Item) ->
 
+			      is_item_of_domain(MatchDomain, Item) end, Items),
 
+    SubElFiltered = {xmlelement, Type, Attrs, ItemsFiltered},
 
+    IQ#iq{sub_el = SubElFiltered}.
 
+
 
+is_item_of_domain(MatchDomain, {xmlelement, _, Attrs, _}) ->
 
+    lists:any(fun(Attr) -> is_jid_of_domain(MatchDomain, Attr) end, Attrs);
 
+is_item_of_domain(_MatchDomain, {xmlcdata, _}) ->
 
+    false.
 
+
 
+is_jid_of_domain(MatchDomain, {"jid", JIDString}) ->
 
+    case jlib:string_to_jid(JIDString) of
 
+	JID when JID#jid.lserver == MatchDomain -> true;
 
+	_ -> false
 
+    end;
 
+is_jid_of_domain(_, _) ->
 
+    false.
 
+
 
+%% Handle 2.5
 
+process_item_attrs_managed(Item, Attrs, true) ->
 
+    process_item_attrs_ws(Item, Attrs);
 
+process_item_attrs_managed(Item, _Attrs, false) ->
 
+    process_item_attrs(Item, _Attrs).
 
+
 
+%% Handle 2.4
 
+send_itemset_to_managers(_From, _Item, true) ->
 
+    ok;
 
+send_itemset_to_managers(From, Item, false) ->
 
+    {_, UserHost} = Item#roster.us,
 
+    {_ContactUser, ContactHost, _ContactResource} = Item#roster.jid,
 
+
 
+    %% Check if the component is an allowed manager
 
+    IsManager = is_domain_managed(ContactHost, UserHost),
 
+    case IsManager of
 
+	true -> push_item("", ContactHost, "", From, Item);
 
+	false -> ok
 
+    end.
 
+
 
+is_managed_from_id("roster-remotely-managed") ->
 
+    true;
 
+is_managed_from_id(_Id) ->
 
+    false.
 
diff --git a/src/mod_roster_odbc.erl b/src/mod_roster_odbc.erl
 
index 4159614..1f5e83f 100644
 
--- a/src/mod_roster_odbc.erl
 
+++ b/src/mod_roster_odbc.erl
 
@@ -113,6 +113,8 @@ stop(Host) ->
 
 			  ?MODULE, webadmin_user, 50),
 
     gen_iq_handler:remove_iq_handler(ejabberd_sm, Host, ?NS_ROSTER).
 
 
 
+process_iq(From, To, IQ) when ((From#jid.luser == "") andalso (From#jid.lresource == "")) ->
 
+    process_iq_manager(From, To, IQ);
 
 
 
 process_iq(From, To, IQ) ->
 
     #iq{sub_el = SubEl} = IQ,
 
@@ -306,12 +308,13 @@ item_to_xml(Item) ->
 
     {xmlelement, "item", Attrs, SubEls}.
 
 
 
 
 
-process_iq_set(From, To, #iq{sub_el = SubEl} = IQ) ->
 
+process_iq_set(From, To, #iq{sub_el = SubEl, id = Id} = IQ) ->
 
     {xmlelement, _Name, _Attrs, Els} = SubEl,
 
-    lists:foreach(fun(El) -> process_item_set(From, To, El) end, Els),
 
+    Managed = is_managed_from_id(Id),
 
+    lists:foreach(fun(El) -> process_item_set(From, To, El, Managed) end, Els),
 
     IQ#iq{type = result, sub_el = []}.
 
 
 
-process_item_set(From, To, {xmlelement, _Name, Attrs, Els}) ->
 
+process_item_set(From, To, {xmlelement, _Name, Attrs, Els}, Managed) ->
 
     JID1 = jlib:string_to_jid(xml:get_attr_s("jid", Attrs)),
 
     #jid{user = User, luser = LUser, lserver = LServer} = From,
 
     case JID1 of
 
@@ -347,7 +350,8 @@ process_item_set(From, To, {xmlelement, _Name, Attrs, Els}) ->
 
 						 name = ""}
 
 				       end
 
 			       end,
 
-			Item1 = process_item_attrs(Item, Attrs),
 
+%			Item11 = process_item_attrs(Item, Attrs),
 
+			Item1 = process_item_attrs_managed(Item, Attrs, Managed),
 
 			Item2 = process_item_els(Item1, Els),
 
 			case Item2#roster.subscription of
 
 			    remove ->
 
@@ -357,6 +361,7 @@ process_item_set(From, To, {xmlelement, _Name, Attrs, Els}) ->
 
 				ItemGroups = groups_to_string(Item2),
 
 				odbc_queries:update_roster(LServer, Username, SJID, ItemVals, ItemGroups)
 
 			end,
 
+			send_itemset_to_managers(From, Item2, Managed),
 
 			%% If the item exist in shared roster, take the
 
 			%% subscription information from there:
 
 			Item3 = ejabberd_hooks:run_fold(roster_process_item,
 
@@ -382,7 +387,7 @@ process_item_set(From, To, {xmlelement, _Name, Attrs, Els}) ->
 
 		    ok
 
 	    end
 
     end;
 
-process_item_set(_From, _To, _) ->
 
+process_item_set(_From, _To, _, _Managed) ->
 
     ok.
 
 
 
 process_item_attrs(Item, [{Attr, Val} | Attrs]) ->
 
@@ -1197,3 +1202,90 @@ us_to_list({User, Server}) ->
 
 
 
 webadmin_user(Acc, _User, _Server, Lang) ->
 
     Acc ++ [?XE("h3", [?ACT("roster/", "Roster")])].
 
+
 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
+
 
+%% Implement http://jkaluza.fedorapeople.org/remote-roster.html#sect-id188012
 
+
 
+%% Handle 2.3 and 2.5
 
+
 
+process_iq_manager(From, To, IQ) ->
 
+    %% Check what access is allowed for From to To
 
+    MatchDomain = From#jid.lserver,
 
+    case is_domain_managed(MatchDomain, To#jid.lserver) of
 
+	true ->
 
+	    process_iq_manager2(MatchDomain, To, IQ);
 
+	false ->
 
+	    #iq{sub_el = SubEl} = IQ,
 
+	    IQ#iq{type = error, sub_el = [SubEl, ?ERR_BAD_REQUEST]}
 
+    end.
 
+
 
+process_iq_manager2(MatchDomain, To, IQ) ->
 
+    %% If IQ is SET, filter the input IQ
 
+    IQFiltered = maybe_filter_request(MatchDomain, IQ),
 
+    %% Call the standard function with reversed JIDs
 
+    IdInitial = IQFiltered#iq.id,
 
+    ResIQ = process_iq(To, To, IQFiltered#iq{id = "roster-remotely-managed"}),
 
+    %% Filter the output IQ
 
+    filter_stanza(MatchDomain, ResIQ#iq{id = IdInitial}).
 
+
 
+is_domain_managed(ContactHost, UserHost) ->
 
+    Managers = gen_mod:get_module_opt(UserHost, ?MODULE, managers, []),
 
+    lists:member(ContactHost, Managers).
 
+
 
+maybe_filter_request(MatchDomain, IQ) when IQ#iq.type == set ->
 
+    filter_stanza(MatchDomain, IQ);
 
+maybe_filter_request(_MatchDomain, IQ) ->
 
+    IQ.
 
+
 
+filter_stanza(_MatchDomain, #iq{sub_el = []} = IQ) ->
 
+    IQ;
 
+filter_stanza(MatchDomain, #iq{sub_el = [SubEl | _]} = IQ) ->
 
+    #iq{sub_el = SubElFiltered} = IQRes =
 
+	filter_stanza(MatchDomain, IQ#iq{sub_el = SubEl}),
 
+    IQRes#iq{sub_el = [SubElFiltered]};
 
+filter_stanza(MatchDomain, #iq{sub_el = SubEl} = IQ) ->
 
+    {xmlelement, Type, Attrs, Items} = SubEl,
 
+    ItemsFiltered = lists:filter(
 
+		      fun(Item) ->
 
+			      is_item_of_domain(MatchDomain, Item) end, Items),
 
+    SubElFiltered = {xmlelement, Type, Attrs, ItemsFiltered},
 
+    IQ#iq{sub_el = SubElFiltered}.
 
+
 
+is_item_of_domain(MatchDomain, {xmlelement, _, Attrs, _}) ->
 
+    lists:any(fun(Attr) -> is_jid_of_domain(MatchDomain, Attr) end, Attrs);
 
+is_item_of_domain(_MatchDomain, {xmlcdata, _}) ->
 
+    false.
 
+
 
+is_jid_of_domain(MatchDomain, {"jid", JIDString}) ->
 
+    case jlib:string_to_jid(JIDString) of
 
+	JID when JID#jid.lserver == MatchDomain -> true;
 
+	_ -> false
 
+    end;
 
+is_jid_of_domain(_, _) ->
 
+    false.
 
+
 
+%% Handle 2.5
 
+process_item_attrs_managed(Item, Attrs, true) ->
 
+    process_item_attrs_ws(Item, Attrs);
 
+process_item_attrs_managed(Item, _Attrs, false) ->
 
+    process_item_attrs(Item, _Attrs).
 
+
 
+%% Handle 2.4
 
+send_itemset_to_managers(_From, _Item, true) ->
 
+    ok;
 
+send_itemset_to_managers(From, Item, false) ->
 
+    {_, UserHost} = Item#roster.us,
 
+    {_ContactUser, ContactHost, _ContactResource} = Item#roster.jid,
 
+
 
+    %% Check if the component is an allowed manager
 
+    IsManager = is_domain_managed(ContactHost, UserHost),
 
+    case IsManager of
 
+	true -> push_item("", ContactHost, "", From, Item);
 
+	false -> ok
 
+    end.
 
+
 
+is_managed_from_id("roster-remotely-managed") ->
 
+    true;
 
+is_managed_from_id(_Id) ->
 
+    false.
net-im/ejabberd/files/ejabberd-3.confd
Show inline comments
 
new file 100644
 
# Please configure everything at /etc/jabber/ejabberdctl.cfg
 
# Put here only command line arguments for ejabberdctl (if any are required)
 

	
 
#EJABBERDCTL_OPTS=""
 

	
net-im/ejabberd/files/ejabberd-3.initd
Show inline comments
 
new file 100644
 
#!/sbin/runscript
 
# Copyright 1999-2010 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/net-im/ejabberd/files/ejabberd-3.initd,v 1.3 2010/06/02 07:12:27 pva Exp $
 

	
 
depend() {
 
	use dns
 
	need net
 
	provide jabber-server
 
}
 

	
 
start() {
 
	if ejabberdctl status >/dev/null 2>&1; then
 
		ewarn "ejabberd is already started (manually?)."
 
		return 0
 
	fi
 
	ebegin "Starting ejabberd"
 
	/usr/sbin/ejabberdctl ${EJABBERDCTL_OPT} start
 
	eend $?
 
}
 

	
 
stop() {
 
	ejabberdctl status >/dev/null 2>&1
 
	if test $? = 3; then
 
		ewarn "ejabberd is already stopped (manually?)."
 
		return 0
 
	fi
 
	ebegin "Stopping ejabberd"
 
	if /usr/sbin/ejabberdctl stop >/dev/null 2>&1; then
 
		cnt=0
 
		sleep 1
 
		while ejabberdctl status >/dev/null 2>&1 || test $? = 1; do
 
			echo -n .
 
			cnt=`expr $cnt + 1`
 
			if [ $cnt -ge 60 ] ; then
 
				eend 1
 
				break
 
			fi
 
			sleep 1
 
		done
 
		eend 0
 
	else
 
		eend 1
 
		einfo "Please, run '/usr/sbin/ejabberdctl stop' to see what's going on."
 
	fi
 
	eend 0
 
}
net-im/skype/Manifest
Show inline comments
 
new file 100644
 
DIST skype-4.1.0.20.tar.bz2 30500691 SHA256 c31e47cd5dcb14eead897f36bab80ee8d49c0e6dbf469c93bf745d5addec0ce2 SHA512 81cc8426d609735b6b86307300089365f43b5b492f6f99e7794b83a2b028f1e4031c0f045ec7a6e5ea4c34d618a6e1af56b21227f4b4049fb3e3430444228818 WHIRLPOOL 894fa9c8b97b02e88c23aa7a63edf49d3059e22c273220cd8cfc26cbe5e28e14a786b311b664208de1144153a7037f122d41830aeb1300a9646869a17387b406
 
EBUILD skype-4.1.0.20.ebuild 3058 SHA256 697f2fcedb9f4863c3395b2b1b33b9580888d215b7eb71b3ee312a42e59f9a49 SHA512 1e164c44852e76e17e7d6c58b54ce7983d821b17a3fb3b80e8d397530b0569e62f1b96d78ff5274f80e72b74587091be7ef2bcd42ae3ef295b7eda44e18d0f33 WHIRLPOOL 76c292a18358318b7ffd254ef05899a8ef3e08ea4a0a3df60e7de9915eabf16b49babc9080d858aa57bf4549f8b210acdcb2d28bbb42fb0b8cc5d2419e1f43da
net-im/skype/skype-4.1.0.20.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2012 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/net-im/skype/skype-4.0.0.8-r1.ebuild,v 1.2 2012/08/11 18:34:28 swift Exp $
 

	
 
EAPI=4
 
inherit eutils gnome2-utils pax-utils
 

	
 
DESCRIPTION="An P2P Internet Telephony (VoiceIP) client"
 
HOMEPAGE="http://www.skype.com/"
 
SKYPE_URI="http://download.${PN}.com/linux"
 
SRC_URI="!qt-static? ( ${SKYPE_URI}/${P}.tar.bz2 )"
 
#	qt-static? ( ${SKYPE_URI}/${PN}_static-${PV}.tar.bz2 )"
 

	
 
LICENSE="${PN}-4.0.0.7-copyright ${PN}-4.0.0.7-third-party_attributions.txt"
 
SLOT="0"
 
KEYWORDS="~amd64 ~x86"
 
IUSE="pax_kernel selinux qt-static"
 

	
 
QA_PREBUILT=opt/bin/${PN}
 
RESTRICT="mirror strip" #299368
 

	
 
EMUL_X86_VER=20120520
 

	
 
RDEPEND="virtual/ttf-fonts
 
	amd64? (
 
		>=app-emulation/emul-linux-x86-baselibs-${EMUL_X86_VER}
 
		>=app-emulation/emul-linux-x86-soundlibs-${EMUL_X86_VER}
 
		>=app-emulation/emul-linux-x86-xlibs-${EMUL_X86_VER}
 
		!qt-static? ( >=app-emulation/emul-linux-x86-qtlibs-${EMUL_X86_VER} )
 
	)
 
	x86? (
 
		media-libs/alsa-lib
 
		x11-libs/libX11
 
		x11-libs/libXext
 
		x11-libs/libXScrnSaver
 
		x11-libs/libXv
 
		qt-static? (
 
			>=dev-libs/glib-2.28
 
			media-libs/fontconfig
 
			>=media-libs/freetype-2
 
			>=media-libs/tiff-3.9.5-r3:3
 
			sys-libs/zlib
 
			x11-libs/libICE
 
			x11-libs/libSM
 
			x11-libs/libXrender
 
		)
 
		!qt-static? (
 
			x11-libs/qt-core:4
 
			x11-libs/qt-dbus:4
 
			x11-libs/qt-gui:4[accessibility,dbus]
 
		)
 
	)
 
	selinux? ( sec-policy/selinux-skype )"
 

	
 
src_unpack() {
 
	unpack ${A}
 
	[[ -d ${S} ]] || { mv skype* "${S}" || die; }
 
}
 

	
 
src_compile() {
 
	type -P lrelease >/dev/null && lrelease lang/*.ts
 
	rm -f lang/*.ts
 
}
 

	
 
src_install() {
 
	into /opt
 
	dobin ${PN}
 
	fowners root:audio /opt/bin/${PN}
 

	
 
	insinto /etc/dbus-1/system.d
 
	doins ${PN}.conf
 

	
 
	insinto /usr/share/skype
 
	doins -r avatars lang sounds
 

	
 
	dodoc README
 

	
 
	local res
 
	for res in 16 32 48; do
 
		newicon -s ${res} icons/SkypeBlue_${res}x${res}.png ${PN}.png
 
	done
 

	
 
	make_desktop_entry ${PN} 'Skype VoIP' ${PN} 'Network;InstantMessaging;Telephony'
 

	
 
	if use pax_kernel; then
 
		pax-mark Cm "${ED}"/opt/bin/${PN} || die
 
		eqawarn "You have set USE=pax_kernel meaning that you intend to run"
 
		eqawarn "${PN} under a PaX enabled kernel.  To do so, we must modify"
 
		eqawarn "the ${PN} binary itself and this *may* lead to breakage!  If"
 
		eqawarn "you suspect that ${PN} is being broken by this modification,"
 
		eqawarn "please open a bug."
 
	fi
 

	
 
	echo PRELINK_PATH_MASK=/opt/bin/${PN} > ${T}/99${PN}
 
	doenvd "${T}"/99${PN} #430142
 
}
 

	
 
pkg_preinst() {
 
	gnome2_icon_savelist
 

	
 
	rm -rf "${EROOT}"/usr/share/${PN} #421165
 
}
 

	
 
pkg_postinst() {
 
	gnome2_icon_cache_update
 

	
 
	# http://bugs.gentoo.org/360815
 
	elog "For webcam support, see \"LD_PRELOAD\" section of \"README.lib\" document provided by"
 
	elog "media-libs/libv4l package and \"README\" document of this package."
 
	if use amd64; then
 
		elog "You can install app-emulation/emul-linux-x86-medialibs package for the 32bit"
 
		elog "libraries from the media-libs/libv4l package."
 
	fi
 
}
 

	
 
pkg_postrm() {
 
	gnome2_icon_cache_update
 
}
net-im/spectrum/Manifest
Show inline comments
 
new file 100644
 
AUX spectrum-1.4.7_remoteroster.patch 1408 SHA256 de84c845a4f8a4a9c30d2c18d15a55623ddbfde02fbd963b91d09d8b1fc8b652 SHA512 b74edc60ec62b9feca7799db749b42bed7fa728e7cef1a82c052820a71f663496973fe3188593f4f2f5331ea5cecc9559fe99a6f3103dc8913c7e6700b579885 WHIRLPOOL ee71083330cccf019ababa44a26108b468329d9a3286cc28d4c6f9d43a45dc39125ffc3086f9d67737be7a2e068e380c13d18258def2d4770b98d4414360d2b5
 
AUX spectrum.cfg 4770 SHA256 c29eb5bed5776bdce171eb303e0e6815b60dc3c61f2a311492204337145cbe85 SHA512 ab1d9e976ef5b0c29518e5ce3e92c94e970058d41854b8db98f93d410e21fb6e0d8ea179f6f43ee9da1228d4c7ebb33af1f0213a518ba0aefb62f369f9030866 WHIRLPOOL 78d3abf5e7cd494660f5153e60d5dc14d5e616db2573c30398b8d767d9c05f34c881004bb5761189ff76ac13834d02dbcb14b0335747dcce22d6691aa80fa333
 
AUX spectrum.confd 157 SHA256 5f1c7a7c614ffb15ba64caadd560088cf3a8032f3973489a31f65c89ce286c85 SHA512 511213a0bb4d91b22d3c9ac8e90978248076a9697cbeaa5bfd53eaac3ce1850f78739768dc88f2443519b64dc61f278be32ed408f0c7b2f64f29c01f94fc5fee WHIRLPOOL 5fee736176e83e264af7229836bec5a09bcd598cfaaf7dea9f8362e3c864d6a241128d96c9030d3640247692b250b39d7d1f906bad7caa2c08961d10468a445d
 
AUX spectrum.initd 592 SHA256 80c37c82dcd1b867400de4e23433ec0b822418d2858b441dd464259e650bf27b SHA512 ed6a168a42842969804938ef7fd1a4d0d6c8a98feb5727ac41b21c22a874a4ebb1410b760e396c2f9296207fca7499a07ee85b994d2f9222cca0c834c559ff17 WHIRLPOOL 3c36392881880806af8f47983cc742d735aa2597b7444c26021d5d9038b1c3b9c658df474e23722727116ff8b2d7052209d68fa14241d5e0f0d42da032f7fa37
 
AUX spectrum.symlink.cfg 4855 SHA256 3dfb88f041ae3a835241ea4c128ce6958a95f944534349aebdb56d9d74efe1f3 SHA512 bdd31ae8093a10e6d4f8851451230cccf47132e3374b46863e03b793d4495901f366858dd8b2ea02143f932cf5abc63f4719be3b8ef0325fea6db11e54d458ad WHIRLPOOL 363dd7aaa569b061b2b0e09a1cfa9280f87d1c26c503a14b921e7a36ec956b7d517a668fe64be170f2fc73b1658439cca449e4f043b3c94714055d9c8c27fdf7
 
DIST spectrum-1.4.8.tar.gz 239725 SHA256 40045139cdeb7fbc085fe80bb8124b518bb57520fbb644bc50b132de8cebc3cc SHA512 05f5932ba4e5d42107b2bf1396d5c410a792d9692841d82676eaf136b0a051b9efa3232d6a82d3ad1fe4b4d77b8e6e34e005145456957633bc88a9b5d3095094 WHIRLPOOL 822fd187282bb663073aa80b2358b4314193db43387f493fee5161c7992e9dda9accbf3609c3f5ee4cc3aea63b733284a5b2c77a0187332432a608c9f21d39a2
 
DIST spectrum-2.0.0-beta2.tar.gz 273480 SHA256 51e0db3000de13258b4a2562a40511d40eb6e39aa45728f4ae5efcd520b2c4c7 SHA512 95caa53f8f13c822a6e07635fb9b7e277a4fa97505d5020649ef77221033b3aa23bb6fc0cd3756ed440ef19d5a141f24122d975b063320cecce3a3a02a4a7b64 WHIRLPOOL 9a215317dd7d50482248cb0aa06f0a18052bc3270ee0a1632736b23cfa86a7c640ed991150959648d93c77007b13a3a5af8a057fb192ccbaf328ef61bd42d6f2
 
EBUILD spectrum-1.4.8.ebuild 3661 SHA256 0360735cc0357d3f3371038a50777a76a860e2fb571fe97e7d7516597143b4e5 SHA512 e3c828025a1383971df1429f7bb5b8741dac7be4384ed01d827b72113ba0a254d89ed3db32fe5ef17743a03553d9ce41ef4e7bea6bc526151293c6ee86950503 WHIRLPOOL 9b9a6b8061b6bc0ed05aa04461e8f59cfa0a863affcf053f1bcc72d7fb06fdfae7fe3be2b2267b7a122e82fc0356dc263a905986540525c70b3dca68c9074ec7
 
EBUILD spectrum-2.0.0_beta2.ebuild 1929 SHA256 0e549c329a6b38ffdef6a91cce7700a244a2fcc3154c9d157a99c473281491d3 SHA512 387c80c94aeee1105970962082587cf864c799fcd1066023a13a26a0c9928d798e6f9af3f5ba33e0425d248d00ee179b48a2d69cb12b8af85467fe5ed66eb6eb WHIRLPOOL 7644d9b491aab00ec28ef246ad4abc12c097655a1cd931c22b71018ca0a6a45fb1f35348a738c4430684a6e33d89f14a27e94b5c288fb78b0d4da625ea8515b3
 
EBUILD spectrum-9999.ebuild 1929 SHA256 0e549c329a6b38ffdef6a91cce7700a244a2fcc3154c9d157a99c473281491d3 SHA512 387c80c94aeee1105970962082587cf864c799fcd1066023a13a26a0c9928d798e6f9af3f5ba33e0425d248d00ee179b48a2d69cb12b8af85467fe5ed66eb6eb WHIRLPOOL 7644d9b491aab00ec28ef246ad4abc12c097655a1cd931c22b71018ca0a6a45fb1f35348a738c4430684a6e33d89f14a27e94b5c288fb78b0d4da625ea8515b3
net-im/spectrum/files/spectrum-1.4.7_remoteroster.patch
Show inline comments
 
new file 100644
 
diff --git a/src/spectrumbuddy.cpp b/src/spectrumbuddy.cpp
 
index 74d5194..910266c 100644
 
--- a/src/spectrumbuddy.cpp
 
+++ b/src/spectrumbuddy.cpp
 
@@ -36,10 +36,10 @@ SpectrumBuddy::~SpectrumBuddy() {
 
 
 
 std::string SpectrumBuddy::getAlias() {
 
 	std::string alias;
 
-	if (purple_buddy_get_server_alias(m_buddy))
 
-		alias = (std::string) purple_buddy_get_server_alias(m_buddy);
 
-	else
 
+	if (purple_buddy_get_alias(m_buddy))
 
 		alias = (std::string) purple_buddy_get_alias(m_buddy);
 
+	else
 
+		alias = (std::string) purple_buddy_get_server_alias(m_buddy);
 
 	return alias;
 
 }
 
 
 
diff --git a/src/sql.cpp b/src/sql.cpp
 
index 8fbc64a..70bf5db 100644
 
--- a/src/sql.cpp
 
+++ b/src/sql.cpp
 
@@ -905,7 +905,8 @@ GHashTable *SQLClass::getBuddies(long userId, PurpleAccount *account) {
 
 				// create buddy
 
 				buddy = purple_buddy_new(account, buddyUins[k].c_str(), buddyNicknames[k].c_str());
 
 				purple_blist_add_buddy(buddy, contact, g, NULL);
 
-				Log("ADDING BUDDY", buddyIds[k] << " " << buddyUins[k] << " subscription: " << subscription << " " << buddy);
 
+				purple_blist_server_alias_buddy(buddy, buddyNicknames[k].c_str());
 
+				Log("ADDING BUDDY", buddyIds[k] << " " << buddyUins[k] << " " << buddyNicknames[k] << " subscription: " << subscription << " " << buddy);
 
 
 
 				// add settings
 
 				GHashTable *settings = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, (GDestroyNotify) purple_value_destroy);
net-im/spectrum/files/spectrum.cfg
Show inline comments
 
new file 100644
 
[service]
 
# enable this spectrum instance
 
enable=1
 

	
 
# one of: aim, facebook, gg, icq, irc, msn, myspace, qq, simple, xmpp, yahoo
 
protocol=S2P
 

	
 
# component ip
 
server=127.0.0.1
 

	
 
# if use_proxy is 1, the http_proxy env var will be used as the proxy server
 
# for example export http_proxy="http://user:passwd@your.proxy.server:port/"
 
use_proxy=0
 

	
 
# component JID
 
jid=S2P.example.com
 

	
 
# component secret
 
password=secret
 

	
 
# component port
 
port=5347
 

	
 
config_interface = /var/run/spectrum/S2P.sock
 

	
 
# IP:port where filetransfer proxy binds to. This has to be public IP.
 
#filetransfer_bind_address=192.0.2.1:12345
 

	
 
# IP:port which will be sent in filetransfer request as stream host.
 
#filetransfer_public_address=192.0.2.1:12345
 

	
 
# admin JIDs - Jabber IDs of transport administrators who have access to admin adhoc commands
 
# separated by semicolons
 
#admins=admin@example.com;foo@bar.cz
 

	
 
# directory where downloaded files will be saved
 
filetransfer_cache=/var/lib/spectrum/S2P/filetransfer_cache
 

	
 
# URL used to acces filestransfer_cache directory from the web.
 
filetransfer_web=http://example.com/files/
 

	
 
# name of transport (this will appear in service discovery)
 
name=My S2P Transport
 

	
 
# default language
 
language=en
 

	
 
# transport features separated by semicolons
 
# combination of: avatars, chatstate, filetransfer
 
# if commented, all features will be used
 
# This variable is DEPRECATED and will be removed in future versions. Use [features] instead.
 
#transport_features = avatars;chatstate;filetransfer
 

	
 
# if vip_mode is 1, users are divided to 2 groups according to 'vip' database field
 
vip_mode=0
 

	
 
# if vip_mode is 1, you can set transport to be availabe only for VIP users by setting only_for_vip to 1.
 
only_for_vip=0
 

	
 
# if vip_mode is 1 and only_for_vip is 1, users can connect from these servers even they are not VIP.
 
# This feature is useful, if you want to enable transport only for users from your server, but also want
 
# to give access to VIP users from other servers (for example from GTalk)
 
# seperated by semicolons
 
#allowed_servers=localhost
 

	
 
# transport features separated by semicolons which will be used for VIP users.
 
# combination of: avatars, chatstate, filetransfer
 
# if commented, all features will be used
 
# This variable is DEPRECATED and will be removed in future versions.  Use [vip-features] instead.
 
#vip_features = avatars;chatstate;filetransfer
 

	
 
# pid file
 
pid_file=/var/run/spectrum/S2P.pid
 

	
 
# require_tls to connect legacy network
 
#require_tls=false
 

	
 
# Eventloop used by Spectrum. Allows to change default use of poll to epoll,
 
# which should be faster and handles more connections better.
 
# WARNING: some 3rd party libpurple protocol plugins are not prepared to be
 
# used with different eventloop, but protocols included in libpurple by default
 
# works OK.
 
#eventloop=glib
 

	
 
[registration]
 
# Set to 0 to disable transport registration to everyone except
 
# people from host from allowed_servers list.
 
#enable_public_registration=1
 

	
 
# You can override username registered by transport user. This is useful
 
# for example if you want to let users to register only their Facebook name
 
# and internally connect them to facebook_name@chat.facebook.com.
 
# $username variable is replaced by username which has been registered
 
# by particular user. 
 
#username_mask = $username@chat.facebook.com
 

	
 
# This option allows you to white-list newly created accounts according
 
# to regexp. for example allowed_usernames=*.\.gmail\.com$ will allow only
 
# GTalk users to register. If you use username_mask, then username_mask is
 
# applied before this option.
 
#allowed_usernames=regexp
 

	
 
# Label used to described username field in registration form
 
#username_label = Facebook username
 

	
 
# This variable overrides default instructions text in registration form.
 
#instructions = Type your Facebook name here:
 

	
 
# Transport features, all features are enabled by default.
 
[features]
 
#filetransfer=1
 
#avatars=1
 
#chatstates=1
 
#statistics=1
 

	
 
# Transport features for VIP users, all features are enabled by default.
 
[vip-features]
 
#filetransfer=1
 
#avatars=1
 
#chatstates=1
 

	
 
[logging]
 
# log file, needs to be unique for each spectrum instance
 
log_file=/var/log/spectrum/S2P.log
 

	
 
# log areas
 
# combination of: xml, purple
 
log_areas=xml;purple
 

	
 
[database]
 
# mysql or sqlite
 
type=sqlite
 

	
 
# hostname (not needed for sqlite)
 
#host=localhost
 

	
 
# username (not needed for sqlite)
 
#user=user
 

	
 
# password (not needed for sqlite)
 
#password=password
 
# sqlite: set path to database file here
 
# mysql: set to name of database
 
database=/var/lib/spectrum/S2P/database/S2P.sqlite
 
# table prefix for multiple transport instances sharing the same database
 
#prefix=S2P_
 

	
 
[purple]
 
# avatar, vcard, roster storage
 
# needs to be unique for each spectrum instance
 
userdir=/var/lib/spectrum/S2P/userdir
net-im/spectrum/files/spectrum.confd
Show inline comments
 
new file 100644
 
# /etc/conf.d/spectrum.S2P: config file for spectrum S2P transport
 

	
 
# Configfile
 
CONFFILE="/etc/spectrum/S2P.cfg"
 

	
 
# PID
 
PIDFILE="/var/run/spectrum/S2P.pid"
net-im/spectrum/files/spectrum.initd
Show inline comments
 
new file 100644
 
#!/sbin/runscript
 
# Copyright 1999-2010 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
depend() {
 
        need net
 
        use jabber-server
 
}
 

	
 
start() {
 
        ebegin "Starting SPECTRUMGEN2PROTOCOL XMPP/Spectrum Transport"
 
        start-stop-daemon --start --pidfile ${PIDFILE} \
 
                 --chuid jabber:jabber --exec /usr/bin/spectrum -- ${CONFFILE}
 
        eend $?
 
}
 

	
 
stop() {
 
        ebegin "Stopping SPECTRUMGEN2PROTOCOL XMPP/Spectrum Transport"
 
        start-stop-daemon --stop --quiet --pidfile ${PIDFILE}
 
        eend $?
 
}
net-im/spectrum/files/spectrum.symlink.cfg
Show inline comments
 
new file 100644
 
[service]
 
# enable this spectrum instance
 
enable=1
 

	
 
# one of: aim, facebook, gg, icq, irc, msn, myspace, qq, simple, xmpp, yahoo
 
protocol=$filename:protocol
 

	
 
# component ip
 
server=127.0.0.1
 

	
 
# if use_proxy is 1, the http_proxy env var will be used as the proxy server
 
# for example export http_proxy="http://user:passwd@your.proxy.server:port/"
 
use_proxy=0
 

	
 
# component JID
 
jid=$protocol.example.com
 

	
 
# component secret
 
password=secret
 

	
 
# component port
 
port=$filename:port
 

	
 
config_interface = /var/run/spectrum/$protocol.sock
 

	
 
# IP:port where filetransfer proxy binds to. This has to be public IP.
 
#filetransfer_bind_address=192.0.2.1:$port
 

	
 
# IP:port which will be sent in filetransfer request as stream host.
 
#filetransfer_public_address=192.0.2.1:$port
 

	
 
# admin JIDs - Jabber IDs of transport administrators who have access to admin adhoc commands
 
# separated by semicolons
 
#admins=admin@example.com;foo@bar.cz
 

	
 
# directory where downloaded files will be saved
 
filetransfer_cache=/var/lib/spectrum/$protocol/filetransfer_cache
 

	
 
# URL used to acces filestransfer_cache directory from the web.
 
filetransfer_web=http://example.com/files/
 

	
 
# name of transport (this will appear in service discovery)
 
name=My $protocol Transport
 

	
 
# default language
 
language=en
 

	
 
# transport features separated by semicolons
 
# combination of: avatars, chatstate, filetransfer
 
# if commented, all features will be used
 
# This variable is DEPRECATED and will be removed in future versions. Use [features] instead.
 
#transport_features = avatars;chatstate;filetransfer
 

	
 
# if vip_mode is 1, users are divided to 2 groups according to 'vip' database field
 
vip_mode=0
 

	
 
# if vip_mode is 1, you can set transport to be availabe only for VIP users by setting only_for_vip to 1.
 
only_for_vip=0
 

	
 
# if vip_mode is 1 and only_for_vip is 1, users can connect from these servers even they are not VIP.
 
# This feature is useful, if you want to enable transport only for users from your server, but also want
 
# to give access to VIP users from other servers (for example from GTalk)
 
# seperated by semicolons
 
#allowed_servers=localhost
 

	
 
# transport features separated by semicolons which will be used for VIP users.
 
# combination of: avatars, chatstate, filetransfer
 
# if commented, all features will be used
 
# This variable is DEPRECATED and will be removed in future versions.  Use [vip-features] instead.
 
#vip_features = avatars;chatstate;filetransfer
 

	
 
# pid file
 
pid_file=/var/run/spectrum/$protocol.pid
 

	
 
# require_tls to connect legacy network
 
#require_tls=false
 

	
 
# Eventloop used by Spectrum. Allows to change default use of poll to epoll,
 
# which should be faster and handles more connections better.
 
# WARNING: some 3rd party libpurple protocol plugins are not prepared to be
 
# used with different eventloop, but protocols included in libpurple by default
 
# works OK.
 
#eventloop=glib
 

	
 
[registration]
 
# Set to 0 to disable transport registration to everyone except
 
# people from host from allowed_servers list.
 
#enable_public_registration=1
 

	
 
# You can override username registered by transport user. This is useful
 
# for example if you want to let users to register only their Facebook name
 
# and internally connect them to facebook_name@chat.facebook.com.
 
# $username variable is replaced by username which has been registered
 
# by particular user. 
 
#username_mask = $username@chat.facebook.com
 

	
 
# This option allows you to white-list newly created accounts according
 
# to regexp. for example allowed_usernames=*.\.gmail\.com$ will allow only
 
# GTalk users to register. If you use username_mask, then username_mask is
 
# applied before this option.
 
#allowed_usernames=regexp
 

	
 
# Label used to described username field in registration form
 
#username_label = Facebook username
 

	
 
# This variable overrides default instructions text in registration form.
 
#instructions = Type your Facebook name here:
 

	
 
# Transport features, all features are enabled by default.
 
[features]
 
#filetransfer=1
 
#avatars=1
 
#chatstates=1
 
#statistics=1
 

	
 
# Transport features for VIP users, all features are enabled by default.
 
[vip-features]
 
#filetransfer=1
 
#avatars=1
 
#chatstates=1
 

	
 
[logging]
 
# log file, needs to be unique for each spectrum instance
 
log_file=/var/log/spectrum/$protocol.log
 

	
 
# log areas
 
# combination of: xml, purple
 
log_areas=xml;purple
 

	
 
[database]
 
# mysql or sqlite
 
type=sqlite
 

	
 
# hostname (not needed for sqlite)
 
#host=localhost
 

	
 
# username (not needed for sqlite)
 
#user=user
 

	
 
# password (not needed for sqlite)
 
#password=password
 
# sqlite: set path to database file here
 
# mysql: set to name of database
 
database=/var/lib/spectrum/$protocol/database/$protocol.sqlite
 
# table prefix for multiple transport instances sharing the same database
 
#prefix=$protocol_
 

	
 
[purple]
 
# avatar, vcard, roster storage
 
# needs to be unique for each spectrum instance
 
userdir=/var/lib/spectrum/$protocol/userdir
net-im/spectrum/spectrum-1.4.8.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2010 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
EAPI=2
 

	
 
inherit cmake-utils
 

	
 
DESCRIPTION="XMPP transport/gateway"
 
HOMEPAGE="http://spectrum.im"
 

	
 
SRC_URI="http://spectrum.im/attachments/download/43/spectrum-${PV}.tar.gz"
 

	
 
LICENSE="GPL-2"
 
SLOT="0"
 
KEYWORDS="~amd64 ~x86"
 

	
 
IUSE="mysql sqlite symlinks tools staticport"
 

	
 
RDEPEND="dev-libs/libev
 
		>=dev-libs/poco-1.3.3[mysql?,sqlite?]
 
		dev-python/xmpppy
 
		media-gfx/imagemagick[cxx]
 
		>=net-im/pidgin-2.6.0
 
		>=net-libs/gloox-1.0"
 
DEPEND="${RDEPEND}
 
		dev-util/cmake
 
		sys-devel/gettext"
 

	
 
PROTOCOL_LIST="aim facebook gg icq irc msn msn_pecan myspace qq simple sipe twitter xmpp yahoo"
 

	
 
pkg_setup() {
 
	if ! ( use sqlite || use mysql ); then
 
		ewarn "No database use flag set!"
 
		ewarn "You need to enable the mysql or sqlite use flag!"
 
		die
 
	fi
 
}
 

	
 
src_install () {
 
	cmake-utils_src_install
 

	
 
	# Install transports with seperate config files (default).
 
	# If USE="symlinks" is set, install one config file with symlinks to all transports.
 

	
 
	# Declare (start) port
 
	port=5347
 

	
 
	# prepare config for mysql or just copy
 
	cp "${FILESDIR}/spectrum.cfg" "${WORKDIR}/spectrum.cfg"
 

	
 
	if use mysql ; then
 
	sed -e 's,^\(type\)=sqlite$,\1=mysql,' \
 
		-e 's,^#\(host=localhost\)$,\1,' \
 
		-e 's,^#\(user=user\)$,\1,' \
 
		-e 's,^#\(password=password\)$,\1,' \
 
		-e 's,^\(database=.*\),#\1,' \
 
		-e 's,^#\(prefix=.*\),\1,' \
 
		-i "${WORKDIR}/spectrum.cfg" || die
 
	fi
 

	
 
	# install shared-config when using symlinks
 
	if use symlinks; then
 
		insinto /etc/spectrum
 
		newins "${WORKDIR}"/spectrum.cfg spectrum-shared-conf || die
 
	fi
 

	
 
	# install protocol-specific configs or symlinks
 
	insinto /etc/spectrum
 
	for protocol in ${PROTOCOL_LIST}; do
 
		if use symlinks; then
 
			dosym spectrum-shared-conf "/etc/spectrum/${protocol}:${port}.cfg" || die
 
			sed -e 's,PROTOCOL,'${protocol}:${port}',g' \
 
				"${FILESDIR}"/spectrum.confd > "${WORKDIR}"/spectrum.confd
 
		else
 
			sed -e 's,\$filename:protocol,'${protocol}',g' \
 
				-e 's,\$filename:port,'${port}',g' \
 
				"${WORKDIR}"/spectrum.cfg > "${WORKDIR}/${protocol}.cfg" || die
 
			sed -e 's,PROTOCOL,'${protocol}',g' \
 
				"${FILESDIR}"/spectrum.confd > "${WORKDIR}"/spectrum.confd
 
			doins "${WORKDIR}/${protocol}.cfg" || die
 
		fi
 

	
 
		# install prepared confd
 
		newconfd "${WORKDIR}"/spectrum.confd spectrum.${protocol} || die
 

	
 
		if ! use staticport; then
 
			port=$[${port}+1]
 
		fi
 
	done
 

	
 
	# Install init files
 
	newinitd "${FILESDIR}"/spectrum.initd spectrum || die
 
	for protocol in ${PROTOCOL_LIST}; do
 
		dosym spectrum /etc/init.d/spectrum."${protocol}"
 
	done
 

	
 
	# Directories
 
	dodir "/var/lib/spectrum" || die
 
	dodir "/var/log/spectrum" || die
 
	dodir "/var/run/spectrum" || die
 

	
 
	# Directories for each transport
 
	for protocol in ${PROTOCOL_LIST}; do
 
		dodir "/var/lib/spectrum/$protocol/database" || die
 
		dodir "/var/lib/spectrum/$protocol/userdir" || die
 
		dodir "/var/lib/spectrum/$protocol/filetransfer_cache" || die
 
	done
 

	
 
	# Install mysql schema
 
	if use mysql; then
 
		insinto "/usr/share/spectrum/schemas"
 
		doins schemas/* || die
 
	fi
 

	
 
	# Install misc tools
 
	if use tools; then
 
		insinto "/usr/share/spectrum/tools"
 
		doins tools/* || die
 
	fi
 
}
 

	
 
pkg_postinst() {
 
	# Create jabber-user
 
	enewgroup jabber
 
	enewuser jabber -1 -1 -1 jabber
 

	
 
	# Set correct rights
 
	chown root:jabber -R "/etc/spectrum" || die
 
	chown jabber:jabber -R "/var/lib/spectrum" || die
 
	chown jabber:jabber -R "/var/log/spectrum" || die
 
	chown jabber:jabber -R "/var/run/spectrum" || die
 
	chmod 750 "/etc/spectrum" || die
 
	chmod 750 "/var/lib/spectrum" || die
 
	chmod 750 "/var/log/spectrum" || die
 
	chmod 750 "/var/run/spectrum" || die
 
}
net-im/spectrum/spectrum-2.0.0_beta2.ebuild
Show inline comments
 
new file 100644
 

	
 
# Copyright 1999-2010 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
EAPI=2
 

	
 
[[ ${PV} = *9999* ]] && VCS_ECLASS="git-2" || VCS_ECLASS=""
 

	
 
inherit cmake-utils versionator ${VCS_ECLASS}
 

	
 
MY_PN="spectrum"
 
MY_PV=$(replace_version_separator '_' '-')
 
MY_P="${MY_PN}-${MY_PV}"
 
S="${WORKDIR}/${MY_P}"
 

	
 
DESCRIPTION="XMPP transport/gateway"
 
HOMEPAGE="http://spectrum.im"
 
if [[ ${PV} == *9999* ]] ; then
 
	EGIT_REPO_URI="https://github.com/hanzz/libtransport"
 
else
 
	SRC_URI="http://spectrum.im/attachments/download/59/${MY_P}.tar.gz"
 
fi
 

	
 
LICENSE=""
 
SLOT="2"
 
KEYWORDS="~amd64 ~x86"
 
IUSE="irc log4cxx mysql postgres purple skype sqlite"
 

	
 
# TODO: IRC (ebuild missing!); PostgresSQL (anyone?)
 

	
 
# Richard H. <chain@rpgfiction.net> (2012-10-17): 2.0_beta2 does only build with swift-2.0_beta1
 
[[ ${PV} = *9999* ]] && RDEPEND="net-im/swift" || RDEPEND="=net-im/swift-2.0_beta1"
 

	
 
RDEPEND="${RDEPEND}
 
		dev-libs/libev
 
		dev-libs/protobuf
 
		log4cxx? ( dev-libs/log4cxx )
 
		mysql? ( virtual/mysql )
 
		purple? ( net-im/pidgin )
 
		skype? (
 
					dev-libs/dbus-glib
 
					net-im/skype[-qt-static]
 
					x11-base/xorg-server
 
				)
 
		sqlite? ( dev-db/sqlite )
 
		"
 

	
 
DEPEND="${RDEPEND}
 
                dev-util/cmake"
 

	
 
pkg_setup() {
 
        if ! ( use sqlite || use mysql || use postgres ); then
 
                ewarn "No database use flag set!"
 
                ewarn "You need to enable the mysql, postgres, or sqlite use flag!"
 
                die
 
        fi
 
}
 

	
 
pkg_postinst() {
 
        # Create jabber-user
 
        enewgroup jabber
 
        enewuser jabber -1 -1 -1 jabber
 

	
 
        # Set correct rights
 
        chown jabber:jabber -R "/etc/spectrum2" || die
 
        chown jabber:jabber -R "/var/log/spectrum" || die
 
        chown jabber:jabber -R "/var/run/spectrum" || die
 
        chmod 750 "/etc/spectrum" || die
 
        chmod 750 "/var/log/spectrum" || die
 
        chmod 750 "/var/run/spectrum" || die
 
}
net-im/spectrum/spectrum-2.9999.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2012 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
EAPI="4"
 

	
 
[[ ${PV} = *9999* ]] && VCS_ECLASS="git-2" || VCS_ECLASS=""
 

	
 
inherit cmake-utils ${VCS_ECLASS}
 

	
 
DESCRIPTION="Spectrum is an XMPP transport/gateway"
 
HOMEPAGE="http://spectrum.im"
 

	
 
if [[ ${PV} == *9999* ]]; then
 
  EGIT_REPO_URI="git://github.com/hanzz/libtransport.git"
 
else
 
  MY_PV="${PV/_/-}"
 
  SRC_URI="http://spectrum.im/attachments/download/57/${PN}-${MY_PV}.tar.gz"
 
  S="${WORKDIR}/${PN}-${MY_PV}"
 
fi
 

	
 
LICENSE="GPL-2"
 
SLOT="0"
 
KEYWORDS=""
 

	
 
IUSE_PLUGINS="frotz irc purple skype smstools"
 
IUSE="debug doc libev log mysql postgres sqlite staticport symlinks test tools ${IUSE_PLUGINS}"
 

	
 
RDEPEND="net-im/jabber-base
 
	net-im/swiften
 
	dev-libs/popt
 
	dev-libs/openssl
 
	log? ( dev-libs/log4cxx )
 
	mysql? ( virtual/mysql )
 
	postgres? ( dev-libs/libpqxx )
 
	sqlite? ( dev-db/sqlite:3 )
 
	frotz? ( dev-libs/protobuf )
 
	irc? ( net-im/communi dev-libs/protobuf )
 
	purple? ( >=net-im/pidgin-2.6.0 dev-libs/protobuf )
 
	skype? ( dev-libs/dbus-glib x11-base/xorg-server[xvfb] dev-libs/protobuf )
 
	libev? ( dev-libs/libev dev-libs/protobuf )"
 

	
 
DEPEND="${RDEPEND}
 
	sys-devel/gettext
 
	dev-util/cmake
 
	doc? ( app-doc/doxygen )
 
	test? ( dev-util/cppunit )
 
	"
 

	
 
REQUIRED_USE="|| ( sqlite mysql postgres )"
 

	
 
PROTOCOL_LIST="aim facebook gg icq irc msn msn_pecan myspace qq simple sipe twitter xmpp yahoo"
 

	
 
pkg_setup() {
 
	CMAKE_IN_SOURCE_BUILD=1
 
	use debug && CMAKE_BUILD_TYPE=Debug
 
	MYCMAKEARGS="-DLIB_INSTALL_DIR=$(get_libdir)"
 
}
 

	
 
src_prepare() {
 
	use sqlite || { sed -i -e 's/find_package(sqlite3)/set(SQLITE3_FOUND FALSE)/' CMakeLists.txt || die; }
 
	use mysql || { sed -i -e 's/find_package(mysql)/set(MYSQL_FOUND FALSE)/' CMakeLists.txt || die; }
 
	use postgres || { sed -i -e 's/find_package(pqxx)/set(PQXX_FOUND FALSE)/' CMakeLists.txt || die; }
 
	use test || { sed -i -e 's/find_package(cppunit)/set(CPPUNIT_FOUND FALSE)/' CMakeLists.txt || die; }
 
	use doc || { sed -i -e 's/find_package(Doxygen)/set(DOXYGEN_FOUND FALSE)/' CMakeLists.txt || die; }
 
	use purple || { sed -i -e '/find_package(purple)/d' CMakeLists.txt || die; }
 
	use libev || { sed -i -e 's/find_package(event)/set(HAVE_EVENT FALSE)/' CMakeLists.txt || die; }
 
	use irc || { sed -i -e 's/find_package(Communi)/set(IRC_FOUND, FALSE)/' CMakeLists.txt || die; }
 
	use log || { sed -i -e 's/find_package(log4cxx)/set(LOG4CXX_FOUND, FALSE)/' CMakeLists.txt || die; }
 

	
 
	base_src_prepare
 
}
 

	
 
src_install() {
 
	cmake-utils_src_install
 

	
 
	newinitd "${FILESDIR}"/spectrum2.initd spectrum
 
	keepdir "${EPREFIX}"/var/lib/spectrum2
 
	keepdir "${EPREFIX}"/var/log/spectrum2
 
	keepdir "${EPREFIX}"/var/run/spectrum2
 
}
 

	
 
pkg_postinst() {
 
	# Set correct rights
 
	chown jabber:jabber -R "/etc/spectrum2"
 
	chown jabber:jabber "${EPREFIX}"/var/lib/spectrum2
 
	chown jabber:jabber "${EPREFIX}"/var/log/spectrum2
 
	chown jabber:jabber "${EPREFIX}"/var/run/spectrum2
 
}
net-im/spectrum/spectrum-9999.ebuild
Show inline comments
 
new file 120000
 
spectrum-2.0.0_beta2.ebuild
 
\ No newline at end of file
net-im/swift/Manifest
Show inline comments
 
new file 100644
 
DIST swift-1.0.tar.gz 7892404 SHA256 798237f3f9c58a8659eb78cb118c647aa9bcfff53989af12dadd9ed97dce5a88
 
DIST swift-2.0beta1.tar.gz 8108364 SHA256 dc0830a7d6313fe0999daf20a9bc9e25e0d3cc98a889cbd031178b6202cc7532 SHA512 fe80f0ee00616de21f60a8cedc2dd393a39dd7db00d2a999b5454066ef60ac9042e3c63ac2e15aaac30766786488fee74af24856d83c7e014bf458007c0ccfc2 WHIRLPOOL f9a708d710b8baeb1aaac84cc6e4767320c272c5067d2ae75773d430489ad643feb9a08d5993608ef5c63e94816e0228f45913186f8aa28bb35caa35ee1a07e1
 
DIST swift-2.0beta2.tar.gz 8802868 SHA256 efba5dc873a418b652d14a31053ad222adfd20a482c4fb10cd0b181133469e74 SHA512 73744ab4533fac7a24c38ef48ea3ffaf0f39a3ab945026b44bff464c45f1526071bc4d5de45769bef97344c725f28940da28299d0beea0a2ab4758e254ab8ada WHIRLPOOL 115e26090473ec2aa0fb1bb9b412ca1a580d4f7b149edf36f21bc004752af02092bb4190f7ae62a10b9cb0acc563742d9a2791c4a65ca2e766a01f077e96c41f
 
EBUILD swift-1.0.ebuild 4155 SHA256 533bace0697943443c90bc72ca82ee33ad7725e0d8865d1ad5d019606e48d69e SHA512 6549a448751125ad2fb37d3e87531cac1a22c6a6160bc730d64417ab6da69c9a76ec1fbe8599eca3b8f2c8b55fcb425bf4617a1704d7e7b108e98395af20412c WHIRLPOOL 6278eae38502b789dc84707176df51e20dc2baa5f56ccfaa1328701b0699c107d654d047d6efcce0e58f40b7d04af2eb91f186c39298de14e78d8f224fd995a5
 
EBUILD swift-2.0_beta1.ebuild 4284 SHA256 d61c5017ae23da832f61a63ff2555019f0501728ccc0f9f86a9bc857ed87cf38 SHA512 7229e8122848239abee24d782d62b09bf62d86f22b4b296f71d9e6fd63137950370b8feece8b95eaf7d71dd088e3d581d7597b8b04ccf06947b0dbfe001e0442 WHIRLPOOL 0a89d4d415fcfc104c8518ef4426a97041323c9a443de069704ff17589282d7c7cedcc01cea389c8e5a1aefb2740e69e3b48a02cd5a5194c7c777199d819dd59
 
EBUILD swift-2.0_beta2.ebuild 4284 SHA256 d61c5017ae23da832f61a63ff2555019f0501728ccc0f9f86a9bc857ed87cf38 SHA512 7229e8122848239abee24d782d62b09bf62d86f22b4b296f71d9e6fd63137950370b8feece8b95eaf7d71dd088e3d581d7597b8b04ccf06947b0dbfe001e0442 WHIRLPOOL 0a89d4d415fcfc104c8518ef4426a97041323c9a443de069704ff17589282d7c7cedcc01cea389c8e5a1aefb2740e69e3b48a02cd5a5194c7c777199d819dd59
 
EBUILD swift-9999.ebuild 4155 SHA256 533bace0697943443c90bc72ca82ee33ad7725e0d8865d1ad5d019606e48d69e SHA512 6549a448751125ad2fb37d3e87531cac1a22c6a6160bc730d64417ab6da69c9a76ec1fbe8599eca3b8f2c8b55fcb425bf4617a1704d7e7b108e98395af20412c WHIRLPOOL 6278eae38502b789dc84707176df51e20dc2baa5f56ccfaa1328701b0699c107d654d047d6efcce0e58f40b7d04af2eb91f186c39298de14e78d8f224fd995a5
net-im/swift/swift-1.0.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2011 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
EAPI=4
 

	
 
LANGS=" ca de es fr hu nl pl ru se sk"
 

	
 
[[ ${PV} = *9999* ]] && VCS_ECLASS="git-2" || VCS_ECLASS=""
 

	
 
inherit multilib toolchain-funcs linux-info qt4-r2 scons-utils ${VCS_ECLASS}
 

	
 
DESCRIPTION="Your friendly chat client"
 
HOMEPAGE="http://swift.im/"
 
if [[ ${PV} == *9999* ]] ; then
 
	EGIT_REPO_URI="git://swift.im/swift"
 
else
 
	SRC_URI="http://swift.im/downloads/releases/${P}/${P}.tar.gz"
 
fi
 

	
 
LICENSE="GPL-3"
 
SLOT="0"
 
if [[ ${PV} == *9999* ]] ; then
 
	KEYWORDS=""
 
else
 
	KEYWORDS="~amd64 ~x86"
 
fi
 

	
 
IUSE="avahi debug doc examples +expat qt4 ssl static-libs zeroconf"
 

	
 
RDEPEND="
 
	dev-libs/boost
 
	expat? ( dev-libs/expat )
 
	!expat? ( dev-libs/libxml2 )
 
	ssl? ( dev-libs/openssl )
 
	zeroconf? (
 
		avahi? ( net-dns/avahi )
 
		!avahi? ( net-misc/mDNSResponder )
 
	)
 
	net-dns/libidn
 
	sys-libs/zlib
 
	qt4? (
 
		x11-libs/libXScrnSaver
 
		x11-libs/qt-gui
 
		x11-libs/qt-webkit
 
	)
 
"
 
DEPEND="${RDEPEND}
 
	doc? (
 
		>=app-text/docbook-xsl-stylesheets-1.75
 
		>=app-text/docbook-xml-dtd-4.5
 
		dev-libs/libxslt
 
	)
 
"
 
scons_targets=()
 
set_scons_targets() {
 
	scons_targets=( Swiften )
 
	use qt4 && scons_targets+=( Swift )
 
	use avahi && scons_targets+=( Slimber )
 
	use examples && scons_targets+=(
 
		Documentation/SwiftenDevelopersGuide/Examples
 
		Limber
 
		Sluift
 
		Swiften/Config
 
		Swiften/Examples
 
		Swiften/QA
 
		SwifTools
 
	)
 
}
 

	
 
scons_vars=()
 
set_scons_vars() {
 
	scons_vars=(
 
		V=1
 
		allow_warnings=1
 
		cc="$(tc-getCC)"
 
		cxx="$(tc-getCXX)"
 
		ccflags="${CXXFLAGS}"
 
		linkflags="${LDFLAGS}"
 
		qt="${S}/local-qt"
 
		openssl="${EPREFIX}/usr"
 
		docbook_xsl="${EPREFIX}/usr/share/sgml/docbook/xsl-stylesheets"
 
		docbook_xml="${EPREFIX}/usr/share/sgml/docbook/xml-dtd-4.5"
 
		$(use_scons debug)
 
		$(use !static-libs && use_scons !static-libs swiften_dll)
 
		$(use_scons ssl openssl)
 
		$(use zeroconf && use_scons !avahi bonjour)
 
	)
 
}
 

	
 
src_prepare() {
 
	mkdir local-qt
 
	ln -s "${EPREFIX}"/usr/$(get_libdir)/qt4 local-qt/lib || die
 
	ln -s "${EPREFIX}"/usr/include/qt4 local-qt/include || die
 

	
 
	cd 3rdParty || die
 
	# TODO CppUnit, Lua
 
	rm -rf Boost CAres DocBook Expat LCov LibIDN OpenSSL SCons SQLite ZLib || die
 
	cd .. || die
 

	
 
	for x in ${LANGS}; do
 
		if use !linguas_${x}; then
 
			rm -f Swift/Translations/swift_${x}.ts || die
 
		fi
 
	done
 

	
 
	# Richard H. <chain@rpgfiction.net> (2012-03-29): SCons ignores us,
 
	# just delete unneeded stuff!
 
	if use !avahi; then
 
		rm -rf Slumber || die
 
	fi
 

	
 
	if use !examples; then
 
		rm -rf Documentation/SwiftenDevelopersGuide/Examples \
 
                Limber \
 
                Slimber \
 
                Sluift \
 
                Swiften/Examples \
 
                Swiften/QA \
 
                Swiftob || die
 
	fi
 

	
 
	if use !qt4; then
 
		rm -rf Swift || die
 
	fi
 

	
 
	sed -i BuildTools/SCons/Tools/qt4.py \
 
		-e "s/linux2/linux${KV_MAJOR}/" \
 
		|| die
 
}
 

	
 
src_compile() {
 
	set_scons_targets
 
	set_scons_vars
 

	
 
	escons "${scons_vars[@]}" "${scons_targets[@]}"
 
}
 

	
 
src_test() {
 
	set_scons_targets
 
	set_scons_vars
 

	
 
	escons "${scons_vars[@]}" test=unit QA
 
}
 

	
 
src_install() {
 
	set_scons_targets
 
	set_scons_vars
 

	
 
	escons "${scons_vars[@]}" SWIFT_INSTALLDIR="${D}/usr" SWIFTEN_INSTALLDIR="${D}/usr" "${D}" "${scons_targets[@]}"
 

	
 
	if use avahi ; then
 
		newbin Slimber/Qt/slimber slimber-qt
 
		newbin Slimber/CLI/slimber slimber-cli
 
	fi
 

	
 
	if use examples ; then
 
		for i in EchoBot{1,2,3,4,5,6} EchoComponent ; do
 
			newbin "Documentation/SwiftenDevelopersGuide/Examples/EchoBot/${i}" "${PN}-${i}"
 
		done
 

	
 
		dobin Limber/limber
 
		dobin Sluift/sluift
 
		dobin Swiften/Config/swiften-config
 

	
 
		for i in BenchTool ConnectivityTest LinkLocalTool ParserTester SendFile SendMessage ; do
 
			newbin "Swiften/Examples/${i}/${i}" "${PN}-${i}"
 
		done
 
		newbin Swiften/Examples/SendFile/ReceiveFile "${PN}-ReceiveFile"
 
		use avahi && dobin Swiften/Examples/LinkLocalTool/LinkLocalTool
 

	
 
		for i in ClientTest NetworkTest StorageTest TLSTest ; do
 
			newbin "Swiften/QA/${i}/${i}" "${PN}-${i}"
 
		done
 

	
 
		newbin SwifTools/Idle/IdleQuerierTest/IdleQuerierTest ${PN}-IdleQuerierTest
 
	fi
 

	
 
	use doc && dohtml "Documentation/SwiftenDevelopersGuide/Swiften Developers Guide.html"
 
}
net-im/swift/swift-2.0_beta1.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2011 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
EAPI=4
 

	
 
LANGS=" ca de es fr hu nl pl ru se sk"
 

	
 
[[ ${PV} = *9999* ]] && VCS_ECLASS="git-2" || VCS_ECLASS=""
 

	
 
inherit multilib toolchain-funcs linux-info qt4-r2 scons-utils ${VCS_ECLASS}
 

	
 
inherit versionator
 
MY_PN="swift"
 
MY_PV=$(replace_version_separator 2 '')
 
MY_P="${MY_PN}-${MY_PV}"
 
S="${WORKDIR}/${MY_P}"
 

	
 
DESCRIPTION="Your friendly chat client"
 
HOMEPAGE="http://swift.im/"
 
if [[ ${PV} == *9999* ]] ; then
 
	EGIT_REPO_URI="git://swift.im/swift"
 
else
 
	SRC_URI="http://swift.im/downloads/releases/${MY_P}/${MY_P}.tar.gz"
 
fi
 

	
 
LICENSE="GPL-3"
 
SLOT="0"
 
if [[ ${PV} == *9999* ]] ; then
 
	KEYWORDS=""
 
else
 
	KEYWORDS="~amd64 ~x86"
 
fi
 

	
 
IUSE="avahi debug doc examples +expat qt4 ssl static-libs zeroconf"
 

	
 
RDEPEND="
 
	dev-libs/boost
 
	expat? ( dev-libs/expat )
 
	!expat? ( dev-libs/libxml2 )
 
	ssl? ( dev-libs/openssl )
 
	zeroconf? (
 
		avahi? ( net-dns/avahi )
 
		!avahi? ( net-misc/mDNSResponder )
 
	)
 
	net-dns/libidn
 
	sys-libs/zlib
 
	qt4? (
 
		x11-libs/libXScrnSaver
 
		x11-libs/qt-gui
 
		x11-libs/qt-webkit
 
	)
 
"
 
DEPEND="${RDEPEND}
 
	doc? (
 
		>=app-text/docbook-xsl-stylesheets-1.75
 
		>=app-text/docbook-xml-dtd-4.5
 
		dev-libs/libxslt
 
	)
 
"
 
scons_targets=()
 
set_scons_targets() {
 
	scons_targets=( Swiften )
 
	use qt4 && scons_targets+=( Swift )
 
	use avahi && scons_targets+=( Slimber )
 
	use examples && scons_targets+=(
 
		Documentation/SwiftenDevelopersGuide/Examples
 
		Limber
 
		Sluift
 
		Swiften/Config
 
		Swiften/Examples
 
		Swiften/QA
 
		SwifTools
 
	)
 
}
 

	
 
scons_vars=()
 
set_scons_vars() {
 
	scons_vars=(
 
		V=1
 
		allow_warnings=1
 
		cc="$(tc-getCC)"
 
		cxx="$(tc-getCXX)"
 
		ccflags="${CXXFLAGS}"
 
		linkflags="${LDFLAGS}"
 
		qt="${S}/local-qt"
 
		openssl="${EPREFIX}/usr"
 
		docbook_xsl="${EPREFIX}/usr/share/sgml/docbook/xsl-stylesheets"
 
		docbook_xml="${EPREFIX}/usr/share/sgml/docbook/xml-dtd-4.5"
 
		$(use_scons debug)
 
		$(use !static-libs && use_scons !static-libs swiften_dll)
 
		$(use_scons ssl openssl)
 
		$(use zeroconf && use_scons !avahi bonjour)
 
	)
 
}
 

	
 
src_prepare() {
 
	mkdir local-qt
 
	ln -s "${EPREFIX}"/usr/$(get_libdir)/qt4 local-qt/lib || die
 
	ln -s "${EPREFIX}"/usr/include/qt4 local-qt/include || die
 

	
 
	cd 3rdParty || die
 
	# TODO CppUnit, Lua
 
	rm -rf Boost CAres DocBook Expat LCov LibIDN OpenSSL SCons SQLite ZLib || die
 
	cd .. || die
 

	
 
	for x in ${LANGS}; do
 
		if use !linguas_${x}; then
 
			rm -f Swift/Translations/swift_${x}.ts || die
 
		fi
 
	done
 

	
 
	# Richard H. <chain@rpgfiction.net> (2012-03-29): SCons ignores us,
 
	# just delete unneeded stuff!
 
	if use !avahi; then
 
		rm -rf Slumber || die
 
	fi
 

	
 
	if use !examples; then
 
		rm -rf Documentation/SwiftenDevelopersGuide/Examples \
 
                Limber \
 
                Slimber \
 
                Sluift \
 
                Swiften/Examples \
 
                Swiften/QA \
 
                Swiftob || die
 
	fi
 

	
 
	if use !qt4; then
 
		rm -rf Swift || die
 
	fi
 

	
 
	sed -i BuildTools/SCons/Tools/qt4.py \
 
		-e "s/linux2/linux${KV_MAJOR}/" \
 
		|| die
 
}
 

	
 
src_compile() {
 
	set_scons_targets
 
	set_scons_vars
 

	
 
	escons "${scons_vars[@]}" "${scons_targets[@]}"
 
}
 

	
 
src_test() {
 
	set_scons_targets
 
	set_scons_vars
 

	
 
	escons "${scons_vars[@]}" test=unit QA
 
}
 

	
 
src_install() {
 
	set_scons_targets
 
	set_scons_vars
 

	
 
	escons "${scons_vars[@]}" SWIFT_INSTALLDIR="${D}/usr" SWIFTEN_INSTALLDIR="${D}/usr" "${D}" "${scons_targets[@]}"
 

	
 
	if use avahi ; then
 
		newbin Slimber/Qt/slimber slimber-qt
 
		newbin Slimber/CLI/slimber slimber-cli
 
	fi
 

	
 
	if use examples ; then
 
		for i in EchoBot{1,2,3,4,5,6} EchoComponent ; do
 
			newbin "Documentation/SwiftenDevelopersGuide/Examples/EchoBot/${i}" "${PN}-${i}"
 
		done
 

	
 
		dobin Limber/limber
 
		dobin Sluift/sluift
 
		dobin Swiften/Config/swiften-config
 

	
 
		for i in BenchTool ConnectivityTest LinkLocalTool ParserTester SendFile SendMessage ; do
 
			newbin "Swiften/Examples/${i}/${i}" "${PN}-${i}"
 
		done
 
		newbin Swiften/Examples/SendFile/ReceiveFile "${PN}-ReceiveFile"
 
		use avahi && dobin Swiften/Examples/LinkLocalTool/LinkLocalTool
 

	
 
		for i in ClientTest NetworkTest StorageTest TLSTest ; do
 
			newbin "Swiften/QA/${i}/${i}" "${PN}-${i}"
 
		done
 

	
 
		newbin SwifTools/Idle/IdleQuerierTest/IdleQuerierTest ${PN}-IdleQuerierTest
 
	fi
 

	
 
	use doc && dohtml "Documentation/SwiftenDevelopersGuide/Swiften Developers Guide.html"
 
}
net-im/swift/swift-2.0_beta2.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2011 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
EAPI=4
 

	
 
LANGS=" ca de es fr hu nl pl ru se sk"
 

	
 
[[ ${PV} = *9999* ]] && VCS_ECLASS="git-2" || VCS_ECLASS=""
 

	
 
inherit multilib toolchain-funcs linux-info qt4-r2 scons-utils ${VCS_ECLASS}
 

	
 
inherit versionator
 
MY_PN="swift"
 
MY_PV=$(replace_version_separator 2 '')
 
MY_P="${MY_PN}-${MY_PV}"
 
S="${WORKDIR}/${MY_P}"
 

	
 
DESCRIPTION="Your friendly chat client"
 
HOMEPAGE="http://swift.im/"
 
if [[ ${PV} == *9999* ]] ; then
 
	EGIT_REPO_URI="git://swift.im/swift"
 
else
 
	SRC_URI="http://swift.im/downloads/releases/${MY_P}/${MY_P}.tar.gz"
 
fi
 

	
 
LICENSE="GPL-3"
 
SLOT="0"
 
if [[ ${PV} == *9999* ]] ; then
 
	KEYWORDS=""
 
else
 
	KEYWORDS="~amd64 ~x86"
 
fi
 

	
 
IUSE="avahi debug doc examples +expat qt4 ssl static-libs zeroconf"
 

	
 
RDEPEND="
 
	dev-libs/boost
 
	expat? ( dev-libs/expat )
 
	!expat? ( dev-libs/libxml2 )
 
	ssl? ( dev-libs/openssl )
 
	zeroconf? (
 
		avahi? ( net-dns/avahi )
 
		!avahi? ( net-misc/mDNSResponder )
 
	)
 
	net-dns/libidn
 
	sys-libs/zlib
 
	qt4? (
 
		x11-libs/libXScrnSaver
 
		x11-libs/qt-gui
 
		x11-libs/qt-webkit
 
	)
 
"
 
DEPEND="${RDEPEND}
 
	doc? (
 
		>=app-text/docbook-xsl-stylesheets-1.75
 
		>=app-text/docbook-xml-dtd-4.5
 
		dev-libs/libxslt
 
	)
 
"
 
scons_targets=()
 
set_scons_targets() {
 
	scons_targets=( Swiften )
 
	use qt4 && scons_targets+=( Swift )
 
	use avahi && scons_targets+=( Slimber )
 
	use examples && scons_targets+=(
 
		Documentation/SwiftenDevelopersGuide/Examples
 
		Limber
 
		Sluift
 
		Swiften/Config
 
		Swiften/Examples
 
		Swiften/QA
 
		SwifTools
 
	)
 
}
 

	
 
scons_vars=()
 
set_scons_vars() {
 
	scons_vars=(
 
		V=1
 
		allow_warnings=1
 
		cc="$(tc-getCC)"
 
		cxx="$(tc-getCXX)"
 
		ccflags="${CXXFLAGS}"
 
		linkflags="${LDFLAGS}"
 
		qt="${S}/local-qt"
 
		openssl="${EPREFIX}/usr"
 
		docbook_xsl="${EPREFIX}/usr/share/sgml/docbook/xsl-stylesheets"
 
		docbook_xml="${EPREFIX}/usr/share/sgml/docbook/xml-dtd-4.5"
 
		$(use_scons debug)
 
		$(use !static-libs && use_scons !static-libs swiften_dll)
 
		$(use_scons ssl openssl)
 
		$(use zeroconf && use_scons !avahi bonjour)
 
	)
 
}
 

	
 
src_prepare() {
 
	mkdir local-qt
 
	ln -s "${EPREFIX}"/usr/$(get_libdir)/qt4 local-qt/lib || die
 
	ln -s "${EPREFIX}"/usr/include/qt4 local-qt/include || die
 

	
 
	cd 3rdParty || die
 
	# TODO CppUnit, Lua
 
	rm -rf Boost CAres DocBook Expat LCov LibIDN OpenSSL SCons SQLite ZLib || die
 
	cd .. || die
 

	
 
	for x in ${LANGS}; do
 
		if use !linguas_${x}; then
 
			rm -f Swift/Translations/swift_${x}.ts || die
 
		fi
 
	done
 

	
 
	# Richard H. <chain@rpgfiction.net> (2012-03-29): SCons ignores us,
 
	# just delete unneeded stuff!
 
	if use !avahi; then
 
		rm -rf Slumber || die
 
	fi
 

	
 
	if use !examples; then
 
		rm -rf Documentation/SwiftenDevelopersGuide/Examples \
 
                Limber \
 
                Slimber \
 
                Sluift \
 
                Swiften/Examples \
 
                Swiften/QA \
 
                Swiftob || die
 
	fi
 

	
 
	if use !qt4; then
 
		rm -rf Swift || die
 
	fi
 

	
 
	sed -i BuildTools/SCons/Tools/qt4.py \
 
		-e "s/linux2/linux${KV_MAJOR}/" \
 
		|| die
 
}
 

	
 
src_compile() {
 
	set_scons_targets
 
	set_scons_vars
 

	
 
	escons "${scons_vars[@]}" "${scons_targets[@]}"
 
}
 

	
 
src_test() {
 
	set_scons_targets
 
	set_scons_vars
 

	
 
	escons "${scons_vars[@]}" test=unit QA
 
}
 

	
 
src_install() {
 
	set_scons_targets
 
	set_scons_vars
 

	
 
	escons "${scons_vars[@]}" SWIFT_INSTALLDIR="${D}/usr" SWIFTEN_INSTALLDIR="${D}/usr" "${D}" "${scons_targets[@]}"
 

	
 
	if use avahi ; then
 
		newbin Slimber/Qt/slimber slimber-qt
 
		newbin Slimber/CLI/slimber slimber-cli
 
	fi
 

	
 
	if use examples ; then
 
		for i in EchoBot{1,2,3,4,5,6} EchoComponent ; do
 
			newbin "Documentation/SwiftenDevelopersGuide/Examples/EchoBot/${i}" "${PN}-${i}"
 
		done
 

	
 
		dobin Limber/limber
 
		dobin Sluift/sluift
 
		dobin Swiften/Config/swiften-config
 

	
 
		for i in BenchTool ConnectivityTest LinkLocalTool ParserTester SendFile SendMessage ; do
 
			newbin "Swiften/Examples/${i}/${i}" "${PN}-${i}"
 
		done
 
		newbin Swiften/Examples/SendFile/ReceiveFile "${PN}-ReceiveFile"
 
		use avahi && dobin Swiften/Examples/LinkLocalTool/LinkLocalTool
 

	
 
		for i in ClientTest NetworkTest StorageTest TLSTest ; do
 
			newbin "Swiften/QA/${i}/${i}" "${PN}-${i}"
 
		done
 

	
 
		newbin SwifTools/Idle/IdleQuerierTest/IdleQuerierTest ${PN}-IdleQuerierTest
 
	fi
 

	
 
	use doc && dohtml "Documentation/SwiftenDevelopersGuide/Swiften Developers Guide.html"
 
}
net-im/swift/swift-9999.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2011 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
EAPI=4
 

	
 
LANGS=" ca de es fr hu nl pl ru se sk"
 

	
 
[[ ${PV} = *9999* ]] && VCS_ECLASS="git-2" || VCS_ECLASS=""
 

	
 
inherit multilib toolchain-funcs linux-info qt4-r2 scons-utils ${VCS_ECLASS}
 

	
 
DESCRIPTION="Your friendly chat client"
 
HOMEPAGE="http://swift.im/"
 
if [[ ${PV} == *9999* ]] ; then
 
	EGIT_REPO_URI="git://swift.im/swift"
 
else
 
	SRC_URI="http://swift.im/downloads/releases/${P}/${P}.tar.gz"
 
fi
 

	
 
LICENSE="GPL-3"
 
SLOT="0"
 
if [[ ${PV} == *9999* ]] ; then
 
	KEYWORDS=""
 
else
 
	KEYWORDS="~amd64 ~x86"
 
fi
 

	
 
IUSE="avahi debug doc examples +expat qt4 ssl static-libs zeroconf"
 

	
 
RDEPEND="
 
	dev-libs/boost
 
	expat? ( dev-libs/expat )
 
	!expat? ( dev-libs/libxml2 )
 
	ssl? ( dev-libs/openssl )
 
	zeroconf? (
 
		avahi? ( net-dns/avahi )
 
		!avahi? ( net-misc/mDNSResponder )
 
	)
 
	net-dns/libidn
 
	sys-libs/zlib
 
	qt4? (
 
		x11-libs/libXScrnSaver
 
		x11-libs/qt-gui
 
		x11-libs/qt-webkit
 
	)
 
"
 
DEPEND="${RDEPEND}
 
	doc? (
 
		>=app-text/docbook-xsl-stylesheets-1.75
 
		>=app-text/docbook-xml-dtd-4.5
 
		dev-libs/libxslt
 
	)
 
"
 
scons_targets=()
 
set_scons_targets() {
 
	scons_targets=( Swiften )
 
	use qt4 && scons_targets+=( Swift )
 
	use avahi && scons_targets+=( Slimber )
 
	use examples && scons_targets+=(
 
		Documentation/SwiftenDevelopersGuide/Examples
 
		Limber
 
		Sluift
 
		Swiften/Config
 
		Swiften/Examples
 
		Swiften/QA
 
		SwifTools
 
	)
 
}
 

	
 
scons_vars=()
 
set_scons_vars() {
 
	scons_vars=(
 
		V=1
 
		allow_warnings=1
 
		cc="$(tc-getCC)"
 
		cxx="$(tc-getCXX)"
 
		ccflags="${CXXFLAGS}"
 
		linkflags="${LDFLAGS}"
 
		qt="${S}/local-qt"
 
		openssl="${EPREFIX}/usr"
 
		docbook_xsl="${EPREFIX}/usr/share/sgml/docbook/xsl-stylesheets"
 
		docbook_xml="${EPREFIX}/usr/share/sgml/docbook/xml-dtd-4.5"
 
		$(use_scons debug)
 
		$(use !static-libs && use_scons !static-libs swiften_dll)
 
		$(use_scons ssl openssl)
 
		$(use zeroconf && use_scons !avahi bonjour)
 
	)
 
}
 

	
 
src_prepare() {
 
	mkdir local-qt
 
	ln -s "${EPREFIX}"/usr/$(get_libdir)/qt4 local-qt/lib || die
 
	ln -s "${EPREFIX}"/usr/include/qt4 local-qt/include || die
 

	
 
	cd 3rdParty || die
 
	# TODO CppUnit, Lua
 
	rm -rf Boost CAres DocBook Expat LCov LibIDN OpenSSL SCons SQLite ZLib || die
 
	cd .. || die
 

	
 
	for x in ${LANGS}; do
 
		if use !linguas_${x}; then
 
			rm -f Swift/Translations/swift_${x}.ts || die
 
		fi
 
	done
 

	
 
	# Richard H. <chain@rpgfiction.net> (2012-03-29): SCons ignores us,
 
	# just delete unneeded stuff!
 
	if use !avahi; then
 
		rm -rf Slumber || die
 
	fi
 

	
 
	if use !examples; then
 
		rm -rf Documentation/SwiftenDevelopersGuide/Examples \
 
                Limber \
 
                Slimber \
 
                Sluift \
 
                Swiften/Examples \
 
                Swiften/QA \
 
                Swiftob || die
 
	fi
 

	
 
	if use !qt4; then
 
		rm -rf Swift || die
 
	fi
 

	
 
	sed -i BuildTools/SCons/Tools/qt4.py \
 
		-e "s/linux2/linux${KV_MAJOR}/" \
 
		|| die
 
}
 

	
 
src_compile() {
 
	set_scons_targets
 
	set_scons_vars
 

	
 
	escons "${scons_vars[@]}" "${scons_targets[@]}"
 
}
 

	
 
src_test() {
 
	set_scons_targets
 
	set_scons_vars
 

	
 
	escons "${scons_vars[@]}" test=unit QA
 
}
 

	
 
src_install() {
 
	set_scons_targets
 
	set_scons_vars
 

	
 
	escons "${scons_vars[@]}" SWIFT_INSTALLDIR="${D}/usr" SWIFTEN_INSTALLDIR="${D}/usr" "${D}" "${scons_targets[@]}"
 

	
 
	if use avahi ; then
 
		newbin Slimber/Qt/slimber slimber-qt
 
		newbin Slimber/CLI/slimber slimber-cli
 
	fi
 

	
 
	if use examples ; then
 
		for i in EchoBot{1,2,3,4,5,6} EchoComponent ; do
 
			newbin "Documentation/SwiftenDevelopersGuide/Examples/EchoBot/${i}" "${PN}-${i}"
 
		done
 

	
 
		dobin Limber/limber
 
		dobin Sluift/sluift
 
		dobin Swiften/Config/swiften-config
 

	
 
		for i in BenchTool ConnectivityTest LinkLocalTool ParserTester SendFile SendMessage ; do
 
			newbin "Swiften/Examples/${i}/${i}" "${PN}-${i}"
 
		done
 
		newbin Swiften/Examples/SendFile/ReceiveFile "${PN}-ReceiveFile"
 
		use avahi && dobin Swiften/Examples/LinkLocalTool/LinkLocalTool
 

	
 
		for i in ClientTest NetworkTest StorageTest TLSTest ; do
 
			newbin "Swiften/QA/${i}/${i}" "${PN}-${i}"
 
		done
 

	
 
		newbin SwifTools/Idle/IdleQuerierTest/IdleQuerierTest ${PN}-IdleQuerierTest
 
	fi
 

	
 
	use doc && dohtml "Documentation/SwiftenDevelopersGuide/Swiften Developers Guide.html"
 
}
net-misc/jdownloader/Manifest
Show inline comments
 
new file 100644
 
AUX jDownloader 154 RMD160 7b63cba8eab0a02ebb85dc36587a6e5825b07987 SHA1 3560d670864ed9b6dbced2508e24df9a54a94cc6 SHA256 8856b0a1d747c5bcf288fab839bd347b665e8cf977a646d570adbfbeeea61bcb
 
DIST JDownloader.zip 31419822 RMD160 df05d7bb115ac6de864cb99100a367b619159026 SHA1 007a76b848326fb13f447422f253d1af839c1710 SHA256 3ec0c04213efe1ac427b19080363041d3c53a29bdf302ec8e1ac1a84770b60b5
 
EBUILD jdownloader-0.9.ebuild 1120 RMD160 bf7ad5d7b3ff41f90a46df847a104565aae0b6b2 SHA1 bf07086ef13cdca09495b1dd81b4d5add8d4dd84 SHA256 0ddbeb43537c6ed7f55246c84b5b94e88e126d9e72fc25baa30e48d11af35b4f
net-misc/jdownloader/files/jDownloader
Show inline comments
 
new file 100644
 
#!/bin/sh
 
if [ ! -d ~/.jDownloader/ ] ; then
 
	mkdir ~/.jDownloader/
 
	cp -R /opt/jdownloader/* ~/.jDownloader/
 
fi
 
java -jar ~/.jDownloader/JDownloader.jar
net-misc/jdownloader/jdownloader-0.9.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2008 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 

	
 
EAPI="2"
 

	
 
inherit eutils fdo-mime gnome2-utils
 

	
 
MY_PN="${PN/jd/JD}"
 

	
 
DESCRIPTION='JDownloader is an opensource download software that simplifies
 
downloading files from most One-Click-Hosters (like RS, MU, etc).'
 
HOMEPAGE="http://jdownloader.org"
 
SRC_URI="http://94.23.204.158/${MY_PN}.zip"
 
S=${WORKDIR}/${MY_PN}
 

	
 
LICENSE="GPL-3"
 
SLOT="0"
 
KEYWORDS="~amd64 ~x86"
 
IUSE=""
 

	
 
DEPEND="app-arch/unzip"
 
RDEPEND="${DEPEND}
 
	>=virtual/jre-1.5"
 

	
 
src_install() {
 
	insinto /opt/${PN}
 
	doins -r ${S}/*
 
	#fowners nobody:users -R /opt/${PN}
 
	#fperms g+rw -R /opt/${PN}
 
	dobin ${FILESDIR}/jDownloader
 
	insinto /usr/share/icons/hicolor/64x64/apps/
 
	newins ${S}/jd/img/logo/jd_logo_64_64.png ${PN}.png
 
	make_desktop_entry /opt/${PN}/jDownloader ${MY_PN} /usr/share/icons/hicolor/64x64/apps/${PN}.png "Network;FileTransfer;P2P;GTK"
 
}
 

	
 
pkg_preinst() {
 
	gnome2_icon_savelist
 
}
 

	
 
pkg_postinst() {
 
	fdo-mime_desktop_database_update
 
	gnome2_icon_cache_update
 
}
 

	
 
pkg_postrm() {
 
	fdo-mime_desktop_database_update
 
	gnome2_icon_cache_update
 
}
net-misc/pyload/Manifest
Show inline comments
 
new file 100644
 
AUX pyload 382 RMD160 f8574569ac91034a82ba0850de74b3d406ec0ff2 SHA1 612d6942145352a6f929ac3039612d65f6238425 SHA256 fab733b232a0591f1427175f688dc4171f87bbea2c506b23291fb4742e228196
 
AUX pyload-0.4.8-locale-fix.patch 5214 RMD160 c1114eee8b8cba50619472022328125b0629dd3f SHA1 27062bdfa3c76c28d3bd6cbf656ccf2bd597f912 SHA256 4a4bf41af98a2d914646c4aab6064fee3e1c21a61cfacac5c16c449f42f4875d
 
AUX pyload-0.4.8-pid.patch 1638 RMD160 ff0e5c1d3e97a3ccda331d70c35cd044b91427e6 SHA1 e98d2dffd4fbe495944f9c068667c844549c5729 SHA256 c9d14523dd6c638c2ec7b1019d80386b1130e10f113daade8bc6306c58e66fd7
 
AUX pyload-0.4.8-sanitize-config.patch 877 RMD160 2d423b250cf435f611428c8a5dad85c19057921b SHA1 f97aaeac406cfbfff0f7ed6f38939d014d0a2225 SHA256 cb5d03cc8c7eca9457166c25f4e4d928d735fd14dc7fc049a24168cc85cb9fb3
 
AUX pyload.confd 193 RMD160 c47201337c6c29284cc1990b8984332b776ff462 SHA1 b9cd04fb67de7b4e6531cf2ad4452fb7ff8cad06 SHA256 35fc29ce2c9feccd2946ac41795560521155f34183f3cd3fd5ea6d82c9afd117
 
AUX pyload.init 373 RMD160 16b8bfbb82596937b4b46a6bd73a5b915dc73c5e SHA1 8885d10faea838f2cbb0bf79c7e46d41728bc6c3 SHA256 70b96bc562153d5336d6ea69e3601f22751b6103e6cb5266b98b98c8dfa6d311
 
AUX pyload.service 160 RMD160 366c1f7f72215694fc6f6af2d5dd652114c0c4f2 SHA1 537daefa910c1f3d53cf028ee6c9511db735c3dc SHA256 b61111c844e289fc15d6e30e0f1b4c1721e7939c756765f82d5b0a587a4bbf23
 
DIST pyload-src-v0.4.8.zip 1358271 RMD160 532954551099add96777458300221df0b2fd6380 SHA1 54afc3a643c3a85ec8dec982879dc256cde98f70 SHA256 3a198644f123378105ab99de6dde63e033d7557696601f5394cc9107b7f722ef
 
EBUILD pyload-0.4.8.ebuild 3765 RMD160 652e63baaa96d81d9417002c3f0a35f089fa1cea SHA1 943001160e336c15e4c7d76a8a7a8592986e6c99 SHA256 4a73c0291c8106c9a5aa926c0d5424d8dc14c4e98a6b954a3ddec72b90c2f37a
net-misc/pyload/files/pyload
Show inline comments
 
new file 100644
 
#!/sbin/runscript
 

	
 
NAME="PyLoad Daemon"
 
PIDFILE=/var/run/pyload.pid
 

	
 
depend() {
 
	need net
 
}
 

	
 
start() {
 
	ebegin "Starting PyLoad"
 
		start-stop-daemon --start --quiet --background \
 
		--pidfile ${PIDFILE} \
 
		--exec /usr/bin/env python2 /opt/pyload/pyLoadCore.py --
 
	eend $?
 
}
 

	
 
stop() {
 
	ebegin "Stopping PyLoad"
 
		start-stop-daemon --stop --quiet \
 
		--pidfile ${PIDFILE}
 
	eend $?
 
}
net-misc/pyload/files/pyload-0.4.8-locale-fix.patch
Show inline comments
 
new file 100644
 
diff -urpN pyload.orig/module/setup.py pyload.new/module/setup.py
 
--- pyload.orig/module/setup.py	2011-10-04 14:55:18.000000000 +0200
 
+++ pyload.new/module/setup.py	2011-11-24 03:03:29.494117957 +0100
 
@@ -44,7 +44,10 @@ class Setup():
 
 
 
         langs = self.config.getMetaData("general", "language")["type"].split(";")
 
         lang = self.ask(u"Choose your Language / Wähle deine Sprache", "en", langs)
 
-        translation = gettext.translation("setup", join(self.path, "locale"), languages=["en", lang])
 
+        if not exists(join(self.path, "locale")):
 
+	         translation = gettext.translation("setup", "/usr/share/pyload/locale", languages=["en", lang])
 
+        else:
 
+                 translation = gettext.translation("setup", join(self.path, "locale"), languages=["en", lang])
 
         translation.install(True)
 
 
 
 #        print ""
 
@@ -335,7 +338,12 @@ class Setup():
 
 
 
     def set_user(self):
 
 
 
-        translation = gettext.translation("setup", join(self.path, "locale"), languages=["en", self.config["general"]["language"]])
 
+        if not exists(join(self.path, "locale")):
 
+	          translation = gettext.translation("setup", "/usr/share/pyload/locale",
 
+		                        languages=["en", self.config["general"]["language"]])
 
+	else:
 
+                  translation = gettext.translation("setup", join(self.path, "locale"),
 
+		                        languages=["en", self.config["general"]["language"]])
 
         translation.install(True)
 
         
 
         from module.database import DatabaseBackend
 
diff -urpN pyload.orig/module/web/webinterface.py pyload.new/module/web/webinterface.py
 
--- pyload.orig/module/web/webinterface.py	2011-10-04 14:55:18.000000000 +0200
 
+++ pyload.new/module/web/webinterface.py	2011-11-24 03:00:58.256222754 +0100
 
@@ -95,7 +95,11 @@ if PREFIX:
 
 else:
 
     env.filters["url"] = lambda x: PREFIX + x if x.startswith("/") else x
 
 
 
-translation = gettext.translation("django", join(PYLOAD_DIR, "locale"),
 
+if not exists(join(PYLOAD_DIR, "locale")):
 
+         translation = gettext.translation("django", "/usr/share/pyload/locale",
 
+	                          languages=["en", config.get("general","language")])
 
+else:
 
+         translation = gettext.translation("django", join(PYLOAD_DIR, "locale"),
 
                                   languages=["en", config.get("general","language")])
 
 translation.install(True)
 
 env.install_gettext_translations(translation)
 
diff -urpN pyload.orig/pyLoadCli.py pyload.new/pyLoadCli.py
 
--- pyload.orig/pyLoadCli.py	2011-10-04 14:55:18.000000000 +0200
 
+++ pyload.new/pyLoadCli.py	2011-11-24 03:00:58.256222754 +0100
 
@@ -493,7 +493,11 @@ if __name__ == "__main__":
 
         for opt in configFile.items("cli"):
 
             config[opt[0]] = opt[1]
 
 
 
-    translation = gettext.translation("pyLoadCli", join(pypath, "locale"),
 
+    if not exists(join(pypath, "locale")):
 
+         translation = gettext.translation("pyLoadCli", "/usr/share/pyload/locale",
 
+	                              languages=["en", config["language"]])
 
+    else:
 
+         translation = gettext.translation("pyLoadCli", join(pypath, "locale"),
 
                                       languages=["en", config["language"]])
 
     translation.install(unicode=True)
 
 
 
diff -urpN pyload.orig/pyLoadCore.py pyload.new/pyLoadCore.py
 
--- pyload.orig/pyLoadCore.py	2011-10-04 14:55:18.000000000 +0200
 
+++ pyload.new/pyLoadCore.py	2011-11-24 03:00:58.257222786 +0100
 
@@ -277,7 +277,11 @@ class Core(object):
 
 
 
         self.config = ConfigParser()
 
 
 
-        translation = gettext.translation("pyLoad", self.path("locale"),
 
+        if not exists(self.path("locale")):
 
+	   translation = gettext.translation("pyLoad", "/usr/share/pyload/locale",
 
+	                                  languages=["en", self.config['general']['language']])
 
+        else:
 
+           translation = gettext.translation("pyLoad", self.path("locale"),
 
                                           languages=["en", self.config['general']['language']])
 
         translation.install(True)
 
 
 
diff -urpN pyload.orig/pyLoadGui.py pyload.new/pyLoadGui.py
 
--- pyload.orig/pyLoadGui.py	2011-10-04 14:55:18.000000000 +0200
 
+++ pyload.new/pyLoadGui.py	2011-11-24 03:00:58.257222786 +0100
 
@@ -34,6 +34,7 @@ from os.path import abspath
 
 from os.path import join
 
 from os.path import basename
 
 from os.path import commonprefix
 
+from os.path import exists
 
 
 
 from module import InitHomeDir
 
 from module.gui.ConnectionManager import *
 
@@ -77,7 +78,10 @@ class main(QObject):
 
             parser = XMLParser(join(self.path, "module", "config", "gui_default.xml"))
 
             lang = parser.xml.elementsByTagName("language").item(0).toElement().text()
 
 
 
-        translation = gettext.translation("pyLoadGui", join(pypath, "locale"), languages=["en", str(lang)])
 
+        if not exists(join(pypath, "locale")):
 
+	         translation = gettext.translation("pyLoadGui", "/usr/share/pyload/locale", languages=["en", str(lang)])
 
+        else:
 
+                 translation = gettext.translation("pyLoadGui", join(pypath, "locale"), languages=["en", str(lang)])
 
         try:
 
             translation.install(unicode=(True if sys.stdout.encoding.lower().startswith("utf") else False))
 
         except:
net-misc/pyload/files/pyload-0.4.8-pid.patch
Show inline comments
 
new file 100644
 
diff -urpN pyload.orig/pyLoadCore.py pyload.new/pyLoadCore.py
 
--- pyload.orig/pyLoadCore.py	2011-10-04 14:55:18.000000000 +0200
 
+++ pyload.new/pyLoadCore.py	2011-11-23 05:54:59.042425874 +0100
 
@@ -83,14 +83,16 @@ class Core(object):
 
 
 
         if len(argv) > 1:
 
             try:
 
-                options, args = getopt(argv[1:], 'vchdusq',
 
-                    ["version", "clear", "clean", "help", "debug", "user", "setup", "configdir=", "changedir", "daemon",
 
+                options, args = getopt(argv[1:], 'vchdusqp:',
 
+                    ["pidfile=","version", "clear", "clean", "help", "debug", "user", "setup", "configdir=", "changedir", "daemon",
 
                      "quit", "status"])
 
 
 
                 for option, argument in options:
 
                     if option in ("-v", "--version"):
 
                         print "pyLoad", CURRENT_VERSION
 
                         exit()
 
+                    elif option in ("-p", "--pidfile"):
 
+		        self.pidfile=argument
 
                     elif option == "--daemon":
 
                         self.daemon = True
 
                     elif option in ("-c", "--clear"):
 
@@ -152,6 +154,7 @@ class Core(object):
 
         print "  -u, --user", " " * 13, "Manages users"
 
         print "  -d, --debug", " " * 12, "Enable debug mode"
 
         print "  -s, --setup", " " * 12, "Run Setup Assistent"
 
+	print "  -p, --pidfile <filename>", "Set Name of pidfile"
 
         print "  --configdir=<dir>", " " * 6, "Run with <dir> as config directory"
 
         print "  --changedir", " " * 12, "Change config dir permanently"
 
         print "  --daemon", " " * 15, "Daemonmize after start"
net-misc/pyload/files/pyload-0.4.8-sanitize-config.patch
Show inline comments
 
new file 100644
 
diff -urpN pyload.orig/module/config/default.conf pyload.new/module/config/default.conf
 
--- pyload.orig/module/config/default.conf	2011-10-04 14:55:17.000000000 +0200
 
+++ pyload.new/module/config/default.conf	2011-11-23 21:35:30.017800846 +0100
 
@@ -2,7 +2,7 @@ version: 1
 
 
 
 remote - "Remote":
 
 	int port : "Port" = 7227
 
-	ip listenaddr : "Adress" = 0.0.0.0
 
+	ip listenaddr : "Adress" = 127.0.0.1
 
 	bool nolocalauth : "No authentication on local connections" = True
 
 ssl - "SSL":
 
 	bool activated : "Activated"= False
 
@@ -12,7 +12,7 @@ webinterface - "Webinterface":
 
 	bool activated : "Activated" = True
 
 	builtin;threaded;fastcgi;lightweight server : "Server" = builtin
 
 	bool https : "Use HTTPS" = False
 
-	ip host : "IP" = 0.0.0.0
 
+	ip host : "IP" = 127.0.0.1
 
 	int port : "Port" = 8001
 
 	str template : "Template" = default
 
     str prefix: "Path Prefix" =
net-misc/pyload/files/pyload.confd
Show inline comments
 
new file 100644
 
#The Name of the daemon process' PID-file
 
PIDFILE="/var/run/pyload.pid"
 

	
 
#Preset working directory for pyload
 
CONFIGDIR="/var/lib/pyload"
 
#Additional daemon options you want to use
 
OPTIONS=""
 

	
net-misc/pyload/files/pyload.init
Show inline comments
 
new file 100644
 
#!/sbin/runscript
 

	
 
NAME="PyLoad Daemon"
 

	
 
depend() {
 
	need net
 
}
 

	
 
start() {
 
	ebegin "Starting PyLoad"
 
		start-stop-daemon --start --quiet \
 
		--pidfile ${PIDFILE} \
 
		--exec /usr/bin/pyLoadCore -- --configdir=${CONFIGDIR} --daemon -p ${PIDFILE} ${OPTIONS}
 
	eend $?
 
}
 

	
 
stop() {
 
	ebegin "Stopping PyLoad"
 
		start-stop-daemon --stop --quiet \
 
		--pidfile ${PIDFILE}
 
	eend $?
 
}
net-misc/pyload/files/pyload.service
Show inline comments
 
new file 100644
 
[Unit]
 
Description=PyLoad Daemon
 
After=network.target
 

	
 
[Service]
 
ExecStart=/usr/bin/env python2 /opt/pyload/pyLoadCore.py
 

	
 
[Install]
 
WantedBy=multi-user.target
net-misc/pyload/pyload-0.4.8.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2011 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
EAPI=3
 

	
 
PYTHON_DEPEND="2"
 
PYTHON_USE_WITH="sqlite"
 

	
 
inherit base eutils python systemd
 

	
 
if [[ ${PV} == *9999 ]]; then
 
	EHG_REPO_URI="http://bitbucket.org/spoob/pyload/"
 
	inherit mercurial
 
else
 
	SRC_URI="http://get.pyload.org/static/${PN}-src-v${PV}.zip"
 
	KEYWORDS="~amd64 ~x86"
 
fi
 
DESCRIPTION="A fast, lightweight and full featured download manager for many One-Click-Hosters."
 
HOMEPAGE="http://www.pyload.org"
 
LICENSE="freedist"
 
SLOT="0"
 
IUSE="captcha clicknload container qt4 rar ssl systemd"
 

	
 
DEPEND="app-arch/unzip"
 

	
 
RDEPEND="${DEPEND}
 
	dev-python/beautifulsoup
 
	dev-python/beaker
 
	dev-python/feedparser
 
	dev-python/simplejson
 
	dev-python/pycurl
 
	dev-python/jinja
 
	captcha? (
 
		dev-python/imaging
 
		app-text/tesseract
 
	)
 
	clicknload? (
 
	|| (
 
		dev-lang/spidermonkey
 
		dev-java/rhino
 
	)
 
	)
 
	container? ( dev-python/pycrypto )
 
	qt4? ( dev-python/PyQt4	)
 
	rar? ( app-arch/unrar )
 
	ssl? (
 
		dev-python/pycrypto
 
		dev-python/pyopenssl
 
	)"
 
#clicknload? ( || ( ... ossp-js pyv8 ) )
 

	
 
S=${WORKDIR}/${PN}
 

	
 
PYLOAD_WORKDIR=/var/lib/pyload # (/var/lib/ in lack of a better place)
 

	
 
pkg_setup() {
 
	python_pkg_setup
 
	python_set_active_version 2
 
#	enewuser pyload -1 -1 ${PYLOAD_WORKDIR}
 
}
 

	
 
src_unpack() {
 
	if [[ ${PV} == *9999 ]]; then
 
		mercurial_src_unpack
 
	else
 
		default
 
		#base_src_unpack
 
	fi
 

	
 
	cd "${S}"
 
	epatch "${FILESDIR}/${P}-pid.patch"
 
	epatch "${FILESDIR}/${P}-sanitize-config.patch"
 
	epatch "${FILESDIR}/${P}-locale-fix.patch"
 
}
 

	
 
src_prepare() {
 
	# fix workdir
 
	echo ${PYLOAD_WORKDIR} > ${S}/module/config/configdir
 

	
 
	# replace some shipped dependencies with the system libraries
 
	rm -r \
 
		${S}/module/lib/BeautifulSoup.py \
 
		${S}/module/lib/beaker \
 
		${S}/module/lib/feedparser.py \
 
		${S}/module/lib/simplejson \
 
		${S}/module/lib/jinja2 \
 

	
 

	
 
	find ${S}/module/ -name "*.py" -type f -print0 | xargs -0 \
 
	sed -i \
 
		-e 's:from module.lib.BeautifulSoup:from BeautifulSoup:' \
 
		-e 's:from module.lib \(import feedparser.*\):\1:' \
 
		-e 's:from module.lib.simplejson:from simplejson:' \
 
		-e 's:from module:from pyload:' \
 
		-e 's:"module\(.*\)":"pyload\1":' \
 
		#${S}/module/**/*.py # globbing not working -> find
 

	
 
	sed -i -e 's:from module:from pyload:' pyLoadCore.py
 

	
 
    sed -i -e 's:from module:from pyload:' pyLoadCli.py
 

	
 
	if ! use qt4; then
 
		rm -r ${S}/module/gui
 
	fi
 
}
 

	
 
src_configure() {
 
	:
 
}
 

	
 
src_compile() {
 
	:
 
}
 

	
 
src_install() {
 
    insinto $(python_get_sitedir)/${PN}
 
	doins -r ${S}/module/*
 
	insinto /usr/share/${PN}
 
	doins -r ${S}/locale
 
	#doins -r ${S}/module
 
	doins -r ${S}/scripts
 
	exeinto /usr/bin/
 
	newexe ${S}/pyLoadCore.py pyLoadCore
 
	newexe ${S}/pyLoadCli.py pyLoadCli
 

	
 

	
 
	if use qt4; then
 
		doins -r ${S}/icons
 
		make_wrapper pyloadgui /opt/${PN}/pyLoadGui.py
 
	fi
 

	
 
	dodir ${PYLOAD_WORKDIR}
 
	# install default config
 
	if ! test -f ${PYLOAD_WORKDIR}/pyload.conf; then
 
		cp ${S}/module/config/default.conf ${D}/${PYLOAD_WORKDIR}/pyload.conf
 
	fi
 

	
 
	#fix tmpdir
 
	dosym /tmp ${PYLOAD_WORKDIR}/tmp
 

	
 
	newinitd ${FILESDIR}/pyload.init pyload
 
	newconfd ${FILESDIR}/pyload.confd pyload
 

	
 
	if use systemd; then
 
		systemd_dounit ${FILESDIR}/pyload.service
 
	fi
 

	
 
	python_convert_shebangs -q -r 2 "${D}"
 
}
 

	
 
pkg_postinst() {
 
	python_mod_optimize ${PN}
 
	if use ssl && ! test -f ${PYLOAD_WORKDIR}/ssl.key; then
 
		einfo "If you plan using pyLoad's XML-RPC via SSL, you'll have to create a key in pyloads work directory"
 
		echo
 
		einfo "For the lazy, the list of needed commands is:"
 
		echo 
 
		einfo "cd ${PYLOAD_WORKDIR}"
 
		einfo "openssl genrsa 1024 > ssl.key"
 
		einfo "openssl req -new -key ssl.key -out ssl.csr"
 
		einfo "openssl req -days 36500 -x509 -key ssl.key -in ssl.csr > ssl.crt"
 
	fi
 
}
 

	
 
pkg_postrm() {
 
	python_mod_cleanup ${PN}
 
}
net-voip/sflphone/sflphone-0.9.12.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2011 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/net-voip/sflphone/sflphone-0.9.8.4.ebuild,v 1.6 2011/01/30 14:07:55 ssuominen Exp $
 

	
 
EAPI="2"
 

	
 
inherit autotools eutils
 

	
 
DESCRIPTION="SFLphone is a robust standards-compliant enterprise softphone, for desktop and embedded systems."
 
HOMEPAGE="http://www.sflphone.org/"
 
SRC_URI="http://www.elvanor.net/files/gentoo/${P}.tar.gz"
 

	
 
LICENSE="GPL-3"
 
SLOT="0"
 
KEYWORDS="~amd64 x86"
 
IUSE="debug gnome gsm iax networkmanager speex"
 

	
 
CDEPEND="media-sound/pulseaudio
 
	media-libs/libsamplerate
 
	net-libs/ccrtp
 
	net-libs/libzrtpcpp
 
	net-libs/pjsip
 
	dev-cpp/commoncpp2
 
	sys-apps/dbus
 
	dev-libs/openssl
 
	dev-libs/expat
 
	media-libs/alsa-lib
 
	media-libs/celt
 
	dev-libs/libpcre
 
	gsm? ( media-sound/gsm )
 
	speex? ( media-libs/speex )
 
	networkmanager? ( net-misc/networkmanager )
 
	iax? ( net-libs/iax )
 
	gnome? ( dev-libs/atk
 
		dev-libs/check
 
		dev-libs/log4c
 
		gnome-base/libgnomeui
 
		gnome-base/orbit
 
		gnome-extra/evolution-data-server
 
		media-libs/libart_lgpl
 
		media-libs/freetype
 
		media-libs/fontconfig
 
		net-libs/libsoup
 
		x11-libs/cairo
 
		x11-libs/libnotify
 
		x11-libs/libICE
 
		x11-libs/libSM )"
 

	
 
DEPEND="${CDEPEND}
 
		gnome? ( app-text/gnome-doc-utils )"
 

	
 
RDEPEND="${CDEPEND}"
 

	
 
src_prepare() {
 

	
 
	if ! use gnome; then
 
		ewarn
 
		ewarn "No clients selected. Use USE=gnome to get the gnome client."
 
		ewarn "See"
 
		ewarn "https://projects.savoirfairelinux.com/repositories/browse/sflphone/tools/pysflphone"
 
		ewarn "for a python command line client."
 
		ewarn
 
	fi
 

	
 
	cd sflphone-common
 
	#remove "target" from lib-names, remove dep to shipped pjsip
 
	sed -i -e 's/-$(target)//' \
 
		-e '/^\t\t\t-L/ d' \
 
		-e 's!-I$(src)/libs/pjproject!-I/usr/include!' \
 
		globals.mak || die "sed failed."
 
	#respect CXXFLAGS
 
	sed -i -e 's/CXXFLAGS="-g/CXXFLAGS="-g $CXXFLAGS /' \
 
		configure.ac || die "sed failed."
 
	rm -r libs/pjproject
 
	eautoreconf
 

	
 
	#TODO: remove shipped dbus-c++ use system one (see #220767)
 
	#TODO: remove shipped utilspp (from curlpp), use system one, see #55185
 

	
 
	if use gnome; then
 
		cd ../sflphone-client-gnome
 
		#fix as-needed
 
		sed -i -e "s/X11_LIBS)/X11_LIBS) -lebook-1.2/" src/Makefile.am || die "sed failed."
 
		eautoreconf
 
	fi
 
}
 

	
 
src_configure() {
 
	cd sflphone-common
 
	econf --disable-dependency-tracking \
 
		$(use_with debug) \
 
		$(use_with gsm) \
 
		$(use_with speex) \
 
		$(use_with iax iax2) \
 
		$(use_with networkmanager) || die "econf failed."
 

	
 
	if use gnome; then
 
		cd ../sflphone-client-gnome
 
		econf || die "econf failed."
 
	fi
 
}
 

	
 
src_compile() {
 
	cd sflphone-common
 
	emake || die "emake failed."
 

	
 
	if use gnome; then
 
		cd ../sflphone-client-gnome
 
		emake || die "emake failed."
 
	fi
 
}
 

	
 
src_install() {
 
	cd sflphone-common
 
	emake -j1 DESTDIR="${D}" install || die "emake install failed"
 
	dodoc test/sflphonedrc-sample
 

	
 
	if use gnome; then
 
		cd ../sflphone-client-gnome
 
		emake DESTDIR="${D}" install || die "emake install failed"
 
	fi
 
}
 

	
 
pkg_postinst() {
 
	elog
 
	elog "You need to restart dbus, if you want to access"
 
	elog "sflphoned through dbus."
 
	elog
 
	elog
 
	elog "If you use the command line client"
 
	elog "(https://projects.savoirfairelinux.com/repositories/browse/sflphone/tools/pysflphone)"
 
	elog "extract /usr/share/doc/${PF}/${PN}drc-sample to"
 
	elog "~/.config/${PN}/${PN}drc for example config."
 
	elog
 
	elog
 
	elog "For calls out of your browser have a look in sflphone-callto"
 
	elog "and sflphone-handler. You should consider to install"
 
	elog "the \"Telify\" Firefox addon. See"
 
	elog "https://projects.savoirfairelinux.com/repositories/browse/sflphone/tools"
 
	elog
 
	if use gnome; then
 
		elog
 
		elog "sflphone-client-gnome: To manage your contacts you need"
 
		elog "mail-client/evolution or access to an evolution-data-server"
 
		elog "connected backend."
 
		elog
 
	fi
 
}
sci-libs/blas-goto2/Manifest
Show inline comments
 
new file 100644
 
AUX blas-goto2-1.13-sharedlibs.patch 507 RMD160 b2b97087b25f8d2ab55629ccddc0c304e20d3b40 SHA1 5a3d5fc37471919ad84de00a27e3eff2783565d4 SHA256 be3857a2dcad4c3d6a04d973bf51b26aab5ebaa048c186091533dd82dbe55d4e
 
AUX blas.pc.in 292 RMD160 b5ddc452918fb54851cfe24447e1c10d67586943 SHA1 8586cdea51a3094e92871c16ec97e2cfbdc75320 SHA256 aa28cff8ba3f30fdf56e2619eff0655f5b43a062cfe03c1d51e8b4716b1a1e6d
 
AUX eselect.blas.goto 196 RMD160 bd7a4ee66823f6b8cba8c17875adc1d9780345a6 SHA1 866cf8639378ef0688625fc5c38c61a1217e7715 SHA256 cd1845c158bea597a4a85706600be2c87b451b924114774a5e3051eb79a225ba
 
DIST GotoBLAS2-1.13.tar.gz 3179300 RMD160 8a7eec19adc37418b8b9c061d35c22caa1a08344 SHA1 84256329345b834dcfc823da41cf9b3c84726fa4 SHA256 6c30d60a701dacc2e638bb68ac912756f2286af834bf41ebe841310d9258e7cb
 
EBUILD blas-goto2-1.13.ebuild 4319 RMD160 2566459d1a23b931a6df3018634e02f360c0e0c3 SHA1 5cca4352c8d0b0e5a9d653978c8d6023595000de SHA256 19a8c18eb369f9908e363b33214afb4d5fc2be712bda0ad6329d07634e475ddf
sci-libs/blas-goto2/blas-goto2-1.13.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2009 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/sci-libs/blas-goto/blas-goto-1.26.ebuild,v 1.2 2009/08/18 14:22:19 bicatali Exp $
 

	
 
inherit eutils fortran flag-o-matic toolchain-funcs
 

	
 
EAPI="2"
 

	
 
MY_PN="GotoBLAS2"
 
MY_P="${MY_PN}-${PV}"
 
DESCRIPTION="Fast implementations of the Basic Linear Algebra Subroutines"
 
HOMEPAGE="http://www.tacc.utexas.edu/research-development/tacc-projects/"
 
SRC_URI="${MY_P}.tar.gz"
 
LICENSE="tacc"
 
SLOT="0"
 
KEYWORDS="~x86 ~amd64"
 
IUSE="int64 threads doc openmp"
 
RESTRICT="fetch"
 
DOWNLOAD_URL="${HOMEPAGE}"
 

	
 
RDEPEND="app-admin/eselect-blas
 
	doc? ( app-doc/blas-docs )
 
	openmp? ( >=sys-devel/gcc-4.3[openmp] )"
 
DEPEND="app-admin/eselect-blas
 
	>=sys-devel/binutils-2.17"
 

	
 
S="${WORKDIR}/${MY_PN}"
 
FORTRAN="gfortran g77 ifc"
 

	
 
ESELECT_PROF=goto
 

	
 
pkg_nofetch() {
 
	einfo "Please download ${SRC_URI} from"
 
	einfo "${DOWNLOAD_URL}"
 
	einfo "and place it in ${DISTDIR}."
 
}
 

	
 
src_unpack() {
 
	unpack ${A}
 
	cd "${S}"
 

	
 
	# patch to link with m and fortran libs, works with asneeded
 
	epatch "${FILESDIR}"/${P}-sharedlibs.patch
 

	
 
	# Get and test C (cross-) compiler
 
	C_COMPILER=$(tc-getCC)	
 
	if [[ $(tc-getCC) != *gcc ]]; then
 
		ewarn "Your C compiler is set to $(tc-getCC)."
 
		ewarn "${PN} needs gcc to inline assembler, others compilers have reported failures."
 
		die "Incompatible C compiler, need gcc."
 
	fi
 
	
 
	# Get Fortran compiler
 
	case ${FORTRANC} in
 
		g77) F_COMPILER=G77;;
 
		gfortran) F_COMPILER=GFORTRAN;;
 
		ifc|ifort) F_COMPILER=INTEL;;
 
		*)
 
			die "Invalid Fortran compiler: ${FORTRANC}; valid are ${FORTRAN}."
 
	esac
 
	
 
	# Set compilers
 
	sed -i \
 
		-e "s:^# \(CC\s*=\).*:\1 ${C_COMPILER}:g" \
 
		-e "s:^# \(FC\s*=\).*:\1 ${F_COMPILER}:g" \
 
		Makefile.rule \
 
		|| die "sed for compilers failed"
 
	
 
	# Set Threads
 
	use threads && THREADS=1 || THREADS=0
 
	sed -i \
 
		-e "s:^# \(USE_THREAD\s*=\).*:\1 ${THREADS}:g" \
 
		Makefile.rule \
 
		|| die "sed for threads failed"
 
	
 
	# Set BINARY
 
	use amd64 && BINARY=64 || BINARY=32
 
	sed -i \
 
		-e "s:^# \(BINARY\s*=\).*:\1 ${BINARY}:g" \
 
		Makefile.rule \
 
		|| die "sed for binary failed"
 

	
 
	# Set integer interface
 
	use int64 && INT64=1 || INT64=0
 
	use int64 && ESELECT_PROF="${ESELECT_PROF}-int64"
 
	sed -i \
 
		-e "s:^# \(INTERFACE64\s*=\).*:\1 ${INT64}:g" \
 
		Makefile.rule \
 
		|| die "sed for 64 integers failed"
 

	
 
	# Set OpenMP
 
	use openmp && OPENMP=1 || OPENMP=0
 
	sed -i \
 
		-e "s:^# \(USE_OPENMP\s*=\).*:\1 ${OPENMP}:g" \
 
		Makefile.rule \
 
		|| die "sed for 64 binary failed"
 

	
 
}
 

	
 
src_compile() {
 

	
 
	# Make static library
 
	emake LDFLAGS="$(raw-ldflags)" || die "emake failed"
 

	
 
	# Make shared library
 
	cd exports
 
	emake so -j1 || die "emake failed"
 
}
 

	
 
src_test() {
 
	cd test
 
	emake || die "emake test failed"
 
	make clean
 
}
 

	
 
src_install() {
 
	local install_dir=/usr/$(get_libdir)/blas/goto
 
	dodir ${install_dir}
 

	
 
	# dolib.so doesn't support our alternate locations
 
	exeinto ${install_dir}
 
	doexe libgoto2_*.so || die "installing shared lib failed"
 
	dosym libgoto2_*.so ${install_dir}/libgoto2.so
 
	dosym libgoto2_*.so ${install_dir}/libgoto2.so.0
 
	dosym libgoto2_*.so ${install_dir}/libgoto2.so.0.0.0
 

	
 
	# dolib.a doesn't support our alternate locations
 
	insinto ${install_dir}
 
	doins libgoto2_*.a || die "installing static lib failed"
 
	dosym libgoto2_*.a ${install_dir}/libgoto2.a
 

	
 
	dodoc 01Readme.txt 03FAQ.txt || die
 

	
 
	cp "${FILESDIR}"/blas.pc.in blas.pc
 
	local extlibs=""
 
	use threads && extlibs="${extlibs} -lpthread"
 
	sed -i \
 
		-e "s/@LIBDIR@/$(get_libdir)/" \
 
		-e "s/@PV@/${PV}/" \
 
		-e "s/@EXTLIBS@/${extlibs}/" \
 
		blas.pc || die "sed blas.pc failed"
 
	insinto /usr/$(get_libdir)/blas/goto
 
	doins blas.pc
 
	eselect blas add $(get_libdir) "${FILESDIR}"/eselect.blas.goto ${ESELECT_PROF}
 
}
 

	
 
pkg_postinst() {
 
	local p=blas
 
	local current_lib=$(eselect ${p} show | cut -d' ' -f2)
 
	if [[ ${current_lib} == ${ESELECT_PROF} || -z ${current_lib} ]]; then
 
		# work around eselect bug #189942
 
		local configfile="${ROOT}"/etc/env.d/${p}/$(get_libdir)/config
 
		[[ -e ${configfile} ]] && rm -f ${configfile}
 
		eselect ${p} set ${ESELECT_PROF}
 
		elog "${p} has been eselected to ${ESELECT_PROF}"
 
	else
 
		elog "Current eselected ${p} is ${current_lib}"
 
		elog "To use ${p} ${ESELECT_PROF} implementation, you have to issue (as root):"
 
		elog "\t eselect ${p} set ${ESELECT_PROF}"
 
	fi
 
}
sci-libs/blas-goto2/files/blas-goto2-1.13-sharedlibs.patch
Show inline comments
 
new file 100644
 
--- exports/Makefile.orig	2010-02-24 01:53:58.523170327 +0100
 
+++ exports/Makefile	2010-02-24 01:54:38.752824907 +0100
 
@@ -99,7 +99,7 @@
 
 ../$(LIBSONAME) : ../$(LIBNAME) linux.def linktest.c
 
 	$(CC) $(CFLAGS) -shared -o ../$(LIBSONAME) \
 
 	-Wl,--whole-archive ../$(LIBNAME) -Wl,--no-whole-archive \
 
-	-Wl,--retain-symbols-file=linux.def $(EXTRALIB)
 
+	-Wl,--retain-symbols-file=linux.def $(EXTRALIB) -lm
 
 	$(CC) $(CFLAGS) -w -o linktest linktest.c ../$(LIBSONAME) $(FEXTRALIB) && echo OK.
 
 	rm -f linktest
 
 
sci-libs/blas-goto2/files/blas.pc.in
Show inline comments
 
new file 100644
 
prefix=/usr
 
exec_prefix=${prefix}
 
libdir=${prefix}/@LIBDIR@
 
includedir=${prefix}/include
 

	
 
Name: blas
 
Description: GOTO implementations of the F77 Basic Linear Algebra Subroutines
 
Version: @PV@
 
URL: http://www.tacc.utexas.edu/resources/software/software.php
 
Libs: -L${libdir} -lblas @EXTLIBS@
sci-libs/blas-goto2/files/eselect.blas.goto
Show inline comments
 
new file 100644
 
blas/goto/libgoto2.so /usr/@LIBDIR@/libblas.so
 
blas/goto/libgoto2.so.0 /usr/@LIBDIR@/libblas.so.0
 
blas/goto/libgoto2.a /usr/@LIBDIR@/libblas.a
 
../blas/goto/blas.pc /usr/@LIBDIR@/pkgconfig/blas.pc
sci-mathematics/rstudio/Manifest
Show inline comments
 
new file 100644
 
AUX rstudio-0.94.106-linker_flags.patch 729 RMD160 e72de3062f9c5dac82fb9265cba308f901514443 SHA1 98640f10be29b346decc1889c597845c1758c9cc SHA256 5501af495ca27a4028e1cef976277a0a3225d83fdc8a4d3dcbde26fbf751ec9a
 
AUX rstudio-0.94.106-paths.patch 5314 RMD160 2b99eaa3d589281308d6759e4d1aabc94c73bf74 SHA1 39bae1ceb74efbd211e05c75ad209b4039fd76df SHA256 69f684e1e977b30feb5447d69959eff762dd3ee3ca83e69cf98d9978b8db08f2
 
AUX rstudio-0.94.106-prefs.patch 1044 RMD160 b3f03ea54f537a59710b52b3e0f1bfca437e6e82 SHA1 707b7f5b4e25f6fa0ab793c47cf6990ce21f70f0 SHA256 96c327675f0224ce053c33e266fe51e1a3cc97b4aa403ef89676bf5b7ef9062b
 
AUX rstudio-0.94.110-linker_flags.patch 735 RMD160 684b3e122a330939e8ac03e107699bd5529053ab SHA1 30e7fb5bf8a41c48fb579a7e15a27797643cd69c SHA256 5cb72583f7f44bfc3be5ad15b07b325567da057569e17deb561ca2df2ed088cc
 
AUX rstudio-0.94.110-paths.patch 5338 RMD160 5723fa981aaa13ec21f7d610c5ecad2708135fdb SHA1 39afffd08aaf93f76e8f9262b882a59aae133c01 SHA256 43aad37002213c7cd3f80588b051a900e1c11223585fb5829796f584810fbd57
 
AUX rstudio-0.94.110-prefs.patch 1044 RMD160 efdaab43bc902dca5015773c1b66bba1aba1536d SHA1 473ae6e146d232c6e57e19bd8aeef8478df95244 SHA256 2da49a836daa1d3ddf3ace0ca0523335fb5bea1733273bd7eb1e7a7311922d7d
 
AUX rstudio-0.95.263-linker_flags.patch 539 RMD160 cb6dea0602fcbaff70d16e92459dbad6d0d2fa8c SHA1 60fe467d6979e55470bd8c43c1b89fcb0fc10a71 SHA256 55265fe3d1d2f785a64855ffd47ec606471cbe5eb0d6723337f8a26b9e41bf84
 
AUX rstudio-0.95.263-paths.patch 5244 RMD160 f3db949ea9cc80e9fd9cee6dac632f735e6cc89b SHA1 35c2aa8cd2faa4b63a2bd8d2f8249482cf6faedd SHA256 529aa1026f76f9d330b45d4f4cc5db581ea40f8c647cf8db5cd15262f9b88850
 
AUX rstudio-0.95.263-prefs.patch 809 RMD160 a50865ea4847437d1e089498a76ea6d17802e3f2 SHA1 6879f7a88e5657b665710089e1f6b5065d305196 SHA256 214974374ea629ef11603f71acad491d83cd283f66af9bd38ed48451c9d17bc7
 
AUX rstudio-rserver.initd 376 RMD160 62d3b6471fb243abbe3bfb69d5e6e29a2236015c SHA1 ced119ab4f92de98a038a956d54bc2ae095e5b9f SHA256 1ae2913cd60b59ac91cc73a3656d7a61e0df0ef85be9a534b99259ad2d5dfe0b
 
AUX rstudio-rstudio.desktop 182 RMD160 49960023336ec1638d4ffbf3866fbb461a6af89a SHA1 c3f837456a6619a68eb8bbb61253bf6e0cb64efe SHA256 3f5c3e1fa70a54b73b257bfbcbe7b7e17b3674199ce6c16656d1bf8d0a1dface
 
DIST rstudio-0.94.106.tar.gz 8164070 RMD160 0fbc3125c5de0c5193a66430139b6dfa3364afd7 SHA1 49310dd7790b33087fc5a053d6a284cc63cd67ce SHA256 e9f42eb775db1795889624c1619d9d57bdd50c7c13bb845159dfc33645caec97
 
DIST rstudio-0.94.110.tar.gz 8164205 RMD160 debedc41ad2475c33959eca676cb3b825bf0c617 SHA1 8d30c1ccce29da7a3b83e4f77d59b8fe7c013194 SHA256 d7d25cd1933c227578fe573e2eac8bd0752d4bd4fa2b3a7dcc112b72d186c381
 
DIST rstudio-0.95.263.tar.gz 9144590 RMD160 28dd3e37c5cfa28952da5dfdbace3e7ab438534a SHA1 ab92aa584e60545850e2750767ce37e337e76b1a SHA256 438b2a073dd16f8af519b55b254ab03650b2c04614a3bc746aeb5d7ee94b5b64
 
DIST rstudio-gin-1.5.zip 1055663 RMD160 cde394d111b3af798935ab5391da79ef3173c8cb SHA1 211a257b78f4ea462d1d5e64641b6776d905b3c7 SHA256 f561f4eb5d5fe1cff95c881e6aed53a86e9f0de8a52863295a8600375f96ab94
 
DIST rstudio-gwt-2.3.0.zip 78142980 RMD160 5eb61e81e7e773fbb62efe13c67e61c2185e5e2e SHA1 d51fce9166e6b31349659ffca89baf93e39bc84b SHA256 80180317159465547518998f0b7b03ddf55179902c1358e418d504f55e273c02
 
DIST rstudio-gwt-2.4.0.zip 89734508 RMD160 79d159ba2176a4b96d7cefdfcc557301ebb1d31d SHA1 a91ac20db0ddd5994ac3cbfb0e8061d5bbf66f88 SHA256 27d48a4b6df9de01eaf1bd3ba3971a8f32742886f67041ddc3cd9dbe01787ebf
 
EBUILD rstudio-0.94.106.ebuild 3683 RMD160 34999d3e711d4fe6fd4fbfb9aceb3ee46f4cf0ad SHA1 4b0a149cd616fc5ac620d6ca33f4f264acd213c2 SHA256 cb15ca4f3174c30bbf8c1a8399e336f6151794926c057261c9bfc97e6840567c
 
EBUILD rstudio-0.94.110.ebuild 3683 RMD160 34999d3e711d4fe6fd4fbfb9aceb3ee46f4cf0ad SHA1 4b0a149cd616fc5ac620d6ca33f4f264acd213c2 SHA256 cb15ca4f3174c30bbf8c1a8399e336f6151794926c057261c9bfc97e6840567c
 
EBUILD rstudio-0.95.263.ebuild 4473 RMD160 26deee254c93e07e9961d75b7663f40f63482588 SHA1 c2b5014c52fea9c5bdb4bfc9e85d9bf2989a30a6 SHA256 f48a5aa2205177bbe6f4d17ea711ee0d894e82b7d4d66180338f28fd64cb26a0
sci-mathematics/rstudio/files/rstudio-0.94.106-linker_flags.patch
Show inline comments
 
new file 100644
 
diff -urN paths/src/cpp/CMakeLists.txt linker_flags/src/cpp/CMakeLists.txt
 
--- paths/src/cpp/CMakeLists.txt	2011-09-20 08:15:44.000000000 -0700
 
+++ linker_flags/src/cpp/CMakeLists.txt	2011-09-24 00:53:52.553091241 -0700
 
@@ -54,8 +54,8 @@
 
       add_definitions(-D_FORTIFY_SOURCE=2)
 
       add_definitions(-fstack-protector --param ssp-buffer-size=4)
 
       add_definitions(-pie -fPIE)
 
-      set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,relro)
 
-      set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,now)
 
+      set(CMAKE_EXE_LINKER_FLAGS  -Wl,-z,relro ${CMAKE_EXE_LINKER_FLAGS})
 
+      set(CMAKE_EXE_LINKER_FLAGS  -Wl,-z,now ${CMAKE_EXE_LINKER_FLAGS})
 
    endif()
 
 
 
 # Win32 specific global directives
sci-mathematics/rstudio/files/rstudio-0.94.106-paths.patch
Show inline comments
 
new file 100644
 
diff -urN prefs/CMakeGlobals.txt paths/CMakeGlobals.txt
 
--- prefs/CMakeGlobals.txt	2011-09-20 08:15:44.000000000 -0700
 
+++ paths/CMakeGlobals.txt	2011-09-24 00:51:30.488867289 -0700
 
@@ -98,7 +98,7 @@
 
    else()
 
      set(RSTUDIO_INSTALL_BIN bin)
 
    endif()
 
-   set(RSTUDIO_INSTALL_SUPPORTING .)
 
+   set(RSTUDIO_INSTALL_SUPPORTING ./share/rstudio-0.94.106/)
 
 endif()
 
 
 
 # if the install prefix is /usr/local then tweak as appropriate
 
diff -urN prefs/src/cpp/server/CMakeLists.txt paths/src/cpp/server/CMakeLists.txt
 
--- prefs/src/cpp/server/CMakeLists.txt	2011-09-20 08:15:44.000000000 -0700
 
+++ paths/src/cpp/server/CMakeLists.txt	2011-09-24 00:51:30.495867201 -0700
 
@@ -141,7 +141,7 @@
 
    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${RSERVER_INITD_DEBIAN_SCRIPT}.in
 
                   ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_INITD_DEBIAN_SCRIPT})
 
    install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_INITD_DEBIAN_SCRIPT}
 
-           DESTINATION ${RSERVER_INITD_DEBIAN_DIR})
 
+           DESTINATION share/rstudio-0.94.106/${RSERVER_INITD_DEBIAN_DIR})
 
 
 
    # install configured redhat init.d script
 
    set(RSERVER_INITD_REDHAT_DIR "extras/init.d/redhat")
 
@@ -149,7 +149,7 @@
 
    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${RSERVER_INITD_REDHAT_SCRIPT}.in
 
                   ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_INITD_REDHAT_SCRIPT})
 
    install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_INITD_REDHAT_SCRIPT}
 
-           DESTINATION ${RSERVER_INITD_REDHAT_DIR})
 
+           DESTINATION share/rstudio-0.94.106/${RSERVER_INITD_REDHAT_DIR})
 
 
 
    # install configured suse init.d script
 
    set(RSERVER_INITD_SUSE_DIR "extras/init.d/suse")
 
@@ -157,13 +157,13 @@
 
    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${RSERVER_INITD_SUSE_SCRIPT}.in
 
                   ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_INITD_SUSE_SCRIPT})
 
    install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_INITD_SUSE_SCRIPT}
 
-           DESTINATION ${RSERVER_INITD_SUSE_DIR})
 
+           DESTINATION share/rstudio-0.94.106/${RSERVER_INITD_SUSE_DIR})
 
 
 
    # install pam profile
 
    set(RSERVER_PAM_DIR "extras/pam")
 
    set(RSERVER_PAM_PROFILE "${RSERVER_PAM_DIR}/rstudio")
 
    install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${RSERVER_PAM_PROFILE}
 
-           DESTINATION ${RSERVER_PAM_DIR})
 
+           DESTINATION share/rstudio-0.94.106/${RSERVER_PAM_DIR})
 
 
 
    # install configured apparmor profile
 
    set(RSERVER_APPARMOR_DIR "extras/apparmor")
 
@@ -171,9 +171,9 @@
 
    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${RSERVER_APPARMOR_PROFILE}.in
 
                   ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_APPARMOR_PROFILE})
 
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_APPARMOR_PROFILE}
 
-           DESTINATION ${RSERVER_APPARMOR_DIR})
 
+           DESTINATION share/rstudio-0.94.106/${RSERVER_APPARMOR_DIR})
 
    install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/${RSERVER_APPARMOR_DIR}/apparmor-profile-load
 
-           DESTINATION ${RSERVER_APPARMOR_DIR})
 
+           DESTINATION share/rstudio-0.94.106/${RSERVER_APPARMOR_DIR})
 
 
 
    # install configured upstart profile
 
    set(RSERVER_UPSTART_DIR "extras/upstart")
 
@@ -181,6 +181,6 @@
 
    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${RSERVER_UPSTART_PROFILE}.in
 
                   ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_UPSTART_PROFILE})
 
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_UPSTART_PROFILE}
 
-           DESTINATION ${RSERVER_UPSTART_DIR})
 
+           DESTINATION share/rstudio-0.94.106/${RSERVER_UPSTART_DIR})
 
 
 
 endif()
 
diff -urN prefs/src/cpp/server/ServerOptions.cpp paths/src/cpp/server/ServerOptions.cpp
 
--- prefs/src/cpp/server/ServerOptions.cpp	2011-09-20 08:15:44.000000000 -0700
 
+++ paths/src/cpp/server/ServerOptions.cpp	2011-09-24 00:51:30.510867013 -0700
 
@@ -201,7 +201,7 @@
 
 
 
    // convert relative paths by completing from the system installation
 
    // path (this allows us to be relocatable)
 
-   resolvePath(installPath, &wwwLocalPath_);
 
+   resolvePath(installPath.childPath("share/rstudio-0.94.106"), &wwwLocalPath_);
 
    resolvePath(installPath, &authPamHelperPath_);
 
    resolvePath(installPath, &rsessionPath_);
 
    resolvePath(installPath, &rldpathPath_);
 
diff -urN prefs/src/cpp/session/SessionOptions.cpp paths/src/cpp/session/SessionOptions.cpp
 
--- prefs/src/cpp/session/SessionOptions.cpp	2011-09-20 08:15:44.000000000 -0700
 
+++ paths/src/cpp/session/SessionOptions.cpp	2011-09-24 00:51:30.504867089 -0700
 
@@ -272,12 +272,12 @@
 
    }
 
 
 
    // convert relative paths by completing from the app resource path
 
-   resolvePath(resourcePath, &rHelpCssFilePath_);
 
+   resolvePath(resourcePath.childPath("share/rstudio-0.94.106"), &rHelpCssFilePath_);
 
    resolvePath(resourcePath, &agreementFilePath_);
 
-   resolvePath(resourcePath, &wwwLocalPath_);
 
-   resolvePath(resourcePath, &coreRSourcePath_);
 
-   resolvePath(resourcePath, &modulesRSourcePath_);
 
-   resolvePath(resourcePath, &sessionPackagesPath_);
 
+   resolvePath(resourcePath.childPath("share/rstudio-0.94.106"), &wwwLocalPath_);
 
+   resolvePath(resourcePath.childPath("share/rstudio-0.94.106"), &coreRSourcePath_);
 
+   resolvePath(resourcePath.childPath("share/rstudio-0.94.106"), &modulesRSourcePath_);
 
+   resolvePath(resourcePath.childPath("share/rstudio-0.94.106"), &sessionPackagesPath_);
 
    resolvePath(resourcePath, &rpostbackPath_);
 
 
 
    // shared secret with parent
sci-mathematics/rstudio/files/rstudio-0.94.106-prefs.patch
Show inline comments
 
new file 100644
 
diff -urN original/src/gwt/build.xml prefs/src/gwt/build.xml
 
--- original/src/gwt/build.xml	2011-09-20 08:15:44.000000000 -0700
 
+++ prefs/src/gwt/build.xml	2011-09-24 00:44:50.386869251 -0700
 
@@ -101,7 +101,7 @@
 
             <path refid="project.class.path"/>
 
          </classpath>
 
          <!-- add jvmarg -Xss16M or similar if you see a StackOverflowError -->
 
-         <jvmarg value="-Xmx512M"/>
 
+         <jvmarg value="-Xmx512M"/> <jvmarg value="-Djava.util.prefs.userRoot=/var/tmp/portage/sci-mathematics/rstudio-0.94.106/homedir"/>
 
          <arg value="-war"/>
 
          <arg value="www"/>
 
          <arg value="-localWorkers"/>
 
@@ -145,7 +145,7 @@
 
             <pathelement location="src"/>
 
             <path refid="project.class.path"/>
 
          </classpath>
 
-         <jvmarg value="-Xmx512M"/>
 
+         <jvmarg value="-Xmx512M"/> <jvmarg value="-Djava.util.prefs.userRoot=/var/tmp/portage/sci-mathematics/rstudio-0.94.106/homedir"/>
 
          <arg value="-war"/>
 
          <arg value="www"/>
 
          <arg value="-noserver"/>
sci-mathematics/rstudio/files/rstudio-0.94.110-linker_flags.patch
Show inline comments
 
new file 100644
 
diff -urN original/src/cpp/CMakeLists.txt linker_flags/src/cpp/CMakeLists.txt
 
--- original/src/cpp/CMakeLists.txt	2011-09-30 09:02:51.000000000 -0700
 
+++ linker_flags/src/cpp/CMakeLists.txt	2011-10-08 17:41:00.813750986 -0700
 
@@ -54,8 +54,8 @@
 
       add_definitions(-D_FORTIFY_SOURCE=2)
 
       add_definitions(-fstack-protector --param ssp-buffer-size=4)
 
       add_definitions(-pie -fPIE)
 
-      set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,relro)
 
-      set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,now)
 
+      set(CMAKE_EXE_LINKER_FLAGS  -Wl,-z,relro ${CMAKE_EXE_LINKER_FLAGS})
 
+      set(CMAKE_EXE_LINKER_FLAGS  -Wl,-z,now ${CMAKE_EXE_LINKER_FLAGS})
 
    endif()
 
 
 
 # Win32 specific global directives
sci-mathematics/rstudio/files/rstudio-0.94.110-paths.patch
Show inline comments
 
new file 100644
 
diff -urN original/CMakeGlobals.txt paths/CMakeGlobals.txt
 
--- original/CMakeGlobals.txt	2011-09-30 09:02:51.000000000 -0700
 
+++ paths/CMakeGlobals.txt	2011-10-08 17:32:13.420344312 -0700
 
@@ -98,7 +98,7 @@
 
    else()
 
      set(RSTUDIO_INSTALL_BIN bin)
 
    endif()
 
-   set(RSTUDIO_INSTALL_SUPPORTING .)
 
+   set(RSTUDIO_INSTALL_SUPPORTING ./share/rstudio-0.94.110/)
 
 endif()
 
 
 
 # if the install prefix is /usr/local then tweak as appropriate
 
diff -urN original/src/cpp/server/CMakeLists.txt paths/src/cpp/server/CMakeLists.txt
 
--- original/src/cpp/server/CMakeLists.txt	2011-09-30 09:02:51.000000000 -0700
 
+++ paths/src/cpp/server/CMakeLists.txt	2011-10-08 17:32:13.433344148 -0700
 
@@ -141,7 +141,7 @@
 
    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${RSERVER_INITD_DEBIAN_SCRIPT}.in
 
                   ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_INITD_DEBIAN_SCRIPT})
 
    install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_INITD_DEBIAN_SCRIPT}
 
-           DESTINATION ${RSERVER_INITD_DEBIAN_DIR})
 
+           DESTINATION share/rstudio-0.94.110/${RSERVER_INITD_DEBIAN_DIR})
 
 
 
    # install configured redhat init.d script
 
    set(RSERVER_INITD_REDHAT_DIR "extras/init.d/redhat")
 
@@ -149,7 +149,7 @@
 
    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${RSERVER_INITD_REDHAT_SCRIPT}.in
 
                   ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_INITD_REDHAT_SCRIPT})
 
    install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_INITD_REDHAT_SCRIPT}
 
-           DESTINATION ${RSERVER_INITD_REDHAT_DIR})
 
+           DESTINATION share/rstudio-0.94.110/${RSERVER_INITD_REDHAT_DIR})
 
 
 
    # install configured suse init.d script
 
    set(RSERVER_INITD_SUSE_DIR "extras/init.d/suse")
 
@@ -157,13 +157,13 @@
 
    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${RSERVER_INITD_SUSE_SCRIPT}.in
 
                   ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_INITD_SUSE_SCRIPT})
 
    install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_INITD_SUSE_SCRIPT}
 
-           DESTINATION ${RSERVER_INITD_SUSE_DIR})
 
+           DESTINATION share/rstudio-0.94.110/${RSERVER_INITD_SUSE_DIR})
 
 
 
    # install pam profile
 
    set(RSERVER_PAM_DIR "extras/pam")
 
    set(RSERVER_PAM_PROFILE "${RSERVER_PAM_DIR}/rstudio")
 
    install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${RSERVER_PAM_PROFILE}
 
-           DESTINATION ${RSERVER_PAM_DIR})
 
+           DESTINATION share/rstudio-0.94.110/${RSERVER_PAM_DIR})
 
 
 
    # install configured apparmor profile
 
    set(RSERVER_APPARMOR_DIR "extras/apparmor")
 
@@ -171,9 +171,9 @@
 
    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${RSERVER_APPARMOR_PROFILE}.in
 
                   ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_APPARMOR_PROFILE})
 
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_APPARMOR_PROFILE}
 
-           DESTINATION ${RSERVER_APPARMOR_DIR})
 
+           DESTINATION share/rstudio-0.94.110/${RSERVER_APPARMOR_DIR})
 
    install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/${RSERVER_APPARMOR_DIR}/apparmor-profile-load
 
-           DESTINATION ${RSERVER_APPARMOR_DIR})
 
+           DESTINATION share/rstudio-0.94.110/${RSERVER_APPARMOR_DIR})
 
 
 
    # install configured upstart profile
 
    set(RSERVER_UPSTART_DIR "extras/upstart")
 
@@ -181,6 +181,6 @@
 
    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${RSERVER_UPSTART_PROFILE}.in
 
                   ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_UPSTART_PROFILE})
 
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_UPSTART_PROFILE}
 
-           DESTINATION ${RSERVER_UPSTART_DIR})
 
+           DESTINATION share/rstudio-0.94.110/${RSERVER_UPSTART_DIR})
 
 
 
 endif()
 
diff -urN original/src/cpp/server/ServerOptions.cpp paths/src/cpp/server/ServerOptions.cpp
 
--- original/src/cpp/server/ServerOptions.cpp	2011-09-30 09:02:51.000000000 -0700
 
+++ paths/src/cpp/server/ServerOptions.cpp	2011-10-08 17:32:13.458343837 -0700
 
@@ -201,7 +201,7 @@
 
 
 
    // convert relative paths by completing from the system installation
 
    // path (this allows us to be relocatable)
 
-   resolvePath(installPath, &wwwLocalPath_);
 
+   resolvePath(installPath.childPath("share/rstudio-0.94.110"), &wwwLocalPath_);
 
    resolvePath(installPath, &authPamHelperPath_);
 
    resolvePath(installPath, &rsessionPath_);
 
    resolvePath(installPath, &rldpathPath_);
 
diff -urN original/src/cpp/session/SessionOptions.cpp paths/src/cpp/session/SessionOptions.cpp
 
--- original/src/cpp/session/SessionOptions.cpp	2011-09-30 09:02:51.000000000 -0700
 
+++ paths/src/cpp/session/SessionOptions.cpp	2011-10-08 17:32:13.447343974 -0700
 
@@ -272,12 +272,12 @@
 
    }
 
 
 
    // convert relative paths by completing from the app resource path
 
-   resolvePath(resourcePath, &rHelpCssFilePath_);
 
+   resolvePath(resourcePath.childPath("share/rstudio-0.94.110"), &rHelpCssFilePath_);
 
    resolvePath(resourcePath, &agreementFilePath_);
 
-   resolvePath(resourcePath, &wwwLocalPath_);
 
-   resolvePath(resourcePath, &coreRSourcePath_);
 
-   resolvePath(resourcePath, &modulesRSourcePath_);
 
-   resolvePath(resourcePath, &sessionPackagesPath_);
 
+   resolvePath(resourcePath.childPath("share/rstudio-0.94.110"), &wwwLocalPath_);
 
+   resolvePath(resourcePath.childPath("share/rstudio-0.94.110"), &coreRSourcePath_);
 
+   resolvePath(resourcePath.childPath("share/rstudio-0.94.110"), &modulesRSourcePath_);
 
+   resolvePath(resourcePath.childPath("share/rstudio-0.94.110"), &sessionPackagesPath_);
 
    resolvePath(resourcePath, &rpostbackPath_);
 
 
 
    // shared secret with parent
sci-mathematics/rstudio/files/rstudio-0.94.110-prefs.patch
Show inline comments
 
new file 100644
 
diff -urN original/src/gwt/build.xml prefs/src/gwt/build.xml
 
--- original/src/gwt/build.xml	2011-09-30 09:02:51.000000000 -0700
 
+++ prefs/src/gwt/build.xml	2011-10-08 17:23:36.144811146 -0700
 
@@ -101,7 +101,7 @@
 
             <path refid="project.class.path"/>
 
          </classpath>
 
          <!-- add jvmarg -Xss16M or similar if you see a StackOverflowError -->
 
-         <jvmarg value="-Xmx512M"/>
 
+         <jvmarg value="-Xmx512M"/> <jvmarg value="-Djava.util.prefs.userRoot=/var/tmp/portage/sci-mathematics/rstudio-0.94.110/homedir"/>
 
          <arg value="-war"/>
 
          <arg value="www"/>
 
          <arg value="-localWorkers"/>
 
@@ -145,7 +145,7 @@
 
             <pathelement location="src"/>
 
             <path refid="project.class.path"/>
 
          </classpath>
 
-         <jvmarg value="-Xmx512M"/>
 
+         <jvmarg value="-Xmx512M"/> <jvmarg value="-Djava.util.prefs.userRoot=/var/tmp/portage/sci-mathematics/rstudio-0.94.110/homedir"/>
 
          <arg value="-war"/>
 
          <arg value="www"/>
 
          <arg value="-noserver"/>
sci-mathematics/rstudio/files/rstudio-0.95.263-linker_flags.patch
Show inline comments
 
new file 100644
 
diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt
 
index 0589ca0..fe5bd5f 100644
 
--- a/src/cpp/CMakeLists.txt
 
+++ b/src/cpp/CMakeLists.txt
 
@@ -57,7 +57,7 @@ if(UNIX)
 
       add_definitions(-D_FORTIFY_SOURCE=2)
 
       add_definitions(-fstack-protector --param ssp-buffer-size=4)
 
       add_definitions(-pie -fPIE)
 
-      set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,relro,-z,now")
 
+      set(CMAKE_EXE_LINKER_FLAGS "-Wl,-z,relro,-z,now ${CMAKE_EXE_LINKER_FLAGS}")
 
    endif()
 
 
 
 # Win32 specific global directives
sci-mathematics/rstudio/files/rstudio-0.95.263-paths.patch
Show inline comments
 
new file 100644
 
diff --git a/CMakeGlobals.txt b/CMakeGlobals.txt
 
index da74970..1537bff 100644
 
--- a/CMakeGlobals.txt
 
+++ b/CMakeGlobals.txt
 
@@ -103,7 +103,7 @@ else()
 
    else()
 
      set(RSTUDIO_INSTALL_BIN bin)
 
    endif()
 
-   set(RSTUDIO_INSTALL_SUPPORTING .)
 
+   set(RSTUDIO_INSTALL_SUPPORTING ${DISTRO_SHARE})
 
 endif()
 
 
 
 # if the install prefix is /usr/local then tweak as appropriate
 
diff --git a/src/cpp/server/CMakeLists.txt b/src/cpp/server/CMakeLists.txt
 
index af4db1c..96b767e 100644
 
--- a/src/cpp/server/CMakeLists.txt
 
+++ b/src/cpp/server/CMakeLists.txt
 
@@ -142,7 +142,7 @@ if (UNIX AND NOT APPLE)
 
    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${RSERVER_INITD_DEBIAN_SCRIPT}.in
 
                   ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_INITD_DEBIAN_SCRIPT})
 
    install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_INITD_DEBIAN_SCRIPT}
 
-           DESTINATION ${RSERVER_INITD_DEBIAN_DIR})
 
+           DESTINATION ${DISTRO_SHARE}/${RSERVER_INITD_DEBIAN_DIR})
 
 
 
    # install configured redhat init.d script
 
    set(RSERVER_INITD_REDHAT_DIR "extras/init.d/redhat")
 
@@ -150,7 +150,7 @@ if (UNIX AND NOT APPLE)
 
    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${RSERVER_INITD_REDHAT_SCRIPT}.in
 
                   ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_INITD_REDHAT_SCRIPT})
 
    install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_INITD_REDHAT_SCRIPT}
 
-           DESTINATION ${RSERVER_INITD_REDHAT_DIR})
 
+           DESTINATION ${DISTRO_SHARE}/${RSERVER_INITD_REDHAT_DIR})
 
 
 
    # install configured suse init.d script
 
    set(RSERVER_INITD_SUSE_DIR "extras/init.d/suse")
 
@@ -158,13 +158,13 @@ if (UNIX AND NOT APPLE)
 
    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${RSERVER_INITD_SUSE_SCRIPT}.in
 
                   ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_INITD_SUSE_SCRIPT})
 
    install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_INITD_SUSE_SCRIPT}
 
-           DESTINATION ${RSERVER_INITD_SUSE_DIR})
 
+           DESTINATION ${DISTRO_SHARE}/${RSERVER_INITD_SUSE_DIR})
 
 
 
    # install pam profile
 
    set(RSERVER_PAM_DIR "extras/pam")
 
    set(RSERVER_PAM_PROFILE "${RSERVER_PAM_DIR}/rstudio")
 
    install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${RSERVER_PAM_PROFILE}
 
-           DESTINATION ${RSERVER_PAM_DIR})
 
+           DESTINATION ${DISTRO_SHARE}/${RSERVER_PAM_DIR})
 
 
 
    # install configured apparmor profile
 
    set(RSERVER_APPARMOR_DIR "extras/apparmor")
 
@@ -172,9 +172,9 @@ if (UNIX AND NOT APPLE)
 
    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${RSERVER_APPARMOR_PROFILE}.in
 
                   ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_APPARMOR_PROFILE})
 
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_APPARMOR_PROFILE}
 
-           DESTINATION ${RSERVER_APPARMOR_DIR})
 
+           DESTINATION ${DISTRO_SHARE}/${RSERVER_APPARMOR_DIR})
 
    install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/${RSERVER_APPARMOR_DIR}/apparmor-profile-load
 
-           DESTINATION ${RSERVER_APPARMOR_DIR})
 
+           DESTINATION ${DISTRO_SHARE}/${RSERVER_APPARMOR_DIR})
 
 
 
    # install configured upstart profile
 
    set(RSERVER_UPSTART_DIR "extras/upstart")
 
@@ -182,6 +182,6 @@ if (UNIX AND NOT APPLE)
 
    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${RSERVER_UPSTART_PROFILE}.in
 
                   ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_UPSTART_PROFILE})
 
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${RSERVER_UPSTART_PROFILE}
 
-           DESTINATION ${RSERVER_UPSTART_DIR})
 
+           DESTINATION ${DISTRO_SHARE}/${RSERVER_UPSTART_DIR})
 
 
 
 endif()
 
diff --git a/src/cpp/server/ServerOptions.cpp b/src/cpp/server/ServerOptions.cpp
 
index 77a63f1..f0d25f0 100644
 
--- a/src/cpp/server/ServerOptions.cpp
 
+++ b/src/cpp/server/ServerOptions.cpp
 
@@ -201,7 +201,7 @@ ProgramStatus Options::read(int argc, char * const argv[])
 
 
 
    // convert relative paths by completing from the system installation
 
    // path (this allows us to be relocatable)
 
-   resolvePath(installPath, &wwwLocalPath_);
 
+   resolvePath(installPath.childPath(DISTRO_SHARE), &wwwLocalPath_);
 
    resolvePath(installPath, &authPamHelperPath_);
 
    resolvePath(installPath, &rsessionPath_);
 
    resolvePath(installPath, &rldpathPath_);
 
diff --git a/src/cpp/session/SessionOptions.cpp b/src/cpp/session/SessionOptions.cpp
 
index 0df1081..777cc6a 100644
 
--- a/src/cpp/session/SessionOptions.cpp
 
+++ b/src/cpp/session/SessionOptions.cpp
 
@@ -314,12 +314,12 @@ core::ProgramStatus Options::read(int argc, char * const argv[])
 
    }
 
 
 
    // convert relative paths by completing from the app resource path
 
-   resolvePath(resourcePath, &rHelpCssFilePath_);
 
+   resolvePath(resourcePath.childPath(DISTRO_SHARE), &rHelpCssFilePath_);
 
    resolvePath(resourcePath, &agreementFilePath_);
 
-   resolvePath(resourcePath, &wwwLocalPath_);
 
-   resolvePath(resourcePath, &coreRSourcePath_);
 
-   resolvePath(resourcePath, &modulesRSourcePath_);
 
-   resolvePath(resourcePath, &sessionPackagesPath_);
 
+   resolvePath(resourcePath.childPath(DISTRO_SHARE), &wwwLocalPath_);
 
+   resolvePath(resourcePath.childPath(DISTRO_SHARE), &coreRSourcePath_);
 
+   resolvePath(resourcePath.childPath(DISTRO_SHARE), &modulesRSourcePath_);
 
+   resolvePath(resourcePath.childPath(DISTRO_SHARE), &sessionPackagesPath_);
 
    resolvePostbackPath(resourcePath, &rpostbackPath_);
 
 #ifdef _WIN32
 
    resolvePath(resourcePath, &consoleIoPath_);
sci-mathematics/rstudio/files/rstudio-0.95.263-prefs.patch
Show inline comments
 
new file 100644
 
diff --git a/src/gwt/build.xml b/src/gwt/build.xml
 
index 6581bd9..36eadc1 100644
 
--- a/src/gwt/build.xml
 
+++ b/src/gwt/build.xml
 
@@ -26,6 +26,7 @@
 
    <property name="gwt.main.module" value="org.rstudio.studio.RStudio"/>
 
    <property name="ace.bin" value="src/org/rstudio/studio/client/workbench/views/source/editors/text/ace"/>
 
    <property name="json2.bin" value="www/js"/>
 
+   <property environment="env"/>
 
 
 
    <path id="project.class.path">
 
       <pathelement location="bin"/>
 
@@ -102,6 +103,7 @@
 
          </classpath>
 
          <!-- add jvmarg -Xss16M or similar if you see a StackOverflowError -->
 
          <jvmarg value="-Xmx512M"/>
 
+         <jvmarg value="-Djava.util.prefs.userRoot=${env.T}"/>
 
          <arg value="-war"/>
 
          <arg value="www"/>
 
          <arg value="-localWorkers"/>
sci-mathematics/rstudio/files/rstudio-rserver.initd
Show inline comments
 
new file 100644
 
#!/sbin/runscript
 
# Copyright 1999-2007 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 

	
 
start() {
 
	ebegin "Starting RStudio Server"
 
	start-stop-daemon --start --quiet --exec /usr/bin/rserver
 
	eend $?
 
}
 

	
 
stop() {
 
	ebegin "Stopping RStudio Server"
 
	start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --name /usr/bin/rserver
 
	eend $?
 
}
sci-mathematics/rstudio/files/rstudio-rstudio.desktop
Show inline comments
 
new file 100644
 
[Desktop Entry]
 
Type=Application
 
Version=@VERSION@
 
Name=RStudio
 
Comment=An IDE for use with the R language
 
Exec=rstudio
 
Categories=Education;Math
 
Icon=/usr/share/rstudio/rstudio.png
sci-mathematics/rstudio/rstudio-0.94.106.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2011 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 
EAPI="4"
 
inherit cmake-utils pam
 

	
 
MY_GWTVER="2.3.0"
 
MY_GINVER="1.5"
 
DESCRIPTION="RStudio is an IDE for use with the R language."
 
HOMEPAGE="http://www.rstudio.org"
 
SRC_URI="https://github.com/rstudio/rstudio/tarball/v${PV} -> rstudio-${PV}.tar.gz
 
	https://s3.amazonaws.com/rstudio-buildtools/gin-${MY_GINVER}.zip ->
 
	rstudio-gin-${MY_GINVER}.zip
 
	https://s3.amazonaws.com/rstudio-buildtools/gwt-${MY_GWTVER}.zip ->
 
	rstudio-gwt-${MY_GWTVER}.zip"
 

	
 
# The rstudio source can download its dependencies itself. Most are in portage
 
# already, but not gwt and gin. Adding the source packages to SRC_URI instead of
 
# using the provided install script so that an `ebuild fetch' will actually get
 
# you everything you need, without requiring connectivity in the src_prepare
 
# phase.
 
LICENSE="AGPL-3"
 
SLOT="0"
 
KEYWORDS="~amd64 ~x86"
 
IUSE="+desktop server"
 
QTVER="4.7"
 
RDEPEND=">=dev-lang/R-2.11.1
 
	>=x11-libs/pango-1.14
 
	>=dev-libs/boost-1.42
 
	dev-libs/openssl
 
	desktop? (	>=x11-libs/qt-core-${QTVER}
 
				>=x11-libs/qt-gui-${QTVER}
 
				>=x11-libs/qt-webkit-${QTVER}
 
				>=x11-libs/qt-xmlpatterns-${QTVER} )
 
	server? ( virtual/pam )"
 
DEPEND="${RDEPEND}
 
	>=dev-util/cmake-2.6
 
	app-arch/unzip
 
	dev-java/ant-core
 
	virtual/jdk"
 

	
 
pkg_pretend() {
 
	if ! use desktop && ! use server; then
 
		eerror "Must select at least one of RStudio desktop or RStudio server to install"
 
	fi
 
}
 

	
 
src_unpack() {
 
	# since gin-1.5.zip has no toplevel dir, unpack that seperately
 
	unpack rstudio-${PV}.tar.gz rstudio-gwt-${MY_GWTVER}.zip
 
	mkdir "${WORKDIR}"/gin-${MY_GINVER}
 
	cd "${WORKDIR}"/gin-${MY_GINVER}
 
	unpack rstudio-gin-${MY_GINVER}.zip
 
	cd ..
 
	# packages extract to rstudio-rstudio-HASH, so find it this way so we don't
 
	# have to look up the hash for each version.
 
	S=$(ls -d "${WORKDIR}"/rstudio-rstudio-* | head -n 1)
 
	if [[ -z "${S}" ]]; then
 
		die "Failed to determine source directory."
 
	fi
 
}
 

	
 
src_prepare() {
 
	# extract the gin-ver.zip and gwt-ver.zip files to
 
	# the appropriate location
 
	mkdir -p "${S}"/src/gwt/lib/{gwt,gin}
 
	einfo "Adding missing gin to source."
 
	mv "${WORKDIR}"/gin-${MY_GINVER} "${S}"/src/gwt/lib/gin/${MY_GINVER}
 
	einfo "Adding missing gwt sdk to source."
 
	mv "${WORKDIR}"/gwt-${MY_GWTVER} "${S}"/src/gwt/lib/gwt/${MY_GWTVER}
 
	# And now we fix src/gwt/build.xml since java's user preference class is
 
	# braindead and insists on writing where it is not allowed.
 
	# much thanks to http://www.allaboutbalance.com/articles/disableprefs/
 
	epatch "${FILESDIR}/${P}-prefs.patch"
 
	# change the install path, as by default everything is dumped right under
 
	# the prefix.After fixing install paths, now fix the source so the program can 
 
	# find the moved resources.
 
	epatch "${FILESDIR}/${P}-paths.patch"
 
	# Some gcc hardening options were added, however since we add
 
	# "-Wl,--as-needed" we end up with "-Wl,--as-needed;-Wl,-z,relro" which
 
	# leads to linker errors about unknown options, if we make it so the
 
	# as-needed option is the last option on the line, everything is fine.
 
	epatch "${FILESDIR}/${P}-linker_flags.patch"
 
}
 

	
 
src_configure() {
 
	if use server; then
 
		if use desktop; then
 
			MYCMAKEARGS="-DRSTUDIO_TARGET=All"
 
		else
 
			MYCMAKEARGS="-DRSTUDIO_TARGET=Server"
 
		fi
 
	else
 
		MYCMAKEARGS="-DRSTUDIO_TARGET=Desktop"
 
	fi
 

	
 
	cmake-utils_src_configure
 
}
 

	
 
src_install() {
 
	cmake-utils_src_install
 

	
 
	if use server; then
 
		dopamd "${S}"/src/cpp/server/extras/pam/rstudio
 
		newinitd "${FILESDIR}"/rstudio-rserver.initd rstudio-rserver
 
	fi
 
}
 

	
 
pkg_postinst() {
 
	if use server; then
 
		enewgroup rstudio-server
 
		enewuser rstudio-server -1 -1 -1 rstudio-server
 
	fi
 
}
 

	
sci-mathematics/rstudio/rstudio-0.94.110.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2011 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 
EAPI="4"
 
inherit cmake-utils pam
 

	
 
MY_GWTVER="2.3.0"
 
MY_GINVER="1.5"
 
DESCRIPTION="RStudio is an IDE for use with the R language."
 
HOMEPAGE="http://www.rstudio.org"
 
SRC_URI="https://github.com/rstudio/rstudio/tarball/v${PV} -> rstudio-${PV}.tar.gz
 
	https://s3.amazonaws.com/rstudio-buildtools/gin-${MY_GINVER}.zip ->
 
	rstudio-gin-${MY_GINVER}.zip
 
	https://s3.amazonaws.com/rstudio-buildtools/gwt-${MY_GWTVER}.zip ->
 
	rstudio-gwt-${MY_GWTVER}.zip"
 

	
 
# The rstudio source can download its dependencies itself. Most are in portage
 
# already, but not gwt and gin. Adding the source packages to SRC_URI instead of
 
# using the provided install script so that an `ebuild fetch' will actually get
 
# you everything you need, without requiring connectivity in the src_prepare
 
# phase.
 
LICENSE="AGPL-3"
 
SLOT="0"
 
KEYWORDS="~amd64 ~x86"
 
IUSE="+desktop server"
 
QTVER="4.7"
 
RDEPEND=">=dev-lang/R-2.11.1
 
	>=x11-libs/pango-1.14
 
	>=dev-libs/boost-1.42
 
	dev-libs/openssl
 
	desktop? (	>=x11-libs/qt-core-${QTVER}
 
				>=x11-libs/qt-gui-${QTVER}
 
				>=x11-libs/qt-webkit-${QTVER}
 
				>=x11-libs/qt-xmlpatterns-${QTVER} )
 
	server? ( virtual/pam )"
 
DEPEND="${RDEPEND}
 
	>=dev-util/cmake-2.6
 
	app-arch/unzip
 
	dev-java/ant-core
 
	virtual/jdk"
 

	
 
pkg_pretend() {
 
	if ! use desktop && ! use server; then
 
		eerror "Must select at least one of RStudio desktop or RStudio server to install"
 
	fi
 
}
 

	
 
src_unpack() {
 
	# since gin-1.5.zip has no toplevel dir, unpack that seperately
 
	unpack rstudio-${PV}.tar.gz rstudio-gwt-${MY_GWTVER}.zip
 
	mkdir "${WORKDIR}"/gin-${MY_GINVER}
 
	cd "${WORKDIR}"/gin-${MY_GINVER}
 
	unpack rstudio-gin-${MY_GINVER}.zip
 
	cd ..
 
	# packages extract to rstudio-rstudio-HASH, so find it this way so we don't
 
	# have to look up the hash for each version.
 
	S=$(ls -d "${WORKDIR}"/rstudio-rstudio-* | head -n 1)
 
	if [[ -z "${S}" ]]; then
 
		die "Failed to determine source directory."
 
	fi
 
}
 

	
 
src_prepare() {
 
	# extract the gin-ver.zip and gwt-ver.zip files to
 
	# the appropriate location
 
	mkdir -p "${S}"/src/gwt/lib/{gwt,gin}
 
	einfo "Adding missing gin to source."
 
	mv "${WORKDIR}"/gin-${MY_GINVER} "${S}"/src/gwt/lib/gin/${MY_GINVER}
 
	einfo "Adding missing gwt sdk to source."
 
	mv "${WORKDIR}"/gwt-${MY_GWTVER} "${S}"/src/gwt/lib/gwt/${MY_GWTVER}
 
	# And now we fix src/gwt/build.xml since java's user preference class is
 
	# braindead and insists on writing where it is not allowed.
 
	# much thanks to http://www.allaboutbalance.com/articles/disableprefs/
 
	epatch "${FILESDIR}/${P}-prefs.patch"
 
	# change the install path, as by default everything is dumped right under
 
	# the prefix.After fixing install paths, now fix the source so the program can 
 
	# find the moved resources.
 
	epatch "${FILESDIR}/${P}-paths.patch"
 
	# Some gcc hardening options were added, however since we add
 
	# "-Wl,--as-needed" we end up with "-Wl,--as-needed;-Wl,-z,relro" which
 
	# leads to linker errors about unknown options, if we make it so the
 
	# as-needed option is the last option on the line, everything is fine.
 
	epatch "${FILESDIR}/${P}-linker_flags.patch"
 
}
 

	
 
src_configure() {
 
	if use server; then
 
		if use desktop; then
 
			MYCMAKEARGS="-DRSTUDIO_TARGET=All"
 
		else
 
			MYCMAKEARGS="-DRSTUDIO_TARGET=Server"
 
		fi
 
	else
 
		MYCMAKEARGS="-DRSTUDIO_TARGET=Desktop"
 
	fi
 

	
 
	cmake-utils_src_configure
 
}
 

	
 
src_install() {
 
	cmake-utils_src_install
 

	
 
	if use server; then
 
		dopamd "${S}"/src/cpp/server/extras/pam/rstudio
 
		newinitd "${FILESDIR}"/rstudio-rserver.initd rstudio-rserver
 
	fi
 
}
 

	
 
pkg_postinst() {
 
	if use server; then
 
		enewgroup rstudio-server
 
		enewuser rstudio-server -1 -1 -1 rstudio-server
 
	fi
 
}
 

	
sci-mathematics/rstudio/rstudio-0.95.263.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2011 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 
EAPI="4"
 
inherit cmake-utils pam versionator
 

	
 
MY_GWTVER="2.4.0"
 
MY_GINVER="1.5"
 
DESCRIPTION="RStudio is an IDE for use with the R language."
 
HOMEPAGE="http://www.rstudio.org"
 
SRC_URI="https://github.com/rstudio/rstudio/tarball/v${PV} -> rstudio-${PV}.tar.gz
 
	https://s3.amazonaws.com/rstudio-buildtools/gin-${MY_GINVER}.zip ->
 
	rstudio-gin-${MY_GINVER}.zip
 
	https://s3.amazonaws.com/rstudio-buildtools/gwt-${MY_GWTVER}.zip ->
 
	rstudio-gwt-${MY_GWTVER}.zip"
 

	
 
# The rstudio source can download its dependencies itself. Most are in portage
 
# already, but not gwt and gin. Adding the source packages to SRC_URI instead of
 
# using the provided install script so that an `ebuild fetch' will actually get
 
# you everything you need, without requiring connectivity in the src_prepare
 
# phase.
 
LICENSE="AGPL-3"
 
SLOT="0"
 
KEYWORDS="~amd64 ~x86"
 
IUSE="+desktop server"
 
QTVER="4.7"
 
RDEPEND=">=dev-lang/R-2.11.1
 
	>=x11-libs/pango-1.14
 
	>=dev-libs/boost-1.42
 
	dev-libs/openssl
 
	desktop? (	>=x11-libs/qt-core-${QTVER}
 
				>=x11-libs/qt-gui-${QTVER}
 
				>=x11-libs/qt-webkit-${QTVER}
 
				>=x11-libs/qt-xmlpatterns-${QTVER} )
 
	server? ( virtual/pam )"
 
DEPEND="${RDEPEND}
 
	>=dev-util/cmake-2.6
 
	app-arch/unzip
 
	dev-java/ant-core
 
	virtual/jdk"
 

	
 
pkg_pretend() {
 
	if ! use desktop && ! use server; then
 
		eerror "Must select at least one of RStudio desktop or RStudio server to install"
 
	fi
 
}
 

	
 
src_unpack() {
 
	# since gin-1.5.zip has no toplevel dir, unpack that seperately
 
	unpack rstudio-${PV}.tar.gz rstudio-gwt-${MY_GWTVER}.zip
 
	mkdir "${WORKDIR}"/gin-${MY_GINVER}
 
	cd "${WORKDIR}"/gin-${MY_GINVER}
 
	unpack rstudio-gin-${MY_GINVER}.zip
 
	cd ..
 
	# packages extract to rstudio-rstudio-HASH, so find it this way so we don't
 
	# have to look up the hash for each version.
 
	S=$(ls -d "${WORKDIR}"/rstudio-rstudio-* | head -n 1)
 
	if [[ -z "${S}" ]]; then
 
		die "Failed to determine source directory."
 
	fi
 
}
 

	
 
src_prepare() {
 
	# extract the gin-ver.zip and gwt-ver.zip files to
 
	# the appropriate location
 
	mkdir -p "${S}"/src/gwt/lib/{gwt,gin}
 
	einfo "Adding missing gin to source."
 
	mv "${WORKDIR}"/gin-${MY_GINVER} "${S}"/src/gwt/lib/gin/${MY_GINVER}
 
	einfo "Adding missing gwt sdk to source."
 
	mv "${WORKDIR}"/gwt-${MY_GWTVER} "${S}"/src/gwt/lib/gwt/${MY_GWTVER}
 
	# And now we fix src/gwt/build.xml since java's user preference class is
 
	# braindead and insists on writing where it is not allowed.
 
	# much thanks to http://www.allaboutbalance.com/articles/disableprefs/
 
	epatch "${FILESDIR}/${P}-prefs.patch"
 
	# change the install path, as by default everything is dumped right under
 
	# the prefix.After fixing install paths, now fix the source so the program can 
 
	# find the moved resources.
 
	epatch "${FILESDIR}/${P}-paths.patch"
 
	# Some gcc hardening options were added, however since we add
 
	# "-Wl,--as-needed" we end up with "-Wl,--as-needed;-Wl,-z,relro" which
 
	# leads to linker errors about unknown options, if we make it so the
 
	# as-needed option is the last option on the line, everything is fine.
 
	epatch "${FILESDIR}/${P}-linker_flags.patch"
 
	# Adding -DDISTRO_SHARE=... to append-flags breaks cmake so using
 
	# this sed hack for now. ~RMH
 
	DISTRO_DIR="\"share/${PN}\""
 
	sed -i -e "s|DISTRO_SHARE|${DISTRO_DIR}|" src/cpp/server/ServerOptions.cpp
 
	sed -i -e "s|DISTRO_SHARE|${DISTRO_DIR}|" src/cpp/session/SessionOptions.cpp
 
}
 

	
 
src_configure() {
 
	# Set the proper version number (no more 99.9.9). ~RMH
 
	export RSTUDIO_VERSION_MAJOR=$(get_version_component_range 1)
 
	export RSTUDIO_VERSION_MINOR=$(get_version_component_range 2)
 
	export RSTUDIO_VERSION_PATCH=$(get_version_component_range 3)
 
	local mycmakeargs=(-DDISTRO_SHARE=share/${PN})
 
	if use server; then
 
		if use desktop; then
 
			mycmakeargs+=(-DRSTUDIO_TARGET=All)
 
		else
 
			mycmakeargs+=(-DRSTUDIO_TARGET=Server)
 
		fi
 
	else
 
		mycmakeargs+=(-DRSTUDIO_TARGET=Desktop)
 
	fi
 
	cmake-utils_src_configure
 
}
 

	
 
src_install() {
 
	cmake-utils_src_install
 
	if use server; then
 
		dopamd "${S}"/src/cpp/server/extras/pam/rstudio
 
		newinitd "${FILESDIR}"/rstudio-rserver.initd rstudio-rserver
 
	fi
 
	# Add a desktop entry. ~RMH
 
	if use desktop; then
 
		sed -e "s|\@VERSION\@|${PV}|" "${FILESDIR}/${PN}-${PN}.desktop" > "${T}/${PN}-${PN}.desktop"
 
		ls ${T}
 
		domenu "${T}/${PN}-${PN}.desktop" || die
 
	fi
 
}
 

	
 
pkg_postinst() {
 
	if use server; then
 
		enewgroup rstudio-server
 
		enewuser rstudio-server -1 -1 -1 rstudio-server
 
	fi
 
}
sys-apps/915resolution/915resolution-0.5.3-r3945.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2008 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/sys-apps/915resolution/915resolution-0.5.3-r2.ebuild,v 1.1 2008/07/29 20:33:49 chutzpah Exp $
 

	
 
inherit eutils flag-o-matic
 

	
 
DESCRIPTION="Utility to patch VBIOS of Intel 855 / 865 / 915 chipsets"
 
HOMEPAGE="http://www.geocities.com/stomljen/"
 
SRC_URI="http://www.geocities.com/stomljen/${P}.tar.gz"
 

	
 
LICENSE="public-domain"
 
SLOT="0"
 
KEYWORDS="~amd64 ~x86 ~x86-fbsd"
 
IUSE=""
 

	
 
DEPEND=""
 
RDEPEND=""
 

	
 
src_unpack() {
 
	unpack ${A}
 
	cd "${S}"
 

	
 
	epatch "${FILESDIR}/${P}-freebsd.patch"
 

	
 
	# add support for 945 GM
 
	epatch "${FILESDIR}/${P}-945GM.patch"
 
}
 

	
 
src_compile() {
 
	filter-flags -O -O1 -O2 -O3 -Os
 
	emake clean
 
	emake CFLAGS="${CFLAGS}" || die "Compiliation failed."
 
}
 

	
 
src_install() {
 
	dosbin ${PN}
 
	newconfd "${FILESDIR}/confd" ${PN}
 
	newinitd "${FILESDIR}/initd-r1" ${PN}
 
	dodoc README.txt changes.log chipset_info.txt dump_bios
 
}
 

	
 
pkg_postinst() {
 
	elog
 
	elog "${PN} alters your video BIOS in a non-permanent way, this means"
 
	elog "that there is no risk of permanent damage to your video card, but"
 
	elog "it also means that it must be run at every boot. To set it up, "
 
	elog "edit /etc/conf.d/${PN} to add your configuration and type the"
 
	elog "following command to add it the your defautl runlevel:"
 
	elog
 
	elog "    \"rc-update add ${PN} default\""
 
	elog
 
}
sys-apps/915resolution/Manifest
Show inline comments
 
new file 100644
 
AUX 915resolution-0.5.3-945GM.patch 1535 RMD160 0063dad0a0b00ffa506dfe45ebcd757a83318636 SHA1 d703e0bb85562675e5ae46250f8190a7a1af0445 SHA256 549914b05513c5db0f129622d871114a9907effb140e7178c29123030e5f9502
 
AUX 915resolution-0.5.3-965GM.patch 1542 RMD160 e0de5621a760bd2678bcac5fea60f230d68c946d SHA1 852c9746281e30a2bf401c30b23f43a70022501c SHA256 843de9d58572b27414c66bd1c3ce1d61f4d56da11f16064a55f35f9976768c81
 
AUX 915resolution-0.5.3-freebsd.patch 2279 RMD160 3d9ea969c18041c881142f41741d1446a6b8bb8c SHA1 5ac9e2f01aa13470d935217bf5183b6a25e499ca SHA256 7a9ba1e0bdc123ea5dc661633dd7b660be9b35be7cae087b991fcf68ad90bb15
 
AUX confd 633 RMD160 5518de5337843b8b69e853a9641a1ae6494a0cb7 SHA1 2ba05cdf7dcff3ad3f46f44ec73fb792e6630569 SHA256 932b9c2c0f3bec0aff627afe43efb81d1e28906b0d2028e1ec65633d668b9124
 
AUX initd 960 RMD160 d8ea8b2e94d33a65f9cdf39cf3b439d17039c310 SHA1 f41fd2056d12f55ed864b0a4770fc61f445ac4d3 SHA256 54833d3dfb7cf8f5342fbd8cb0c288d7a6c5ace577524f398e23bb5d392ecc62
 
AUX initd-r1 1337 RMD160 4e35a384345b530b359e79f0849795774f324223 SHA1 4f333d0e5689b5f506c3f2b750dc158b4ca2dae6 SHA256 e0add05fe60f21013c9f618b432b1de8f08910e57be69a33649b2886d324ff1e
 
DIST 915resolution-0.5.3.tar.gz 22583 RMD160 a406c6810bbfcf94c5352ea1b1e9178af4078589 SHA1 377a32d33f1987adf372341c8c6664d5673da9b8 SHA256 b64cab834b5e410bca555dc9db8e69f62f6f02496942f35ff4a68f3f27f1b542
 
EBUILD 915resolution-0.5.3-r3945.ebuild 1405 RMD160 c629f6087dcb3b69f6fe2094f7438cb073307765 SHA1 a6eb46fa2fbc1ae39f570e355a2ead80c20b6f67 SHA256 baa34bace3165bfc1e9dcadd7e6009f47f67c84ea164eb3d7eafdd5249854280
sys-apps/915resolution/files/915resolution-0.5.3-945GM.patch
Show inline comments
 
new file 100644
 
--- 915resolution-0.5.3/915resolution.c	2007-04-15 11:46:56.000000000 +0100
 
+++ 915resolution.c.new	2008-09-11 19:55:00.000000000 +0100
 
@@ -55,12 +55,12 @@
 
 typedef unsigned int cardinal;
 
 
 
 typedef enum {
 
-    CT_UNKWN, CT_830, CT_845G, CT_855GM, CT_865G, CT_915G, CT_915GM, CT_945G, CT_945GM,
 
+    CT_UNKWN, CT_830, CT_845G, CT_855GM, CT_865G, CT_915G, CT_915GM, CT_945G, CT_945GM, CT_945GME,
 
     CT_946GZ, CT_G965, CT_Q965
 
 } chipset_type;
 
 
 
 char * chipset_type_names[] = {
 
-    "UNKNOWN", "830",  "845G", "855GM", "865G", "915G", "915GM", "945G", "945GM",
 
+    "UNKNOWN", "830",  "845G", "855GM", "865G", "915G", "915GM", "945G", "945GM", "945GME",
 
     "946GZ",   "G965", "Q965"
 
 };
 
 
 
@@ -213,6 +213,10 @@
 
         type = CT_945GM;
 
         break;
 
 
 
+    case 0x27ac8086:
 
+        type = CT_945GME;
 
+        break;
 
+
 
     case 0x29708086:
 
         type = CT_946GZ;
 
         break;
 
@@ -508,6 +512,7 @@
 
     case CT_915GM:
 
     case CT_945G:
 
     case CT_945GM:
 
+    case CT_945GME:
 
     case CT_946GZ:
 
     case CT_G965:
 
     case CT_Q965:
 
@@ -548,6 +553,7 @@
 
     case CT_915GM:
 
     case CT_945G:
 
     case CT_945GM:
 
+    case CT_945GME:
 
     case CT_946GZ:
 
     case CT_G965:
 
     case CT_Q965:
 
@@ -803,6 +809,9 @@
 
         else if (!strcmp(argv[index], "945GM")) {
 
             *forced_chipset = CT_945GM;
 
         }
 
+        else if (!strcmp(argv[index], "945GME")) {
 
+            *forced_chipset = CT_945GME;
 
+        }
 
         else if (!strcmp(argv[index], "946GZ")) {
 
             *forced_chipset = CT_946GZ;
 
         }
sys-apps/915resolution/files/915resolution-0.5.3-965GM.patch
Show inline comments
 
new file 100644
 
diff -Nru 915resolution-0.5.3/915resolution.c_orig 915resolution-0.5.3/915resolution.c
 
--- 915resolution-0.5.3/915resolution.c_orig	2007-04-15 12:46:56.000000000 +0200
 
+++ 915-resolution-0.5.3/915resolution.c	2007-07-15 21:21:05.000000000 +0200
 
@@ -56,12 +56,12 @@
 
 
 
 typedef enum {
 
     CT_UNKWN, CT_830, CT_845G, CT_855GM, CT_865G, CT_915G, CT_915GM, CT_945G, CT_945GM,
 
-    CT_946GZ, CT_G965, CT_Q965
 
+    CT_946GZ, CT_G965, CT_Q965, CT_965GM
 
 } chipset_type;
 
 
 
 char * chipset_type_names[] = {
 
     "UNKNOWN", "830",  "845G", "855GM", "865G", "915G", "915GM", "945G", "945GM",
 
-    "946GZ",   "G965", "Q965"
 
+    "946GZ",   "G965", "Q965", "965GM"
 
 };
 
 
 
 typedef enum {
 
@@ -225,6 +225,10 @@
 
         type = CT_Q965;
 
         break;
 
 
 
+    case 0x2a008086:
 
+    	type = CT_965GM;
 
+	break;
 
+
 
     default:
 
         type = CT_UNKWN;
 
         break;
 
@@ -511,6 +515,7 @@
 
     case CT_946GZ:
 
     case CT_G965:
 
     case CT_Q965:
 
+    case CT_965GM:
 
         outl(0x80000090, 0xcf8);
 
         map->b1 = inb(0xcfd);
 
         map->b2 = inb(0xcfe);
 
@@ -551,6 +556,7 @@
 
     case CT_946GZ:
 
     case CT_G965:
 
     case CT_Q965:
 
+    case CT_965GM:
 
         outl(0x80000090, 0xcf8);
 
         outb(map->b1, 0xcfd);
 
         outb(map->b2, 0xcfe);
 
@@ -809,6 +815,9 @@
 
         else if (!strcmp(argv[index], "G965")) {
 
             *forced_chipset = CT_G965;
 
         }
 
+	else if (!strcmp(argv[index], "965GM")) {
 
+	    *forced_chipset = CT_965GM;
 
+	}
 
         else if (!strcmp(argv[index], "Q965")) {
 
             *forced_chipset = CT_Q965;
 
         }
sys-apps/915resolution/files/915resolution-0.5.3-freebsd.patch
Show inline comments
 
new file 100644
 
diff -Nru 915resolution-0.5.3/915resolution.c 915resolution-0.5.3-new/915resolution.c
 
--- 915resolution-0.5.3/915resolution.c	2007-04-21 12:40:51 +0000
 
+++ 915resolution-0.5.3-new/915resolution.c	2007-04-21 12:40:51 +0000
 
@@ -22,7 +22,17 @@
 
 #include <string.h>
 
 #include <sys/mman.h>
 
 #include <fcntl.h>
 
+
 
+#if defined(__NetBSD__)
 
+#include <sys/types.h>
 
+#include <machine/sysarch.h>
 
+#include "bsd_io.h"
 
+#elif defined(__FreeBSD__)
 
+#include "bsd_io.h"
 
+#elif defined(linux)
 
 #include <sys/io.h>
 
+#endif
 
+
 
 #include <unistd.h>
 
 #include <assert.h>
 
 
 
@@ -163,12 +173,26 @@
 
 
 
 
 
 void initialize_system(char * filename) {
 
-
 
     if (!filename) {
 
+#if defined(__FreeBSD__)
 
+        int iofd = open("/dev/io", O_RDONLY);
 
+        if (iofd == -1) {
 
+            perror("Unable to obtain the proper IO permissions");
 
+            exit(2);
 
+        }
 
+#elif defined(__NetBSD__)
 
+        if (i386_iopl(3) < 0) {
 
+            perror("Unable to obtain the proper IO permissions");
 
+            exit(2);
 
+        }
 
+#elif defined(linux)
 
         if (iopl(3) < 0) {
 
             perror("Unable to obtain the proper IO permissions");
 
             exit(2);
 
         }
 
+#else
 
+#error Not ported to this operating system
 
+#endif
 
     }
 
 }
 
 
 
diff -Nru 915resolution-0.5.3/bsd_io.h 915resolution-0.5.3-new/bsd_io.h
 
--- 915resolution-0.5.3/bsd_io.h	1970-01-01 00:00:00 +0000
 
+++ 915resolution-0.5.3-new/bsd_io.h	2007-04-21 12:40:51 +0000
 
@@ -0,0 +1,42 @@
 
+#include <sys/types.h>
 
+
 
+#ifndef _BSD_IO_H_
 
+#define _BSD_IO_H_
 
+
 
+/* Ripped out of cpufunc.h, changed args to match Linux. */
 
+static __inline u_int
 
+inl(u_int port)
 
+{
 
+	u_int	data;
 
+
 
+	__asm __volatile("inl %%dx,%0" : "=a" (data) : "d" (port));
 
+	return (data);
 
+}
 
+
 
+static __inline u_char
 
+inb(u_int port)
 
+{
 
+	u_char	data;
 
+
 
+	__asm __volatile("inb %%dx,%0" : "=a" (data) : "d" (port));
 
+	return (data);
 
+}
 
+
 
+static __inline void
 
+outl(u_int data, u_int port)
 
+{
 
+	/*
 
+	 * outl() and outw() aren't used much so we haven't looked at
 
+	 * possible micro-optimizations such as the unnecessary
 
+	 * assignment for them.
 
+	 */
 
+	__asm __volatile("outl %0,%%dx" : : "a" (data), "d" (port));
 
+}
 
+
 
+static __inline void
 
+outb(u_char data, u_int port)
 
+{
 
+	__asm __volatile("outb %0,%1" : : "a" (data), "id" ((u_short)(port)));
 
+}
 
+
 
+#endif
sys-apps/915resolution/files/confd
Show inline comments
 
new file 100644
 
# Copyright 1999-2006 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/sys-apps/915resolution/files/confd,v 1.3 2007/04/17 16:52:24 genstef Exp $
 

	
 
# Config file for /etc/init.d/915resolution
 
# based on the config file included with sys-apps/855resolution
 

	
 
# this example will replace mode "4d" with 1280x768x24
 
replace="'4d 1280 768 24'"
 

	
 
# to replace more than one mode do something like this
 
#replace="'4d 1280 768 24' '5c 1400 1050 16'"
 

	
 
# if you want to log the output add the file here.
 
# this will be overwritten at every boot
 
log="/var/log/915resolution"
sys-apps/915resolution/files/initd
Show inline comments
 
new file 100644
 
#!/sbin/runscript
 

	
 
depend() {
 
    before xdm
 
}
 

	
 
# Credit to David Leverton for this function which handily maps a bash array
 
# structure to positional parameters so existing configs work :)
 
# We'll deprecate arrays at some point though.
 
_get_array() {
 
    if [ -n "${BASH}" ] ; then
 
		case "$(declare -p "$1" 2>/dev/null)" in
 
	    	"declare -a "*)
 
	    	echo "set -- \"\${$1[@]}\""
 
	    	return
 
	    	;;
 
		esac
 
    fi
 

	
 
    echo "eval set -- \"\$$1\""
 
}
 

	
 
checkconfig() {
 
    if [[ -z "${replace[*]}" ]]; then
 
        eerror "You need to have at least one resolution to replace"
 
        eerror "/etc/conf.d/915resolution"
 
        return 1
 
    fi
 

	
 
    [[ "${log}" && -f "${log}" ]] && echo > "${log}"
 

	
 
    return 0
 
}
 

	
 
start() {
 
    checkconfig || return 1
 

	
 
    ebegin "Patching video BIOS with new video modes."
 

	
 
    eval $(_get_array replace)
 
    for mode in "$@"; do
 
        915resolution ${mode} >> ${log:-/dev/null}; retval=$?
 
    done
 

	
 
    eend ${retval}
 
}
 

	
sys-apps/915resolution/files/initd-r1
Show inline comments
 
new file 100644
 
#!/sbin/runscript
 

	
 
depend() {
 
    before xdm
 
}
 

	
 
# Credit to David Leverton for this function which handily maps a bash array
 
# structure to positional parameters so existing configs work :)
 
# We'll deprecate arrays at some point though.
 
_get_array() {
 
    if [ -n "${BASH}" ] ; then
 
		case "$(declare -p "$1" 2>/dev/null)" in
 
	    	"declare -a "*)
 
	    	echo "set -- \"\${$1[@]}\""
 
	    	return
 
	    	;;
 
		esac
 
    fi
 

	
 
    echo "eval set -- \"\$$1\""
 
}
 

	
 
checkconfig() {
 
    if [ -z "${replace}" ]; then
 
        eerror "You need to have at least one resolution to replace"
 
        eerror "/etc/conf.d/915resolution"
 
        return 1
 
    fi
 

	
 
    # Start with a clean log file
 
    cat /dev/null > ${log:-/dev/null}
 

	
 
    return 0
 
}
 

	
 
start() {
 
    checkconfig || return 1
 

	
 
    ebegin "Patching video BIOS with new video modes"
 

	
 
    retval=0
 
    first=0
 
    eval $(_get_array replace)
 
    for mode in "$@"; do
 
        # If this is not the first mode, insert a separator in the log
 
        if [ ${first} -ne 0 ]; then
 
            echo "" >> ${log:-/dev/null}
 
            echo "---" >> ${log:-/dev/null}
 
            echo "" >> ${log:-/dev/null}
 
        fi
 

	
 
        # Set each mode, and remember the last bad return value if any fail
 
        915resolution ${mode} >> ${log:-/dev/null} || retval=$?
 

	
 
        first=1
 
    done
 

	
 
    eend ${retval}
 
}
sys-apps/rhash/Manifest
Show inline comments
 
new file 100644
 
DIST rhash-1.1.8-src.tar.gz 325364 RMD160 f0f6735069ff6b7ae5671a6ab03fb8f7a777f5f5 SHA1 9f125cd43d57cfd716a749573db67f9ed581824b SHA256 6918acdaa6ab524121ea877f230b2cd2223929e4f90bd2aabf94263b4f3a61b5
 
EBUILD rhash-1.1.8.ebuild 673 RMD160 933e3f5625cf31532b43af4b1c90b8a5e7c046bb SHA1 8a9c5bd1224818ec62c945c42ee16c4fd764d59f SHA256 f64c1a200088ec201c28b6fd164bc61c869c1b46ac62df7a76951e792b38ff55
sys-apps/rhash/rhash-1.1.8.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2009 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
DESCRIPTION="Recursive Hasher is a console utility for computing and verifying hash sums of files"
 
HOMEPAGE="http://rhash.anz.ru/"
 
SRC_URI="http://rhash.anz.ru/bin/${P}-src.tar.gz"
 

	
 
LICENSE="MIT"
 
SLOT="0"
 
KEYWORDS="~x86"
 
IUSE=""
 

	
 
DEPEND=""
 

	
 
src_unpack() {
 
	unpack ${A}
 
	sed -i 's/\(LDFLAGS = \)-s /\1/' "${S}"/Makefile || die "patching Makefile"
 
}
 

	
 
src_compile() {
 
	emake OPTFLAGS="${CFLAGS} -DNDEBUG" || die "compile failed"
 
}
 

	
 
src_install() {
 
	emake install DESTDIR="${D}" PREFIX=/usr || die "install failed"
 
	dodoc ChangeLog || die "dodoc failed"
 
}
sys-apps/rhash/rhash/Manifest
Show inline comments
 
new file 100644
 
DIST rhash-1.2.9-src.tar.gz 269949 SHA256 30a8e202ca2c3b731b6dffb460496045d2457a7830d88fe14c706d3eeec2f193 SHA512 60c7094bc166726a8fff8d57ea9f1bf3373e284241a66d06993b284a836d286296e691e0bd9efbd7b4b2179c7762427a28710f8539658aa309f0a97ecdbc4438 WHIRLPOOL 04af1ed46872782e92460e7dc276368e4b139eda07a10e6da6812b650836a9939c1388e62f0184574bd978f060e44b8d4abedf978aa250bc46e35d226f04d38e
 
EBUILD rhash-1.2.9.ebuild 676 SHA256 f5a76e62238f4bb807464077eeae97348d4edd816785d0152f1723ca430f564c SHA512 1641c22d9f24751a974e2a4e4c8a495028a1ade00b946b549f0cef4dc125269892f74e64cfb56a212ca246cc94ca924cddeba305a6c4facb2dd38e68836cea5b WHIRLPOOL 577bc9e1db6d9d6cf7ca75192e684ebdb34a8d56293e3d3cb8268f0f12ce97f1b2e24c685cb3534970c046aa06692d985d4afcc66a819146fd5d27882ad681ff
sys-apps/rhash/rhash/rhash-1.2.9.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2009 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: $
 

	
 
DESCRIPTION="Recursive Hasher is a console utility for computing and verifying hash sums of files"
 
HOMEPAGE="http://rhash.anz.ru/"
 
SRC_URI="mirror://sourceforge/${PN}/${P}-src.tar.gz"
 

	
 
LICENSE="MIT"
 
SLOT="0"
 
KEYWORDS="~x86"
 
IUSE=""
 

	
 
DEPEND=""
 

	
 
src_unpack() {
 
	unpack ${A}
 
	sed -i 's/\(LDFLAGS = \)-s /\1/' "${S}"/Makefile || die "patching Makefile"
 
}
 

	
 
src_compile() {
 
	emake OPTFLAGS="${CFLAGS} -DNDEBUG" || die "compile failed"
 
}
 

	
 
src_install() {
 
	emake install DESTDIR="${D}" PREFIX=/usr || die "install failed"
 
	dodoc ChangeLog || die "dodoc failed"
 
}
sys-kernel/lg4l-kernel-module/Manifest
Show inline comments
 
new file 100644
 
DIST lg4l_0.12.orig.tar.gz 94351 RMD160 7a7ec6a6302a30af619089fe1674c32f0aeb8886 SHA1 314686083a8e062fa088d77564aa7518d63b9189 SHA256 8e9082f3bf29d09e17a7a4f47872249085dc770fb7ce3c4a2956aeef0a6ef375
 
EBUILD lg4l-kernel-module-0.12.ebuild 1224 RMD160 8ef6b7f28755018417069b82d1a485bac403aa38 SHA1 15151ca88f3d1a2ca8d0fd71f672c17265b2d4bb SHA256 3aec5339ffbf68131fa2d4be7b9e9fa34a8039857d840de31ad6decb784dc77d
 
EBUILD lg4l-kernel-module-20110316.ebuild 1897 RMD160 ddf7bfe3b0f3c6e005c0f8179c206bf5a9f23aad SHA1 ecc486b24ad614c322106edfdfde13357d442b37 SHA256 593bf69f05722a176d5e84523a41d4f292acf58ad09c079a7ad21630809e89bf
 
EBUILD lg4l-kernel-module-20110523.ebuild 1897 RMD160 4d42fd7660bb8190203b41a53eb7b2bb801901b6 SHA1 4987a7a123ad318b2907d8f09e281811ba72d085 SHA256 46911cd4ed7e1834ab1d2136686e613019e6faf093b2840d945e605fc300aee5
 
EBUILD lg4l-kernel-module-20110919.ebuild 2181 RMD160 f75ce4bea7c72b497baa89ee1a39893a6f928dca SHA1 3fff28d031ad4ec001ddd6c281aa2bac6e227bc0 SHA256 e7c3d372ae86169c200e100c708b85a848cafa54a9b365b3d367157a9b792609
 
EBUILD lg4l-kernel-module-20120202.ebuild 2181 RMD160 8ff3d53e7c48f8c480f9dbcaad1460f15e5035f8 SHA1 a7aa970cb595b5f7c6ce57934ed587c0810863bf SHA256 f00c80181c56037d51668a8ae3f5ba141a2d44d926c381d4724bd5668c5978f5
 
EBUILD lg4l-kernel-module-20120331-r1.ebuild 2199 RMD160 d50dd62744117cdc5aa6a756ab4c7f6ef7ed6896 SHA1 0311148101777fe4f0f5f731ded489504c6dc875 SHA256 092204d20d648a462eddeca4468ae0c93b02fe6277009de724861b27b94153d3
 
EBUILD lg4l-kernel-module-9999.ebuild 1182 RMD160 320a054296ad8cc5e7358dce2cab3a38562ff541 SHA1 f06c267f7e5ee3a2dab6f4f2bae2f56ddd3a65a3 SHA256 34c83f37b4121c66092f05d5719c7653d5b47889be6d1bebfe57fd3ec6018ea5
sys-kernel/lg4l-kernel-module/lg4l-kernel-module-0.12.ebuild
Show inline comments
 
new file 100644
 
EAPI="2"
 
inherit eutils linux-mod
 

	
 
#SRC_URI="http://download.opensuse.org/repositories/home:/tanktarta:/gnome15/Mandriva_2011/src/lg4l-0.12-1.1.src.rpm"
 
SRC_URI="http://download.opensuse.org/repositories/home:/tanktarta:/gnome15/xUbuntu_11.10/lg4l_0.12.orig.tar.gz"
 
DESCRIPTION="Kernel module for Logitech G13, G15, G19 and G110 keyboards"
 
HOMEPAGE="http://www.gnome15.org/"
 

	
 
LICENSE="GPL-2"
 
KEYWORDS="amd64 x86"
 
IUSE=""
 

	
 
# for some reason the build fails with parallel builds
 
MAKEOPTS=""
 

	
 
DEPEND="virtual/linux-sources"
 
RDEPEND=""
 

	
 
S="${WORKDIR}/lg4l-${PV}"
 

	
 
MODULE_NAMES="hid-g13(extra) hid-g15(extra) hid-g15v2(extra) hid-g510(extra) hid-g19(extra) hid-g110(extra) hid-gfb(extra)"
 

	
 
pkg_setup() {
 
	# framebuffer
 
	CONFIG_CHECK="FB FB_DEFERRED_IO"
 
	CONFIG_CHECK="${CONFIG_CHECK} FB_SYS_FILLRECT FB_SYS_COPYAREA FB_SYS_IMAGEBLIT"
 
	CONFIG_CHECK="${CONFIG_CHECK} FB_SYS_FOPS FB_HECUBA FB_N411"
 
	# LCD backlight
 
	CONFIG_CHECK="${CONFIG_CHECK} BACKLIGHT_LCD_SUPPORT LCD_CLASS_DEVICE"
 
	CONFIG_CHECK="${CONFIG_CHECK} BACKLIGHT_CLASS_DEVICE"
 
	# LED support
 
	CONFIG_CHECK="${CONFIG_CHECK} NEW_LEDS LEDS_CLASS"
 

	
 
	linux-mod_pkg_setup
 

	
 
	BUILD_PARAMS="-C ${KV_DIR} M=${S}"
 
	BUILD_TARGETS=" " # let the default target build the modules
 
}
sys-kernel/lg4l-kernel-module/lg4l-kernel-module-20110316.ebuild
Show inline comments
 
new file 100644
 
EAPI="2"
 
inherit eutils git linux-mod
 

	
 
DESCRIPTION="Kernel module for Logitech G13, G15, G19 and G110 keyboards"
 
HOMEPAGE="http://www.gnome15.org/"
 

	
 
# official repo
 
#EGIT_REPO_URI="git://github.com/martynsmith/lg4l.git"
 

	
 
# my fork
 
EGIT_REPO_URI="git://github.com/CMoH/lg4l.git"
 
EGIT_COMMIT="198ad16df5a738798510"
 

	
 
LICENSE="GPL-2"
 
KEYWORDS="amd64 ~x86"
 
IUSE=""
 

	
 
# for some reason the build fails with parallel builds
 
MAKEOPTS=""
 
#RESTRICT="mirror"
 

	
 
DEPEND=">=virtual/linux-sources-2.6.32"
 
RDEPEND=""
 

	
 
S="${WORKDIR}"
 

	
 
MODULE_NAMES="hid-g13(extra) hid-g15(extra) hid-g19(extra) hid-g110(extra) hid-gfb(extra)"
 
#MODULESD_WL_ALIASES=("wlan0 wl")
 

	
 
pkg_setup() {
 
	# framebuffer
 
	CONFIG_CHECK="FB FB_DEFERRED_IO"
 
	CONFIG_CHECK="${CONFIG_CHECK} FB_SYS_FILLRECT FB_SYS_COPYAREA FB_SYS_IMAGEBLIT"
 
	CONFIG_CHECK="${CONFIG_CHECK} FB_SYS_FOPS FB_HECUBA FB_N411"
 
	# LCD backlight
 
	CONFIG_CHECK="${CONFIG_CHECK} BACKLIGHT_LCD_SUPPORT LCD_CLASS_DEVICE"
 
	CONFIG_CHECK="${CONFIG_CHECK} BACKLIGHT_CLASS_DEVICE"
 
	# LED support
 
	CONFIG_CHECK="${CONFIG_CHECK} NEW_LEDS LEDS_CLASS"
 

	
 
	# if kernel_is ge 2 6 33; then
 
	# 	CONFIG_CHECK="${CONFIG_CHECK} LIB80211 WIRELESS_EXT CFG80211_WEXT WEXT_PRIV ~!MAC80211"
 
	# 	ERROR_WEXT_PRIV="Starting with 2.6.33, it is not possible to set WEXT_PRIV directly. We recommend to set another symbol selecting WEXT_PRIV, for example, PRISM54, IPW2200 and so on. See Bug #248450 comment#98."
 
	# elif kernel_is ge 2 6 31; then
 
	# 	CONFIG_CHECK="${CONFIG_CHECK} LIB80211 WIRELESS_EXT ~!MAC80211"
 
	# elif kernel_is ge 2 6 29; then
 
	# 	CONFIG_CHECK="${CONFIG_CHECK} LIB80211 WIRELESS_EXT ~!MAC80211 COMPAT_NET_DEV_OPS"
 
	# else
 
	# 	CONFIG_CHECK="${CONFIG_CHECK} IEEE80211 IEEE80211_CRYPT_TKIP"
 
	# fi
 
	linux-mod_pkg_setup
 

	
 
	BUILD_PARAMS="-C ${KV_DIR} M=${S}"
 
	BUILD_TARGETS=" " # let the default target build the modules
 
#	BUILD_TARGETS="hid-g13.ko hid-g15.ko hid-g19.ko hid-g110.ko hid-gfb.ko"
 
}
sys-kernel/lg4l-kernel-module/lg4l-kernel-module-20110523.ebuild
Show inline comments
 
new file 100644
 
EAPI="2"
 
inherit eutils git linux-mod
 

	
 
DESCRIPTION="Kernel module for Logitech G13, G15, G19 and G110 keyboards"
 
HOMEPAGE="http://www.gnome15.org/"
 

	
 
# official repo
 
#EGIT_REPO_URI="git://github.com/martynsmith/lg4l.git"
 

	
 
# my fork
 
EGIT_REPO_URI="git://github.com/CMoH/lg4l.git"
 
EGIT_COMMIT="b730748b9a192f37457e"
 

	
 
LICENSE="GPL-2"
 
KEYWORDS="amd64 ~x86"
 
IUSE=""
 

	
 
# for some reason the build fails with parallel builds
 
MAKEOPTS=""
 
#RESTRICT="mirror"
 

	
 
DEPEND=">=virtual/linux-sources-2.6.32"
 
RDEPEND=""
 

	
 
S="${WORKDIR}"
 

	
 
MODULE_NAMES="hid-g13(extra) hid-g15(extra) hid-g19(extra) hid-g110(extra) hid-gfb(extra)"
 
#MODULESD_WL_ALIASES=("wlan0 wl")
 

	
 
pkg_setup() {
 
	# framebuffer
 
	CONFIG_CHECK="FB FB_DEFERRED_IO"
 
	CONFIG_CHECK="${CONFIG_CHECK} FB_SYS_FILLRECT FB_SYS_COPYAREA FB_SYS_IMAGEBLIT"
 
	CONFIG_CHECK="${CONFIG_CHECK} FB_SYS_FOPS FB_HECUBA FB_N411"
 
	# LCD backlight
 
	CONFIG_CHECK="${CONFIG_CHECK} BACKLIGHT_LCD_SUPPORT LCD_CLASS_DEVICE"
 
	CONFIG_CHECK="${CONFIG_CHECK} BACKLIGHT_CLASS_DEVICE"
 
	# LED support
 
	CONFIG_CHECK="${CONFIG_CHECK} NEW_LEDS LEDS_CLASS"
 

	
 
	# if kernel_is ge 2 6 33; then
 
	# 	CONFIG_CHECK="${CONFIG_CHECK} LIB80211 WIRELESS_EXT CFG80211_WEXT WEXT_PRIV ~!MAC80211"
 
	# 	ERROR_WEXT_PRIV="Starting with 2.6.33, it is not possible to set WEXT_PRIV directly. We recommend to set another symbol selecting WEXT_PRIV, for example, PRISM54, IPW2200 and so on. See Bug #248450 comment#98."
 
	# elif kernel_is ge 2 6 31; then
 
	# 	CONFIG_CHECK="${CONFIG_CHECK} LIB80211 WIRELESS_EXT ~!MAC80211"
 
	# elif kernel_is ge 2 6 29; then
 
	# 	CONFIG_CHECK="${CONFIG_CHECK} LIB80211 WIRELESS_EXT ~!MAC80211 COMPAT_NET_DEV_OPS"
 
	# else
 
	# 	CONFIG_CHECK="${CONFIG_CHECK} IEEE80211 IEEE80211_CRYPT_TKIP"
 
	# fi
 
	linux-mod_pkg_setup
 

	
 
	BUILD_PARAMS="-C ${KV_DIR} M=${S}"
 
	BUILD_TARGETS=" " # let the default target build the modules
 
#	BUILD_TARGETS="hid-g13.ko hid-g15.ko hid-g19.ko hid-g110.ko hid-gfb.ko"
 
}
sys-kernel/lg4l-kernel-module/lg4l-kernel-module-20110919.ebuild
Show inline comments
 
new file 100644
 
EAPI="2"
 
inherit eutils git linux-mod
 

	
 
DESCRIPTION="Kernel module for Logitech G13, G15, G19 and G110 keyboards"
 
HOMEPAGE="http://www.gnome15.org/"
 

	
 
# official repo
 
#EGIT_REPO_URI="git://github.com/martynsmith/lg4l.git"
 

	
 
# my fork
 
EGIT_REPO_URI="git://github.com/CMoH/lg4l.git"
 
EGIT_COMMIT="28edf9314d009a02729fd953122913568f42c656"
 

	
 
LICENSE="GPL-2"
 
KEYWORDS="amd64 ~x86"
 
IUSE=""
 

	
 
# for some reason the build fails with parallel builds
 
MAKEOPTS=""
 
#RESTRICT="mirror"
 

	
 
DEPEND="virtual/linux-sources"
 
RDEPEND=""
 

	
 
S="${WORKDIR}"
 

	
 
MODULE_NAMES="hid-g13(extra) hid-g15(extra) hid-g19(extra) hid-g110(extra) hid-gfb(extra)"
 
#MODULESD_WL_ALIASES=("wlan0 wl")
 

	
 
pkg_setup() {
 
	if kernel_is lt 2 6 37; then
 
		echo
 
		ewarn "Your kernel version is ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}"
 
		ewarn "This module works with a kernel version >= 2.6.37"
 
		echo
 
		ewarn "DO NOT file bug reports for kernel versions less than 2.6.7 as they will be ignored."
 
	fi
 

	
 
	# framebuffer
 
	CONFIG_CHECK="FB FB_DEFERRED_IO"
 
	CONFIG_CHECK="${CONFIG_CHECK} FB_SYS_FILLRECT FB_SYS_COPYAREA FB_SYS_IMAGEBLIT"
 
	CONFIG_CHECK="${CONFIG_CHECK} FB_SYS_FOPS FB_HECUBA FB_N411"
 
	# LCD backlight
 
	CONFIG_CHECK="${CONFIG_CHECK} BACKLIGHT_LCD_SUPPORT LCD_CLASS_DEVICE"
 
	CONFIG_CHECK="${CONFIG_CHECK} BACKLIGHT_CLASS_DEVICE"
 
	# LED support
 
	CONFIG_CHECK="${CONFIG_CHECK} NEW_LEDS LEDS_CLASS"
 

	
 
	# if kernel_is ge 2 6 33; then
 
	# 	CONFIG_CHECK="${CONFIG_CHECK} LIB80211 WIRELESS_EXT CFG80211_WEXT WEXT_PRIV ~!MAC80211"
 
	# 	ERROR_WEXT_PRIV="Starting with 2.6.33, it is not possible to set WEXT_PRIV directly. We recommend to set another symbol selecting WEXT_PRIV, for example, PRISM54, IPW2200 and so on. See Bug #248450 comment#98."
 
	# elif kernel_is ge 2 6 31; then
 
	# 	CONFIG_CHECK="${CONFIG_CHECK} LIB80211 WIRELESS_EXT ~!MAC80211"
 
	# elif kernel_is ge 2 6 29; then
 
	# 	CONFIG_CHECK="${CONFIG_CHECK} LIB80211 WIRELESS_EXT ~!MAC80211 COMPAT_NET_DEV_OPS"
 
	# else
 
	# 	CONFIG_CHECK="${CONFIG_CHECK} IEEE80211 IEEE80211_CRYPT_TKIP"
 
	# fi
 
	linux-mod_pkg_setup
 

	
 
	BUILD_PARAMS="-C ${KV_DIR} M=${S}"
 
	BUILD_TARGETS=" " # let the default target build the modules
 
#	BUILD_TARGETS="hid-g13.ko hid-g15.ko hid-g19.ko hid-g110.ko hid-gfb.ko"
 
}
sys-kernel/lg4l-kernel-module/lg4l-kernel-module-20120202.ebuild
Show inline comments
 
new file 100644
 
EAPI="2"
 
inherit eutils git linux-mod
 

	
 
DESCRIPTION="Kernel module for Logitech G13, G15, G19 and G110 keyboards"
 
HOMEPAGE="http://www.gnome15.org/"
 

	
 
# official repo
 
#EGIT_REPO_URI="git://github.com/martynsmith/lg4l.git"
 

	
 
# my fork
 
EGIT_REPO_URI="git://github.com/CMoH/lg4l.git"
 
EGIT_COMMIT="3d9dbb839677e7f762cf0c2c817e019cd46b8289"
 

	
 
LICENSE="GPL-2"
 
KEYWORDS="amd64 ~x86"
 
IUSE=""
 

	
 
# for some reason the build fails with parallel builds
 
MAKEOPTS=""
 
#RESTRICT="mirror"
 

	
 
DEPEND="virtual/linux-sources"
 
RDEPEND=""
 

	
 
S="${WORKDIR}"
 

	
 
MODULE_NAMES="hid-g13(extra) hid-g15(extra) hid-g19(extra) hid-g110(extra) hid-gfb(extra)"
 
#MODULESD_WL_ALIASES=("wlan0 wl")
 

	
 
pkg_setup() {
 
	if kernel_is lt 2 6 37; then
 
		echo
 
		ewarn "Your kernel version is ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}"
 
		ewarn "This module works with a kernel version >= 2.6.37"
 
		echo
 
		ewarn "DO NOT file bug reports for kernel versions less than 2.6.7 as they will be ignored."
 
	fi
 

	
 
	# framebuffer
 
	CONFIG_CHECK="FB FB_DEFERRED_IO"
 
	CONFIG_CHECK="${CONFIG_CHECK} FB_SYS_FILLRECT FB_SYS_COPYAREA FB_SYS_IMAGEBLIT"
 
	CONFIG_CHECK="${CONFIG_CHECK} FB_SYS_FOPS FB_HECUBA FB_N411"
 
	# LCD backlight
 
	CONFIG_CHECK="${CONFIG_CHECK} BACKLIGHT_LCD_SUPPORT LCD_CLASS_DEVICE"
 
	CONFIG_CHECK="${CONFIG_CHECK} BACKLIGHT_CLASS_DEVICE"
 
	# LED support
 
	CONFIG_CHECK="${CONFIG_CHECK} NEW_LEDS LEDS_CLASS"
 

	
 
	# if kernel_is ge 2 6 33; then
 
	# 	CONFIG_CHECK="${CONFIG_CHECK} LIB80211 WIRELESS_EXT CFG80211_WEXT WEXT_PRIV ~!MAC80211"
 
	# 	ERROR_WEXT_PRIV="Starting with 2.6.33, it is not possible to set WEXT_PRIV directly. We recommend to set another symbol selecting WEXT_PRIV, for example, PRISM54, IPW2200 and so on. See Bug #248450 comment#98."
 
	# elif kernel_is ge 2 6 31; then
 
	# 	CONFIG_CHECK="${CONFIG_CHECK} LIB80211 WIRELESS_EXT ~!MAC80211"
 
	# elif kernel_is ge 2 6 29; then
 
	# 	CONFIG_CHECK="${CONFIG_CHECK} LIB80211 WIRELESS_EXT ~!MAC80211 COMPAT_NET_DEV_OPS"
 
	# else
 
	# 	CONFIG_CHECK="${CONFIG_CHECK} IEEE80211 IEEE80211_CRYPT_TKIP"
 
	# fi
 
	linux-mod_pkg_setup
 

	
 
	BUILD_PARAMS="-C ${KV_DIR} M=${S}"
 
	BUILD_TARGETS=" " # let the default target build the modules
 
#	BUILD_TARGETS="hid-g13.ko hid-g15.ko hid-g19.ko hid-g110.ko hid-gfb.ko"
 
}
sys-kernel/lg4l-kernel-module/lg4l-kernel-module-20120331-r1.ebuild
Show inline comments
 
new file 100644
 
EAPI="2"
 
inherit eutils git linux-mod
 

	
 
DESCRIPTION="Kernel module for Logitech G13, G15, G19 and G110 keyboards"
 
HOMEPAGE="http://www.gnome15.org/"
 

	
 
# official repo
 
#EGIT_REPO_URI="git://github.com/martynsmith/lg4l.git"
 

	
 
# my fork
 
EGIT_REPO_URI="git://github.com/CMoH/lg4l.git"
 
EGIT_COMMIT="b7074d5aebadac38d7932ac0447e1df492530ed6"
 

	
 
LICENSE="GPL-2"
 
KEYWORDS="amd64 ~x86"
 
IUSE=""
 

	
 
# for some reason the build fails with parallel builds
 
MAKEOPTS=""
 
#RESTRICT="mirror"
 

	
 
DEPEND="virtual/linux-sources"
 
RDEPEND=""
 

	
 
S="${WORKDIR}"
 

	
 
MODULE_NAMES="hid-g13(extra) hid-g15(extra) hid-g19(extra) hid-g110(extra) hid-gfb(extra) hid-ginput(extra)"
 
#MODULESD_WL_ALIASES=("wlan0 wl")
 

	
 
pkg_setup() {
 
	if kernel_is lt 2 6 37; then
 
		echo
 
		ewarn "Your kernel version is ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}"
 
		ewarn "This module works with a kernel version >= 2.6.37"
 
		echo
 
		ewarn "DO NOT file bug reports for kernel versions less than 2.6.7 as they will be ignored."
 
	fi
 

	
 
	# framebuffer
 
	CONFIG_CHECK="FB FB_DEFERRED_IO"
 
	CONFIG_CHECK="${CONFIG_CHECK} FB_SYS_FILLRECT FB_SYS_COPYAREA FB_SYS_IMAGEBLIT"
 
	CONFIG_CHECK="${CONFIG_CHECK} FB_SYS_FOPS FB_HECUBA FB_N411"
 
	# LCD backlight
 
	CONFIG_CHECK="${CONFIG_CHECK} BACKLIGHT_LCD_SUPPORT LCD_CLASS_DEVICE"
 
	CONFIG_CHECK="${CONFIG_CHECK} BACKLIGHT_CLASS_DEVICE"
 
	# LED support
 
	CONFIG_CHECK="${CONFIG_CHECK} NEW_LEDS LEDS_CLASS"
 

	
 
	# if kernel_is ge 2 6 33; then
 
	# 	CONFIG_CHECK="${CONFIG_CHECK} LIB80211 WIRELESS_EXT CFG80211_WEXT WEXT_PRIV ~!MAC80211"
 
	# 	ERROR_WEXT_PRIV="Starting with 2.6.33, it is not possible to set WEXT_PRIV directly. We recommend to set another symbol selecting WEXT_PRIV, for example, PRISM54, IPW2200 and so on. See Bug #248450 comment#98."
 
	# elif kernel_is ge 2 6 31; then
 
	# 	CONFIG_CHECK="${CONFIG_CHECK} LIB80211 WIRELESS_EXT ~!MAC80211"
 
	# elif kernel_is ge 2 6 29; then
 
	# 	CONFIG_CHECK="${CONFIG_CHECK} LIB80211 WIRELESS_EXT ~!MAC80211 COMPAT_NET_DEV_OPS"
 
	# else
 
	# 	CONFIG_CHECK="${CONFIG_CHECK} IEEE80211 IEEE80211_CRYPT_TKIP"
 
	# fi
 
	linux-mod_pkg_setup
 

	
 
	BUILD_PARAMS="-C ${KV_DIR} M=${S}"
 
	BUILD_TARGETS=" " # let the default target build the modules
 
#	BUILD_TARGETS="hid-g13.ko hid-g15.ko hid-g19.ko hid-g110.ko hid-gfb.ko"
 
}
sys-kernel/lg4l-kernel-module/lg4l-kernel-module-9999.ebuild
Show inline comments
 
new file 100644
 
EAPI="2"
 
inherit eutils git linux-mod
 

	
 
DESCRIPTION="Kernel module for Logitech G13, G15, G19 and G110 keyboards"
 
HOMEPAGE="http://www.gnome15.org/"
 

	
 
# official repo
 
#EGIT_REPO_URI="git://github.com/martynsmith/lg4l.git"
 
# old fork
 
#EGIT_REPO_URI="git://github.com/CMoH/lg4l.git"
 
# new fork
 
EGIT_REPO_URI="git://github.com/tanktarta/lg4l.git"
 

	
 
LICENSE="GPL-2"
 
KEYWORDS="~amd64 ~x86"
 
IUSE=""
 

	
 
# for some reason the build fails with parallel builds
 
MAKEOPTS=""
 

	
 
DEPEND="virtual/linux-sources"
 
RDEPEND=""
 

	
 
S="${WORKDIR}"
 

	
 
MODULE_NAMES="hid-g13(extra) hid-g15(extra) hid-g15v2(extra) hid-g510(extra) hid-g19(extra) hid-g110(extra) hid-gfb(extra)"
 

	
 
pkg_setup() {
 
	# framebuffer
 
	CONFIG_CHECK="FB FB_DEFERRED_IO"
 
	CONFIG_CHECK="${CONFIG_CHECK} FB_SYS_FILLRECT FB_SYS_COPYAREA FB_SYS_IMAGEBLIT"
 
	CONFIG_CHECK="${CONFIG_CHECK} FB_SYS_FOPS FB_HECUBA FB_N411"
 
	# LCD backlight
 
	CONFIG_CHECK="${CONFIG_CHECK} BACKLIGHT_LCD_SUPPORT LCD_CLASS_DEVICE"
 
	CONFIG_CHECK="${CONFIG_CHECK} BACKLIGHT_CLASS_DEVICE"
 
	# LED support
 
	CONFIG_CHECK="${CONFIG_CHECK} NEW_LEDS LEDS_CLASS"
 

	
 
	linux-mod_pkg_setup
 

	
 
	BUILD_PARAMS="-C ${KV_DIR} M=${S}"
 
	BUILD_TARGETS=" " # let the default target build the modules
 
}
virtual/gnome15/Manifest
Show inline comments
 
new file 100644
 
EBUILD gnome15-0.8.3.ebuild 694 RMD160 319a5760bc5df292f66f919849fa027a31c61a74 SHA1 fc299e7fc21af104d9059608c17e96190cea6e84 SHA256 0f134e703a9baaf3305c46ab27ffb99167a35f3f39bfe0eddd8ef9b01d6415bd
virtual/gnome15/gnome15-0.8.3.ebuild
Show inline comments
 
new file 100644
 
EAPI=2
 

	
 
DESCRIPTION="Virtual for gnome15"
 
HOMEPAGE="http://www.tanktarta.pwp.blueyonder.co.uk/gnome15/index.html"
 
SRC_URI=""
 

	
 
LICENSE=""
 
SLOT="0"
 
KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 s390 sh sparc x86 ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~x86-solaris"
 
IUSE="g15d g19d lg4l-module pulseaudio themes"
 

	
 
DEPEND=""
 
RDEPEND="      =app-misc/gnome15-core-0.8.3
 
			   =app-misc/gnome15-plugins-0.8.3
 
g15d?		 ( =dev-libs/libg15-1.3.0 )
 
g19d?        ( =dev-libs/pyliibg19-0.0.4 )
 
lg4l-module? ( =sys-kernel/lg4l-kernel-module-0.12 )
 
pulseaudio?  ( =app-misc/gnome15-impulse15-0.0.12 )
 
themes?      ( =app-misc/gnome15-iconpack-0.0.3 )"
www-servers/lighttpd/Manifest
Show inline comments
 
new file 100644
 
AUX conf/lighttpd.conf 8383 RMD160 ea495b4d343b61ac4b9a1d77d6b93697697e9526 SHA1 349504eacd273ac00eef900844ddbe0f2e97723e SHA256 52598c3428ede27e2784861df16cc1f7b811feee4f4273b26515aba4a79431b6
 
AUX conf/mime-types.conf 3436 RMD160 e4b6024ac6cd48253d4be0abb171ad54e7fbc121 SHA1 2d060ec0d464d73896fdaaedbeb259c2fecac99d SHA256 75a6fce072250ebccde2320996fdace0ebfeb525b03322f0b454f8f4e0e29a85
 
AUX conf/mod_cgi.conf 869 RMD160 1d447bad36822657d014990128891cbdb6169468 SHA1 30066f52e469339cc8a5df8864b4cc2d9c558c3d SHA256 322656b4cfd22ca9f1f8ab160e0b932f1646622422fd49c6fc82ab416223eecf
 
AUX conf/mod_fastcgi.conf 677 RMD160 4403ca232cfcfc51d1d71529be9903bf4123451e SHA1 2b4a3d35215ba8824b5eca943156b373479f1a45 SHA256 954bf2a030e268e7cd880d4cd7d6c13317c09e0ec4e87a8d7d887fb4e7dc83bd
 
AUX conf/mod_fastcgi.conf-1.4.13-r2 687 RMD160 f165f27a08f35c4792bd332be3a04370b69152e3 SHA1 ebb469944098a91772424a825fdd5a0464cef158 SHA256 d1adc1358b5d9e85353caa2e706bfa231d145dd59c075cdcb3f818b3cb5d722e
 
AUX lighttpd-1.4.23-mod_uploadprogress.patch 22472 RMD160 a8cdae6b9280e607c2e8e22a5203bb33f0e4f5d8 SHA1 c3a901da2069e44471677cef7752e70c5974ed81 SHA256 0e74fc4456042a3e747383743ac4cf4bd1d533bd331b7b0ccbcf02adc096ec56
 
AUX lighttpd-1.4.28-detect-libev.patch 441 RMD160 e65051bd918d784d3333dd0f6cde2ce4c5fe6c2e SHA1 0e7e6de46a80564c800674d19dcc05da7d97fc9d SHA256 223756902928f0f5de0100115b1e1def9e312363d16bedbc998b5d983d04ecbe
 
AUX lighttpd-1.4.28-mod_uploadprogress.patch 22472 RMD160 595f07b55bbfac3d9fc41888f3e057a9e54bc1eb SHA1 c55e5eb72ebec2f933bdf9e2061fbeb47a72ba11 SHA256 b7b13ae1de4bbe2cf2687686ae4921d4ae2f66fc524703b3c63924b6d888934f
 
AUX lighttpd.confd 383 RMD160 e7b5d446dcbb55c7855706aa566bf87ab0bad911 SHA1 c300230745dd060dc2b16000270dd33def6df6a7 SHA256 bb6e6721f33e6582a91025f3500e159a599fb856d699e9394093e1018c7925e0
 
AUX lighttpd.initd 1631 RMD160 b2f8df79a2a7514d6b617b66b885eae153e70a76 SHA1 bb521ec6a93a9607e4db0afec0063e91d846bd90 SHA256 6d697a71257e972000df01f70aa6056628b91b9486bc8e3b8a16d1010cdeba21
 
AUX lighttpd.initd-1.4.13-r3 1454 RMD160 287b7b5626559f61b17e113ca00ef0cee6c63962 SHA1 e9a0f6880e03db27082177634d9974bb7f4b3406 SHA256 9dfda47a18f3e7beada18cfec37b39c66d3029b6bde42c538d82cd1292c7616a
 
AUX lighttpd.logrotate 487 RMD160 2edb8b4abf75031af0a3b4182efb5b589dfa0d3c SHA1 24e1b048d7be5520ca5ef8ce31b55df13cc8d72b SHA256 503ee1cd454e2c0f9a212ef60dc8321893eda06ccf721ecbe94d189a09e0bc6c
 
AUX spawn-fcgi.confd 1076 RMD160 9468249fdedc39fa762a569622bae93f8b3481f9 SHA1 81bad945fc016275873e01e5f69838f73b275a3a SHA256 bfa452a849165f921a2febf0b06879db18c4c921f156b1452d06bb821063f768
 
AUX spawn-fcgi.initd 1398 RMD160 3fd0fa41d100629e85960034237abc0866ec3d38 SHA1 9c07c9fd59ec73d5f37df109b188b8a7d691f949 SHA256 ae10c764e2bde9bfc483c57ca94a63d87c24cba00b4c06917885c533d2d245b1
 
DIST lighttpd-1.4.28.tar.bz2 641702 RMD160 5af6c848dd251c9d15f5185f54411744ae41c67b SHA1 42915dffe2af4f870cc1cdc0218edb60a0a315c2 SHA256 7e55747a4feb74545d80a1f2d85b5866b8600705eac946e4402e3364b0666ed2
 
EBUILD lighttpd-1.4.28-r209.ebuild 6237 RMD160 696e4787d908e7ad1c234ba28898fbfd05cca0d9 SHA1 c88f895b7c889e47d37d69fd4197ad5aeef17c0b SHA256 b8553f5a9471b3e38800f758272207e4addd54c2ba9cc8c95ffd68f9f276014f
www-servers/lighttpd/files/conf/lighttpd.conf
Show inline comments
 
new file 100644
 
###############################################################################
 
# Default lighttpd.conf for Gentoo.
 
# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/files/conf/lighttpd.conf,v 1.5 2010/11/18 15:13:47 hwoarang Exp $
 
###############################################################################
 

	
 
# {{{ variables
 
var.basedir  = "/var/www/localhost"
 
var.logdir   = "/var/log/lighttpd"
 
var.statedir = "/var/lib/lighttpd"
 
# }}}
 

	
 
# {{{ modules
 
# At the very least, mod_access and mod_accesslog should be enabled.
 
# All other modules should only be loaded if necessary.
 
# NOTE: the order of modules is important.
 
server.modules = (
 
#    "mod_rewrite",
 
#    "mod_redirect",
 
#    "mod_alias",
 
    "mod_access",
 
#    "mod_cml",
 
#    "mod_trigger_b4_dl",
 
#    "mod_auth",
 
#    "mod_status",
 
#    "mod_setenv",
 
#    "mod_proxy",
 
#    "mod_simple_vhost",
 
#    "mod_evhost",
 
#    "mod_userdir",
 
#    "mod_compress",
 
#    "mod_ssi",
 
#    "mod_usertrack",
 
#    "mod_expire",
 
#    "mod_secdownload",
 
#    "mod_rrdtool",
 
#    "mod_webdav",
 
    "mod_accesslog"
 
)
 
# }}}
 

	
 
# {{{ includes
 
include "mime-types.conf"
 
# fcgi and cgi are included below 
 
# }}}
 

	
 
# {{{ server settings
 
server.username      = "lighttpd"
 
server.groupname     = "lighttpd"
 

	
 
server.document-root = var.basedir + "/htdocs"
 
server.pid-file      = "/var/run/lighttpd.pid"
 

	
 
server.errorlog      = var.logdir  + "/error.log"
 
# log errors to syslog instead
 
#   server.errorlog-use-syslog = "enable"
 

	
 
server.indexfiles    = ("index.php", "index.html",
 
						"index.htm", "default.htm")
 

	
 
# server.tag           = "lighttpd"
 

	
 
server.follow-symlink = "enable"
 

	
 
# event handler (defaults to "poll")
 
# see performance.txt
 
# 
 
# for >= linux-2.4
 
#   server.event-handler = "linux-rtsig"
 
# for >= linux-2.6
 
#   server.event-handler = "linux-sysepoll"
 
# for FreeBSD
 
#   server.event-handler = "freebsd-kqueue"
 

	
 
# chroot to directory (defaults to no chroot)
 
# server.chroot      = "/"
 

	
 
# bind to port (defaults to 80)
 
# server.port          = 81
 

	
 
# bind to name (defaults to all interfaces)
 
# server.bind          = "grisu.home.kneschke.de"
 

	
 
# error-handler for status 404
 
# server.error-handler-404 = "/error-handler.html"
 
# server.error-handler-404 = "/error-handler.php"
 

	
 
# Format: <errorfile-prefix><status-code>.html
 
# -> ..../status-404.html for 'File not found'
 
# server.errorfile-prefix    = var.basedir + "/error/status-"
 

	
 
# FAM support for caching stat() calls
 
# requires that lighttpd be built with USE=fam
 
#   server.stat-cache-engine = "fam"
 

	
 
# If lighttpd was build with IPv6 support, and you would like to listen on IPv6,
 
# uncomment the following:
 
# server.use-ipv6 = "enable"
 

	
 
# }}}
 

	
 
# {{{ mod_staticfile
 

	
 
# which extensions should not be handled via static-file transfer
 
# (extensions that are usually handled by mod_cgi, mod_fastcgi, etc).
 
static-file.exclude-extensions = (".php", ".pl", ".cgi", ".fcgi")
 
# }}}
 

	
 
# {{{ mod_accesslog
 
accesslog.filename   = var.logdir + "/access.log"
 
# }}}
 

	
 
# {{{ mod_dirlisting
 
# enable directory listings
 
#   dir-listing.activate      = "enable"
 
#
 
# don't list hidden files/directories
 
#   dir-listing.hide-dotfiles = "enable"
 
#
 
# use a different css for directory listings
 
#   dir-listing.external-css  = "/path/to/dir-listing.css"
 
#
 
# list of regular expressions.  files that match any of the
 
# specified regular expressions will be excluded from directory
 
# listings.
 
#   dir-listing.exclude = ("^\.", "~$")
 
# }}}
 

	
 
# {{{ mod_access
 
# see access.txt
 

	
 
url.access-deny = ("~", ".inc")
 
# }}}
 

	
 
# {{{ mod_userdir
 
# see userdir.txt
 
#
 
# userdir.path = "public_html"
 
# userdir.exclude-user = ("root")
 
# }}}
 

	
 
# {{{ mod_ssi
 
# see ssi.txt
 
#
 
# ssi.extension = (".shtml")
 
# }}}
 

	
 
# {{{ mod_ssl
 
# see ssl.txt
 
#
 
# ssl.engine    = "enable"
 
# ssl.pemfile   = "server.pem"
 
# }}}
 

	
 
# {{{ mod_status
 
# see status.txt
 
#
 
# status.status-url  = "/server-status"
 
# status.config-url  = "/server-config"
 
# }}}
 

	
 
# {{{ mod_simple_vhost
 
# see simple-vhost.txt
 
#
 
#  If you want name-based virtual hosting add the next three settings and load
 
#  mod_simple_vhost
 
#
 
# document-root =
 
#   virtual-server-root + virtual-server-default-host + virtual-server-docroot
 
# or
 
#   virtual-server-root + http-host + virtual-server-docroot
 
#
 
# simple-vhost.server-root   = "/home/weigon/wwwroot/servers/"
 
# simple-vhost.default-host  = "grisu.home.kneschke.de"
 
# simple-vhost.document-root = "/pages/"
 
# }}}
 

	
 
# {{{ mod_compress
 
# see compress.txt
 
#
 
# compress.cache-dir   = var.statedir + "/cache/compress"
 
# compress.filetype    = ("text/plain", "text/html")
 
# }}}
 

	
 
# {{{ mod_proxy
 
# see proxy.txt
 
#
 
# proxy.server               = ( ".php" =>
 
#                               ( "localhost" =>
 
#                                 (
 
#                                   "host" => "192.168.0.101",
 
#                                   "port" => 80
 
#                                 )
 
#                               )
 
#                             )
 
# }}}
 

	
 
# {{{ mod_auth
 
# see authentication.txt
 
#
 
# auth.backend               = "plain"
 
# auth.backend.plain.userfile = "lighttpd.user"
 
# auth.backend.plain.groupfile = "lighttpd.group"
 

	
 
# auth.backend.ldap.hostname = "localhost"
 
# auth.backend.ldap.base-dn  = "dc=my-domain,dc=com"
 
# auth.backend.ldap.filter   = "(uid=$)"
 

	
 
# auth.require               = ( "/server-status" =>
 
#                               (
 
#                                 "method"  => "digest",
 
#                                 "realm"   => "download archiv",
 
#                                 "require" => "user=jan"
 
#                               ),
 
#                               "/server-info" =>
 
#                               (
 
#                                 "method"  => "digest",
 
#                                 "realm"   => "download archiv",
 
#                                 "require" => "valid-user"
 
#                               )
 
#                             )
 
# }}}
 

	
 
# {{{ mod_rewrite
 
# see rewrite.txt
 
#
 
# url.rewrite = (
 
#	"^/$"		=>		"/server-status"
 
# )
 
# }}}
 

	
 
# {{{ mod_redirect
 
# see redirect.txt
 
#
 
# url.redirect = (
 
#	"^/wishlist/(.+)"		=>		"http://www.123.org/$1"
 
# )
 
# }}}
 

	
 
# {{{ mod_evhost
 
# define a pattern for the host url finding
 
# %% => % sign
 
# %0 => domain name + tld
 
# %1 => tld
 
# %2 => domain name without tld
 
# %3 => subdomain 1 name
 
# %4 => subdomain 2 name
 
#
 
# evhost.path-pattern        = "/home/storage/dev/www/%3/htdocs/"
 
# }}}
 

	
 
# {{{ mod_expire
 
# expire.url = (
 
#	"/buggy/"		=>		"access 2 hours",
 
#	"/asdhas/"		=>		"access plus 1 seconds 2 minutes"
 
# )
 
# }}}
 

	
 
# {{{ mod_rrdtool
 
# see rrdtool.txt
 
#
 
# rrdtool.binary  = "/usr/bin/rrdtool"
 
# rrdtool.db-name = var.statedir + "/lighttpd.rrd"
 
# }}}
 

	
 
# {{{ mod_setenv
 
# see setenv.txt
 
#
 
# setenv.add-request-header  = ( "TRAV_ENV" => "mysql://user@host/db" )
 
# setenv.add-response-header = ( "X-Secret-Message" => "42" )
 
# }}}
 

	
 
# {{{ mod_trigger_b4_dl
 
# see trigger_b4_dl.txt
 
#
 
# trigger-before-download.gdbm-filename = "/home/weigon/testbase/trigger.db"
 
# trigger-before-download.memcache-hosts = ( "127.0.0.1:11211" )
 
# trigger-before-download.trigger-url = "^/trigger/"
 
# trigger-before-download.download-url = "^/download/"
 
# trigger-before-download.deny-url = "http://127.0.0.1/index.html"
 
# trigger-before-download.trigger-timeout = 10
 
# }}}
 

	
 
# {{{ mod_cml
 
# see cml.txt
 
#
 
# don't forget to add index.cml to server.indexfiles
 
# cml.extension               = ".cml"
 
# cml.memcache-hosts          = ( "127.0.0.1:11211" )
 
# }}} 
 

	
 
# {{{ mod_webdav
 
# see webdav.txt
 
#
 
# $HTTP["url"] =~ "^/dav($|/)" {
 
#     webdav.activate = "enable"
 
#     webdav.is-readonly = "enable"
 
# }
 
# }}}
 

	
 
# {{{ extra rules
 
#
 
# set Content-Encoding and reset Content-Type for browsers that
 
# support decompressing on-thy-fly (requires mod_setenv)
 
# $HTTP["url"] =~ "\.gz$" {
 
#     setenv.add-response-header = ("Content-Encoding" => "x-gzip")
 
#     mimetype.assign = (".gz" => "text/plain")
 
# }
 

	
 
# $HTTP["url"] =~ "\.bz2$" {
 
#     setenv.add-response-header = ("Content-Encoding" => "x-bzip2")
 
#     mimetype.assign = (".bz2" => "text/plain")
 
# }
 
#
 
# }}}
 

	
 
# {{{ debug
 
# debug.log-request-header   = "enable"
 
# debug.log-response-header  = "enable"
 
# debug.log-request-handling = "enable"
 
# debug.log-file-not-found   = "enable"
 
# }}}
 

	
 
# {{{ cgi includes
 
# uncomment for cgi support
 
#   include "mod_cgi.conf"
 
# uncomment for php/fastcgi support
 
#   include "mod_fastcgi.conf"
 
# }}}
 

	
 
# vim: set ft=conf foldmethod=marker et :
www-servers/lighttpd/files/conf/mime-types.conf
Show inline comments
 
new file 100644
 
###############################################################################
 
# Default mime-types.conf for Gentoo.
 
# include'd from lighttpd.conf.
 
# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/files/conf/mime-types.conf,v 1.4 2010/03/14 21:45:18 bangert Exp $
 
###############################################################################
 

	
 
# {{{ mime types
 
mimetype.assign             = (
 
  ".svg"          =>      "image/svg+xml",
 
  ".svgz"         =>      "image/svg+xml",
 
  ".pdf"          =>      "application/pdf",
 
  ".sig"          =>      "application/pgp-signature",
 
  ".spl"          =>      "application/futuresplash",
 
  ".class"        =>      "application/octet-stream",
 
  ".ps"           =>      "application/postscript",
 
  ".torrent"      =>      "application/x-bittorrent",
 
  ".dvi"          =>      "application/x-dvi",
 
  ".gz"           =>      "application/x-gzip",
 
  ".pac"          =>      "application/x-ns-proxy-autoconfig",
 
  ".swf"          =>      "application/x-shockwave-flash",
 
  ".tar.gz"       =>      "application/x-tgz",
 
  ".tgz"          =>      "application/x-tgz",
 
  ".tar"          =>      "application/x-tar",
 
  ".zip"          =>      "application/zip",
 
  ".dmg"          =>      "application/x-apple-diskimage",
 
  ".mp3"          =>      "audio/mpeg",
 
  ".m3u"          =>      "audio/x-mpegurl",
 
  ".wma"          =>      "audio/x-ms-wma",
 
  ".wax"          =>      "audio/x-ms-wax",
 
  ".ogg"          =>      "application/ogg",
 
  ".wav"          =>      "audio/x-wav",
 
  ".gif"          =>      "image/gif",
 
  ".jpg"          =>      "image/jpeg",
 
  ".jpeg"         =>      "image/jpeg",
 
  ".png"          =>      "image/png",
 
  ".xbm"          =>      "image/x-xbitmap",
 
  ".xpm"          =>      "image/x-xpixmap",
 
  ".xwd"          =>      "image/x-xwindowdump",
 
  ".css"          =>      "text/css",
 
  ".html"         =>      "text/html",
 
  ".htm"          =>      "text/html",
 
  ".js"           =>      "text/javascript",
 
  ".asc"          =>      "text/plain",
 
  ".c"            =>      "text/plain",
 
  ".h"            =>      "text/plain",
 
  ".cc"           =>      "text/plain",
 
  ".cpp"          =>      "text/plain",
 
  ".hh"           =>      "text/plain",
 
  ".hpp"          =>      "text/plain",
 
  ".conf"         =>      "text/plain",
 
  ".log"          =>      "text/plain",
 
  ".text"         =>      "text/plain",
 
  ".txt"          =>      "text/plain",
 
  ".diff"         =>      "text/plain",
 
  ".patch"        =>      "text/plain",
 
  ".ebuild"       =>      "text/plain",
 
  ".eclass"       =>      "text/plain",
 
  ".rtf"          =>      "application/rtf",
 
  ".bmp"          =>      "image/bmp",
 
  ".tif"          =>      "image/tiff",
 
  ".tiff"         =>      "image/tiff",
 
  ".ico"          =>      "image/x-icon",
 
  ".dtd"          =>      "text/xml",
 
  ".xml"          =>      "text/xml",
 
  ".mpeg"         =>      "video/mpeg",
 
  ".mpg"          =>      "video/mpeg",
 
  ".mov"          =>      "video/quicktime",
 
  ".qt"           =>      "video/quicktime",
 
  ".avi"          =>      "video/x-msvideo",
 
  ".asf"          =>      "video/x-ms-asf",
 
  ".asx"          =>      "video/x-ms-asf",
 
  ".wmv"          =>      "video/x-ms-wmv",
 
  ".bz2"          =>      "application/x-bzip",
 
  ".tbz"          =>      "application/x-bzip-compressed-tar",
 
  ".tar.bz2"      =>      "application/x-bzip-compressed-tar"
 
 )
 
# }}}
 

	
 
# vim: set ft=conf foldmethod=marker et :
www-servers/lighttpd/files/conf/mod_cgi.conf
Show inline comments
 
new file 100644
 
###############################################################################
 
# mod_cgi.conf
 
# include'd by lighttpd.conf.
 
# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/files/conf/mod_cgi.conf,v 1.1 2005/08/27 12:36:13 ka0ttic Exp $
 
###############################################################################
 

	
 
#
 
# see cgi.txt for more information on using mod_cgi
 
#
 

	
 
server.modules += ("mod_cgi")
 

	
 
# NOTE: this requires mod_alias
 
alias.url = (
 
     "/cgi-bin/"	    =>	    var.basedir + "/cgi-bin/"
 
)
 

	
 
#
 
# Note that you'll also want to enable the
 
# cgi-bin alias via mod_alias (above).
 
#
 

	
 
$HTTP["url"] =~ "^/cgi-bin/" {
 
    # disable directory listings
 
    dir-listing.activate = "disable"
 
    # only allow cgi's in this directory
 
    cgi.assign = (
 
		".pl"	=>	"/usr/bin/perl",
 
		".cgi"	=>	"/usr/bin/perl"
 
	)
 
}
 

	
 
# vim: set ft=conf foldmethod=marker et :
www-servers/lighttpd/files/conf/mod_fastcgi.conf
Show inline comments
 
new file 100644
 
###############################################################################
 
# mod_fastcgi.conf
 
# include'd by lighttpd.conf.
 
# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/files/conf/mod_fastcgi.conf,v 1.3 2009/04/03 20:59:34 bangert Exp $
 
###############################################################################
 

	
 
server.modules += ("mod_fastcgi")
 
fastcgi.server = ( ".php" =>
 
		            ( "localhost" =>
 
			            (
 
				            "socket"		=>		"/var/run/lighttpd/lighttpd-fastcgi-php-" + PID + ".socket",
 
				            "bin-path"	=>		"/usr/bin/php-cgi"
 
			            )
 
		            )
 
	            )
 

	
 
# vim: set ft=conf foldmethod=marker et :
www-servers/lighttpd/files/conf/mod_fastcgi.conf-1.4.13-r2
Show inline comments
 
new file 100644
 
###############################################################################
 
# mod_fastcgi.conf
 
# include'd by lighttpd.conf.
 
# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/files/conf/mod_fastcgi.conf-1.4.13-r2,v 1.1 2007/04/01 23:22:00 robbat2 Exp $
 
###############################################################################
 

	
 
server.modules += ("mod_fastcgi")
 
fastcgi.server = ( ".php" =>
 
		            ( "localhost" =>
 
			            (
 
				            "socket"		=>		"/var/run/lighttpd/lighttpd-fastcgi-php-" + PID + ".socket",
 
				            "bin-path"	=>		"/usr/bin/php-cgi"
 
			            )
 
		            )
 
	            )
 

	
 
# vim: set ft=conf foldmethod=marker et :
www-servers/lighttpd/files/lighttpd-1.4.23-mod_uploadprogress.patch
Show inline comments
 
new file 100644
 
diff -Nru lighttpd-1.4.22.orig/src/connections.c lighttpd-1.4.22/src/connections.c
 
--- lighttpd-1.4.22.orig/src/connections.c	2009-02-19 14:15:14.000000000 +0100
 
+++ lighttpd-1.4.22/src/connections.c	2009-04-22 17:45:20.000000000 +0200
 
@@ -1401,11 +1401,15 @@
 
 			if (http_request_parse(srv, con)) {
 
 				/* we have to read some data from the POST request */
 
 
 
+				plugins_call_handle_request_end(srv, con);
 
+
 
 				connection_set_state(srv, con, CON_STATE_READ_POST);
 
 
 
 				break;
 
 			}
 
 
 
+			plugins_call_handle_request_end(srv, con);
 
+
 
 			connection_set_state(srv, con, CON_STATE_HANDLE_REQUEST);
 
 
 
 			break;
 
diff -Nru lighttpd-1.4.22.orig/src/Makefile.am lighttpd-1.4.22/src/Makefile.am
 
--- lighttpd-1.4.22.orig/src/Makefile.am	2009-02-19 14:15:14.000000000 +0100
 
+++ lighttpd-1.4.22/src/Makefile.am	2009-04-22 17:46:34.000000000 +0200
 
@@ -246,6 +246,11 @@
 
 mod_accesslog_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined
 
 mod_accesslog_la_LIBADD = $(common_libadd)
 
 
 
+lib_LTLIBRARIES += mod_uploadprogress.la
 
+mod_uploadprogress_la_SOURCES = mod_uploadprogress.c
 
+mod_uploadprogress_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined
 
+mod_uploadprogress_la_LIBADD = $(common_libadd)
 
+
 
 
 
 hdr = server.h buffer.h network.h log.h keyvalue.h \
 
       response.h request.h fastcgi.h chunk.h \
 
diff -Nru lighttpd-1.4.22.orig/src/plugin.c lighttpd-1.4.22/src/plugin.c
 
--- lighttpd-1.4.22.orig/src/plugin.c	2009-02-19 14:15:14.000000000 +0100
 
+++ lighttpd-1.4.22/src/plugin.c	2009-04-22 17:45:20.000000000 +0200
 
@@ -34,6 +34,7 @@
 
 	PLUGIN_FUNC_UNSET,
 
 		PLUGIN_FUNC_HANDLE_URI_CLEAN,
 
 		PLUGIN_FUNC_HANDLE_URI_RAW,
 
+		PLUGIN_FUNC_HANDLE_REQUEST_END,
 
 		PLUGIN_FUNC_HANDLE_REQUEST_DONE,
 
 		PLUGIN_FUNC_HANDLE_CONNECTION_CLOSE,
 
 		PLUGIN_FUNC_HANDLE_TRIGGER,
 
@@ -262,6 +263,7 @@
 
 
 
 PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_URI_CLEAN, handle_uri_clean)
 
 PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_URI_RAW, handle_uri_raw)
 
+PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_REQUEST_END, handle_request_end)
 
 PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_REQUEST_DONE, handle_request_done)
 
 PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_CONNECTION_CLOSE, handle_connection_close)
 
 PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_SUBREQUEST, handle_subrequest)
 
@@ -389,6 +391,7 @@
 
 
 
 		PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_URI_CLEAN, handle_uri_clean);
 
 		PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_URI_RAW, handle_uri_raw);
 
+		PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_REQUEST_END, handle_request_end);
 
 		PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_REQUEST_DONE, handle_request_done);
 
 		PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_CONNECTION_CLOSE, handle_connection_close);
 
 		PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_TRIGGER, handle_trigger);
 
diff -Nru lighttpd-1.4.22.orig/src/plugin.h lighttpd-1.4.22/src/plugin.h
 
--- lighttpd-1.4.22.orig/src/plugin.h	2009-02-19 14:15:14.000000000 +0100
 
+++ lighttpd-1.4.22/src/plugin.h	2009-04-22 17:45:20.000000000 +0200
 
@@ -42,12 +42,12 @@
 
 	handler_t (* handle_uri_clean)       (server *srv, connection *con, void *p_d);    /* after uri is set */
 
 	handler_t (* handle_docroot)         (server *srv, connection *con, void *p_d);    /* getting the document-root */
 
 	handler_t (* handle_physical)        (server *srv, connection *con, void *p_d);    /* mapping url to physical path */
 
+        handler_t (* handle_request_end)     (server *srv, connection *con, void *p_d);    /* a handler for the request content */
 
 	handler_t (* handle_request_done)    (server *srv, connection *con, void *p_d);    /* at the end of a request */
 
 	handler_t (* handle_connection_close)(server *srv, connection *con, void *p_d);    /* at the end of a connection */
 
 	handler_t (* handle_joblist)         (server *srv, connection *con, void *p_d);    /* after all events are handled */
 
 
 
 
 
-
 
 	handler_t (* handle_subrequest_start)(server *srv, connection *con, void *p_d);
 
 
 
 	                                                                                   /* when a handler for the request
 
@@ -68,6 +68,7 @@
 
 handler_t plugins_call_handle_uri_clean(server *srv, connection *con);
 
 handler_t plugins_call_handle_subrequest_start(server *srv, connection *con);
 
 handler_t plugins_call_handle_subrequest(server *srv, connection *con);
 
+handler_t plugins_call_handle_request_end(server *srv, connection *con);
 
 handler_t plugins_call_handle_request_done(server *srv, connection *con);
 
 handler_t plugins_call_handle_docroot(server *srv, connection *con);
 
 handler_t plugins_call_handle_physical(server *srv, connection *con);
 
diff -Nru lighttpd-1.4.22.orig/src/mod_uploadprogress.c lighttpd-1.4.22/src/mod_uploadprogress.c
 
--- lighttpd-1.4.22.orig/src/mod_uploadprogress.c	1970-01-01 01:00:00.000000000 +0100
 
+++ lighttpd-1.4.22/src/mod_uploadprogress.c	2009-04-22 17:32:38.000000000 +0200
 
@@ -0,0 +1,648 @@
 
+#include <ctype.h>
 
+#include <stdlib.h>
 
+#include <string.h>
 
+
 
+#include "base.h"
 
+#include "log.h"
 
+#include "buffer.h"
 
+
 
+#include "plugin.h"
 
+
 
+#include "response.h"
 
+#include "stat_cache.h"
 
+
 
+#define CONFIG_UPLOAD_PROGRESS_URL "upload-progress.progress-url"
 
+#define CONFIG_UPLOAD_PROGRESS_TIMEOUT "upload-progress.remove-timeout"
 
+#define CONFIG_UPLOAD_PROGRESS_DEBUG "upload-progress.debug"
 
+
 
+#define SAFE_BUF_STR(x) x && x->ptr ? x->ptr : "(null)"
 
+
 
+/**
 
+ * uploadprogress for lighttpd
 
+ *
 
+ * Initial: Jan Kneschke <jan@kneschke.de>
 
+ * Timeout+Status addon: Bjoern Kalkbrenner <terminar@cyberphoria.org> [20070112]
 
+ *
 
+ * Ported to Lighttpd 1.4.22 by Radek Senfeld <rush@logic.cz>
 
+ *
 
+ * Backport based on revision 2369
 
+ * http://redmine.lighttpd.net/projects/lighttpd/repository/changes/trunk/src/mod_uploadprogress.c
 
+ *
 
+ * the timeout is used to keep in the status information intact even if the parent
 
+ * connection is gone already
 
+ *
 
+ */
 
+
 
+typedef struct {
 
+	buffer     *tracking_id;
 
+	connection *con;
 
+
 
+	time_t timeout;
 
+	int status;
 
+	off_t size;
 
+} connection_map_entry;
 
+
 
+typedef struct {
 
+	connection_map_entry **ptr;
 
+
 
+	size_t used;
 
+	size_t size;
 
+} connection_map;
 
+
 
+/* plugin config for all request/connections */
 
+
 
+typedef struct {
 
+	buffer *progress_url;
 
+	unsigned short debug;
 
+	unsigned short remove_timeout;
 
+} plugin_config;
 
+
 
+typedef struct {
 
+	PLUGIN_DATA;
 
+
 
+	connection_map *con_map;
 
+
 
+	buffer *tmp_buf; /** used as temporary buffer for extracting the tracking id */
 
+
 
+	plugin_config **config_storage;
 
+
 
+	plugin_config conf;
 
+} plugin_data;
 
+
 
+/**
 
+ *
 
+ * connection maps
 
+ *
 
+ */
 
+
 
+/* init the plugin data */
 
+static connection_map *connection_map_init() {
 
+	connection_map *cm;
 
+
 
+	cm = calloc(1, sizeof(*cm));
 
+
 
+	return cm;
 
+}
 
+
 
+static void connection_map_free(connection_map *cm) {
 
+	size_t i;
 
+	for (i = 0; i < cm->size; i++) {
 
+		connection_map_entry *cme = cm->ptr[i];
 
+
 
+		if (!cme) break;
 
+
 
+		if (cme->tracking_id) {
 
+			buffer_free(cme->tracking_id);
 
+		}
 
+		free(cme);
 
+	}
 
+
 
+	free(cm);
 
+}
 
+
 
+static connection_map_entry *connection_map_insert(connection_map *cm, buffer *tracking_id, connection *con) {
 
+	connection_map_entry *cme;
 
+	size_t i;
 
+
 
+	if (cm->size == 0) {
 
+		cm->size = 16;
 
+		cm->ptr = malloc(cm->size * sizeof(*(cm->ptr)));
 
+		for (i = 0; i < cm->size; i++) {
 
+			cm->ptr[i] = NULL;
 
+		}
 
+	} else if (cm->used == cm->size) {
 
+		cm->size += 16;
 
+		cm->ptr = realloc(cm->ptr, cm->size * sizeof(*(cm->ptr)));
 
+		for (i = cm->used; i < cm->size; i++) {
 
+			cm->ptr[i] = NULL;
 
+		}
 
+	}
 
+
 
+	if (cm->ptr[cm->used]) {
 
+		/* is already alloced, just reuse it */
 
+		cme = cm->ptr[cm->used];
 
+	} else {
 
+		cme = malloc(sizeof(*cme));
 
+		cme->tracking_id = buffer_init();
 
+	}
 
+	cme->timeout = 0;
 
+	cme->status = 0;
 
+	buffer_copy_string_buffer(cme->tracking_id, tracking_id);
 
+	cme->con = con;
 
+
 
+	cm->ptr[cm->used++] = cme;
 
+
 
+	return cme;
 
+}
 
+
 
+static connection_map_entry *connection_map_get_connection_entry(connection_map *cm, buffer *tracking_id) {
 
+	size_t i;
 
+
 
+	for (i = 0; i < cm->used; i++) {
 
+		connection_map_entry *cme = cm->ptr[i];
 
+
 
+		if (buffer_is_equal(cme->tracking_id, tracking_id)) {
 
+			/* found connection */
 
+			return cme;
 
+		}
 
+	}
 
+	return NULL;
 
+}
 
+
 
+static void connection_map_remove_connection(connection_map *cm, size_t i) {
 
+	connection_map_entry *cme = cm->ptr[i];
 
+
 
+	buffer_reset(cme->tracking_id);
 
+	cme->timeout=0;
 
+	cme->status=0;
 
+
 
+	cm->used--;
 
+
 
+	/* swap positions with the last entry */
 
+	if (cm->used) {
 
+		cm->ptr[i] = cm->ptr[cm->used];
 
+		cm->ptr[cm->used] = cme;
 
+	}
 
+}
 
+
 
+/**
 
+ * remove dead tracking IDs
 
+ *
 
+ * uploadprogress.remove-timeout sets a grace-period in which the
 
+ * connection status is still known even of the connection is already
 
+ * being removed
 
+ *
 
+ */
 
+static void connection_map_clear_timeout_connections(connection_map *cm) {
 
+	size_t i;
 
+	time_t now_t = time(NULL);
 
+
 
+	for (i = 0; i < cm->used; i++) {
 
+		connection_map_entry *cme = cm->ptr[i];
 
+
 
+		if (cme->timeout != 0 && cme->timeout < now_t) {
 
+			/* found connection */
 
+			connection_map_remove_connection(cm, i);
 
+		}
 
+	}
 
+}
 
+
 
+/**
 
+ * extract the tracking-id from the parameters
 
+ *
 
+ * for POST requests it is part of the request headers
 
+ * for GET requests ... too
 
+ */
 
+static buffer *get_tracking_id(plugin_data *p, server *srv, connection *con) {
 
+	data_string *ds;
 
+	buffer *b = NULL;
 
+	char *qstr=NULL;
 
+	size_t i;
 
+
 
+	/* the request has to contain a 32byte ID */
 
+	if (NULL == (ds = (data_string *)array_get_element(con->request.headers, "X-Progress-ID"))) {
 
+		char *amp = NULL;
 
+
 
+		/* perhaps the POST request is using the querystring to pass the X-Progress-ID */
 
+		if (buffer_is_empty(con->uri.query)) {
 
+			/*
 
+			 * con->uri.query will not be parsed out if a 413 error happens
 
+			 */
 
+			if (NULL != (qstr = strchr(con->request.uri->ptr, '?'))) {
 
+				/** extract query string from request.uri */
 
+				buffer_copy_string(con->uri.query, qstr + 1);
 
+			} else {
 
+				return NULL;
 
+			}
 
+		}
 
+
 
+		/** split the query-string and extract the X-Progress-ID */
 
+		do {
 
+			char *eq = NULL;
 
+			char *start = amp ? amp + 1 : con->uri.query->ptr;
 
+
 
+			amp = strchr(start, '&');
 
+
 
+			/* check the string between start and amp for = */
 
+
 
+			if (amp) {
 
+				buffer_copy_string_len(p->tmp_buf, start, amp - start);
 
+			} else {
 
+				buffer_copy_string(p->tmp_buf, start);
 
+			}
 
+
 
+			eq = strchr(p->tmp_buf->ptr, '=');
 
+
 
+			if (eq) {
 
+				*eq = '\0';
 
+
 
+				if (0 == strcmp(p->tmp_buf->ptr, "X-Progress-ID")) {
 
+					size_t key_len = sizeof("X-Progress-ID") - 1;
 
+					size_t var_len = p->tmp_buf->used - 1;
 
+					/* found */
 
+
 
+					buffer_copy_string_len(p->tmp_buf, start + key_len + 1, var_len - key_len - 1);
 
+
 
+					b = p->tmp_buf;
 
+
 
+					break;
 
+				}
 
+			}
 
+		} while (amp);
 
+
 
+		if (!b) return NULL;
 
+	} else {
 
+		/* request header was found, use it */
 
+		b = ds->value;
 
+	}
 
+
 
+	if (b->used != 32 + 1) {
 
+		if (p->conf.debug) log_error_write(srv, __FILE__, __LINE__, "sds", "the Progress-ID has to be 32 characters long, got", b->used - 1, "characters");
 
+		return NULL;
 
+	}
 
+
 
+	for (i = 0; i < b->used - 1; i++) {
 
+		char c = b->ptr[i];
 
+
 
+		if (!light_isxdigit(c)) {
 
+			if (p->conf.debug) log_error_write(srv, __FILE__, __LINE__, "sds", "only hex-digits are allowed (0-9 + a-f): (ascii:", c, ")");
 
+			return NULL;
 
+		}
 
+	}
 
+
 
+	return b;
 
+}
 
+
 
+/* init the plugin data */
 
+INIT_FUNC(mod_uploadprogress_init) {
 
+	plugin_data *p;
 
+
 
+	p = calloc(1, sizeof(*p));
 
+
 
+	p->con_map = connection_map_init();
 
+	p->tmp_buf = buffer_init();
 
+
 
+	return p;
 
+}
 
+
 
+/* detroy the plugin data */
 
+FREE_FUNC(mod_uploadprogress_free) {
 
+	plugin_data *p = p_d;
 
+
 
+	UNUSED(srv);
 
+
 
+	if (!p) return HANDLER_GO_ON;
 
+
 
+	if (p->config_storage) {
 
+		size_t i;
 
+		for (i = 0; i < srv->config_context->used; i++) {
 
+			plugin_config *s = p->config_storage[i];
 
+
 
+			buffer_free(s->progress_url);
 
+			s->remove_timeout=0;
 
+
 
+			free(s);
 
+		}
 
+		free(p->config_storage);
 
+	}
 
+
 
+	connection_map_free(p->con_map);
 
+	buffer_free(p->tmp_buf);
 
+
 
+	free(p);
 
+
 
+	return HANDLER_GO_ON;
 
+}
 
+
 
+/* handle plugin config and check values */
 
+
 
+SETDEFAULTS_FUNC(mod_uploadprogress_set_defaults) {
 
+	plugin_data *p = p_d;
 
+	size_t i = 0;
 
+
 
+	config_values_t cv[] = {
 
+		{ CONFIG_UPLOAD_PROGRESS_URL, NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_CONNECTION },       /* 0 */
 
+		{ CONFIG_UPLOAD_PROGRESS_TIMEOUT, NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION },    /* 1 */
 
+		{ CONFIG_UPLOAD_PROGRESS_DEBUG, NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION },    /* 2 */
 
+		{ NULL,                         NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET }
 
+	};
 
+
 
+	if (!p) return HANDLER_ERROR;
 
+
 
+	p->config_storage = calloc(1, srv->config_context->used * sizeof(specific_config *));
 
+
 
+	for (i = 0; i < srv->config_context->used; i++) {
 
+		plugin_config *s;
 
+
 
+		s = calloc(1, sizeof(plugin_config));
 
+		s->progress_url    = buffer_init();
 
+		s->remove_timeout  = 60;
 
+		s->debug  = 0;
 
+
 
+		cv[0].destination = s->progress_url;
 
+		cv[1].destination = &(s->remove_timeout);
 
+		cv[2].destination = &(s->debug);
 
+
 
+		p->config_storage[i] = s;
 
+
 
+		if (0 != config_insert_values_global(srv, ((data_config *)srv->config_context->data[i])->value, cv)) {
 
+			return HANDLER_ERROR;
 
+		}
 
+	}
 
+
 
+	return HANDLER_GO_ON;
 
+}
 
+
 
+#define PATCH_OPTION(x) \
 
+	p->conf.x = s->x;
 
+static int mod_uploadprogress_patch_connection(server *srv, connection *con, plugin_data *p) {
 
+	size_t i, j;
 
+	plugin_config *s = p->config_storage[0];
 
+
 
+	PATCH_OPTION(progress_url);
 
+	PATCH_OPTION(remove_timeout);
 
+	PATCH_OPTION(debug);
 
+
 
+	/* skip the first, the global context */
 
+	for (i = 1; i < srv->config_context->used; i++) {
 
+		data_config *dc = (data_config *)srv->config_context->data[i];
 
+		s = p->config_storage[i];
 
+
 
+		/* condition didn't match */
 
+		if (!config_check_cond(srv, con, dc)) continue;
 
+
 
+		/* merge config */
 
+		for (j = 0; j < dc->value->used; j++) {
 
+			data_unset *du = dc->value->data[j];
 
+
 
+			if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_UPLOAD_PROGRESS_URL))) {
 
+				PATCH_OPTION(progress_url);
 
+			} else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_UPLOAD_PROGRESS_TIMEOUT))) {
 
+				PATCH_OPTION(remove_timeout);
 
+			} else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_UPLOAD_PROGRESS_DEBUG))) {
 
+				PATCH_OPTION(debug);
 
+			}
 
+		}
 
+	}
 
+
 
+	return 0;
 
+}
 
+
 
+/**
 
+ *
 
+ * the idea:
 
+ *
 
+ * for the first request we check if it is a post-request
 
+ *
 
+ * if no, move out, don't care about them
 
+ *
 
+ * if yes, take the connection structure and register it locally
 
+ * in the progress-struct together with an session-id (md5 ... )
 
+ *
 
+ * if the connections closes, cleanup the entry in the progress-struct
 
+ *
 
+ * a second request can now get the info about the size of the upload,
 
+ * the received bytes
 
+ *
 
+ */
 
+
 
+URIHANDLER_FUNC(mod_uploadprogress_uri_handler) {
 
+	plugin_data *p = p_d;
 
+	buffer *tracking_id;
 
+	buffer *b;
 
+	connection_map_entry *post_con_entry = NULL;
 
+	connection_map_entry *map_con_entry = NULL;
 
+
 
+	if (buffer_is_empty(con->uri.path)) return HANDLER_GO_ON;
 
+
 
+	/* no progress URL set, ignore request */
 
+	if (buffer_is_empty(p->conf.progress_url)) return HANDLER_GO_ON;
 
+
 
+	switch(con->request.http_method) {
 
+	case HTTP_METHOD_POST:
 
+		/**
 
+		 * a POST request is the UPLOAD itself
 
+		 *
 
+		 * get the unique tracker id
 
+		 */
 
+		if (NULL == (tracking_id = get_tracking_id(p, srv, con))) {
 
+			return HANDLER_GO_ON;
 
+		}
 
+
 
+		if (NULL == (map_con_entry = connection_map_get_connection_entry(p->con_map, tracking_id))) {
 
+			connection_map_insert(p->con_map, tracking_id, con);
 
+
 
+			if (p->conf.debug) log_error_write(srv, __FILE__, __LINE__, "ss", "POST: connection is new, registered:", SAFE_BUF_STR(tracking_id));
 
+		} else {
 
+			map_con_entry->timeout = 0;
 
+			map_con_entry->status = 0;
 
+
 
+			if (p->conf.debug) log_error_write(srv, __FILE__, __LINE__, "ss", "POST: connection is known, id:", SAFE_BUF_STR(tracking_id));
 
+		}
 
+
 
+		return HANDLER_GO_ON;
 
+	case HTTP_METHOD_GET:
 
+		/**
 
+		 * the status request for the current connection
 
+		 */
 
+		if (p->conf.debug) log_error_write(srv, __FILE__, __LINE__, "ssss", "(uploadprogress) urls", SAFE_BUF_STR(con->uri.path), "==", SAFE_BUF_STR(p->conf.progress_url));
 
+
 
+		if (!buffer_is_equal(con->uri.path, p->conf.progress_url)) {
 
+			return HANDLER_GO_ON;
 
+		}
 
+
 
+		/* get the tracker id */
 
+		if (NULL == (tracking_id = get_tracking_id(p, srv, con))) {
 
+			return HANDLER_GO_ON;
 
+		}
 
+
 
+		buffer_reset(con->physical.path);
 
+
 
+		con->file_started = 1;
 
+		con->http_status = 200;
 
+		con->file_finished = 1;
 
+
 
+		/* send JSON content */
 
+
 
+		response_header_overwrite(srv, con, CONST_STR_LEN("Content-Type"), CONST_STR_LEN("text/javascript"));
 
+
 
+		/* just an attempt the force the IE/proxies to NOT cache the request */
 
+		response_header_overwrite(srv, con, CONST_STR_LEN("Pragma"), CONST_STR_LEN("no-cache"));
 
+		response_header_overwrite(srv, con, CONST_STR_LEN("Expires"), CONST_STR_LEN("Thu, 19 Nov 1981 08:52:00 GMT"));
 
+		response_header_overwrite(srv, con, CONST_STR_LEN("Cache-Control"),
 
+				CONST_STR_LEN("no-store, no-cache, must-revalidate, post-check=0, pre-check=0"));
 
+
 
+		b = chunkqueue_get_append_buffer(con->write_queue);
 
+
 
+		/* get the connection */
 
+		if (NULL == (post_con_entry = connection_map_get_connection_entry(p->con_map, tracking_id))) {
 
+			/**
 
+			 * looks like we don't know the tracking id yet, GET and POST out of sync ? */
 
+			buffer_append_string_len(b, CONST_STR_LEN("{ \"state\" : \"unknown\" }\r\n"));
 
+			con->response.content_length += b->used - 1;
 
+
 
+			if (p->conf.debug) log_error_write(srv, __FILE__, __LINE__, "ssss", "connection unknown:", SAFE_BUF_STR(tracking_id), ", sending:", SAFE_BUF_STR(b));
 
+
 
+			return HANDLER_FINISHED;
 
+		}
 
+
 
+		buffer_copy_string_len(b, CONST_STR_LEN("{ \"state\" : "));
 
+
 
+		if (post_con_entry->status == 413) {
 
+			/* the upload was too large */
 
+			buffer_append_string_len(b, CONST_STR_LEN("\"error\", \"status\" : 413"));
 
+		} else if (post_con_entry->con == NULL) {
 
+			/* the connection is already gone */
 
+			buffer_append_string_len(b, CONST_STR_LEN("\"done\", \"size\" : "));
 
+			buffer_append_off_t(b, post_con_entry->size);
 
+		} else {
 
+			/* the upload is already done, but the connection might be still open */
 
+			buffer_append_string(b, post_con_entry->con->state == CON_STATE_READ_POST ? "\"uploading\"" : "\"done\"");
 
+			buffer_append_string_len(b, CONST_STR_LEN(", \"received\" : "));
 
+			buffer_append_off_t(b, post_con_entry->con->bytes_read);
 
+			buffer_append_string_len(b, CONST_STR_LEN(", \"size\" : "));
 
+			buffer_append_off_t(b, post_con_entry->con->request.content_length);
 
+		}
 
+		buffer_append_string_len(b, CONST_STR_LEN("}\r\n"));
 
+		con->response.content_length += b->used - 1;
 
+
 
+		if (p->conf.debug) log_error_write(srv, __FILE__, __LINE__, "ssss", "connection is known:", SAFE_BUF_STR(tracking_id), ", sending:", SAFE_BUF_STR(b));
 
+
 
+		return HANDLER_FINISHED;
 
+	default:
 
+		break;
 
+	}
 
+
 
+	return HANDLER_GO_ON;
 
+}
 
+
 
+/**
 
+ * check for POST request
 
+ */
 
+CONNECTION_FUNC(mod_uploadprogress_request_end) {
 
+	plugin_data *p = p_d;
 
+
 
+	buffer *tracking_id;
 
+	connection_map_entry *map_con_entry = NULL;
 
+
 
+	UNUSED(srv);
 
+
 
+	/* no request URL, ignore request */
 
+	if (buffer_is_empty(con->request.uri)) return HANDLER_GO_ON;
 
+
 
+	mod_uploadprogress_patch_connection(srv, con, p);
 
+
 
+	/*
 
+	 * we only want to process the upload (POST request)
 
+	 */
 
+	if (con->request.http_method != HTTP_METHOD_POST) {
 
+		return HANDLER_GO_ON;
 
+	}
 
+
 
+	if (p->conf.debug) {
 
+		log_error_write(srv, __FILE__, __LINE__, "sxsdsd", "request_end: con=", (void *) con, ", http_method=", con->request.http_method, ", http_status=", con->http_status);
 
+	}
 
+
 
+	/* get the tracker id */
 
+	if (NULL == (tracking_id = get_tracking_id(p, srv, con))) {
 
+		return HANDLER_GO_ON;
 
+	}
 
+
 
+	if (NULL == (map_con_entry = connection_map_get_connection_entry(p->con_map, tracking_id))) {
 
+		/**
 
+		 * in case the request parser meant the request was too large the URI handler won't
 
+		 * get called. Insert the connection mapping here
 
+		 */
 
+		if (NULL == (map_con_entry = connection_map_insert(p->con_map, tracking_id, con))) {
 
+			return HANDLER_GO_ON;
 
+		}
 
+	}
 
+
 
+	/* ok, found our entries, setting status */
 
+	map_con_entry->status = con->http_status;
 
+
 
+	return HANDLER_GO_ON;
 
+}
 
+
 
+/**
 
+ * remove the parent connection from the connection mapping
 
+ * when it got closed
 
+ *
 
+ * keep the mapping active for a while to send a valid final status
 
+ */
 
+CONNECTION_FUNC(mod_uploadprogress_request_done) {
 
+	plugin_data *p = p_d;
 
+	buffer *tracking_id;
 
+	connection_map_entry *cm = NULL;
 
+
 
+	UNUSED(srv);
 
+
 
+	if (buffer_is_empty(con->request.uri)) return HANDLER_GO_ON;
 
+
 
+	/*
 
+	 * only need to handle the upload request.
 
+	 */
 
+	if (con->request.http_method != HTTP_METHOD_POST) {
 
+		return HANDLER_GO_ON;
 
+	}
 
+
 
+	if (NULL == (tracking_id = get_tracking_id(p, srv, con))) {
 
+		return HANDLER_GO_ON;
 
+	}
 
+
 
+	if (p->conf.debug) {
 
+		log_error_write(srv, __FILE__, __LINE__, "sssd", "upload is done, moving tracking-id to backlog: tracking-id=", SAFE_BUF_STR(tracking_id), ", http_status=", con->http_status);
 
+	}
 
+
 
+	/*
 
+	 * set timeout on the upload's connection_map_entry.
 
+	 */
 
+	if (NULL == (cm = connection_map_get_connection_entry(p->con_map, tracking_id))) {
 
+		if (p->conf.debug) {
 
+			log_error_write(srv, __FILE__, __LINE__, "sss", "tracking ID", SAFE_BUF_STR(tracking_id), "not found, can't set timeout");
 
+		}
 
+		return HANDLER_GO_ON;
 
+	}
 
+
 
+	/* save request size to be able to report it even when cm->con == NULL */
 
+	cm->size = con->request.content_length;
 
+
 
+	cm->timeout = time(NULL) + p->conf.remove_timeout;
 
+	cm->con     = NULL; /* con becomes invalid very soon */
 
+
 
+	return HANDLER_GO_ON;
 
+}
 
+
 
+/**
 
+ * remove dead connections once in while
 
+ */
 
+TRIGGER_FUNC(mod_uploadprogress_trigger) {
 
+	plugin_data *p = p_d;
 
+
 
+	if ((srv->cur_ts % 10) != 0) return HANDLER_GO_ON;
 
+
 
+	connection_map_clear_timeout_connections(p->con_map);
 
+
 
+	return HANDLER_GO_ON;
 
+}
 
+
 
+
 
+/* this function is called at dlopen() time and inits the callbacks */
 
+
 
+int mod_uploadprogress_plugin_init(plugin *p) {
 
+	p->version     = LIGHTTPD_VERSION_ID;
 
+	p->name        = buffer_init_string("uploadprogress");
 
+
 
+	p->init        = mod_uploadprogress_init;
 
+	p->handle_uri_clean = mod_uploadprogress_uri_handler;
 
+	p->handle_request_end = mod_uploadprogress_request_end;
 
+	p->handle_request_done = mod_uploadprogress_request_done;
 
+//	p->connection_reset = mod_uploadprogress_request_done;
 
+	p->set_defaults = mod_uploadprogress_set_defaults;
 
+	p->cleanup     = mod_uploadprogress_free;
 
+	p->handle_trigger = mod_uploadprogress_trigger;
 
+
 
+	p->data        = NULL;
 
+
 
+	return 0;
 
+}
www-servers/lighttpd/files/lighttpd-1.4.28-detect-libev.patch
Show inline comments
 
new file 100644
 
Index: lighttpd-1.4.28/configure.ac
 
===================================================================
 
--- lighttpd-1.4.28.orig/configure.ac
 
+++ lighttpd-1.4.28/configure.ac
 
@@ -105,7 +105,7 @@ if test "$WITH_LIBEV" != "no"; then
 
 			LIBEV_LIBS="-L$WITH_LIBEV/lib -lev"
 
 		else
 
 			AC_CHECK_HEADERS([ev.h],[
 
-				AC_CHECK_LIB([ev], [ev_loop], [
 
+				AC_CHECK_LIB([ev], [ev_time], [
 
 						LIBEV_CFLAGS=""
 
 						LIBEV_LIBS="-lev"
 
 					],[
www-servers/lighttpd/files/lighttpd-1.4.28-mod_uploadprogress.patch
Show inline comments
 
new file 100644
 
diff -Nru lighttpd-1.4.22.orig/src/connections.c lighttpd-1.4.22/src/connections.c
 
--- lighttpd-1.4.22.orig/src/connections.c	2009-02-19 14:15:14.000000000 +0100
 
+++ lighttpd-1.4.28/src/connections.c	2009-04-22 17:45:20.000000000 +0200
 
@@ -1401,11 +1401,15 @@
 
 			if (http_request_parse(srv, con)) {
 
 				/* we have to read some data from the POST request */
 
 
 
+				plugins_call_handle_request_end(srv, con);
 
+
 
 				connection_set_state(srv, con, CON_STATE_READ_POST);
 
 
 
 				break;
 
 			}
 
 
 
+			plugins_call_handle_request_end(srv, con);
 
+
 
 			connection_set_state(srv, con, CON_STATE_HANDLE_REQUEST);
 
 
 
 			break;
 
diff -Nru lighttpd-1.4.22.orig/src/Makefile.am lighttpd-1.4.22/src/Makefile.am
 
--- lighttpd-1.4.22.orig/src/Makefile.am	2009-02-19 14:15:14.000000000 +0100
 
+++ lighttpd-1.4.28/src/Makefile.am	2009-04-22 17:46:34.000000000 +0200
 
@@ -246,6 +246,11 @@
 
 mod_accesslog_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined
 
 mod_accesslog_la_LIBADD = $(common_libadd)
 
 
 
+lib_LTLIBRARIES += mod_uploadprogress.la
 
+mod_uploadprogress_la_SOURCES = mod_uploadprogress.c
 
+mod_uploadprogress_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined
 
+mod_uploadprogress_la_LIBADD = $(common_libadd)
 
+
 
 
 
 hdr = server.h buffer.h network.h log.h keyvalue.h \
 
       response.h request.h fastcgi.h chunk.h \
 
diff -Nru lighttpd-1.4.22.orig/src/plugin.c lighttpd-1.4.22/src/plugin.c
 
--- lighttpd-1.4.22.orig/src/plugin.c	2009-02-19 14:15:14.000000000 +0100
 
+++ lighttpd-1.4.28/src/plugin.c	2009-04-22 17:45:20.000000000 +0200
 
@@ -34,6 +34,7 @@
 
 	PLUGIN_FUNC_UNSET,
 
 		PLUGIN_FUNC_HANDLE_URI_CLEAN,
 
 		PLUGIN_FUNC_HANDLE_URI_RAW,
 
+		PLUGIN_FUNC_HANDLE_REQUEST_END,
 
 		PLUGIN_FUNC_HANDLE_REQUEST_DONE,
 
 		PLUGIN_FUNC_HANDLE_CONNECTION_CLOSE,
 
 		PLUGIN_FUNC_HANDLE_TRIGGER,
 
@@ -262,6 +263,7 @@
 
 
 
 PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_URI_CLEAN, handle_uri_clean)
 
 PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_URI_RAW, handle_uri_raw)
 
+PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_REQUEST_END, handle_request_end)
 
 PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_REQUEST_DONE, handle_request_done)
 
 PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_CONNECTION_CLOSE, handle_connection_close)
 
 PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_SUBREQUEST, handle_subrequest)
 
@@ -389,6 +391,7 @@
 
 
 
 		PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_URI_CLEAN, handle_uri_clean);
 
 		PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_URI_RAW, handle_uri_raw);
 
+		PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_REQUEST_END, handle_request_end);
 
 		PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_REQUEST_DONE, handle_request_done);
 
 		PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_CONNECTION_CLOSE, handle_connection_close);
 
 		PLUGIN_TO_SLOT(PLUGIN_FUNC_HANDLE_TRIGGER, handle_trigger);
 
diff -Nru lighttpd-1.4.22.orig/src/plugin.h lighttpd-1.4.22/src/plugin.h
 
--- lighttpd-1.4.22.orig/src/plugin.h	2009-02-19 14:15:14.000000000 +0100
 
+++ lighttpd-1.4.28/src/plugin.h	2009-04-22 17:45:20.000000000 +0200
 
@@ -42,12 +42,12 @@
 
 	handler_t (* handle_uri_clean)       (server *srv, connection *con, void *p_d);    /* after uri is set */
 
 	handler_t (* handle_docroot)         (server *srv, connection *con, void *p_d);    /* getting the document-root */
 
 	handler_t (* handle_physical)        (server *srv, connection *con, void *p_d);    /* mapping url to physical path */
 
+        handler_t (* handle_request_end)     (server *srv, connection *con, void *p_d);    /* a handler for the request content */
 
 	handler_t (* handle_request_done)    (server *srv, connection *con, void *p_d);    /* at the end of a request */
 
 	handler_t (* handle_connection_close)(server *srv, connection *con, void *p_d);    /* at the end of a connection */
 
 	handler_t (* handle_joblist)         (server *srv, connection *con, void *p_d);    /* after all events are handled */
 
 
 
 
 
-
 
 	handler_t (* handle_subrequest_start)(server *srv, connection *con, void *p_d);
 
 
 
 	                                                                                   /* when a handler for the request
 
@@ -68,6 +68,7 @@
 
 handler_t plugins_call_handle_uri_clean(server *srv, connection *con);
 
 handler_t plugins_call_handle_subrequest_start(server *srv, connection *con);
 
 handler_t plugins_call_handle_subrequest(server *srv, connection *con);
 
+handler_t plugins_call_handle_request_end(server *srv, connection *con);
 
 handler_t plugins_call_handle_request_done(server *srv, connection *con);
 
 handler_t plugins_call_handle_docroot(server *srv, connection *con);
 
 handler_t plugins_call_handle_physical(server *srv, connection *con);
 
diff -Nru lighttpd-1.4.22.orig/src/mod_uploadprogress.c lighttpd-1.4.22/src/mod_uploadprogress.c
 
--- lighttpd-1.4.22.orig/src/mod_uploadprogress.c	1970-01-01 01:00:00.000000000 +0100
 
+++ lighttpd-1.4.28/src/mod_uploadprogress.c	2009-04-22 17:32:38.000000000 +0200
 
@@ -0,0 +1,648 @@
 
+#include <ctype.h>
 
+#include <stdlib.h>
 
+#include <string.h>
 
+
 
+#include "base.h"
 
+#include "log.h"
 
+#include "buffer.h"
 
+
 
+#include "plugin.h"
 
+
 
+#include "response.h"
 
+#include "stat_cache.h"
 
+
 
+#define CONFIG_UPLOAD_PROGRESS_URL "upload-progress.progress-url"
 
+#define CONFIG_UPLOAD_PROGRESS_TIMEOUT "upload-progress.remove-timeout"
 
+#define CONFIG_UPLOAD_PROGRESS_DEBUG "upload-progress.debug"
 
+
 
+#define SAFE_BUF_STR(x) x && x->ptr ? x->ptr : "(null)"
 
+
 
+/**
 
+ * uploadprogress for lighttpd
 
+ *
 
+ * Initial: Jan Kneschke <jan@kneschke.de>
 
+ * Timeout+Status addon: Bjoern Kalkbrenner <terminar@cyberphoria.org> [20070112]
 
+ *
 
+ * Ported to Lighttpd 1.4.22 by Radek Senfeld <rush@logic.cz>
 
+ *
 
+ * Backport based on revision 2369
 
+ * http://redmine.lighttpd.net/projects/lighttpd/repository/changes/trunk/src/mod_uploadprogress.c
 
+ *
 
+ * the timeout is used to keep in the status information intact even if the parent
 
+ * connection is gone already
 
+ *
 
+ */
 
+
 
+typedef struct {
 
+	buffer     *tracking_id;
 
+	connection *con;
 
+
 
+	time_t timeout;
 
+	int status;
 
+	off_t size;
 
+} connection_map_entry;
 
+
 
+typedef struct {
 
+	connection_map_entry **ptr;
 
+
 
+	size_t used;
 
+	size_t size;
 
+} connection_map;
 
+
 
+/* plugin config for all request/connections */
 
+
 
+typedef struct {
 
+	buffer *progress_url;
 
+	unsigned short debug;
 
+	unsigned short remove_timeout;
 
+} plugin_config;
 
+
 
+typedef struct {
 
+	PLUGIN_DATA;
 
+
 
+	connection_map *con_map;
 
+
 
+	buffer *tmp_buf; /** used as temporary buffer for extracting the tracking id */
 
+
 
+	plugin_config **config_storage;
 
+
 
+	plugin_config conf;
 
+} plugin_data;
 
+
 
+/**
 
+ *
 
+ * connection maps
 
+ *
 
+ */
 
+
 
+/* init the plugin data */
 
+static connection_map *connection_map_init() {
 
+	connection_map *cm;
 
+
 
+	cm = calloc(1, sizeof(*cm));
 
+
 
+	return cm;
 
+}
 
+
 
+static void connection_map_free(connection_map *cm) {
 
+	size_t i;
 
+	for (i = 0; i < cm->size; i++) {
 
+		connection_map_entry *cme = cm->ptr[i];
 
+
 
+		if (!cme) break;
 
+
 
+		if (cme->tracking_id) {
 
+			buffer_free(cme->tracking_id);
 
+		}
 
+		free(cme);
 
+	}
 
+
 
+	free(cm);
 
+}
 
+
 
+static connection_map_entry *connection_map_insert(connection_map *cm, buffer *tracking_id, connection *con) {
 
+	connection_map_entry *cme;
 
+	size_t i;
 
+
 
+	if (cm->size == 0) {
 
+		cm->size = 16;
 
+		cm->ptr = malloc(cm->size * sizeof(*(cm->ptr)));
 
+		for (i = 0; i < cm->size; i++) {
 
+			cm->ptr[i] = NULL;
 
+		}
 
+	} else if (cm->used == cm->size) {
 
+		cm->size += 16;
 
+		cm->ptr = realloc(cm->ptr, cm->size * sizeof(*(cm->ptr)));
 
+		for (i = cm->used; i < cm->size; i++) {
 
+			cm->ptr[i] = NULL;
 
+		}
 
+	}
 
+
 
+	if (cm->ptr[cm->used]) {
 
+		/* is already alloced, just reuse it */
 
+		cme = cm->ptr[cm->used];
 
+	} else {
 
+		cme = malloc(sizeof(*cme));
 
+		cme->tracking_id = buffer_init();
 
+	}
 
+	cme->timeout = 0;
 
+	cme->status = 0;
 
+	buffer_copy_string_buffer(cme->tracking_id, tracking_id);
 
+	cme->con = con;
 
+
 
+	cm->ptr[cm->used++] = cme;
 
+
 
+	return cme;
 
+}
 
+
 
+static connection_map_entry *connection_map_get_connection_entry(connection_map *cm, buffer *tracking_id) {
 
+	size_t i;
 
+
 
+	for (i = 0; i < cm->used; i++) {
 
+		connection_map_entry *cme = cm->ptr[i];
 
+
 
+		if (buffer_is_equal(cme->tracking_id, tracking_id)) {
 
+			/* found connection */
 
+			return cme;
 
+		}
 
+	}
 
+	return NULL;
 
+}
 
+
 
+static void connection_map_remove_connection(connection_map *cm, size_t i) {
 
+	connection_map_entry *cme = cm->ptr[i];
 
+
 
+	buffer_reset(cme->tracking_id);
 
+	cme->timeout=0;
 
+	cme->status=0;
 
+
 
+	cm->used--;
 
+
 
+	/* swap positions with the last entry */
 
+	if (cm->used) {
 
+		cm->ptr[i] = cm->ptr[cm->used];
 
+		cm->ptr[cm->used] = cme;
 
+	}
 
+}
 
+
 
+/**
 
+ * remove dead tracking IDs
 
+ *
 
+ * uploadprogress.remove-timeout sets a grace-period in which the
 
+ * connection status is still known even of the connection is already
 
+ * being removed
 
+ *
 
+ */
 
+static void connection_map_clear_timeout_connections(connection_map *cm) {
 
+	size_t i;
 
+	time_t now_t = time(NULL);
 
+
 
+	for (i = 0; i < cm->used; i++) {
 
+		connection_map_entry *cme = cm->ptr[i];
 
+
 
+		if (cme->timeout != 0 && cme->timeout < now_t) {
 
+			/* found connection */
 
+			connection_map_remove_connection(cm, i);
 
+		}
 
+	}
 
+}
 
+
 
+/**
 
+ * extract the tracking-id from the parameters
 
+ *
 
+ * for POST requests it is part of the request headers
 
+ * for GET requests ... too
 
+ */
 
+static buffer *get_tracking_id(plugin_data *p, server *srv, connection *con) {
 
+	data_string *ds;
 
+	buffer *b = NULL;
 
+	char *qstr=NULL;
 
+	size_t i;
 
+
 
+	/* the request has to contain a 32byte ID */
 
+	if (NULL == (ds = (data_string *)array_get_element(con->request.headers, "X-Progress-ID"))) {
 
+		char *amp = NULL;
 
+
 
+		/* perhaps the POST request is using the querystring to pass the X-Progress-ID */
 
+		if (buffer_is_empty(con->uri.query)) {
 
+			/*
 
+			 * con->uri.query will not be parsed out if a 413 error happens
 
+			 */
 
+			if (NULL != (qstr = strchr(con->request.uri->ptr, '?'))) {
 
+				/** extract query string from request.uri */
 
+				buffer_copy_string(con->uri.query, qstr + 1);
 
+			} else {
 
+				return NULL;
 
+			}
 
+		}
 
+
 
+		/** split the query-string and extract the X-Progress-ID */
 
+		do {
 
+			char *eq = NULL;
 
+			char *start = amp ? amp + 1 : con->uri.query->ptr;
 
+
 
+			amp = strchr(start, '&');
 
+
 
+			/* check the string between start and amp for = */
 
+
 
+			if (amp) {
 
+				buffer_copy_string_len(p->tmp_buf, start, amp - start);
 
+			} else {
 
+				buffer_copy_string(p->tmp_buf, start);
 
+			}
 
+
 
+			eq = strchr(p->tmp_buf->ptr, '=');
 
+
 
+			if (eq) {
 
+				*eq = '\0';
 
+
 
+				if (0 == strcmp(p->tmp_buf->ptr, "X-Progress-ID")) {
 
+					size_t key_len = sizeof("X-Progress-ID") - 1;
 
+					size_t var_len = p->tmp_buf->used - 1;
 
+					/* found */
 
+
 
+					buffer_copy_string_len(p->tmp_buf, start + key_len + 1, var_len - key_len - 1);
 
+
 
+					b = p->tmp_buf;
 
+
 
+					break;
 
+				}
 
+			}
 
+		} while (amp);
 
+
 
+		if (!b) return NULL;
 
+	} else {
 
+		/* request header was found, use it */
 
+		b = ds->value;
 
+	}
 
+
 
+	if (b->used != 32 + 1) {
 
+		if (p->conf.debug) log_error_write(srv, __FILE__, __LINE__, "sds", "the Progress-ID has to be 32 characters long, got", b->used - 1, "characters");
 
+		return NULL;
 
+	}
 
+
 
+	for (i = 0; i < b->used - 1; i++) {
 
+		char c = b->ptr[i];
 
+
 
+		if (!light_isxdigit(c)) {
 
+			if (p->conf.debug) log_error_write(srv, __FILE__, __LINE__, "sds", "only hex-digits are allowed (0-9 + a-f): (ascii:", c, ")");
 
+			return NULL;
 
+		}
 
+	}
 
+
 
+	return b;
 
+}
 
+
 
+/* init the plugin data */
 
+INIT_FUNC(mod_uploadprogress_init) {
 
+	plugin_data *p;
 
+
 
+	p = calloc(1, sizeof(*p));
 
+
 
+	p->con_map = connection_map_init();
 
+	p->tmp_buf = buffer_init();
 
+
 
+	return p;
 
+}
 
+
 
+/* detroy the plugin data */
 
+FREE_FUNC(mod_uploadprogress_free) {
 
+	plugin_data *p = p_d;
 
+
 
+	UNUSED(srv);
 
+
 
+	if (!p) return HANDLER_GO_ON;
 
+
 
+	if (p->config_storage) {
 
+		size_t i;
 
+		for (i = 0; i < srv->config_context->used; i++) {
 
+			plugin_config *s = p->config_storage[i];
 
+
 
+			buffer_free(s->progress_url);
 
+			s->remove_timeout=0;
 
+
 
+			free(s);
 
+		}
 
+		free(p->config_storage);
 
+	}
 
+
 
+	connection_map_free(p->con_map);
 
+	buffer_free(p->tmp_buf);
 
+
 
+	free(p);
 
+
 
+	return HANDLER_GO_ON;
 
+}
 
+
 
+/* handle plugin config and check values */
 
+
 
+SETDEFAULTS_FUNC(mod_uploadprogress_set_defaults) {
 
+	plugin_data *p = p_d;
 
+	size_t i = 0;
 
+
 
+	config_values_t cv[] = {
 
+		{ CONFIG_UPLOAD_PROGRESS_URL, NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_CONNECTION },       /* 0 */
 
+		{ CONFIG_UPLOAD_PROGRESS_TIMEOUT, NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION },    /* 1 */
 
+		{ CONFIG_UPLOAD_PROGRESS_DEBUG, NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION },    /* 2 */
 
+		{ NULL,                         NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET }
 
+	};
 
+
 
+	if (!p) return HANDLER_ERROR;
 
+
 
+	p->config_storage = calloc(1, srv->config_context->used * sizeof(specific_config *));
 
+
 
+	for (i = 0; i < srv->config_context->used; i++) {
 
+		plugin_config *s;
 
+
 
+		s = calloc(1, sizeof(plugin_config));
 
+		s->progress_url    = buffer_init();
 
+		s->remove_timeout  = 60;
 
+		s->debug  = 0;
 
+
 
+		cv[0].destination = s->progress_url;
 
+		cv[1].destination = &(s->remove_timeout);
 
+		cv[2].destination = &(s->debug);
 
+
 
+		p->config_storage[i] = s;
 
+
 
+		if (0 != config_insert_values_global(srv, ((data_config *)srv->config_context->data[i])->value, cv)) {
 
+			return HANDLER_ERROR;
 
+		}
 
+	}
 
+
 
+	return HANDLER_GO_ON;
 
+}
 
+
 
+#define PATCH_OPTION(x) \
 
+	p->conf.x = s->x;
 
+static int mod_uploadprogress_patch_connection(server *srv, connection *con, plugin_data *p) {
 
+	size_t i, j;
 
+	plugin_config *s = p->config_storage[0];
 
+
 
+	PATCH_OPTION(progress_url);
 
+	PATCH_OPTION(remove_timeout);
 
+	PATCH_OPTION(debug);
 
+
 
+	/* skip the first, the global context */
 
+	for (i = 1; i < srv->config_context->used; i++) {
 
+		data_config *dc = (data_config *)srv->config_context->data[i];
 
+		s = p->config_storage[i];
 
+
 
+		/* condition didn't match */
 
+		if (!config_check_cond(srv, con, dc)) continue;
 
+
 
+		/* merge config */
 
+		for (j = 0; j < dc->value->used; j++) {
 
+			data_unset *du = dc->value->data[j];
 
+
 
+			if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_UPLOAD_PROGRESS_URL))) {
 
+				PATCH_OPTION(progress_url);
 
+			} else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_UPLOAD_PROGRESS_TIMEOUT))) {
 
+				PATCH_OPTION(remove_timeout);
 
+			} else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_UPLOAD_PROGRESS_DEBUG))) {
 
+				PATCH_OPTION(debug);
 
+			}
 
+		}
 
+	}
 
+
 
+	return 0;
 
+}
 
+
 
+/**
 
+ *
 
+ * the idea:
 
+ *
 
+ * for the first request we check if it is a post-request
 
+ *
 
+ * if no, move out, don't care about them
 
+ *
 
+ * if yes, take the connection structure and register it locally
 
+ * in the progress-struct together with an session-id (md5 ... )
 
+ *
 
+ * if the connections closes, cleanup the entry in the progress-struct
 
+ *
 
+ * a second request can now get the info about the size of the upload,
 
+ * the received bytes
 
+ *
 
+ */
 
+
 
+URIHANDLER_FUNC(mod_uploadprogress_uri_handler) {
 
+	plugin_data *p = p_d;
 
+	buffer *tracking_id;
 
+	buffer *b;
 
+	connection_map_entry *post_con_entry = NULL;
 
+	connection_map_entry *map_con_entry = NULL;
 
+
 
+	if (buffer_is_empty(con->uri.path)) return HANDLER_GO_ON;
 
+
 
+	/* no progress URL set, ignore request */
 
+	if (buffer_is_empty(p->conf.progress_url)) return HANDLER_GO_ON;
 
+
 
+	switch(con->request.http_method) {
 
+	case HTTP_METHOD_POST:
 
+		/**
 
+		 * a POST request is the UPLOAD itself
 
+		 *
 
+		 * get the unique tracker id
 
+		 */
 
+		if (NULL == (tracking_id = get_tracking_id(p, srv, con))) {
 
+			return HANDLER_GO_ON;
 
+		}
 
+
 
+		if (NULL == (map_con_entry = connection_map_get_connection_entry(p->con_map, tracking_id))) {
 
+			connection_map_insert(p->con_map, tracking_id, con);
 
+
 
+			if (p->conf.debug) log_error_write(srv, __FILE__, __LINE__, "ss", "POST: connection is new, registered:", SAFE_BUF_STR(tracking_id));
 
+		} else {
 
+			map_con_entry->timeout = 0;
 
+			map_con_entry->status = 0;
 
+
 
+			if (p->conf.debug) log_error_write(srv, __FILE__, __LINE__, "ss", "POST: connection is known, id:", SAFE_BUF_STR(tracking_id));
 
+		}
 
+
 
+		return HANDLER_GO_ON;
 
+	case HTTP_METHOD_GET:
 
+		/**
 
+		 * the status request for the current connection
 
+		 */
 
+		if (p->conf.debug) log_error_write(srv, __FILE__, __LINE__, "ssss", "(uploadprogress) urls", SAFE_BUF_STR(con->uri.path), "==", SAFE_BUF_STR(p->conf.progress_url));
 
+
 
+		if (!buffer_is_equal(con->uri.path, p->conf.progress_url)) {
 
+			return HANDLER_GO_ON;
 
+		}
 
+
 
+		/* get the tracker id */
 
+		if (NULL == (tracking_id = get_tracking_id(p, srv, con))) {
 
+			return HANDLER_GO_ON;
 
+		}
 
+
 
+		buffer_reset(con->physical.path);
 
+
 
+		con->file_started = 1;
 
+		con->http_status = 200;
 
+		con->file_finished = 1;
 
+
 
+		/* send JSON content */
 
+
 
+		response_header_overwrite(srv, con, CONST_STR_LEN("Content-Type"), CONST_STR_LEN("text/javascript"));
 
+
 
+		/* just an attempt the force the IE/proxies to NOT cache the request */
 
+		response_header_overwrite(srv, con, CONST_STR_LEN("Pragma"), CONST_STR_LEN("no-cache"));
 
+		response_header_overwrite(srv, con, CONST_STR_LEN("Expires"), CONST_STR_LEN("Thu, 19 Nov 1981 08:52:00 GMT"));
 
+		response_header_overwrite(srv, con, CONST_STR_LEN("Cache-Control"),
 
+				CONST_STR_LEN("no-store, no-cache, must-revalidate, post-check=0, pre-check=0"));
 
+
 
+		b = chunkqueue_get_append_buffer(con->write_queue);
 
+
 
+		/* get the connection */
 
+		if (NULL == (post_con_entry = connection_map_get_connection_entry(p->con_map, tracking_id))) {
 
+			/**
 
+			 * looks like we don't know the tracking id yet, GET and POST out of sync ? */
 
+			buffer_append_string_len(b, CONST_STR_LEN("{ \"state\" : \"unknown\" }\r\n"));
 
+			con->response.content_length += b->used - 1;
 
+
 
+			if (p->conf.debug) log_error_write(srv, __FILE__, __LINE__, "ssss", "connection unknown:", SAFE_BUF_STR(tracking_id), ", sending:", SAFE_BUF_STR(b));
 
+
 
+			return HANDLER_FINISHED;
 
+		}
 
+
 
+		buffer_copy_string_len(b, CONST_STR_LEN("{ \"state\" : "));
 
+
 
+		if (post_con_entry->status == 413) {
 
+			/* the upload was too large */
 
+			buffer_append_string_len(b, CONST_STR_LEN("\"error\", \"status\" : 413"));
 
+		} else if (post_con_entry->con == NULL) {
 
+			/* the connection is already gone */
 
+			buffer_append_string_len(b, CONST_STR_LEN("\"done\", \"size\" : "));
 
+			buffer_append_off_t(b, post_con_entry->size);
 
+		} else {
 
+			/* the upload is already done, but the connection might be still open */
 
+			buffer_append_string(b, post_con_entry->con->state == CON_STATE_READ_POST ? "\"uploading\"" : "\"done\"");
 
+			buffer_append_string_len(b, CONST_STR_LEN(", \"received\" : "));
 
+			buffer_append_off_t(b, post_con_entry->con->bytes_read);
 
+			buffer_append_string_len(b, CONST_STR_LEN(", \"size\" : "));
 
+			buffer_append_off_t(b, post_con_entry->con->request.content_length);
 
+		}
 
+		buffer_append_string_len(b, CONST_STR_LEN("}\r\n"));
 
+		con->response.content_length += b->used - 1;
 
+
 
+		if (p->conf.debug) log_error_write(srv, __FILE__, __LINE__, "ssss", "connection is known:", SAFE_BUF_STR(tracking_id), ", sending:", SAFE_BUF_STR(b));
 
+
 
+		return HANDLER_FINISHED;
 
+	default:
 
+		break;
 
+	}
 
+
 
+	return HANDLER_GO_ON;
 
+}
 
+
 
+/**
 
+ * check for POST request
 
+ */
 
+CONNECTION_FUNC(mod_uploadprogress_request_end) {
 
+	plugin_data *p = p_d;
 
+
 
+	buffer *tracking_id;
 
+	connection_map_entry *map_con_entry = NULL;
 
+
 
+	UNUSED(srv);
 
+
 
+	/* no request URL, ignore request */
 
+	if (buffer_is_empty(con->request.uri)) return HANDLER_GO_ON;
 
+
 
+	mod_uploadprogress_patch_connection(srv, con, p);
 
+
 
+	/*
 
+	 * we only want to process the upload (POST request)
 
+	 */
 
+	if (con->request.http_method != HTTP_METHOD_POST) {
 
+		return HANDLER_GO_ON;
 
+	}
 
+
 
+	if (p->conf.debug) {
 
+		log_error_write(srv, __FILE__, __LINE__, "sxsdsd", "request_end: con=", (void *) con, ", http_method=", con->request.http_method, ", http_status=", con->http_status);
 
+	}
 
+
 
+	/* get the tracker id */
 
+	if (NULL == (tracking_id = get_tracking_id(p, srv, con))) {
 
+		return HANDLER_GO_ON;
 
+	}
 
+
 
+	if (NULL == (map_con_entry = connection_map_get_connection_entry(p->con_map, tracking_id))) {
 
+		/**
 
+		 * in case the request parser meant the request was too large the URI handler won't
 
+		 * get called. Insert the connection mapping here
 
+		 */
 
+		if (NULL == (map_con_entry = connection_map_insert(p->con_map, tracking_id, con))) {
 
+			return HANDLER_GO_ON;
 
+		}
 
+	}
 
+
 
+	/* ok, found our entries, setting status */
 
+	map_con_entry->status = con->http_status;
 
+
 
+	return HANDLER_GO_ON;
 
+}
 
+
 
+/**
 
+ * remove the parent connection from the connection mapping
 
+ * when it got closed
 
+ *
 
+ * keep the mapping active for a while to send a valid final status
 
+ */
 
+CONNECTION_FUNC(mod_uploadprogress_request_done) {
 
+	plugin_data *p = p_d;
 
+	buffer *tracking_id;
 
+	connection_map_entry *cm = NULL;
 
+
 
+	UNUSED(srv);
 
+
 
+	if (buffer_is_empty(con->request.uri)) return HANDLER_GO_ON;
 
+
 
+	/*
 
+	 * only need to handle the upload request.
 
+	 */
 
+	if (con->request.http_method != HTTP_METHOD_POST) {
 
+		return HANDLER_GO_ON;
 
+	}
 
+
 
+	if (NULL == (tracking_id = get_tracking_id(p, srv, con))) {
 
+		return HANDLER_GO_ON;
 
+	}
 
+
 
+	if (p->conf.debug) {
 
+		log_error_write(srv, __FILE__, __LINE__, "sssd", "upload is done, moving tracking-id to backlog: tracking-id=", SAFE_BUF_STR(tracking_id), ", http_status=", con->http_status);
 
+	}
 
+
 
+	/*
 
+	 * set timeout on the upload's connection_map_entry.
 
+	 */
 
+	if (NULL == (cm = connection_map_get_connection_entry(p->con_map, tracking_id))) {
 
+		if (p->conf.debug) {
 
+			log_error_write(srv, __FILE__, __LINE__, "sss", "tracking ID", SAFE_BUF_STR(tracking_id), "not found, can't set timeout");
 
+		}
 
+		return HANDLER_GO_ON;
 
+	}
 
+
 
+	/* save request size to be able to report it even when cm->con == NULL */
 
+	cm->size = con->request.content_length;
 
+
 
+	cm->timeout = time(NULL) + p->conf.remove_timeout;
 
+	cm->con     = NULL; /* con becomes invalid very soon */
 
+
 
+	return HANDLER_GO_ON;
 
+}
 
+
 
+/**
 
+ * remove dead connections once in while
 
+ */
 
+TRIGGER_FUNC(mod_uploadprogress_trigger) {
 
+	plugin_data *p = p_d;
 
+
 
+	if ((srv->cur_ts % 10) != 0) return HANDLER_GO_ON;
 
+
 
+	connection_map_clear_timeout_connections(p->con_map);
 
+
 
+	return HANDLER_GO_ON;
 
+}
 
+
 
+
 
+/* this function is called at dlopen() time and inits the callbacks */
 
+
 
+int mod_uploadprogress_plugin_init(plugin *p) {
 
+	p->version     = LIGHTTPD_VERSION_ID;
 
+	p->name        = buffer_init_string("uploadprogress");
 
+
 
+	p->init        = mod_uploadprogress_init;
 
+	p->handle_uri_clean = mod_uploadprogress_uri_handler;
 
+	p->handle_request_end = mod_uploadprogress_request_end;
 
+	p->handle_request_done = mod_uploadprogress_request_done;
 
+//	p->connection_reset = mod_uploadprogress_request_done;
 
+	p->set_defaults = mod_uploadprogress_set_defaults;
 
+	p->cleanup     = mod_uploadprogress_free;
 
+	p->handle_trigger = mod_uploadprogress_trigger;
 
+
 
+	p->data        = NULL;
 
+
 
+	return 0;
 
+}
www-servers/lighttpd/files/lighttpd.confd
Show inline comments
 
new file 100644
 
# /etc/conf.d/lighttpd
 

	
 
# Location of a shell used by the 'include_shell' directive
 
# in the lighttpd's configuration file
 
#export SHELL="/bin/bash"
 

	
 
# Location of the lighttpd configuration file
 
LIGHTTPD_CONF="/etc/lighttpd/lighttpd.conf"
 

	
 
# Location of the lighttpd pid file
 
LIGHTTPD_PID="$(/usr/bin/awk '/^server.pid-file/{s=$3};{sub("\"","",s)};END{print s}' ${LIGHTTPD_CONF})"
 

	
www-servers/lighttpd/files/lighttpd.initd
Show inline comments
 
new file 100644
 
#!/sbin/runscript
 
# Copyright 1999-2011 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/files/lighttpd.initd,v 1.17 2011/05/13 14:06:56 hwoarang Exp $
 

	
 
opts="reload graceful"
 

	
 
depend() {
 
	need net
 
	use mysql logger spawn-fcgi ldap slapd netmount dns
 
	after famd
 
	after sshd
 
}
 

	
 
checkconfig() {
 
	if [ ! -f "${LIGHTTPD_CONF}" ] ; then
 
		ewarn "${LIGHTTPD_CONF} does not exist."
 
		return 1
 
	fi
 

	
 
	if [ -z "${LIGHTTPD_PID}" ] ; then
 
		ewarn "server.pid-file variable in ${LIGHTTPD_CONF}"
 
		ewarn "is not set. Falling back to lighttpd.pid"
 
		LIGHTTPD_PID="/var/run/lighttpd.pid"
 
	fi
 
	/usr/sbin/lighttpd -t -f ${LIGHTTPD_CONF} >/dev/null
 
}
 

	
 
start() {
 
	checkconfig || return 1
 

	
 
	ebegin "Starting lighttpd"
 
	start-stop-daemon --start --quiet --exec /usr/sbin/lighttpd \
 
		--pidfile "${LIGHTTPD_PID}" -- -f "${LIGHTTPD_CONF}"
 
	eend $?
 
}
 

	
 
stop() {
 
	local rv=0
 
	ebegin "Stopping lighttpd"
 
	start-stop-daemon --stop --quiet --pidfile "${LIGHTTPD_PID}"
 
	eend $?
 
}
 

	
 
reload() {
 
	if ! service_started "${SVCNAME}" ; then
 
		eerror "${SVCNAME} isn't running"
 
		return 1
 
	fi
 
	checkconfig || return 1
 

	
 
	ebegin "Re-opening lighttpd log files"
 
	start-stop-daemon --stop --oknodo --quiet --pidfile "${LIGHTTPD_PID}" \
 
		--signal HUP
 
	eend $?
 
}
 

	
 
graceful() {
 
	if ! service_started "${SVCNAME}" ; then
 
		eerror "${SVCNAME} isn't running"
 
		return 1
 
	fi
 
	checkconfig || return 1
 

	
 
	ebegin "Gracefully stopping lighttpd"
 
	start-stop-daemon --stop --oknodo --quiet --pidfile "${LIGHTTPD_PID}" \
 
		--signal INT
 
	if eend $? ; then
 
		rm -f "${LIGHTTPD_PID}"
 
		start
 
	fi
 
}
www-servers/lighttpd/files/lighttpd.initd-1.4.13-r3
Show inline comments
 
new file 100644
 
#!/sbin/runscript
 
# Copyright 1999-2009 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/files/lighttpd.initd-1.4.13-r3,v 1.3 2009/04/01 19:03:46 bangert Exp $
 

	
 
opts="reload graceful"
 

	
 
depend() {
 
	need net
 
	use mysql logger spawn-fcgi ldap slapd netmount dns
 
	after famd
 
	after sshd
 
}
 

	
 
checkconfig() {
 
	if [ ! -f "${LIGHTTPD_CONF}" ] ; then
 
		ewarn "${LIGHTTPD_CONF} does not exist."
 
		return 1
 
	fi
 

	
 
	/usr/sbin/lighttpd -t -f ${LIGHTTPD_CONF} >/dev/null
 
}
 

	
 
start() {
 
	checkconfig || return 1
 

	
 
	ebegin "Starting lighttpd"
 
	start-stop-daemon --start --quiet --exec /usr/sbin/lighttpd \
 
		--pidfile "${LIGHTTPD_PID}" -- -f "${LIGHTTPD_CONF}"
 
	eend $?
 
}
 

	
 
stop() {
 
	local rv=0
 
	ebegin "Stopping lighttpd"
 
	start-stop-daemon --stop --quiet --pidfile "${LIGHTTPD_PID}"
 
	eend $?
 
}
 

	
 
reload() {
 
	if ! service_started "${SVCNAME}" ; then
 
		eerror "${SVCNAME} isn't running"
 
		return 1
 
	fi
 
	checkconfig || return 1
 

	
 
	ebegin "Re-opening lighttpd log files"
 
	start-stop-daemon --stop --oknodo --quiet --pidfile "${LIGHTTPD_PID}" \
 
		--signal HUP
 
	eend $?
 
}
 

	
 
graceful() {
 
	if ! service_started "${SVCNAME}" ; then
 
		eerror "${SVCNAME} isn't running"
 
		return 1
 
	fi
 
	checkconfig || return 1
 

	
 
	ebegin "Gracefully stopping lighttpd"
 
	start-stop-daemon --stop --oknodo --quiet --pidfile "${LIGHTTPD_PID}" \
 
		--signal INT
 
	if eend $? ; then
 
		rm -f "${LIGHTTPD_PID}"
 
		start
 
	fi
 
}
www-servers/lighttpd/files/lighttpd.logrotate
Show inline comments
 
new file 100644
 
# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/files/lighttpd.logrotate,v 1.2 2006/05/30 19:49:29 bangert Exp $
 
# lighttpd logrotate script for Gentoo
 

	
 
/var/log/lighttpd/*.log {
 
        daily
 
        missingok
 
		copytruncate
 
        rotate 7
 
        compress
 
        notifempty
 
        sharedscripts
 
        postrotate
 
           if [ -f /var/run/lighttpd.pid ]; then \
 
                /etc/init.d/lighttpd reload > /dev/null 2>&1 || true ; \
 
           fi;
 
        endscript
 
}
www-servers/lighttpd/files/spawn-fcgi.confd
Show inline comments
 
new file 100644
 
# Copyright 1999-2004 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/files/spawn-fcgi.confd,v 1.1 2005/02/14 11:39:01 ka0ttic Exp $
 

	
 
# Configuration file for the FCGI-Part of /etc/init.d/lighttpd
 

	
 
## Set this to "yes" to enable SPAWNFCGI
 
ENABLE_SPAWNFCGI="yes"
 

	
 
## ABSOLUTE path to the spawn-fcgi binary
 
SPAWNFCGI="/usr/bin/spawn-fcgi"
 

	
 
## ABSOLUTE path to the PHP binary
 
FCGIPROGRAM="/usr/bin/php-cgi"
 

	
 
## bind to tcp-port on localhost
 
FCGIPORT="1026"
 

	
 
## number of PHP childs to spawn
 
PHP_FCGI_CHILDREN=5
 

	
 
## number of request server by a single php-process until is will be restarted
 
PHP_FCGI_MAX_REQUESTS=1000
 

	
 
## IP adresses where PHP should access server connections from
 
FCGI_WEB_SERVER_ADDRS="127.0.0.1"
 

	
 
# allowed environment variables sperated by spaces
 
ALLOWED_ENV="PATH USER"
 
# do NOT change line below
 
ALLOWED_ENV="$ALLOWED_ENV PHP_FCGI_MAX_REQUESTS FCGI_WEB_SERVER_ADDRS"
 

	
 
## if this script is run as root switch to the following user
 
USERID=lighttpd
 
GROUPID=lighttpd
www-servers/lighttpd/files/spawn-fcgi.initd
Show inline comments
 
new file 100644
 
#!/sbin/runscript
 
# Copyright 1999-2004 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/files/spawn-fcgi.initd,v 1.2 2007/04/02 12:46:08 uberlord Exp $
 

	
 
SPAWNFCGI_PID="/var/run/spawn-fcgi.pid"
 

	
 
depend() {
 
        need net
 
}
 

	
 
start() {
 
        local my_end
 

	
 
        ebegin "Starting spawn-fcgi"
 
        export PHP_FCGI_MAX_REQUESTS FCGI_WEB_SERVER_ADDRS
 

	
 
        EX="${SPAWNFCGI} -p ${FCGIPORT} -f ${FCGIPROGRAM} -u ${USERID} \
 
                -g ${GROUPID} -C ${PHP_FCGI_CHILDREN}"
 

	
 
        # copy the allowed environment variables
 
        unset E
 
        for i in ${ALLOWED_ENV}; do
 
                E="${E} ${i}=${!i}"
 
        done
 

	
 
        # clean environment and set up a new one
 
        env - ${E} ${EX} 2>${SPAWNFCGI_PID}
 
        my_end=$?
 
        if [ "$my_end" != "0" ]; then
 
                [ -f ${SPAWNFCGI_PID} ] && rm -f ${SPAWNFCGI_PID}
 
                eend $my_end
 
        fi
 

	
 
        #extract parent-process-id and write it back to the file
 
        FCGI_PPID=`cat ${SPAWNFCGI_PID} | cut -d':' -f4`
 
        echo ${FCGI_PPID} > ${SPAWNFCGI_PID}
 
        eend 0
 
}
 

	
 
stop() {
 
        ebegin "Stopping spawn-fcgi"
 
        if ! kill `cat ${SPAWNFCGI_PID}` ; then
 
	    eend $?
 
	    return 1
 
	fi
 
        if [ -w ${SPAWNFCGI_PID} ]; then
 
                rm ${SPAWNFCGI_PID}
 
        fi
 
        eend 0
 
}
www-servers/lighttpd/lighttpd-1.4.28-r2.ebuild.patch
Show inline comments
 
new file 100644
 
--- /usr/portage/www-servers/lighttpd/lighttpd-1.4.28-r2.ebuild	2011-07-26 19:01:28.000000000 +0200
 
+++ lighttpd-1.4.28-r209.ebuild	2011-08-21 17:07:37.000000000 +0200
 
@@ -13,7 +13,7 @@
 
 LICENSE="BSD"
 
 SLOT="0"
 
 KEYWORDS="alpha amd64 arm ~hppa ia64 ~mips ppc ppc64 sh sparc x86 ~sparc-fbsd ~x86-fbsd"
 
-IUSE="bzip2 doc fam gdbm ipv6 ldap libev lua minimal memcache mysql pcre php rrdtool ssl test webdav xattr"
 
+IUSE="bzip2 doc fam gdbm ipv6 ldap libev lua minimal memcache mysql pcre php rrdtool ssl test uploadprogress webdav xattr"
 
 
 
 RDEPEND="
 
 	>=sys-libs/zlib-1.1
 
@@ -99,6 +99,9 @@
 
 	sed -i -e 's|\(rst2html\)|\1.py|g' doc/Makefile.am || \
 
 		die "sed doc/Makefile.am failed"
 
 	epatch "${FILESDIR}"/${P}-detect-libev.patch
 
+	if use uploadprogress; then
 
+	    epatch "${FILESDIR}"/${P}-mod_uploadprogress.patch
 
+	fi
 
 	eautoreconf
 
 }
 
 
 
@@ -201,4 +204,13 @@
 
 		elog "which is now located in /etc/lighttpd.  Please migrate your"
 
 		elog "existing configuration."
 
 	fi
 
+
 
+	if use uploadprogress; then
 
+		elog "WARNING! mod_uploadprogress is a backported module from the"
 
+		elog "1.5x-branch, which is not considered stable yet.Please go to"
 
+		elog "http://redmine.lighttpd.net/wiki/1/Docs:ModUploadProgress"
 
+		elog "for more information. This configuration also is NOT supported"
 
+		elog "by upstream, so please refrain from reporting bugs. You have"
 
+		elog "been warned!"
 
+	fi
 
 }
www-servers/lighttpd/lighttpd-1.4.28-r209.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2011 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/lighttpd-1.4.28-r2.ebuild,v 1.5 2011/07/26 16:34:44 armin76 Exp $
 

	
 
EAPI="2"
 

	
 
inherit base eutils autotools depend.php
 

	
 
DESCRIPTION="Lightweight high-performance web server"
 
HOMEPAGE="http://www.lighttpd.net/"
 
SRC_URI="http://download.lighttpd.net/lighttpd/releases-1.4.x/${P}.tar.bz2"
 

	
 
LICENSE="BSD"
 
SLOT="0"
 
KEYWORDS="alpha amd64 arm ~hppa ia64 ~mips ppc ppc64 sh sparc x86 ~sparc-fbsd ~x86-fbsd"
 
IUSE="bzip2 doc fam gdbm ipv6 ldap libev lua minimal memcache mysql pcre php rrdtool ssl test uploadprogress webdav xattr"
 

	
 
RDEPEND="
 
	>=sys-libs/zlib-1.1
 
	bzip2?    ( app-arch/bzip2 )
 
	fam?      ( virtual/fam )
 
	gdbm?     ( sys-libs/gdbm )
 
	ldap?     ( >=net-nds/openldap-2.1.26 )
 
	libev?    ( >=dev-libs/libev-4.01 )
 
	lua?      ( >=dev-lang/lua-5.1 )
 
	memcache? ( dev-libs/libmemcache )
 
	mysql?    ( >=virtual/mysql-4.0 )
 
	pcre?     ( >=dev-libs/libpcre-3.1 )
 
	php?      ( dev-lang/php[cgi] )
 
	rrdtool?  ( net-analyzer/rrdtool )
 
	ssl?    ( >=dev-libs/openssl-0.9.7 )
 
	webdav? (
 
		dev-libs/libxml2
 
		>=dev-db/sqlite-3
 
		sys-fs/e2fsprogs
 
	)
 
	xattr? ( kernel_linux? ( sys-apps/attr ) )"
 

	
 
DEPEND="${RDEPEND}
 
	dev-util/pkgconfig
 
	doc?  ( dev-python/docutils )
 
	test? (
 
		virtual/perl-Test-Harness
 
		dev-libs/fcgi
 
	)"
 

	
 
# update certain parts of lighttpd.conf based on conditionals
 
update_config() {
 
	local config="/etc/lighttpd/lighttpd.conf"
 

	
 
	# enable php/mod_fastcgi settings
 
	use php && \
 
		dosed 's|#.*\(include.*fastcgi.*$\)|\1|' ${config}
 

	
 
	# enable stat() caching
 
	use fam && \
 
		dosed 's|#\(.*stat-cache.*$\)|\1|' ${config}
 

	
 
	# automatically listen on IPv6 if built with USE=ipv6. Bug #234987
 
	use ipv6 && \
 
		dosed 's|# server.use-ipv6|server.use-ipv6|' ${config}
 
}
 

	
 
# remove non-essential stuff (for USE=minimal)
 
remove_non_essential() {
 
	local libdir="${D}/usr/$(get_libdir)/${PN}"
 

	
 
	# text docs
 
	use doc || rm -fr "${D}"/usr/share/doc/${PF}/txt
 

	
 
	# non-essential modules
 
	rm -f \
 
		${libdir}/mod_{compress,evhost,expire,proxy,scgi,secdownload,simple_vhost,status,setenv,trigger*,usertrack}.*
 

	
 
	# allow users to keep some based on USE flags
 
	use pcre    || rm -f ${libdir}/mod_{ssi,re{direct,write}}.*
 
	use webdav  || rm -f ${libdir}/mod_webdav.*
 
	use mysql   || rm -f ${libdir}/mod_mysql_vhost.*
 
	use lua     || rm -f ${libdir}/mod_{cml,magnet}.*
 
	use rrdtool || rm -f ${libdir}/mod_rrdtool.*
 
}
 

	
 
pkg_setup() {
 
	if ! use pcre ; then
 
		ewarn "It is highly recommended that you build ${PN}"
 
		ewarn "with perl regular expressions support via USE=pcre."
 
		ewarn "Otherwise you lose support for some core options such"
 
		ewarn "as conditionals and modules such as mod_re{write,direct}"
 
		ewarn "and mod_ssi."
 
	fi
 

	
 
	enewgroup lighttpd
 
	enewuser lighttpd -1 -1 /var/www/localhost/htdocs lighttpd
 
}
 

	
 
src_prepare() {
 
	base_src_prepare
 
	#dev-python/docutils installs rst2html.py not rst2html
 
	sed -i -e 's|\(rst2html\)|\1.py|g' doc/Makefile.am || \
 
		die "sed doc/Makefile.am failed"
 
	epatch "${FILESDIR}"/${P}-detect-libev.patch
 
	if use uploadprogress; then
 
	    epatch "${FILESDIR}"/${P}-mod_uploadprogress.patch
 
	fi
 
	eautoreconf
 
}
 

	
 
src_configure() {
 
	econf --libdir=/usr/$(get_libdir)/${PN} \
 
		--enable-lfs \
 
		$(use_enable ipv6) \
 
		$(use_with bzip2) \
 
		$(use_with fam) \
 
		$(use_with gdbm) \
 
		$(use_with ldap) \
 
		$(use_with libev) \
 
		$(use_with lua) \
 
		$(use_with memcache) \
 
		$(use_with mysql) \
 
		$(use_with pcre) \
 
		$(use_with ssl openssl) \
 
		$(use_with webdav webdav-props) \
 
		$(use_with webdav webdav-locks) \
 
		$(use_with xattr attr)
 
}
 

	
 
src_compile() {
 
	emake || die "emake failed"
 

	
 
	if use doc ; then
 
		einfo "Building HTML documentation"
 
		cd doc
 
		emake html || die "failed to build HTML documentation"
 
	fi
 
}
 

	
 
src_test() {
 
	if [[ ${EUID} -eq 0 ]]; then
 
		default_src_test
 
	else
 
		ewarn "test skipped, please re-run as root if you wish to test ${PN}"
 
	fi
 
}
 

	
 
src_install() {
 
	make DESTDIR="${D}" install || die "make install failed"
 

	
 
	# init script stuff
 
	newinitd "${FILESDIR}"/lighttpd.initd lighttpd || die
 
	newconfd "${FILESDIR}"/lighttpd.confd lighttpd || die
 
	use fam && has_version app-admin/fam && \
 
		sed -i 's/after famd/need famd/g' "${D}"/etc/init.d/lighttpd
 

	
 
	# configs
 
	insinto /etc/lighttpd
 
	doins "${FILESDIR}"/conf/lighttpd.conf
 
	doins "${FILESDIR}"/conf/mime-types.conf
 
	doins "${FILESDIR}"/conf/mod_cgi.conf
 
	doins "${FILESDIR}"/conf/mod_fastcgi.conf
 
	# Secure directory for fastcgi sockets
 
	keepdir /var/run/lighttpd/
 
	fperms 0750 /var/run/lighttpd/
 
	fowners lighttpd:lighttpd /var/run/lighttpd/
 

	
 
	# update lighttpd.conf directives based on conditionals
 
	update_config
 

	
 
	# docs
 
	dodoc AUTHORS README NEWS doc/scripts/*.sh
 
	newdoc doc/config//lighttpd.conf lighttpd.conf.distrib
 

	
 
	use doc && dohtml -r doc/*
 

	
 
	docinto txt
 
	dodoc doc/*.txt
 

	
 
	# logrotate
 
	insinto /etc/logrotate.d
 
	newins "${FILESDIR}"/lighttpd.logrotate lighttpd || die
 

	
 
	keepdir /var/l{ib,og}/lighttpd /var/www/localhost/htdocs
 
	fowners lighttpd:lighttpd /var/l{ib,og}/lighttpd
 
	fperms 0750 /var/l{ib,og}/lighttpd
 

	
 
	#spawn-fcgi may optionally be installed via www-servers/spawn-fcgi
 
	rm -f "${D}"/usr/bin/spawn-fcgi "${D}"/usr/share/man/man1/spawn-fcgi.*
 

	
 
	use minimal && remove_non_essential
 
}
 

	
 
pkg_postinst () {
 
	if use ipv6; then
 
		elog "IPv6 migration guide:"
 
		elog "http://redmine.lighttpd.net/projects/lighttpd/wiki/IPv6-Config"
 
	fi
 
	if [[ -f ${ROOT}etc/conf.d/spawn-fcgi.conf ]] ; then
 
		einfo "spawn-fcgi is now provided by www-servers/spawn-fcgi."
 
		einfo "spawn-fcgi's init script configuration is now located"
 
		einfo "at /etc/conf.d/spawn-fcgi."
 
	fi
 

	
 
	if [[ -f ${ROOT}etc/lighttpd.conf ]] ; then
 
		elog "Gentoo has a customized configuration,"
 
		elog "which is now located in /etc/lighttpd.  Please migrate your"
 
		elog "existing configuration."
 
	fi
 

	
 
	if use uploadprogress; then
 
		elog "WARNING! mod_uploadprogress is a backported module from the"
 
		elog "1.5x-branch, which is not considered stable yet.Please go to"
 
		elog "http://redmine.lighttpd.net/wiki/1/Docs:ModUploadProgress"
 
		elog "for more information. This configuration also is NOT supported"
 
		elog "by upstream, so please refrain from reporting bugs. You have"
 
		elog "been warned!"
 
	fi
 
}
0 comments (0 inline, 0 general)