diff options
Diffstat (limited to 'abs/not_built/core')
501 files changed, 42212 insertions, 0 deletions
diff --git a/abs/not_built/core/LinHES-timezone/Makefile b/abs/not_built/core/LinHES-timezone/Makefile new file mode 100644 index 0000000..d543638 --- /dev/null +++ b/abs/not_built/core/LinHES-timezone/Makefile @@ -0,0 +1,62 @@ +all: linhes_timezone + +clean: +	rm -Rf tables maps \ +	WorldTZ.mdb WorldTZ.mfd WorldTZ.mas WorldTZ.mws WorldTZ_readme.txt map_data.txt \ +	extract_map_data create_map_include linhes_timezone timezone_map.h + +#WorldTZ.mdb WorldTZ.mfd : WorldTZ_102.zip +#	unzip  WorldTZ_102.zip ; touch WorldTZ.mdb WorldTZ.mfd  + +tables/AttrDesc : WorldTZ.mdb +	mkdir -p tables +	for table in $$(mdb-tables WorldTZ.mdb) ; do mdb-export WorldTZ.mdb $$table > tables/$$table ; done +	sed -i 's/ //g' tables/AttrDesc # Fix TZ corruption. +	echo 1254 >> tables/11001 # Add Central African Republic to the UTC+1 borders. +	grep -v ^7867$$ tables/11017 > tables/11017.tmp ; mv tables/11017.tmp tables/11017 # Remove WA from UTC+9 +	grep -v ^7866$$ tables/11017 > tables/11017.tmp ; mv tables/11017.tmp tables/11017 # Remove WA/SA border from UTC+9 +	echo 7867 >> tables/11016 # Put WA in UTC+8  + +map_data.txt : extract_map_data WorldTZ.mfd +	./extract_map_data > map_data.txt +	 +extract_map_data : extract_map_data.c +	cc --std=c99 -o extract_map_data -lm extract_map_data.c + +maps : map_data.txt tables/AttrDesc +	mkdir maps +	for zone in $$(cat tables/AttrDesc | grep 110 | grep -v 11000 | grep -v 11020 | cut -d ',' -f 1) ; \ +	do \ +	  offset=$$(grep $$zone tables/AttrDesc | cut -d '"' -f 2 | sed 's/+//g' ) ; \ +	  echo $$offset >> maps/zones ; \ +	  boundary=boundary$$offset; \ +	  echo $$boundary ; \ +	  for section in $$(cat tables/$$zone) ; do grep "^$$section," map_data.txt >> maps/$$boundary ; done ; \ +	done ; \ +	for i in `cat tables/U8000 | grep -v ObjID | cut -d '"' -f 2 ` ; do \ +	  echo i=$$i ; \ +	  zone=$$(grep "^\\\"$$i\\\"," tables/U8000 | cut -d '"' -f 4) ; \ +	  echo zone=$$zone ; \ +	  tz_name=$$(grep "^\\\"$$i\\\"," tables/U7000 | cut -d '"' -f 4) ; \ +	  echo tz_name=$$tz_name ; \ +          tz_lat=$$(grep "^$$i," tables/U5000 | cut -d ',' -f 2) ; \ +	  echo tz_lat=$$tz_lat ; \ +  	  tz_lon=$$(grep "^$$i," tables/U6000 | cut -d ',' -f 2) ; \ +	  echo tz_lon=$$tz_lon ; \ +	  echo $$tz_lat $$tz_lon $$tz_name >> maps/places$$zone ; \ +	done ;\ +	for places in maps/places* ; do \ +	  sort -g -r $$places > $$places.sorted ; mv $$places.sorted $$places ; \ +	done ; \ +	sort -g maps/zones > maps/zones.sorted +	cat Tux.csv >> maps/boundary14 + +./create_map_include : create_map_include.c maps +	cc -lm --std=gnu99 -o ./create_map_include create_map_include.c + +timezone_map.h : ./create_map_include +	./create_map_include > timezone_map.h + +linhes_timezone : linhes_timezone.c timezone_map.h +	cc --std=gnu99 -O3 -pthread -lXt -llirc_client -lm -o linhes_timezone linhes_timezone.c + diff --git a/abs/not_built/core/LinHES-timezone/PKGBUILD b/abs/not_built/core/LinHES-timezone/PKGBUILD new file mode 100644 index 0000000..8864102 --- /dev/null +++ b/abs/not_built/core/LinHES-timezone/PKGBUILD @@ -0,0 +1,30 @@ +# $Id: PKGBUILD 23123 2009-01-03 02:43:02Z kevin $ +# Maintainer: Greg Frost <gregfrost1@bigpond.com> +pkgname=LinHES-timezone +pkgver=1 +pkgrel=10 +pkgdesc="GUI timezone selector used by LinHES-config." +arch=('i686' 'x86_64') +depends=() +makedepends=(mdbtools) +source=(Makefile +	Tux.csv +	WorldTZ_102.zip +	create_map_include.c +	extract_map_data.c +	linhes_timezone.c) + +build() { +    cd ${srcdir} +    make +    MVDIR=$startdir/pkg/usr/MythVantage +    mkdir -p $MVDIR/bin +    install -m 0755 linhes_timezone $MVDIR/bin/timezone.bin +} + +md5sums=('53976e51e938c555f84b43c933339051' +         '0710658b3b46cc659f56260c03b904ed' +         '0d9e51af5f650dd329edce4531c42a58' +         'c01e2335603d8395004e32bae9060fde' +         'b20bd68272644f607fbfe7d50e7be42a' +         '96e8dd40e3b7c9f5ba2423dc4243758b') diff --git a/abs/not_built/core/LinHES-timezone/Tux.csv b/abs/not_built/core/LinHES-timezone/Tux.csv new file mode 100644 index 0000000..c781230 --- /dev/null +++ b/abs/not_built/core/LinHES-timezone/Tux.csv @@ -0,0 +1,1268 @@ +1,1,1,76.855404,-29.9543607
 +1,1,1,76.92874033,-29.8978647
 +1,1,1,77.039595,-29.7662397
 +1,1,1,77.101748,-29.6618607
 +1,1,1,77.20296833,-29.4918717
 +1,1,1,77.21614533,-29.4420057
 +1,1,1,77.22810267,-29.1836937
 +1,1,1,77.24999233,-28.7108082
 +1,1,1,77.136483,-28.4430318
 +1,1,1,76.76400433,-28.0888536
 +1,1,1,76.50763367,-27.8450787
 +1,1,1,76.470453,-27.7418799
 +1,1,1,76.61730033,-27.6816627
 +1,1,1,76.75328567,-27.6258996
 +1,1,1,76.92623267,-27.6951834
 +1,1,1,77.235358,-27.9292605
 +1,1,1,77.82467367,-28.3755045
 +1,1,1,78.17055333,-28.453236
 +1,1,1,79.450732,-28.4271351
 +1,1,1,80.82728767,-28.3990692
 +1,1,1,81.57573867,-28.269135
 +1,1,1,82.33406533,-27.9265767
 +1,1,1,82.82386233,-27.7053213
 +1,1,1,83.14567633,-27.4522509
 +1,1,1,83.55725167,-26.9646801
 +1,1,1,83.84563667,-26.6230461
 +1,1,1,83.978035,-26.5048983
 +1,1,1,84.14106833,-26.4436992
 +1,1,1,84.410816,-26.342442
 +1,1,1,84.553379,-26.5419792
 +1,1,1,84.54716033,-27.012081
 +1,1,1,84.54428433,-27.2295078
 +1,1,1,84.516651,-27.370002
 +1,1,1,84.40524567,-27.7336173
 +1,1,1,84.10637767,-28.7090871
 +1,1,1,84.01263633,-29.2582017
 +1,1,1,84.09731667,-29.5373907
 +1,1,1,84.146749,-29.7003687
 +1,1,1,84.30427033,-29.8236867
 +1,1,1,84.447027,-29.8111707
 +1,1,1,84.54704167,-29.8023987
 +1,1,1,84.551579,-29.7957657
 +1,1,1,84.576327,-29.6220807
 +1,1,1,84.590433,-29.5230807
 +1,1,1,84.646968,-29.1855807
 +1,1,1,84.70196033,-28.872081
 +1,1,1,84.75695233,-28.558581
 +1,1,1,84.82448533,-28.153581
 +1,1,1,84.852034,-27.972081
 +1,1,1,84.92401,-27.4978746
 +1,1,1,84.97764,-26.0267505
 +1,1,1,84.98108467,-24.432081
 +1,1,1,84.984057,-23.0559882
 +1,1,1,84.98429267,-23.0514891
 +1,1,1,85.064223,-22.8429828
 +1,1,1,85.12628933,-22.681077
 +1,1,1,85.182713,-22.5995196
 +1,1,1,85.314223,-22.4816214
 +1,1,1,85.515724,-22.3009764
 +1,1,1,85.70807133,-22.2370386
 +1,1,1,86.136654,-22.208238
 +1,1,1,86.422576,-22.1890242
 +1,1,1,86.46410867,-22.0055526
 +1,1,1,86.55894167,-21.5866278
 +1,1,1,86.83585067,-21.3499071
 +1,1,1,87.38406533,-21.2191119
 +1,1,1,87.560966,-21.1769061
 +1,1,1,87.73832567,-21.1632777
 +1,1,1,88.11739867,-21.1627617
 +1,1,1,88.667827,-21.1620123
 +1,1,1,88.81997067,-21.1929951
 +1,1,1,89.31645833,-21.4069392
 +1,1,1,89.538465,-21.5026053
 +1,1,1,89.73406533,-21.5371119
 +1,1,1,89.73406533,-21.4806105
 +1,1,1,89.73406533,-21.4362687
 +1,1,1,89.463923,-21.2078802
 +1,1,1,89.245717,-21.0677427
 +1,1,1,89.132385,-20.9949579
 +1,1,1,88.93715033,-20.8976658
 +1,1,1,88.811862,-20.8515381
 +1,1,1,88.64378133,-20.7896553
 +1,1,1,88.58136233,-20.7511659
 +1,1,1,88.573754,-20.7047133
 +1,1,1,88.568083,-20.6700873
 +1,1,1,88.61667767,-20.46858
 +1,1,1,88.68174267,-20.2569192
 +1,1,1,88.87554667,-19.6264602
 +1,1,1,88.94017267,-19.2255144
 +1,1,1,88.94444667,-18.627081
 +1,1,1,88.95149667,-17.6398806
 +1,1,1,88.755679,-16.9871793
 +1,1,1,88.12010267,-15.8793735
 +1,1,1,87.53107533,-14.8527021
 +1,1,1,86.906687,-14.0993799
 +1,1,1,86.411835,-13.8183546
 +1,1,1,86.27147167,-13.7386428
 +1,1,1,86.100732,-13.6845003
 +1,1,1,86.100732,-13.7197026
 +1,1,1,86.100732,-13.7302218
 +1,1,1,86.21937033,-13.8903102
 +1,1,1,86.36437233,-14.0754549
 +1,1,1,87.04365433,-14.9427879
 +1,1,1,87.74921167,-16.0510407
 +1,1,1,88.05093167,-16.7246151
 +1,1,1,88.29283867,-17.2646601
 +1,1,1,88.475271,-17.9958819
 +1,1,1,88.534416,-18.6625104
 +1,1,1,88.63134367,-19.7549865
 +1,1,1,88.30012167,-20.6880249
 +1,1,1,87.73406533,-20.9170656
 +1,1,1,87.62101267,-20.9628093
 +1,1,1,87.49374967,-20.9805066
 +1,1,1,87.21739867,-20.9889129
 +1,1,1,86.77804267,-21.0022779
 +1,1,1,86.71652967,-20.9806425
 +1,1,1,86.600911,-20.772081
 +1,1,1,86.51775633,-20.622081
 +1,1,1,86.49607367,-19.422081
 +1,1,1,86.459138,-17.3779224
 +1,1,1,86.35176733,-17.0298399
 +1,1,1,85.16175567,-15.0963924
 +1,1,1,84.79572233,-14.5016874
 +1,1,1,84.72367033,-14.3450778
 +1,1,1,84.567994,-13.8058203
 +1,1,1,84.247566,-12.6958665
 +1,1,1,83.93769367,-12.0451716
 +1,1,1,83.44948267,-11.457081
 +1,1,1,82.707034,-10.5627393
 +1,1,1,82.610579,-10.192056
 +1,1,1,82.90503633,-9.364743
 +1,1,1,83.095287,-8.830212
 +1,1,1,83.09175067,-8.5522572
 +1,1,1,82.89236233,-8.3687127
 +1,1,1,82.745919,-8.233905
 +1,1,1,82.63204133,-8.1882813
 +1,1,1,81.96194267,-7.9959492
 +1,1,1,80.94620867,-7.7044128
 +1,1,1,80.47644333,-7.4435208
 +1,1,1,80.346353,-7.098705
 +1,1,1,80.217653,-6.7575747
 +1,1,1,80.31044067,-6.2076204
 +1,1,1,80.54299267,-5.9332134
 +1,1,1,80.709859,-5.7363147
 +1,1,1,80.92306,-5.6518473
 +1,1,1,81.249935,-5.6531328
 +1,1,1,81.46517933,-5.6539794
 +1,1,1,81.55348967,-5.6692146
 +1,1,1,81.702253,-5.7311661
 +1,1,1,81.93476967,-5.8279965
 +1,1,1,82.11721033,-5.9709996
 +1,1,1,82.210109,-6.1292406
 +1,1,1,82.30952767,-6.2985879
 +1,1,1,82.305878,-6.7035003
 +1,1,1,82.20224167,-7.002081
 +1,1,1,82.034794,-7.4845062
 +1,1,1,82.03911733,-7.4326629
 +1,1,1,82.158339,-7.5285348
 +1,1,1,82.37780267,-7.7050164
 +1,1,1,82.71869167,-7.7190024
 +1,1,1,82.87032167,-7.5577458
 +1,1,1,82.99996367,-7.419873
 +1,1,1,83.039238,-7.2783555
 +1,1,1,83.05783367,-6.882081
 +1,1,1,83.078155,-6.4490289
 +1,1,1,83.02605433,-6.1615194
 +1,1,1,82.82885033,-5.6184666
 +1,1,1,82.558491,-4.8739614
 +1,1,1,82.28860033,-4.6589769
 +1,1,1,81.47380867,-4.5390918
 +1,1,1,80.86367067,-4.4493186
 +1,1,1,80.531004,-4.5204525
 +1,1,1,80.22387067,-4.8063654
 +1,1,1,79.741864,-5.2550691
 +1,1,1,79.50483867,-5.9726496
 +1,1,1,79.60021367,-6.6944496
 +1,1,1,79.652888,-7.0930872
 +1,1,1,79.643091,-7.1093583
 +1,1,1,79.392839,-7.0388766
 +1,1,1,79.16874567,-6.9757623
 +1,1,1,78.68066533,-6.9245205
 +1,1,1,78.397751,-6.9344061
 +1,1,1,78.09219233,-6.9450828
 +1,1,1,78.06754467,-6.9213609
 +1,1,1,78.066821,-6.6159078
 +1,1,1,78.06386633,-5.3686707
 +1,1,1,77.64740567,-4.6928508
 +1,1,1,76.88406533,-4.6965666
 +1,1,1,76.352924,-4.699152
 +1,1,1,75.923553,-5.05956
 +1,1,1,75.76358567,-5.637081
 +1,1,1,75.70119133,-5.8623393
 +1,1,1,75.71174367,-6.50646
 +1,1,1,75.783982,-6.882081
 +1,1,1,75.926123,-7.6211817
 +1,1,1,76.238141,-7.9884852
 +1,1,1,76.47843367,-7.699581
 +1,1,1,76.57874333,-7.5789789
 +1,1,1,76.66785,-7.4229411
 +1,1,1,76.66603233,-7.3710708
 +1,1,1,76.665281,-7.3496265
 +1,1,1,76.591027,-7.3010112
 +1,1,1,76.501024,-7.2630369
 +1,1,1,76.40085433,-7.2207732
 +1,1,1,76.310634,-7.1550414
 +1,1,1,76.268421,-7.0935699
 +1,1,1,76.08144633,-6.8212914
 +1,1,1,75.98584067,-6.3342483
 +1,1,1,76.06770867,-6.0710841
 +1,1,1,76.17040333,-5.740974
 +1,1,1,76.67391267,-5.5373964
 +1,1,1,77.02102633,-5.6856411
 +1,1,1,77.31483533,-5.8111203
 +1,1,1,77.62551633,-6.3944817
 +1,1,1,77.59250267,-6.758694
 +1,1,1,77.566032,-7.0507236
 +1,1,1,77.506503,-7.1408397
 +1,1,1,77.211671,-7.3352052
 +1,1,1,77.06815467,-7.4298174
 +1,1,1,76.830732,-7.6036137
 +1,1,1,76.68406533,-7.7214198
 +1,1,1,76.53739867,-7.8392259
 +1,1,1,76.35739867,-7.9744995
 +1,1,1,76.28406533,-8.0220279
 +1,1,1,75.90931267,-8.2649109
 +1,1,1,75.70080967,-8.5503375
 +1,1,1,75.70075833,-8.8205352
 +1,1,1,75.70072467,-8.9979627
 +1,1,1,75.78157233,-9.0923688
 +1,1,1,76.03033933,-9.2053884
 +1,1,1,76.22540433,-9.2940099
 +1,1,1,76.40432967,-9.4502322
 +1,1,1,76.590694,-9.6946422
 +1,1,1,76.839235,-10.0205949
 +1,1,1,77.13504633,-10.1231244
 +1,1,1,77.81739867,-10.1198235
 +1,1,1,78.64636833,-10.1158131
 +1,1,1,79.38927067,-9.9577836
 +1,1,1,80.78353167,-9.4888698
 +1,1,1,81.53932767,-9.2346828
 +1,1,1,81.75062,-9.1519146
 +1,1,1,81.794837,-9.0927183
 +1,1,1,81.915689,-8.930925
 +1,1,1,82.06130433,-8.817081
 +1,1,1,82.14739867,-8.817081
 +1,1,1,82.26254533,-8.817081
 +1,1,1,82.36739867,-8.9161275
 +1,1,1,82.36739867,-9.024897
 +1,1,1,82.36739867,-9.206961
 +1,1,1,82.053905,-9.3560016
 +1,1,1,80.96739867,-9.6904827
 +1,1,1,80.64656533,-9.7892514
 +1,1,1,80.15156567,-9.9691704
 +1,1,1,79.86739867,-10.0903026
 +1,1,1,79.29183033,-10.3356516
 +1,1,1,79.13397767,-10.3870272
 +1,1,1,78.75541833,-10.4522145
 +1,1,1,78.44709567,-10.5053073
 +1,1,1,77.72847233,-10.5112692
 +1,1,1,77.33799367,-10.4639739
 +1,1,1,77.01553533,-10.4249175
 +1,1,1,76.82474667,-10.4463762
 +1,1,1,76.840486,-10.5199308
 +1,1,1,76.857139,-10.5977556
 +1,1,1,77.59504167,-11.1194427
 +1,1,1,77.76571833,-11.1740574
 +1,1,1,78.00549033,-11.2507821
 +1,1,1,78.47855267,-11.2641102
 +1,1,1,78.78804667,-11.2028607
 +1,1,1,79.25106733,-11.1112278
 +1,1,1,80.71495133,-10.5459018
 +1,1,1,81.438632,-10.1792517
 +1,1,1,81.684003,-10.0549356
 +1,1,1,81.819503,-10.0041243
 +1,1,1,81.906403,-10.003842
 +1,1,1,82.05345267,-10.0033644
 +1,1,1,82.16739867,-10.0854555
 +1,1,1,82.16739867,-10.191873
 +1,1,1,82.16739867,-10.3062546
 +1,1,1,81.92110233,-10.5003639
 +1,1,1,81.64838133,-10.6009173
 +1,1,1,81.174322,-10.7757051
 +1,1,1,81.072904,-10.8235059
 +1,1,1,80.600732,-11.0946978
 +1,1,1,79.95183567,-11.4673914
 +1,1,1,79.66962367,-11.6529351
 +1,1,1,79.243827,-11.9868108
 +1,1,1,78.786,-12.3458022
 +1,1,1,78.65726133,-12.3943269
 +1,1,1,78.150732,-12.3988248
 +1,1,1,77.745759,-12.4024212
 +1,1,1,77.62394067,-12.3660336
 +1,1,1,77.35892667,-12.1623093
 +1,1,1,77.152538,-12.0036525
 +1,1,1,76.65945067,-11.4503094
 +1,1,1,76.51906367,-11.2198146
 +1,1,1,76.37376833,-10.9812612
 +1,1,1,76.04734067,-10.647081
 +1,1,1,75.95961667,-10.647081
 +1,1,1,75.90277433,-10.647081
 +1,1,1,75.897383,-10.6603773
 +1,1,1,75.80147867,-11.037081
 +1,1,1,75.73310833,-11.3056344
 +1,1,1,75.487643,-11.8160808
 +1,1,1,75.08803067,-12.5206992
 +1,1,1,74.60510933,-13.3722126
 +1,1,1,74.58443433,-13.4465865
 +1,1,1,74.583096,-14.337081
 +1,1,1,74.581978,-15.081264
 +1,1,1,74.602826,-15.0165909
 +1,1,1,74.2011,-15.522081
 +1,1,1,73.70643267,-16.1445192
 +1,1,1,72.94018733,-17.774859
 +1,1,1,72.755877,-18.597081
 +1,1,1,72.61772367,-19.2133944
 +1,1,1,72.52044367,-20.2588974
 +1,1,1,72.54652333,-20.847081
 +1,1,1,72.56724433,-21.3144093
 +1,1,1,72.54048367,-21.4544064
 +1,1,1,72.41739867,-21.5225967
 +1,1,1,72.29094533,-21.5926533
 +1,1,1,72.13967633,-21.5202696
 +1,1,1,71.83101133,-21.2420052
 +1,1,1,71.34181367,-20.8009887
 +1,1,1,71.18672967,-20.4366534
 +1,1,1,71.19042133,-19.737081
 +1,1,1,71.192773,-19.2915099
 +1,1,1,71.23668333,-18.9518016
 +1,1,1,71.33486267,-18.6196296
 +1,1,1,71.41748833,-18.34008
 +1,1,1,71.419239,-18.2595
 +1,1,1,71.34239867,-18.2727102
 +1,1,1,71.26374233,-18.2862324
 +1,1,1,71.08480933,-18.6186462
 +1,1,1,70.99736733,-18.9136938
 +1,1,1,70.94423633,-19.0929687
 +1,1,1,70.92262267,-19.2748251
 +1,1,1,70.91020433,-19.647081
 +1,1,1,70.89503933,-20.1016662
 +1,1,1,70.90072433,-20.1702489
 +1,1,1,70.97983433,-20.487081
 +1,1,1,71.07909133,-20.8846017
 +1,1,1,71.27018533,-21.2592948
 +1,1,1,71.53267267,-21.571074
 +1,1,1,71.93530067,-22.0493106
 +1,1,1,73.97860667,-23.6830821
 +1,1,1,75.340802,-24.6159495
 +1,1,1,75.66534067,-24.8382021
 +1,1,1,76.02974533,-25.1161581
 +1,1,1,76.15059033,-25.2336294
 +1,1,1,76.87062033,-25.9335582
 +1,1,1,76.72979533,-26.5766649
 +1,1,1,75.747889,-27.0726498
 +1,1,1,75.59361933,-27.1505751
 +1,1,1,75.46739867,-27.2193429
 +1,1,1,75.46739867,-27.2254671
 +1,1,1,75.46739867,-27.2315913
 +1,1,1,75.59283967,-27.3885846
 +1,1,1,75.74615667,-27.5743416
 +1,1,1,76.310185,-28.2577107
 +1,1,1,76.637808,-28.7580405
 +1,1,1,76.751267,-29.1092967
 +1,1,1,76.82604367,-29.3407977
 +1,1,1,76.82189333,-29.6727987
 +1,1,1,76.741545,-29.8869987
 +1,1,1,76.70645533,-29.9805447
 +1,1,1,76.68771767,-30.057081
 +1,1,1,76.69990567,-30.057081
 +1,1,1,76.71209333,-30.057081
 +1,1,1,76.78206767,-30.010857
 +1,1,1,76.855404,-29.9543607
 +1,,,,
 +1,1,1,83.39948633,-9.0116883
 +1,1,1,83.39948633,-9.7644165
 +1,1,1,82.40413033,-9.9231924
 +1,1,1,81.92041533,-10.1937858
 +1,1,1,81.47003367,-10.5693795
 +1,1,1,78.88129267,-11.626791
 +1,1,1,78.19452267,-11.626791
 +1,1,1,77.08985933,-11.4189588
 +1,1,1,75.745382,-9.9346131
 +1,1,1,75.57289233,-8.9516883
 +1,1,1,75.57289233,-8.3789601
 +1,1,1,76.384915,-7.9201842
 +1,1,1,76.83529667,-7.5445908
 +1,1,1,77.28567833,-7.1689971
 +1,1,1,77.80775267,-6.8165856
 +1,1,1,78.69452267,-6.9665856
 +1,1,1,79.38129267,-6.9665856
 +1,1,1,80.453367,-7.2589971
 +1,1,1,80.90374867,-7.6345908
 +1,1,1,81.80413033,-7.9051842
 +1,1,1,83.39948633,-8.0789601
 +1,1,1,83.39948633,-9.0116883
 +1,,,,
 +1,1,1,65.25322551,-29.1342738
 +1,1,1,66.27848633,-29.5533651
 +1,1,1,68.66675,-30.084747
 +1,1,1,69.50831067,-30.188865
 +1,1,1,70.07025467,-30.400833
 +1,1,1,73.78959533,-31.181817
 +1,1,1,74.64648233,-31.181817
 +1,1,1,75.916137,-30.354951
 +1,1,1,76.12565833,-29.1327939
 +1,1,1,75.768862,-27.8902383
 +1,1,1,74.18628467,-25.5899535
 +1,1,1,72.96332333,-22.5742398
 +1,1,1,70.004886,-21.5368506
 +1,1,1,69.70502533,-21.66834
 +1,1,1,69.46355367,-22.0252677
 +1,1,1,69.35664667,-22.0862301
 +1,1,1,69.14370867,-22.2076554
 +1,1,1,68.90653467,-22.476036
 +1,1,1,68.755944,-22.8103248
 +1,1,1,68.59962233,-23.1573357
 +1,1,1,68.456656,-23.5826853
 +1,1,1,68.28187143,-24.2029191
 +1,1,1,67.93997497,-24.8220828
 +1,1,1,66.54368527,-24.2653119
 +1,1,1,65.58733593,-24.7126806
 +1,1,1,65.23879317,-25.6663359
 +1,1,1,65.83377103,-28.0102998
 +1,1,1,65.25322551,-29.1342738
 +1,,,,
 +1,1,1,92.80707967,-25.6089555
 +1,1,1,93.447312,-26.0799999
 +1,1,1,94.44908733,-26.4293025
 +1,1,1,94.902563,-27.2116317
 +1,1,1,94.04073333,-28.1395176
 +1,1,1,93.29644233,-28.4666676
 +1,1,1,92.202278,-28.9346199
 +1,1,1,90.70235733,-29.576106
 +1,1,1,89.76382233,-30.192921
 +1,1,1,89.075979,-30.598998
 +1,1,1,88.389209,-31.141311
 +1,1,1,86.79820267,-31.457385
 +1,1,1,86.07394933,-31.380675
 +1,1,1,85.61789,-31.09584
 +1,1,1,85.10331433,-27.8321808
 +1,1,1,85.26955667,-26.7613737
 +1,1,1,85.26955667,-26.1886455
 +1,1,1,84.493746,-23.9073477
 +1,1,1,85.73500267,-22.5149148
 +1,1,1,86.93859867,-22.3087944
 +1,1,1,87.974941,-23.2965903
 +1,1,1,88.73703267,-23.9744832
 +1,1,1,89.36738,-23.5917795
 +1,1,1,90.36322833,-23.0082537
 +1,1,1,91.116409,-22.8587616
 +1,1,1,91.36382433,-22.8096543
 +1,1,1,91.37498,-22.5768555
 +1,1,1,91.88970533,-22.8199668
 +1,1,1,92.13714233,-22.9368345
 +1,1,1,92.27856133,-23.303886
 +1,1,1,92.30609367,-23.6162919
 +1,1,1,92.35042733,-24.1193412
 +1,1,1,92.40536433,-25.1873916
 +1,1,1,92.80707967,-25.6089555
 +1,,,,
 +1,1,1,76.796339,-30.465903
 +1,1,1,76.348262,-30.659355
 +1,1,1,75.53406533,-31.274514
 +1,1,1,75.071888,-31.623708
 +1,1,1,74.86334667,-31.752909
 +1,1,1,74.64112133,-31.827741
 +1,1,1,74.45791933,-31.88943
 +1,1,1,74.04635933,-31.925751
 +1,1,1,73.850732,-31.897494
 +1,1,1,73.43139467,-31.836921
 +1,1,1,72.90028733,-31.675335
 +1,1,1,71.660628,-31.231164
 +1,1,1,70.25954733,-30.729156
 +1,1,1,69.72204033,-30.585687
 +1,1,1,68.21739867,-30.312117
 +1,1,1,67.247373,-30.13575
 +1,1,1,65.887164,-29.8360017
 +1,1,1,65.621183,-29.7399897
 +1,1,1,65.38106,-29.6533137
 +1,1,1,65.131335,-29.4707157
 +1,1,1,65.05505133,-29.3260347
 +1,1,1,65.019468,-29.2585467
 +1,1,1,65.000732,-29.1433707
 +1,1,1,65.000732,-28.9921137
 +1,1,1,65.000732,-28.7892867
 +1,1,1,65.024892,-28.6968354
 +1,1,1,65.19946033,-28.2316485
 +1,1,1,65.51655333,-27.3866643
 +1,1,1,65.531868,-27.0409599
 +1,1,1,65.285382,-26.292081
 +1,1,1,65.01223733,-25.4622072
 +1,1,1,65.076128,-24.860463
 +1,1,1,65.46956567,-24.5573715
 +1,1,1,65.69200033,-24.3860154
 +1,1,1,65.854067,-24.3571404
 +1,1,1,66.59622667,-24.3566376
 +1,1,1,67.317763,-24.3561486
 +1,1,1,67.561471,-24.3227136
 +1,1,1,67.840791,-24.1858911
 +1,1,1,68.16241633,-24.0283458
 +1,1,1,68.343495,-23.7879642
 +1,1,1,68.556043,-23.2363968
 +1,1,1,68.69392533,-22.8785889
 +1,1,1,68.782491,-22.737081
 +1,1,1,68.86855067,-22.737081
 +1,1,1,68.94116133,-22.737081
 +1,1,1,69.00043267,-22.8923652
 +1,1,1,69.00023567,-23.082081
 +1,1,1,69.000062,-23.2492884
 +1,1,1,68.79049567,-23.9580537
 +1,1,1,68.68674667,-24.1423191
 +1,1,1,68.57587233,-24.3392385
 +1,1,1,68.42646333,-24.4909803
 +1,1,1,68.25375,-24.5820753
 +1,1,1,67.93090367,-24.7523559
 +1,1,1,67.30938033,-24.7989714
 +1,1,1,66.627499,-24.7040478
 +1,1,1,66.19182133,-24.6433974
 +1,1,1,65.941701,-24.6560673
 +1,1,1,65.77515233,-24.7472232
 +1,1,1,65.52823067,-24.882369
 +1,1,1,65.487836,-25.1859936
 +1,1,1,65.66699233,-25.5602001
 +1,1,1,66.01370067,-26.2843758
 +1,1,1,66.08016167,-26.4377292
 +1,1,1,66.15319633,-26.682081
 +1,1,1,66.24046867,-26.9740665
 +1,1,1,66.25429233,-27.2271084
 +1,1,1,66.199556,-27.5306793
 +1,1,1,66.14534667,-27.8313255
 +1,1,1,66.04962,-28.0186785
 +1,1,1,65.766527,-28.378188
 +1,1,1,65.62077233,-28.5632871
 +1,1,1,65.48698967,-28.7620893
 +1,1,1,65.469232,-28.8199713
 +1,1,1,65.41939033,-28.9824327
 +1,1,1,65.49289333,-29.1072927
 +1,1,1,65.69176233,-29.1979917
 +1,1,1,65.86036133,-29.2748817
 +1,1,1,68.26560033,-29.8337757
 +1,1,1,69.96739867,-30.191496
 +1,1,1,70.48989867,-30.301326
 +1,1,1,71.442819,-30.511125
 +1,1,1,72.084999,-30.657711
 +1,1,1,72.72717933,-30.8043
 +1,1,1,73.39467933,-30.939909
 +1,1,1,73.56833233,-30.959067
 +1,1,1,74.10169033,-31.017906
 +1,1,1,74.60002667,-30.948642
 +1,1,1,74.942352,-30.768087
 +1,1,1,75.421196,-30.515529
 +1,1,1,75.7536,-29.8888437
 +1,1,1,75.79281367,-29.1647037
 +1,1,1,75.81862433,-28.6880682
 +1,1,1,75.70168733,-28.2612894
 +1,1,1,75.392592,-27.7040352
 +1,1,1,75.15765367,-27.2804757
 +1,1,1,75.041572,-27.1140684
 +1,1,1,73.91585533,-25.587081
 +1,1,1,71.933664,-22.8983217
 +1,1,1,71.07248333,-22.0019325
 +1,1,1,70.34005433,-21.865086
 +1,1,1,70.104947,-21.8211588
 +1,1,1,69.94548167,-21.8455335
 +1,1,1,69.63044533,-21.9735519
 +1,1,1,69.325104,-22.097631
 +1,1,1,69.221955,-22.1041212
 +1,1,1,69.14895333,-22.0038483
 +1,1,1,69.07888667,-21.9076065
 +1,1,1,69.02299933,-21.3710013
 +1,1,1,69.04253633,-20.982081
 +1,1,1,69.06530533,-20.5288287
 +1,1,1,69.16171833,-20.258697
 +1,1,1,69.52972033,-19.617081
 +1,1,1,70.256524,-18.3498906
 +1,1,1,70.55372667,-17.7458586
 +1,1,1,71.050097,-16.527081
 +1,1,1,71.558985,-15.2775687
 +1,1,1,71.76555233,-14.9332044
 +1,1,1,72.57072267,-13.992081
 +1,1,1,73.01040833,-13.4781546
 +1,1,1,73.543055,-12.8023269
 +1,1,1,73.91984733,-12.2802978
 +1,1,1,74.06205267,-12.0832785
 +1,1,1,74.339017,-11.719581
 +1,1,1,74.53532367,-11.472081
 +1,1,1,75.095885,-10.765335
 +1,1,1,75.122056,-10.6978155
 +1,1,1,75.06933133,-10.0943745
 +1,1,1,74.98993067,-9.1856298
 +1,1,1,74.858305,-6.138222
 +1,1,1,74.855428,-5.142081
 +1,1,1,74.85268733,-4.1930634
 +1,1,1,74.85957767,-4.0511133
 +1,1,1,74.92707167,-3.6661065
 +1,1,1,75.064661,-2.88125388
 +1,1,1,75.277857,-2.29223148
 +1,1,1,75.60891567,-1.78229424
 +1,1,1,75.738286,-1.58302263
 +1,1,1,75.87990233,-1.42565259
 +1,1,1,76.150732,-1.18020579
 +1,1,1,76.69153767,-0.69008577
 +1,1,1,77.15508567,-0.45480666
 +1,1,1,77.94670067,-0.26864106
 +1,1,1,78.591125,-0.11709054
 +1,1,1,78.751945,-0.10202856
 +1,1,1,79.71739867,-0.10280205
 +1,1,1,80.70900433,-0.10359648
 +1,1,1,81.027966,-0.13896987
 +1,1,1,81.76739867,-0.33015063
 +1,1,1,83.50098367,-0.77836998
 +1,1,1,84.74342133,-1.85924034
 +1,1,1,85.160579,-3.282081
 +1,1,1,85.314403,-3.8067423
 +1,1,1,85.398232,-4.4309859
 +1,1,1,85.517117,-5.937081
 +1,1,1,85.64418833,-7.5468843
 +1,1,1,85.71925467,-8.1150543
 +1,1,1,85.88871267,-8.7496575
 +1,1,1,86.00464133,-9.1837986
 +1,1,1,86.13991767,-9.466722
 +1,1,1,86.62023733,-10.2796056
 +1,1,1,87.58506,-11.9124522
 +1,1,1,87.98585167,-12.4821192
 +1,1,1,88.97777333,-13.6304991
 +1,1,1,90.536213,-15.4347558
 +1,1,1,91.29076767,-16.8701352
 +1,1,1,91.736821,-18.8789994
 +1,1,1,92.12084333,-20.6084994
 +1,1,1,92.16712067,-21.2690301
 +1,1,1,91.94616833,-21.867081
 +1,1,1,91.81313733,-22.2271551
 +1,1,1,91.683562,-22.4059821
 +1,1,1,91.22644167,-22.8603741
 +1,1,1,90.26557933,-23.8155024
 +1,1,1,89.198029,-24.417081
 +1,1,1,88.463939,-24.417081
 +1,1,1,87.795843,-24.417081
 +1,1,1,87.185413,-24.008061
 +1,1,1,86.75108333,-23.2693782
 +1,1,1,86.54532967,-22.8599499
 +1,1,1,86.57205633,-22.5339264
 +1,1,1,85.99003933,-22.6492446
 +1,1,1,85.70750867,-22.7198535
 +1,1,1,85.47464567,-23.028381
 +1,1,1,85.402962,-23.427081
 +1,1,1,85.35155233,-23.7130176
 +1,1,1,85.36006567,-24.8049417
 +1,1,1,85.41582633,-25.077081
 +1,1,1,85.44118233,-25.200831
 +1,1,1,85.51853233,-25.565331
 +1,1,1,85.58771533,-25.887081
 +1,1,1,85.707312,-26.4432891
 +1,1,1,85.71350733,-26.5016112
 +1,1,1,85.71359667,-27.072081
 +1,1,1,85.713679,-27.5966244
 +1,1,1,85.69992133,-27.7550832
 +1,1,1,85.604202,-28.332081
 +1,1,1,85.51454767,-28.8725187
 +1,1,1,85.49699967,-29.0575047
 +1,1,1,85.50733533,-29.3532267
 +1,1,1,85.51924,-29.6938647
 +1,1,1,85.52672533,-29.7271977
 +1,1,1,85.639164,-29.9402847
 +1,1,1,85.77529633,-30.198276
 +1,1,1,86.07673267,-30.508464
 +1,1,1,86.337871,-30.65928
 +1,1,1,86.90982467,-30.989598
 +1,1,1,87.710393,-31.01199
 +1,1,1,88.38406533,-30.716508
 +1,1,1,88.571673,-30.634221
 +1,1,1,88.84837967,-30.456369
 +1,1,1,89.31739867,-30.116616
 +1,1,1,90.072681,-29.5694907
 +1,1,1,90.63551867,-29.2172937
 +1,1,1,91.06430733,-29.0234787
 +1,1,1,91.22580833,-28.9504788
 +1,1,1,91.61882233,-28.8150999
 +1,1,1,91.937672,-28.7226366
 +1,1,1,93.25075233,-28.3418562
 +1,1,1,93.850785,-28.1128353
 +1,1,1,94.18406533,-27.8652318
 +1,1,1,94.57856733,-27.572145
 +1,1,1,94.76987033,-27.2581653
 +1,1,1,94.698758,-27.0204831
 +1,1,1,94.61085767,-26.7266901
 +1,1,1,94.23498767,-26.518434
 +1,1,1,93.46378133,-26.3362263
 +1,1,1,92.88192333,-26.1987549
 +1,1,1,92.74431133,-26.1362328
 +1,1,1,92.505086,-25.9006572
 +1,1,1,92.29500633,-25.6937826
 +1,1,1,92.133117,-25.39734
 +1,1,1,92.01436767,-25.002081
 +1,1,1,91.897648,-24.6135783
 +1,1,1,91.88057467,-23.9867937
 +1,1,1,91.98004567,-23.742081
 +1,1,1,92.05058067,-23.5685544
 +1,1,1,92.121032,-23.487081
 +1,1,1,92.20054767,-23.487081
 +1,1,1,92.29436433,-23.487081
 +1,1,1,92.33985967,-23.6340603
 +1,1,1,92.36769767,-24.027081
 +1,1,1,92.398803,-24.46623
 +1,1,1,92.47803633,-24.6961221
 +1,1,1,92.69997733,-24.9911763
 +1,1,1,93.01770233,-25.4135685
 +1,1,1,93.354924,-25.6871316
 +1,1,1,94.11739867,-26.1410259
 +1,1,1,94.91470433,-26.6156547
 +1,1,1,95.13260133,-26.8444662
 +1,1,1,95.13260133,-27.207081
 +1,1,1,95.13260133,-27.5510142
 +1,1,1,94.96461067,-27.7196763
 +1,1,1,94.09761067,-28.2462096
 +1,1,1,93.38710167,-28.6777053
 +1,1,1,93.11937333,-28.8140247
 +1,1,1,92.519382,-29.0497977
 +1,1,1,91.33510533,-29.5151727
 +1,1,1,90.49736533,-30.028977
 +1,1,1,89.59320367,-30.844485
 +1,1,1,88.821454,-31.540563
 +1,1,1,88.48255933,-31.725402
 +1,1,1,87.793589,-31.826028
 +1,1,1,87.48410267,-31.871226
 +1,1,1,86.808151,-31.863612
 +1,1,1,86.41027467,-31.81044
 +1,1,1,85.570476,-31.698213
 +1,1,1,85.11191633,-31.426899
 +1,1,1,84.72885567,-30.815604
 +1,1,1,84.48621667,-30.4284
 +1,1,1,84.37251967,-30.339555
 +1,1,1,84.078955,-30.307761
 +1,1,1,83.95343267,-30.294168
 +1,1,1,82.553232,-30.282828
 +1,1,1,80.96739867,-30.282564
 +1,1,1,78.35949067,-30.282126
 +1,1,1,78.048197,-30.287202
 +1,1,1,77.70857367,-30.335682
 +1,1,1,76.796339,-30.465903
 +1,1,1,76.855404,-29.9543607
 +1,1,1,76.92874033,-29.8978647
 +1,1,1,77.039595,-29.7662397
 +1,1,1,77.101748,-29.6618607
 +1,1,1,77.20296833,-29.4918717
 +1,1,1,77.21614533,-29.4420057
 +1,1,1,77.22810267,-29.1836937
 +1,1,1,77.24999233,-28.7108082
 +1,1,1,77.136483,-28.4430318
 +1,1,1,76.76400433,-28.0888536
 +1,1,1,76.50763367,-27.8450787
 +1,1,1,76.470453,-27.7418799
 +1,1,1,76.61730033,-27.6816627
 +1,1,1,76.75328567,-27.6258996
 +1,1,1,76.92623267,-27.6951834
 +1,1,1,77.235358,-27.9292605
 +1,1,1,77.82467367,-28.3755045
 +1,1,1,78.17055333,-28.453236
 +1,1,1,79.450732,-28.4271351
 +1,1,1,80.82728767,-28.3990692
 +1,1,1,81.57573867,-28.269135
 +1,1,1,82.33406533,-27.9265767
 +1,1,1,82.82386233,-27.7053213
 +1,1,1,83.14567633,-27.4522509
 +1,1,1,83.55725167,-26.9646801
 +1,1,1,83.84563667,-26.6230461
 +1,1,1,83.978035,-26.5048983
 +1,1,1,84.14106833,-26.4436992
 +1,1,1,84.410816,-26.342442
 +1,1,1,84.553379,-26.5419792
 +1,1,1,84.54716033,-27.012081
 +1,1,1,84.54428433,-27.2295078
 +1,1,1,84.516651,-27.370002
 +1,1,1,84.40524567,-27.7336173
 +1,1,1,84.10637767,-28.7090871
 +1,1,1,84.01263633,-29.2582017
 +1,1,1,84.09731667,-29.5373907
 +1,1,1,84.146749,-29.7003687
 +1,1,1,84.30427033,-29.8236867
 +1,1,1,84.447027,-29.8111707
 +1,1,1,84.54704167,-29.8023987
 +1,1,1,84.551579,-29.7957657
 +1,1,1,84.576327,-29.6220807
 +1,1,1,84.590433,-29.5230807
 +1,1,1,84.646968,-29.1855807
 +1,1,1,84.70196033,-28.872081
 +1,1,1,84.75695233,-28.558581
 +1,1,1,84.82448533,-28.153581
 +1,1,1,84.852034,-27.972081
 +1,1,1,84.92401,-27.4978746
 +1,1,1,84.97764,-26.0267505
 +1,1,1,84.98108467,-24.432081
 +1,1,1,84.984057,-23.0559882
 +1,1,1,84.98429267,-23.0514891
 +1,1,1,85.064223,-22.8429828
 +1,1,1,85.12628933,-22.681077
 +1,1,1,85.182713,-22.5995196
 +1,1,1,85.314223,-22.4816214
 +1,1,1,85.515724,-22.3009764
 +1,1,1,85.70807133,-22.2370386
 +1,1,1,86.136654,-22.208238
 +1,1,1,86.422576,-22.1890242
 +1,1,1,86.46410867,-22.0055526
 +1,1,1,86.55894167,-21.5866278
 +1,1,1,86.83585067,-21.3499071
 +1,1,1,87.38406533,-21.2191119
 +1,1,1,87.560966,-21.1769061
 +1,1,1,87.73832567,-21.1632777
 +1,1,1,88.11739867,-21.1627617
 +1,1,1,88.667827,-21.1620123
 +1,1,1,88.81997067,-21.1929951
 +1,1,1,89.31645833,-21.4069392
 +1,1,1,89.538465,-21.5026053
 +1,1,1,89.73406533,-21.5371119
 +1,1,1,89.73406533,-21.4806105
 +1,1,1,89.73406533,-21.4362687
 +1,1,1,89.463923,-21.2078802
 +1,1,1,89.245717,-21.0677427
 +1,1,1,89.132385,-20.9949579
 +1,1,1,88.93715033,-20.8976658
 +1,1,1,88.811862,-20.8515381
 +1,1,1,88.64378133,-20.7896553
 +1,1,1,88.58136233,-20.7511659
 +1,1,1,88.573754,-20.7047133
 +1,1,1,88.568083,-20.6700873
 +1,1,1,88.61667767,-20.46858
 +1,1,1,88.68174267,-20.2569192
 +1,1,1,88.87554667,-19.6264602
 +1,1,1,88.94017267,-19.2255144
 +1,1,1,88.94444667,-18.627081
 +1,1,1,88.95149667,-17.6398806
 +1,1,1,88.755679,-16.9871793
 +1,1,1,88.12010267,-15.8793735
 +1,1,1,87.53107533,-14.8527021
 +1,1,1,86.906687,-14.0993799
 +1,1,1,86.411835,-13.8183546
 +1,1,1,86.27147167,-13.7386428
 +1,1,1,86.100732,-13.6845003
 +1,1,1,86.100732,-13.7197026
 +1,1,1,86.100732,-13.7302218
 +1,1,1,86.21937033,-13.8903102
 +1,1,1,86.36437233,-14.0754549
 +1,1,1,87.04365433,-14.9427879
 +1,1,1,87.74921167,-16.0510407
 +1,1,1,88.05093167,-16.7246151
 +1,1,1,88.29283867,-17.2646601
 +1,1,1,88.475271,-17.9958819
 +1,1,1,88.534416,-18.6625104
 +1,1,1,88.63134367,-19.7549865
 +1,1,1,88.30012167,-20.6880249
 +1,1,1,87.73406533,-20.9170656
 +1,1,1,87.62101267,-20.9628093
 +1,1,1,87.49374967,-20.9805066
 +1,1,1,87.21739867,-20.9889129
 +1,1,1,86.77804267,-21.0022779
 +1,1,1,86.71652967,-20.9806425
 +1,1,1,86.600911,-20.772081
 +1,1,1,86.51775633,-20.622081
 +1,1,1,86.49607367,-19.422081
 +1,1,1,86.459138,-17.3779224
 +1,1,1,86.35176733,-17.0298399
 +1,1,1,85.16175567,-15.0963924
 +1,1,1,84.79572233,-14.5016874
 +1,1,1,84.72367033,-14.3450778
 +1,1,1,84.567994,-13.8058203
 +1,1,1,84.247566,-12.6958665
 +1,1,1,83.93769367,-12.0451716
 +1,1,1,83.44948267,-11.457081
 +1,1,1,82.707034,-10.5627393
 +1,1,1,82.610579,-10.192056
 +1,1,1,82.90503633,-9.364743
 +1,1,1,83.095287,-8.830212
 +1,1,1,83.09175067,-8.5522572
 +1,1,1,82.89236233,-8.3687127
 +1,1,1,82.745919,-8.233905
 +1,1,1,82.63204133,-8.1882813
 +1,1,1,81.96194267,-7.9959492
 +1,1,1,80.94620867,-7.7044128
 +1,1,1,80.47644333,-7.4435208
 +1,1,1,80.346353,-7.098705
 +1,1,1,80.217653,-6.7575747
 +1,1,1,80.31044067,-6.2076204
 +1,1,1,80.54299267,-5.9332134
 +1,1,1,80.709859,-5.7363147
 +1,1,1,80.92306,-5.6518473
 +1,1,1,81.249935,-5.6531328
 +1,1,1,81.46517933,-5.6539794
 +1,1,1,81.55348967,-5.6692146
 +1,1,1,81.702253,-5.7311661
 +1,1,1,81.93476967,-5.8279965
 +1,1,1,82.11721033,-5.9709996
 +1,1,1,82.210109,-6.1292406
 +1,1,1,82.30952767,-6.2985879
 +1,1,1,82.305878,-6.7035003
 +1,1,1,82.20224167,-7.002081
 +1,1,1,82.034794,-7.4845062
 +1,1,1,82.03911733,-7.4326629
 +1,1,1,82.158339,-7.5285348
 +1,1,1,82.37780267,-7.7050164
 +1,1,1,82.71869167,-7.7190024
 +1,1,1,82.87032167,-7.5577458
 +1,1,1,82.99996367,-7.419873
 +1,1,1,83.039238,-7.2783555
 +1,1,1,83.05783367,-6.882081
 +1,1,1,83.078155,-6.4490289
 +1,1,1,83.02605433,-6.1615194
 +1,1,1,82.82885033,-5.6184666
 +1,1,1,82.558491,-4.8739614
 +1,1,1,82.28860033,-4.6589769
 +1,1,1,81.47380867,-4.5390918
 +1,1,1,80.86367067,-4.4493186
 +1,1,1,80.531004,-4.5204525
 +1,1,1,80.22387067,-4.8063654
 +1,1,1,79.741864,-5.2550691
 +1,1,1,79.50483867,-5.9726496
 +1,1,1,79.60021367,-6.6944496
 +1,1,1,79.652888,-7.0930872
 +1,1,1,79.643091,-7.1093583
 +1,1,1,79.392839,-7.0388766
 +1,1,1,79.16874567,-6.9757623
 +1,1,1,78.68066533,-6.9245205
 +1,1,1,78.397751,-6.9344061
 +1,1,1,78.09219233,-6.9450828
 +1,1,1,78.06754467,-6.9213609
 +1,1,1,78.066821,-6.6159078
 +1,1,1,78.06386633,-5.3686707
 +1,1,1,77.64740567,-4.6928508
 +1,1,1,76.88406533,-4.6965666
 +1,1,1,76.352924,-4.699152
 +1,1,1,75.923553,-5.05956
 +1,1,1,75.76358567,-5.637081
 +1,1,1,75.70119133,-5.8623393
 +1,1,1,75.71174367,-6.50646
 +1,1,1,75.783982,-6.882081
 +1,1,1,75.926123,-7.6211817
 +1,1,1,76.238141,-7.9884852
 +1,1,1,76.47843367,-7.699581
 +1,1,1,76.57874333,-7.5789789
 +1,1,1,76.66785,-7.4229411
 +1,1,1,76.66603233,-7.3710708
 +1,1,1,76.665281,-7.3496265
 +1,1,1,76.591027,-7.3010112
 +1,1,1,76.501024,-7.2630369
 +1,1,1,76.40085433,-7.2207732
 +1,1,1,76.310634,-7.1550414
 +1,1,1,76.268421,-7.0935699
 +1,1,1,76.08144633,-6.8212914
 +1,1,1,75.98584067,-6.3342483
 +1,1,1,76.06770867,-6.0710841
 +1,1,1,76.17040333,-5.740974
 +1,1,1,76.67391267,-5.5373964
 +1,1,1,77.02102633,-5.6856411
 +1,1,1,77.31483533,-5.8111203
 +1,1,1,77.62551633,-6.3944817
 +1,1,1,77.59250267,-6.758694
 +1,1,1,77.566032,-7.0507236
 +1,1,1,77.506503,-7.1408397
 +1,1,1,77.211671,-7.3352052
 +1,1,1,77.06815467,-7.4298174
 +1,1,1,76.830732,-7.6036137
 +1,1,1,76.68406533,-7.7214198
 +1,1,1,76.53739867,-7.8392259
 +1,1,1,76.35739867,-7.9744995
 +1,1,1,76.28406533,-8.0220279
 +1,1,1,75.90931267,-8.2649109
 +1,1,1,75.70080967,-8.5503375
 +1,1,1,75.70075833,-8.8205352
 +1,1,1,75.70072467,-8.9979627
 +1,1,1,75.78157233,-9.0923688
 +1,1,1,76.03033933,-9.2053884
 +1,1,1,76.22540433,-9.2940099
 +1,1,1,76.40432967,-9.4502322
 +1,1,1,76.590694,-9.6946422
 +1,1,1,76.839235,-10.0205949
 +1,1,1,77.13504633,-10.1231244
 +1,1,1,77.81739867,-10.1198235
 +1,1,1,78.64636833,-10.1158131
 +1,1,1,79.38927067,-9.9577836
 +1,1,1,80.78353167,-9.4888698
 +1,1,1,81.53932767,-9.2346828
 +1,1,1,81.75062,-9.1519146
 +1,1,1,81.794837,-9.0927183
 +1,1,1,81.915689,-8.930925
 +1,1,1,82.06130433,-8.817081
 +1,1,1,82.14739867,-8.817081
 +1,1,1,82.26254533,-8.817081
 +1,1,1,82.36739867,-8.9161275
 +1,1,1,82.36739867,-9.024897
 +1,1,1,82.36739867,-9.206961
 +1,1,1,82.053905,-9.3560016
 +1,1,1,80.96739867,-9.6904827
 +1,1,1,80.64656533,-9.7892514
 +1,1,1,80.15156567,-9.9691704
 +1,1,1,79.86739867,-10.0903026
 +1,1,1,79.29183033,-10.3356516
 +1,1,1,79.13397767,-10.3870272
 +1,1,1,78.75541833,-10.4522145
 +1,1,1,78.44709567,-10.5053073
 +1,1,1,77.72847233,-10.5112692
 +1,1,1,77.33799367,-10.4639739
 +1,1,1,77.01553533,-10.4249175
 +1,1,1,76.82474667,-10.4463762
 +1,1,1,76.840486,-10.5199308
 +1,1,1,76.857139,-10.5977556
 +1,1,1,77.59504167,-11.1194427
 +1,1,1,77.76571833,-11.1740574
 +1,1,1,78.00549033,-11.2507821
 +1,1,1,78.47855267,-11.2641102
 +1,1,1,78.78804667,-11.2028607
 +1,1,1,79.25106733,-11.1112278
 +1,1,1,80.71495133,-10.5459018
 +1,1,1,81.438632,-10.1792517
 +1,1,1,81.684003,-10.0549356
 +1,1,1,81.819503,-10.0041243
 +1,1,1,81.906403,-10.003842
 +1,1,1,82.05345267,-10.0033644
 +1,1,1,82.16739867,-10.0854555
 +1,1,1,82.16739867,-10.191873
 +1,1,1,82.16739867,-10.3062546
 +1,1,1,81.92110233,-10.5003639
 +1,1,1,81.64838133,-10.6009173
 +1,1,1,81.174322,-10.7757051
 +1,1,1,81.072904,-10.8235059
 +1,1,1,80.600732,-11.0946978
 +1,1,1,79.95183567,-11.4673914
 +1,1,1,79.66962367,-11.6529351
 +1,1,1,79.243827,-11.9868108
 +1,1,1,78.786,-12.3458022
 +1,1,1,78.65726133,-12.3943269
 +1,1,1,78.150732,-12.3988248
 +1,1,1,77.745759,-12.4024212
 +1,1,1,77.62394067,-12.3660336
 +1,1,1,77.35892667,-12.1623093
 +1,1,1,77.152538,-12.0036525
 +1,1,1,76.65945067,-11.4503094
 +1,1,1,76.51906367,-11.2198146
 +1,1,1,76.37376833,-10.9812612
 +1,1,1,76.04734067,-10.647081
 +1,1,1,75.95961667,-10.647081
 +1,1,1,75.90277433,-10.647081
 +1,1,1,75.897383,-10.6603773
 +1,1,1,75.80147867,-11.037081
 +1,1,1,75.73310833,-11.3056344
 +1,1,1,75.487643,-11.8160808
 +1,1,1,75.08803067,-12.5206992
 +1,1,1,74.60510933,-13.3722126
 +1,1,1,74.58443433,-13.4465865
 +1,1,1,74.583096,-14.337081
 +1,1,1,74.581978,-15.081264
 +1,1,1,74.602826,-15.0165909
 +1,1,1,74.2011,-15.522081
 +1,1,1,73.70643267,-16.1445192
 +1,1,1,72.94018733,-17.774859
 +1,1,1,72.755877,-18.597081
 +1,1,1,72.61772367,-19.2133944
 +1,1,1,72.52044367,-20.2588974
 +1,1,1,72.54652333,-20.847081
 +1,1,1,72.56724433,-21.3144093
 +1,1,1,72.54048367,-21.4544064
 +1,1,1,72.41739867,-21.5225967
 +1,1,1,72.29094533,-21.5926533
 +1,1,1,72.13967633,-21.5202696
 +1,1,1,71.83101133,-21.2420052
 +1,1,1,71.34181367,-20.8009887
 +1,1,1,71.18672967,-20.4366534
 +1,1,1,71.19042133,-19.737081
 +1,1,1,71.192773,-19.2915099
 +1,1,1,71.23668333,-18.9518016
 +1,1,1,71.33486267,-18.6196296
 +1,1,1,71.41748833,-18.34008
 +1,1,1,71.419239,-18.2595
 +1,1,1,71.34239867,-18.2727102
 +1,1,1,71.26374233,-18.2862324
 +1,1,1,71.08480933,-18.6186462
 +1,1,1,70.99736733,-18.9136938
 +1,1,1,70.94423633,-19.0929687
 +1,1,1,70.92262267,-19.2748251
 +1,1,1,70.91020433,-19.647081
 +1,1,1,70.89503933,-20.1016662
 +1,1,1,70.90072433,-20.1702489
 +1,1,1,70.97983433,-20.487081
 +1,1,1,71.07909133,-20.8846017
 +1,1,1,71.27018533,-21.2592948
 +1,1,1,71.53267267,-21.571074
 +1,1,1,71.93530067,-22.0493106
 +1,1,1,73.97860667,-23.6830821
 +1,1,1,75.340802,-24.6159495
 +1,1,1,75.66534067,-24.8382021
 +1,1,1,76.02974533,-25.1161581
 +1,1,1,76.15059033,-25.2336294
 +1,1,1,76.87062033,-25.9335582
 +1,1,1,76.72979533,-26.5766649
 +1,1,1,75.747889,-27.0726498
 +1,1,1,75.59361933,-27.1505751
 +1,1,1,75.46739867,-27.2193429
 +1,1,1,75.46739867,-27.2254671
 +1,1,1,75.46739867,-27.2315913
 +1,1,1,75.59283967,-27.3885846
 +1,1,1,75.74615667,-27.5743416
 +1,1,1,76.310185,-28.2577107
 +1,1,1,76.637808,-28.7580405
 +1,1,1,76.751267,-29.1092967
 +1,1,1,76.82604367,-29.3407977
 +1,1,1,76.82189333,-29.6727987
 +1,1,1,76.741545,-29.8869987
 +1,1,1,76.70645533,-29.9805447
 +1,1,1,76.68771767,-30.057081
 +1,1,1,76.69990567,-30.057081
 +1,1,1,76.71209333,-30.057081
 +1,1,1,76.78206767,-30.010857
 +1,1,1,76.855404,-29.9543607
 +1,,,,
 +1,1,1,85.290415,-10.8334548
 +1,1,1,85.36160833,-10.7927157
 +1,1,1,85.50007267,-10.4848917
 +1,1,1,85.50040667,-10.3666173
 +1,1,1,85.500662,-10.2759204
 +1,1,1,85.478526,-10.2324843
 +1,1,1,85.39720667,-10.1641173
 +1,1,1,85.340268,-10.1162472
 +1,1,1,85.27984133,-10.077081
 +1,1,1,85.262925,-10.077081
 +1,1,1,85.246009,-10.077081
 +1,1,1,85.11634567,-10.0277019
 +1,1,1,84.974784,-9.9673497
 +1,1,1,84.799041,-9.892425
 +1,1,1,84.647826,-9.7972656
 +1,1,1,84.49806367,-9.6673497
 +1,1,1,84.37742867,-9.5627019
 +1,1,1,84.26146467,-9.477081
 +1,1,1,84.24036533,-9.477081
 +1,1,1,84.21926533,-9.477081
 +1,1,1,84.19232333,-9.5117883
 +1,1,1,84.18049367,-9.5542083
 +1,1,1,84.14217333,-9.6916203
 +1,1,1,84.197132,-9.9066513
 +1,1,1,84.335091,-10.1590857
 +1,1,1,84.45714,-10.3824081
 +1,1,1,84.49935867,-10.4277102
 +1,1,1,84.77542867,-10.6315857
 +1,1,1,85.07218567,-10.8507381
 +1,1,1,85.183772,-10.8944787
 +1,1,1,85.290415,-10.8334548
 +1,,,,
 +1,1,1,77.270649,-6.814581
 +1,1,1,77.30945567,-6.7229346
 +1,1,1,77.298465,-6.6524331
 +1,1,1,77.198076,-6.3490548
 +1,1,1,77.154151,-6.2163114
 +1,1,1,77.09129033,-6.1048395
 +1,1,1,77.023425,-6.0393435
 +1,1,1,76.92537433,-5.9447151
 +1,1,1,76.91113,-5.939976
 +1,1,1,76.83406533,-5.976342
 +1,1,1,76.722331,-6.0290682
 +1,1,1,76.733311,-6.1492185
 +1,1,1,76.86190933,-6.2810376
 +1,1,1,76.95974833,-6.381327
 +1,1,1,77.04309033,-6.5713101
 +1,1,1,77.082804,-6.784581
 +1,1,1,77.10899,-6.9252048
 +1,1,1,77.216534,-6.9423804
 +1,1,1,77.270649,-6.814581
 +1,,,,
 +1,1,1,81.96808267,-6.7313394
 +1,1,1,82.039352,-6.6540525
 +1,1,1,81.98759733,-6.2825028
 +1,1,1,81.88639,-6.1448616
 +1,1,1,81.78243433,-6.0034824
 +1,1,1,81.54429333,-5.8741299
 +1,1,1,81.35206767,-5.8546299
 +1,1,1,81.22751733,-5.8419951
 +1,1,1,81.20177867,-5.8492653
 +1,1,1,81.16760467,-5.9067345
 +1,1,1,81.12082467,-5.9854026
 +1,1,1,81.14187033,-6.007701
 +1,1,1,81.30797467,-6.0554595
 +1,1,1,81.51309667,-6.1144368
 +1,1,1,81.70336233,-6.3687105
 +1,1,1,81.75349233,-6.6508554
 +1,1,1,81.77213333,-6.7557705
 +1,1,1,81.78858,-6.777081
 +1,1,1,81.85091067,-6.777081
 +1,1,1,81.892156,-6.777081
 +1,1,1,81.94488333,-6.7564971
 +1,1,1,81.96808267,-6.7313394
 +1,,,,
 +1,1,1,82.18867067,-2.69226408
 +1,1,1,82.42852033,-2.54303718
 +1,1,1,82.44815467,-2.53656918
 +1,1,1,82.67797333,-2.53108368
 +1,1,1,82.969619,-2.52412248
 +1,1,1,83.03406567,-2.50201998
 +1,1,1,83.03406567,-2.40895788
 +1,1,1,83.03406567,-2.26396848
 +1,1,1,82.47926467,-1.82264604
 +1,1,1,82.24788167,-1.78357908
 +1,1,1,82.01355667,-1.74401538
 +1,1,1,81.93061167,-1.85779869
 +1,1,1,81.88243467,-2.28489618
 +1,1,1,81.86445467,-2.44429548
 +1,1,1,81.83899,-2.51100348
 +1,1,1,81.763478,-2.59652118
 +1,1,1,81.65928367,-2.71452168
 +1,1,1,81.64400533,-2.78374998
 +1,1,1,81.70906533,-2.84307438
 +1,1,1,81.776394,-2.90446758
 +1,1,1,81.92036367,-2.85919668
 +1,1,1,82.18867067,-2.69226408
 +1,,,,
 +1,1,1,79.410085,-7.4872386
 +1,1,1,79.21516133,-7.4259753
 +1,1,1,79.067386,-7.3370922
 +1,1,1,79.104668,-7.3035384
 +1,1,1,79.113817,-7.2953043
 +1,1,1,79.22542433,-7.2801747
 +1,1,1,79.352684,-7.2699168
 +1,1,1,79.65352067,-7.2456678
 +1,1,1,79.76739867,-7.2828384
 +1,1,1,79.76739867,-7.4052831
 +1,1,1,79.76739867,-7.4632503
 +1,1,1,79.744596,-7.5059535
 +1,1,1,79.70292333,-7.5260256
 +1,1,1,79.66746233,-7.5431061
 +1,1,1,79.633712,-7.5560271
 +1,1,1,79.62792333,-7.5547386
 +1,1,1,79.62213467,-7.5534504
 +1,1,1,79.52410733,-7.5230754
 +1,1,1,79.410085,-7.4872386
 +1,,,,
 +1,1,1,77.434187,-7.6172856
 +1,1,1,77.32839967,-7.4393868
 +1,1,1,77.521896,-7.287081
 +1,1,1,77.85369433,-7.287081
 +1,1,1,77.96906767,-7.287081
 +1,1,1,78.07226967,-7.2999036
 +1,1,1,78.08303167,-7.3155759
 +1,1,1,78.10818933,-7.3522113
 +1,1,1,77.994676,-7.407081
 +1,1,1,77.89372733,-7.407081
 +1,1,1,77.83444333,-7.407081
 +1,1,1,77.799849,-7.4377419
 +1,1,1,77.74986933,-7.534581
 +1,1,1,77.695118,-7.6406658
 +1,1,1,77.66624133,-7.663635
 +1,1,1,77.57794667,-7.671333
 +1,1,1,77.49767733,-7.6783314
 +1,1,1,77.462659,-7.6651662
 +1,1,1,77.434187,-7.6172856
 +1,,,,
 +1,1,1,72.47012933,-15.8961972
 +1,1,1,72.790484,-15.599523
 +1,1,1,72.878587,-15.4512909
 +1,1,1,72.86127833,-15.2380935
 +1,1,1,72.84920067,-15.0893295
 +1,1,1,72.78740767,-15.0385272
 +1,1,1,72.65493467,-15.068451
 +1,1,1,72.555839,-15.0908352
 +1,1,1,72.50178867,-15.1788813
 +1,1,1,72.41807067,-15.4542921
 +1,1,1,72.37857533,-15.5842218
 +1,1,1,72.32091667,-15.671697
 +1,1,1,72.18322733,-15.8105769
 +1,1,1,71.99868567,-15.9967149
 +1,1,1,71.96803533,-16.065654
 +1,1,1,72.040732,-16.131081
 +1,1,1,72.11698533,-16.199709
 +1,1,1,72.17905267,-16.165758
 +1,1,1,72.47012933,-15.8961972
 diff --git a/abs/not_built/core/LinHES-timezone/WorldTZ_102.zip b/abs/not_built/core/LinHES-timezone/WorldTZ_102.zip Binary files differnew file mode 100644 index 0000000..3112bd4 --- /dev/null +++ b/abs/not_built/core/LinHES-timezone/WorldTZ_102.zip diff --git a/abs/not_built/core/LinHES-timezone/create_map_include.c b/abs/not_built/core/LinHES-timezone/create_map_include.c new file mode 100644 index 0000000..dbdbb52 --- /dev/null +++ b/abs/not_built/core/LinHES-timezone/create_map_include.c @@ -0,0 +1,186 @@ +#include <unistd.h> +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <math.h> + +int main () +{ +  char line_in[100]; +  FILE *zones; +  FILE *boundary; +  char boundary_name[100]; +  zones = fopen ("maps/zones.sorted", "r"); +  int zone_num = 0; +  +  printf ("typedef struct {double x;double y;double z;} vect_type;\n"); +  while (!feof (zones)) +  { +    char coords[100]; +    int points_in_vector = 0; +    if (fgets (line_in, sizeof (line_in), zones)) +    { +    //Strip the newline off the end. +    line_in[strlen(line_in) - 1] = 0; +     +    sprintf (boundary_name, "maps/boundary%s", line_in); + +//printf ("%s<\n", boundary_name); +     +    boundary = fopen (boundary_name, "r"); +     +    if (!boundary) +    { +      fprintf (stderr, "%s ", boundary_name); +      perror ("fopen"); +      exit (1); +    } + +    printf ("vect_type boundary_%d[] = {\n", zone_num); + +    while (!feof (boundary)) +    { +      int num_scanned; +      int id,code,point; +      double lon,lat,x,y,z;     +       +      memset (coords, 0, sizeof (coords)); +      fgets (coords, sizeof (coords), boundary); +//printf ("scanning %s\n", coords);  + +      num_scanned = sscanf (coords, "%d,%d,%d,%lf,%lf", &id,&code,&point,&lon,&lat); + +//printf ("num scanned%d\n", num_scanned); +       +      if (num_scanned <= 0) +      { +        // EOF coming. +      } +      else if (num_scanned == 5) +      { +      lon *= M_PI / 180.0; +      lat *= M_PI / 180.0; +       +      x = cos (lon) * cos (lat); +      y = sin (lon) * cos (lat); +      z = sin (lat); +       +        points_in_vector++; +        printf ("{%.5lf, %.5lf, %.5lf},\n", x, y, z); +      } +      else +      { +//printf ("points in = %d\n", points_in_vector); + +        // If there was only a single point in the vector duplicate it. +        // This will allow ust to use xdrawlines to draw it. +        if (points_in_vector == 1) +        printf ("{%.5lf, %.5lf, %.5lf},\n", x, y, z); +         +        //Print an end vector delimiter. +        printf ("{-10.0,-10.0,-10.0},\n"); +        points_in_vector = 0; +      } +    } +    printf ("};\n"); +     +    printf ("#define num_boundary_points_%d XtNumber (boundary_%d)\n", zone_num, zone_num); +    fclose (boundary); +    zone_num++; +    } +  }  + +  fclose (zones); + + +  printf ("typedef struct {\n" +          "  char *zonename;\n" +          "  vect_type v;\n" +          "} place_info_type;\n"); + +  zones = fopen ("maps/zones.sorted", "r"); +  zone_num = 0; +  +  while (!feof (zones)) +  { +    FILE *places; +    char place_name[100]; +     +    if (fgets (line_in, sizeof (line_in), zones)) +    { +      char place_info[100]; +      double lat,lon; +      char zonename[100]; + +      //Strip the newline off the end. +      line_in[strlen(line_in) - 1] = 0; +     +      printf ("#define zone_offset_%d \"%s%s\"\n", zone_num, (line_in[0] == '-') ? "" : "+", line_in); + +      sprintf (place_name, "maps/places%s", line_in); + +//printf ("%s<\n", place_name); +     +      places = fopen (place_name, "r"); + +      if (!places) +      { +        fprintf (stderr, "%s ", place_name); +        perror ("fopen"); +        exit (1); +      }     + +      printf ("place_info_type places_%d[] =\n{\n", zone_num); + +      memset (place_info, 0, sizeof (place_info)); + +      while (fgets (place_info, sizeof (place_info), places)) +      { +//printf (place_info); + +        if (sscanf (place_info, "%lf %lf %s", &lat, &lon, zonename) == 3) +        { +          lat *= M_PI / 180.0; +          lon *= M_PI / 180.0; + +          printf ("  {\"%s\", {%.5lf, %.5lf, %.5lf}},\n", zonename,  +                   +            cos (lon) * cos (lat), +            sin (lon) * cos (lat), +            sin (lat) +                  ); +        } +      } +      printf ("};\n"); + +      printf ("#define num_places_%d XtNumber (places_%d)\n", zone_num, zone_num); +      zone_num++; +    }  +  } +   +  printf ("#define NUM_ZONES %d\n", zone_num); + +  printf ("struct {\n" +          "  char *offset;\n" +          "  int num_boundary_points;\n" +          "  vect_type *boundary_points;\n" +          "  int num_places;\n" +          "  place_info_type *place_info;\n" +          "} zone_data[] =\n" +          "{\n"); + +  for (int zone = 0; zone < zone_num; zone++) +  { +    printf ("  {\n" +            "    zone_offset_%d,\n" +            "    num_boundary_points_%d,\n" +            "    boundary_%d,\n" +            "    num_places_%d,\n" +            "    places_%d\n" +            "  },\n", zone, zone, zone, zone, zone); +  } + +  printf ("};\n"); + +  exit (0); +} diff --git a/abs/not_built/core/LinHES-timezone/extract_map_data.c b/abs/not_built/core/LinHES-timezone/extract_map_data.c new file mode 100644 index 0000000..8fd8e52 --- /dev/null +++ b/abs/not_built/core/LinHES-timezone/extract_map_data.c @@ -0,0 +1,188 @@ +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <stdlib.h> +#include <stdio.h> +#include <math.h> +#include <unistd.h> + +int main () +{ +  int fd; +  int num_vectors; +  int limits[4]; +  double MAP_PIXEL_WIDTH = 1000; + +  typedef struct +  { +    int id; +    int code; +    int limits[4]; +    int num_points; +    int offset; +  } vector_info; + +  vector_info *vector; +  int i; + +  fd = open ("WorldTZ.mfd", O_RDONLY); + +  if (fd == -1) +  { +    perror ("open"); +    abort (); +  } + +  read (fd, &num_vectors, 4); +  read (fd, limits, sizeof (limits)); +   +  vector = calloc (num_vectors, sizeof (vector_info)); +   +  read (fd, vector, sizeof (vector_info) * num_vectors); +   +#if 0 +  for (i = 0; i < num_vectors; i++) +  { +    printf ("list%d %d %d %d %d %d %d %d %d\n", +      i, +      vector[i].id, +      vector[i].code, +      vector[i].limits[0], +      vector[i].limits[2], +      vector[i].limits[3], +      vector[i].limits[4], +      vector[i].num_points, +      vector[i].offset);                 +  } +#endif + +  for (i = 0; i < num_vectors; i++) +  { +    typedef struct +    { +      int lon; +      int lat; +    } point_type; +     +    int j; +     +    point_type *point = NULL; + +    point = realloc (point, vector[i].num_points * sizeof (point_type)); +    read (fd, point, vector[i].num_points * sizeof (point_type)); + +    /* Map the points onto an 800x400 pixel area */ + +    for (j = 0; j < vector[i].num_points; j++) +    { +      if (point[j].lon > -2000000) +      { +      point[j].lon = lrint (point[j].lon * MAP_PIXEL_WIDTH / 3600000); +      point[j].lat = lrint (point[j].lat * MAP_PIXEL_WIDTH / 3600000); +      } +    } + +    /* Remove consecutive points that are now the same. */ +     +    for (j = 0; j < vector[i].num_points - 1; j++) +    { +      if ((point[j].lon == point[j+1].lon) && +          (point[j].lat == point[j+1].lat)) +      { +        for (int k = j + 1; k < vector[i].num_points - 1; k++) +        { +          point[k].lat = point[k+1].lat; +          point[k].lon = point[k+1].lon; +        } +         +        vector[i].num_points--; +        j--; +      } +    } + +    // Lop off any small corners one style at a time  +    //(so that aligning borders match) to make them diagonals. + +    for (int lop = 0; lop < 8; lop++) +    { +      int dx1c[8] = {-1, 1,-1, 1, 0, 0, 0, 0,}; +      int dx2c[8] = { 0, 0, 0, 0,-1, 1,-1, 1,}; +      int dy1c[8] = { 0, 0, 0, 0,-1,-1, 1, 1,}; +      int dy2c[8] = {-1,-1, 1, 1, 0, 0, 0, 0,}; + +      for (j = 0; j < vector[i].num_points - 2; j++) +      { +        int dx1,dx2,dy1,dy2; +        dx1 = point[j+0].lon - point[j+1].lon; +        dx2 = point[j+1].lon - point[j+2].lon; +        dy1 = point[j+0].lat - point[j+1].lat; +        dy2 = point[j+1].lat - point[j+2].lat; + +        if ((dx1 == dx1c[lop]) && (dy1 == dy1c[lop]) && +            (dx2 == dx2c[lop]) && (dy2 == dy2c[lop])) +        { +          for (int k = j + 1; k < vector[i].num_points - 1; k++) +          { +            point[k].lat = point[k+1].lat; +            point[k].lon = point[k+1].lon; +          } +         +          vector[i].num_points--; +          j--; +        } +      } +    }  + +    /* Now weed out points where there are a number of points on the same line. */ +     +    for (j = 0; j < vector[i].num_points - 2; j++) +    { +      int dx1,dx2,dy1,dy2; +      int same_dir = 0; +      dx1 = point[j+0].lon - point[j+1].lon; +      dx2 = point[j+1].lon - point[j+2].lon; +      dy1 = point[j+0].lat - point[j+1].lat; +      dy2 = point[j+1].lat - point[j+2].lat; + +      if ((dx1 == 0) && (dx2 == 0) && (dy1 * dy2 >= 0)) +        same_dir = 1; +      if ((dy1 == 0) && (dy2 == 0) && (dx1 * dx2 >= 0)) +        same_dir = 1; + +      if ((dx1 != 0) && (dx2 != 0)) +      { +        if ((dy1 * dx2) == (dy2 * dx1) && ((dx1 * dx2) > 0)) +        same_dir = 1; +      } +         +      if (same_dir) +      { +        for (int k = j + 1; k < vector[i].num_points - 1; k++) +        { +          point[k].lat = point[k+1].lat; +          point[k].lon = point[k+1].lon; +        } +         +        vector[i].num_points--; +        j--; +      } +    } +     +    for (j = 0; j < vector[i].num_points; j++) +    { +      if (point[j].lon == -2147483648) +      { +        printf ("%d,\n", vector[i].id); +      } +      else +      { +        printf ("%d,%d,%d,%.2lf,%.2lf\n", +          vector[i].id, vector[i].code, j,  +          point[j].lon * 360.0 / MAP_PIXEL_WIDTH,  +          point[j].lat * 360.0 / MAP_PIXEL_WIDTH); +      } +    } + +    printf ("%d,\n", vector[i].id); +  } +} diff --git a/abs/not_built/core/LinHES-timezone/linhes_timezone.c b/abs/not_built/core/LinHES-timezone/linhes_timezone.c new file mode 100644 index 0000000..1cf04b2 --- /dev/null +++ b/abs/not_built/core/LinHES-timezone/linhes_timezone.c @@ -0,0 +1,1120 @@ +#include <stdio.h> +#include <math.h> +#include <stdlib.h> +#include <stdio.h> +#define _GNU_SOURCE +#include <string.h> +#include <strings.h> +#include <X11/Xlib.h> +#include <X11/Intrinsic.h> +#include <X11/IntrinsicI.h> +#include <lirc/lirc_client.h> +#include <pthread.h> + +#include "timezone_map.h" + +Display *display; +Window window; +GC gc; +int screen; +int selected_zone; +int selected_place; +Pixmap pixmap; +XColor ocean; +XColor land[8]; +XColor border; +XColor selected_border; +XColor selected_land; +XColor name_colour; +XColor location_dot; +XColor lat_lon; +XColor tux_yellow; +Dimension screen_width = 1920; +Dimension screen_height = 1080; +Dimension width = 1920; +Dimension height = 1080; +Position x = 0; +Position y = 0; +XFontStruct *font; +XPoint xpoints[1000]; +int radius; +double aspect_correction = 1; + +double target_lat; +double target_lon; + +double displayed_lat; +double displayed_lon; + +double lon_rotate[2] = {1, 0}; +double lat_rotate[2] = {1, 0}; + +double acceleration = 0.01; +char input_keys[200]; + +int guessing_timezone = FALSE; +time_t guess_timeout = 0; +int guess_failed = FALSE; +time_t guess_failed_timeout = 0; +int show_information = FALSE; +int info_displayed = FALSE; + +void select_place (int place) +{ +  target_lon = atan2 (zone_data[selected_zone].place_info[place].v.y, +               zone_data[selected_zone].place_info[place].v.x); +  target_lat = acos (zone_data[selected_zone].place_info[place].v.z /2); + +  selected_place = place; +} + +void default_zone (char *arg_zone) +{ +  int found_zone = FALSE; + +  for (int zone = 0; zone < NUM_ZONES; zone++) +  { +    for (int place = 0; place < zone_data[zone].num_places; place++) +    { +      if (strstr (zone_data[zone].place_info[place].zonename,  +                  arg_zone[0] ? arg_zone : "Los_Angeles")) +      { +        selected_zone = zone; +        select_place (place); +        found_zone = TRUE; +      } +    } +  } + +  if (!found_zone) +  { +    default_zone (""); +  } +} + +int translate_point (vect_type *v, XPoint *p) +{ +  vect_type v2; +  vect_type v3; + +  v2.x = v->x * lon_rotate[0] + v->y * lon_rotate[1]; +  v2.y = v->x * -1.0 * lon_rotate[1] + v->y * lon_rotate[0]; +  v2.z = v->z; +   +  v3.x = v2.x * lat_rotate[0] + v2.z * lat_rotate[1]; +  v3.y = v2.y * radius;  +  v3.z = v2.x * -1.0 * lat_rotate[1] + v2.z * lat_rotate[0]; +     + +  // If the point is behind the face of the globe, project it to the edge. +  if (v3.x < 0) +  { +    p->x = width /2 + radius * sin (atan2 (v3.y,v3.z)) * aspect_correction; +    p->y = height/2 - radius * cos (atan2 (v3.y,v3.z)); +  } +  else +  { +    p->x = width /2 + lrint (v3.y) * aspect_correction; +    p->y = height/2 - lrint (v3.z); +  } +   +  // Return a value indicating if it is on the front of the world. +  return (v3.x >= 0); +} + +void draw_zone ( +      Drawable d, +      int zone, +      int fill, +      int selected) +{ +  int boundary = 0; +  int num_points = 0; +  int all_on_back = 1; + +  if (selected && fill) +    XSetForeground (display, gc, selected_land.pixel); + +  while (boundary < zone_data[zone].num_boundary_points) +  { +    if (zone_data[zone].boundary_points[boundary].x < -9) +    {       + +      if ((num_points > 1) && !all_on_back) +      { +        if (fill) +        { +          if (!selected) +          { +            if (zone == NUM_ZONES - 1) +            { +              if (boundary < 380) +                XSetForeground (display, gc, WhitePixel (display, screen));               +              else if (boundary < 470) +                XSetForeground (display, gc, tux_yellow.pixel);               +              else if (boundary < 1120)  +                XSetForeground (display, gc, BlackPixel (display, screen));               +              else +                XSetForeground (display, gc, WhitePixel (display, screen));               +            } +            else +            { +              XSetForeground (display, gc,  +                land[boundary % XtNumber (land)].pixel); +            } +          } + +          XFillPolygon ( +            display, d, gc,  +            xpoints, +            num_points, Complex, CoordModeOrigin);  +        } +        else +          XDrawLines ( +            display, d, gc,  +            xpoints, +            num_points, CoordModeOrigin); +      } +       +      boundary++; +      num_points = 0; +      all_on_back = 1; +    } +    else +    { +      if (translate_point (&zone_data[zone].boundary_points[boundary], +                           &xpoints[num_points])) +        all_on_back = 0; + +      num_points++; +      boundary++; +    } +  } +} + +void draw_string (int x, int y, const char*s, unsigned long colour) +{ +  XSetForeground (display, gc, BlackPixel (display, screen)); +  for (int x_pos = x - 3; x_pos <= x + 3; x_pos++) +    for (int y_pos = y - 3; y_pos <= y + 3; y_pos++) +      XDrawString (display, pixmap, gc, x_pos, y_pos, s, strlen (s)); + +  XSetForeground (display, gc, colour); +  XDrawString (display, pixmap, gc, x, y, s, strlen (s)); +} + +void draw_point (XPoint p, char *s) +{ +  int text_width; + +  int dot_size = ceil (sqrt (height) / 6.0); + +  if (s)  +    dot_size += 2; +   +  XSetForeground (display, gc,  +                  s ? WhitePixel (display, screen) : location_dot.pixel); +  XFillRectangle (display, pixmap, gc,  +                  p.x - dot_size / 2, p.y - dot_size / 2, dot_size, dot_size); + +  XSetForeground (display, gc, BlackPixel (display, screen)); +  XSetLineAttributes (display, gc, 2, LineSolid, CapRound, JoinRound); +  XDrawRectangle (display, pixmap, gc,  +                  p.x - dot_size / 2, p.y - dot_size / 2, dot_size, dot_size); + +  if (s) +  { +    int text_x; +    int text_y; +     +    text_width = XTextWidth (font, s, strlen (s)); + +    if (p.x + text_width + 30 > width) +    { +      text_x = p.x - text_width - 6; +      text_y = p.y + 10; +    } +    else +    { +      text_x = p.x + 6; +      text_y = p.y + 10; +    } + +    draw_string (text_x, text_y, s, name_colour.pixel); +  } +} + +void redraw_map () +{ +  XPoint selected_point; +  char selected_name[100]; + +  lon_rotate[0] = cos (displayed_lon); +  lon_rotate[1] = sin (displayed_lon); + +  lat_rotate[1] = cos (displayed_lat) * radius; +  lat_rotate[0] = sin (displayed_lat) * radius; + +  /* Draw the map into the pixmap. */ + +  XSetForeground (display, gc, BlackPixel (display, screen)); +  XFillRectangle (display, pixmap, gc, 0, 0, width, height); + +  XSetForeground (display, gc, ocean.pixel); +  XFillArc (display, pixmap, gc,  +    width / 2 - radius * aspect_correction, height / 2 - radius, +    radius * 2 * aspect_correction, radius * 2, 0, 360 * 64); + +  XSetForeground (display, gc, lat_lon.pixel); +  XSetLineAttributes (display, gc, 2, LineSolid, CapRound, JoinRound); +   +  for (int lon = 0; lon < 24; lon++) +    for (int lat = 0; lat < 12 * 3; lat++) +    { +      XPoint line[2]; +      vect_type v; +      v.x = cos (lon * 15 * M_PI / 180) * cos ((90 - lat * 5) * M_PI / 180); +      v.y = sin (lon * 15 * M_PI / 180) * cos ((90 - lat * 5) * M_PI / 180); +      v.z = sin ((90 - lat * 5) / 180.0 * M_PI); +      line[0] = line[1]; +      if (translate_point (&v, &line[1]) && (lat > 0)) +        XDrawLines (display, pixmap, gc, line, 2, CoordModeOrigin); +    } + +  for (int lat = 0; lat < 12; lat++) +    for (int lon = 0; lon <= 24 * 3; lon++) +    { +      XPoint line[2]; +      vect_type v; +      v.x = cos (lon * 5 * M_PI / 180) * cos ((90 - lat * 15) * M_PI / 180); +      v.y = sin (lon * 5 * M_PI / 180) * cos ((90 - lat * 15) * M_PI / 180); +      v.z = sin ((90 - lat * 15) / 180.0 * M_PI); +      line[0] = line[1]; +      if (translate_point (&v, &line[1]) && (lon > 0)) +        XDrawLines (display, pixmap, gc, line, 2, CoordModeOrigin); +    } +   +  for (int zone = 0; zone < NUM_ZONES; zone++) +    draw_zone (pixmap, zone, 1, 0); +   +  XSetLineAttributes (display, gc, 2, LineSolid, CapRound, JoinRound); +  XSetForeground (display, gc, border.pixel); +  for (int zone = 0; zone < NUM_ZONES - 1; zone++) +    draw_zone (pixmap, zone, 0, 0); +   +  if (show_information) +  { +    info_displayed = TRUE; +    char *s[4] = {"Left/Right: Change Offset", +                  "Up/Down: Change Location", +                  "Enter: Select Location", +		  "Esc: Abort"}; +    int num = XtNumber(s); +    for (int i = 0; i < num; i++) +    { +      int text_width = XTextWidth (font, s[i], strlen (s[i])); +      draw_string (width/2 - text_width/2,  +		   height/2 + (-2 + i) * (font->ascent + font->descent),  +		   s[i], name_colour.pixel); +    } +  } +  else if (guessing_timezone || (info_displayed = FALSE)) +  { +    char *s = "Guessing Timezone"; +    int text_width = XTextWidth (font, s, strlen (s)); +    draw_string (width/2 - text_width/2, height/2, s, name_colour.pixel); +  } +  else if (guess_failed) +  { +    char *s = "Unable to Guess Timezone"; +    char *s2 = "Please Select Timezone Manually"; +    int text_width = XTextWidth (font, s, strlen (s)); +    draw_string (width/2 - text_width/2, height/2, s, name_colour.pixel); +    text_width = XTextWidth (font, s2, strlen (s2)); +    draw_string (width/2 - text_width/2,  +                 height/2 + font->ascent + font->descent,  +		 s2, name_colour.pixel); +  } +  else +  { +    draw_zone (pixmap, selected_zone, 1, 1); +    XSetForeground (display, gc, selected_border.pixel); +    draw_zone (pixmap, selected_zone, 0, 1);   + +    for (int place = 0; place < zone_data[selected_zone].num_places; place++) +    { +      XPoint point; + +      translate_point (&zone_data[selected_zone].place_info[place].v, &point); +     +      draw_point (point, NULL); + +      if ((place == selected_place) && (!guessing_timezone)) +      { +        char *underscore; +        selected_point = point; +        strcpy (selected_name, strchr (zone_data[selected_zone].place_info[place].zonename, '/') + 1); +        while (underscore = strchr (selected_name, '_')) +          underscore[0] = ' '; +      } +    } + +    draw_point (selected_point, selected_name); + +    { +      char zone_offset[100]; +      sprintf (zone_offset, "UTC%s", zone_data[selected_zone].offset); +      draw_string ( +        ((width * 0.95 - XTextWidth (font, "UTC+88", strlen ("UTC+88"))) + +         ((width / 2) + radius / sqrt (2))) / 2,  +        ((lrint (height * 0.05) + font->ascent) + +         (height / 2 - radius / sqrt (2))) / 2,  +        zone_offset, name_colour.pixel); +    } +  } + +  if (!guessing_timezone && !guess_failed) +  { +    const char *title = "Select Your Time Zone"; +    const char *help = "Help = i"; + +    draw_string (width / 2 - XTextWidth (font, title, strlen (title)) / 2, +        ((lrint (height * 0.05) + font->ascent) + +         (height / 2 - radius / sqrt (2))) / 2,  +	title, WhitePixel (display,screen)); + +    draw_string (width * 0.05, height * 0.95 - font->descent - font->ascent,  +		 help, name_colour.pixel); +  }   + +  XCopyArea (display, pixmap, window, gc, 0, 0, width, height, 0, 0); +} + +int nearest_z (double near_z) +{ +  double min_delta =  +    fabs (near_z - zone_data[selected_zone].place_info[0].v.z); +  int min_delta_place = 0; + +  for (int place = 1; place < zone_data[selected_zone].num_places; place++) +  { +    double delta =  +      fabs (near_z - zone_data[selected_zone].place_info[place].v.z); + +    if (delta < min_delta) +    { +      min_delta_place = place; +      min_delta = delta; +    } +  } + +  return min_delta_place; +} + +void handle_key (char key) +{ +  double selected_z; +   +  selected_z = zone_data[selected_zone].place_info[selected_place].v.z; + +  if (show_information) +  { +    show_information = FALSE; +    return; +  } + +  switch (key) +  { +    case 'U': +      select_place ((selected_place +  +                     zone_data[selected_zone].num_places - 1) %  +                    zone_data[selected_zone].num_places);             +      break; + +    case 'D': +      select_place ((selected_place + 1) %  +                    zone_data[selected_zone].num_places);             +      break; + +    case 'L': +      selected_zone = (selected_zone + NUM_ZONES - 1) % NUM_ZONES; +      select_place (nearest_z (selected_z)); +      break; + +    case 'R': +      selected_zone = (selected_zone + 1) % NUM_ZONES; +      select_place (nearest_z (selected_z)); +      break; +             +    case 'I': +      show_information = !show_information; +      break; + +    case 'X': +      printf ("%s\n", zone_data[selected_zone].place_info[selected_place].zonename); +      exit (0); + +    case 'E': +      exit(1); +  } +} + +void handle_event (XEvent *xevent) +{ +  switch (xevent->type)  +  { +    case Expose: +      redraw_map (); +      break; + +    case KeyPress: +      switch (XLookupKeysym (&xevent->xkey, 0)) +      { +        case XK_Up: +          handle_key ('U'); +          break; + +        case XK_Down: +          handle_key ('D'); +          break; + +        case XK_Left: +          handle_key ('L'); +          break; + +        case XK_Right: +          handle_key ('R'); +          break; +             +        case XK_Return: +          handle_key ('X'); +          break; + +	case XK_Escape: +	  handle_key ('E'); +	  break; + +	case XK_I: +	case XK_i: +	  handle_key ('I'); +	  break; +      } + +      break; +  } +} + +Bool event_predicate (Display *display, XEvent *xevent, XPointer unused) +{ +  return (xevent->type == KeyPress) || (xevent->type == Expose); +} + +void next_view () +{ +  static double step_size = 0.01; +  double error_total; +  double lat_error = target_lat - displayed_lat; +  double lon_error = target_lon - displayed_lon; + +  if (guessing_timezone) +  { +    displayed_lon += 1 / 180.0 * M_PI; +  } +  else +  { +    lat_error = atan2 (sin (lat_error), cos( lat_error)); +    lon_error = atan2 (sin (lon_error), cos (lon_error)); + +    error_total = sqrt (lat_error * lat_error + lon_error * lon_error); +       +    if (error_total < acceleration) +    { +      displayed_lat = target_lat; +      displayed_lon = target_lon; +    } +    else +    { +      if (error_total > (step_size + acceleration) *  +                        (step_size + acceleration) / acceleration / 2) +        step_size += acceleration; +      else +        step_size -= acceleration; +       +      if (step_size < acceleration) +        step_size = acceleration; +     +      displayed_lat += step_size * (lat_error / error_total); +      displayed_lon += step_size * (lon_error / error_total); +    } +  } +} + +void *lirc_thread (void *unused) +{ +  int lirc_fd; +  struct lirc_config *lirc_config; +  char *lirc_code; + +  if ((lirc_fd = lirc_init ("mythtv",0)) == -1) +    fprintf (stderr,"Error initialising lirc\n"); +  else  +  { +    int readc_status; + +    if (readc_status = lirc_readconfig (NULL, &lirc_config, NULL)) +    { +      fprintf (stderr,"Error loading lirc config file %d %p\n", readc_status, lirc_config); +    } +  } + +  while ((lirc_nextcode (&lirc_code) == 0) && (lirc_code != NULL)) +  { +    char *action; + +    while ((lirc_code2char (lirc_config, lirc_code, &action) == 0) && +           (action != NULL)) +    { +      if (strcasecmp (action, "down") == 0) +        strcat (input_keys, "D"); + +      if (strcasecmp (action, "up") == 0) +        strcat (input_keys, "U"); + +      if (strcasecmp (action, "left") == 0) +        strcat (input_keys, "L"); + +      if (strcasecmp (action, "right") == 0) +        strcat (input_keys, "R"); + +      if (strcasecmp (action, "return") == 0) +        strcat (input_keys, "X"); + +      if (strcasecmp (action, "Esc") == 0) +        strcat (input_keys, "E"); +    } +  +    free (lirc_code); +    lirc_code = NULL; +  } +} + +void get_value (FILE *input, char*output, int out_len) +{ +  const char *value_pattern = "value=\""; +  char *value; + +  output[0] = 0; +  fgets (output, out_len, input); + +  if (value = strcasestr (output, value_pattern)) +  { +    memmove (output, value + strlen (value_pattern),  +	     strlen (value + strlen (value_pattern)) + 1); +  } + +  if (value = strchr (output, '"')) +    value[0] = 0; +} + +void *timezone_guess (void *unused) +{ +  const double invalid = 99999; +  FILE *guess_data; +  char line_in[1000]; +  double guess_latitude = invalid; +  double guess_longitude = invalid; +  char guess_zone[1000] = {0}; +  char *timezone_info_command;  + +  if (getenv ("FAKE_GEOBYTES")) +  { +    timezone_info_command =  +      "sleep 2 ; " +      "echo Latitude ; " +      "echo \" <td value=\\\"-34.993\\\"\" ;" +      "echo Longitude ; " +      "echo \" <td value=\\\"138.6\\\"\" ;" +      "echo TimeZone ; " +      "echo \" <td value=\\\"+09:30\\\"\""; +  } +  else +  { +    timezone_info_command =  +      "wget http://www.geobytes.com/IpLocator.htm -O - 2> /dev/null |" +      "grep \"<td \" |" +      "grep -i -E -A1 \"Latitude|Longitude|TimeZone\" | grep -v \"^--$\""; +  } + +  guess_data = popen (timezone_info_command, "r"); + +  if (!guess_data) +  { +    fprintf (stderr, "error parsing web page for timezone guess\n"); +    if (guessing_timezone) +    { +      guessing_timezone = FALSE; +      guess_failed = TRUE; +      guess_failed_timeout = time (NULL) + 3; +    } +    return NULL; +  } + +  while (fgets (line_in, sizeof (line_in), guess_data)) +  { +    // Look for the entries in the guess data and then the next line  +    // will hold the value. + +    if (strcasestr (line_in, "latitude")) +    { +      get_value (guess_data, line_in, sizeof (line_in)); +      sscanf (line_in, "%lf", &guess_latitude); +    } +    else if (strcasestr (line_in, "longitude")) +    { +      get_value (guess_data, line_in, sizeof (line_in)); +      sscanf (line_in, "%lf", &guess_longitude); +    } +    else if (strcasestr (line_in, "timezone")) +    { +      get_value (guess_data, line_in, sizeof (line_in)); +  +      // The geobytes timezone data is of the form "+09:30" whereas the +      // map timezone data is of the form "+6" or "+9.5". Convert +      // to the map timezone data format so we can find the timezone. + +      if (strcmp (&line_in[3], ":30") == 0) +        sprintf (&line_in[3], ".5"); +      else +	line_in[3] = 0; + +      if (line_in[1] == '0') +        memmove (&line_in[1], &line_in[2], strlen (&line_in[2]) + 1); + +      strncpy (guess_zone, line_in, sizeof (guess_zone));  +    } +  } + +  pclose (guess_data); + +  if ((guess_latitude != invalid) &&  +      (guess_longitude != invalid) && +      guess_zone[0] != 0)  +  { +    int zone; + +    fprintf (stderr, "guessed lat lon %f %f %s\n",  +	     guess_latitude, guess_longitude, guess_zone); + +    // Look for the guessed zone in the zone_data structure. +    for (zone = 0; zone < NUM_ZONES; zone++) +    { +      if (strcmp (guess_zone, zone_data[zone].offset) == 0) +	break; +    } + +    if (zone == NUM_ZONES) +    { +      fprintf (stderr, "couldnt find zone %s\n", guess_zone); +      if (guessing_timezone) +      { +	guessing_timezone = FALSE; +        guess_failed = TRUE; +        guess_failed_timeout = time (NULL) + 3; +      } +    } +    else +    { +      double x,y,z; +      double min_dist_squared; +      int closest_place; + +      // Look for the location in the zone nearest to the guess lat/lon. + +      // Convert the guessed lat/lon to x,y,z. + +      guess_latitude *= M_PI / 180.0; +      guess_longitude *= M_PI / 180.0; + +      x = cos (guess_longitude) * cos (guess_latitude); +      y = sin (guess_longitude) * cos (guess_latitude); +      z = sin (guess_latitude); + +      min_dist_squared =  +        pow (x - zone_data[zone].place_info[0].v.x, 2) +  +        pow (y - zone_data[zone].place_info[0].v.y, 2) +  +        pow (z - zone_data[zone].place_info[0].v.z, 2); +      closest_place = 0; + +      for (int place = 1; place < zone_data[zone].num_places; place++) +      { +        double dist_squared; + +	dist_squared =  +          pow (x - zone_data[zone].place_info[place].v.x, 2) +  +          pow (y - zone_data[zone].place_info[place].v.y, 2) +  +          pow (z - zone_data[zone].place_info[place].v.z, 2); + +        if (dist_squared < min_dist_squared) +        { +          closest_place = place; +	  min_dist_squared = dist_squared; +        } +      } + +      fprintf (stderr, "Guess=%s %s\n",  +	zone_data[zone].place_info[closest_place].zonename, +	zone_data[zone].offset); + +      selected_zone = zone; +      select_place (closest_place); +    } +  } +  else +  { +    if (guessing_timezone) +    { +      guessing_timezone = FALSE; +      guess_failed = TRUE; +      guess_failed_timeout = time (NULL) + 3; +    } +  } +   +  guessing_timezone = FALSE; +  return NULL; +} + +void remove_titlebar_and_borders () +{ +  XClassHint* classHint; +  char* appname; +  appname="look fo rme"; +  XStoreName (display, window, appname); + +  /* Set the name and class hints for the window manager to use. */ + +  classHint = XAllocClassHint (); +  if (classHint)  +  { +     classHint->res_name = appname; +     classHint->res_class = "MoonRoot"; +  } + +  XSetClassHint (display, window, classHint); +  XFree (classHint); +   +  typedef struct  +  { +    CARD32 flags; +    CARD32 functions; +    CARD32 decorations; +    INT32 input_mode; +    CARD32 status; +  } MotifWmHints, MwmHints; + +  #define MWM_HINTS_DECORATIONS (1L << 1) + + +  Atom XA_MOTIF_WM_HINTS = XInternAtom (display, "_MOTIF_WM_HINTS", False); +  MotifWmHints mwm_hints; + +  mwm_hints.flags = MWM_HINTS_DECORATIONS; +  mwm_hints.decorations = 0; + +  XChangeProperty ( +    display, window, +    XA_MOTIF_WM_HINTS, XA_MOTIF_WM_HINTS, +    32, PropModeReplace, +    (char *) &mwm_hints, 5); +} + +void set_window_position (int x, int y) +{ +  XSizeHints hints; + +  hints.flags = USPosition | PPosition; +  hints.x = x; +  hints.y = y; + +  XSetWMNormalHints(display, window, &hints); +} + +int main (int argc, char *argv[]) +{ +  XEvent xevent; +  Colormap cmap; +  XColor color, colorrgb; +  pthread_t tid; +  int opt; +  int arg_width = -1; +  int arg_height = -1; +  char arg_zone[100] = {0}; + +  if (getenv ("ACCEL")) +    acceleration = atof (getenv ("ACCEL")); + +  while ((opt = getopt (argc, argv, "z:w:h:a:")) != -1) +  { +    switch (opt) +    { +      case 'z': +        strncpy (arg_zone, optarg, sizeof (arg_zone) - 1); + +	if (strcasecmp (arg_zone, "guess") == 0) +	{ +	  guessing_timezone = TRUE; +	  arg_zone[0]=0; +	} + +        break; + +      case 'w': +        arg_width = atoi (optarg); +        break; + +      case 'h': +        arg_height = atoi (optarg); +        break; + +      case 'a': +        acceleration = atof (optarg); +        break; + +      case '?': +        printf ("usage: %s [-a accelleration] [-z timezone] " +                "[-w width] [-h height]\n" +                "e.g. linhes_timezone -w 1920 -h 1090 -z Australia/Adelaide\n" +		"specify a timezone of 'guess' to determine the initial " +		"timezone from\n" +		"your ip address using geocache.\n", +          argv[0]); +        exit (0); +        break; +    } +  } + +  pthread_create (&tid, NULL, lirc_thread, NULL); + +  /* Connect to the X server. */ +   +  display = XOpenDisplay (""); + +  if (display == NULL)  +  { +    fprintf (stderr, "cannot connect to server\n"); +    exit (EXIT_FAILURE); +  } + +  /* Get default screen. */ +   +  screen = DefaultScreen (display); +  screen_width = XWidthOfScreen (DefaultScreenOfDisplay (display)); +  screen_height = XHeightOfScreen (DefaultScreenOfDisplay (display)); + +  if ((arg_width <= 0) && (arg_height > 0)) +    arg_width == arg_height; + +  if (arg_width > 0) +  { +    width = arg_width; + +    if (arg_height <= 0)  +      height = width; +    else +      height = arg_height; + +    x = (screen_width - width) / 2; +    y = (screen_height - height) / 2; +  } +  else +  { +    width = screen_width; +    height = screen_height; +    x = 0; +    y = 0; +  } +   +  if (width < height) +    radius = width; +  else +    radius = height; + +  radius = 0.96 * radius / 2; + +  if ((screen_height == 0) ||  +      (XWidthMMOfScreen (DefaultScreenOfDisplay (display)) == 0)) +    aspect_correction = 1; +  else +    aspect_correction =  +      sqrt (screen_width *  +            XHeightMMOfScreen (DefaultScreenOfDisplay (display)) * 1.0 / +            screen_height / +            XWidthMMOfScreen (DefaultScreenOfDisplay (display))); + +  // Protect against very wierd aspect corrections from bogus  +  // screen dimensions. +  if ((aspect_correction < 0.5) || (aspect_correction > 2)) +    aspect_correction = 1; + +  window = XCreateSimpleWindow (display, +             DefaultRootWindow(display), x, y, width, height, 0, +             land[0].pixel, ocean.pixel); + +  remove_titlebar_and_borders (); +  set_window_position (x, y); + +  if (!window)  +  { +    fprintf (stderr, "cannot open window\n");             +    exit (EXIT_FAILURE); +  } +   +  /* set graphics context of rectangle to red */ +  gc= XCreateGC (display, window, 0, 0); +  cmap = DefaultColormap (display, screen); + +  // Load the font. +   +  font = XLoadQueryFont (display, (width > 800) ?  +                         "-*-lucida-bold-r-*-*-34-*-*-*-*-*-*-*" :  +                         "-*-lucida-bold-r-*-*-20-*-*-*-*-*-*-*"); +  if (!font)  +    fprintf (stderr,"error loading font\n"); + +  XSetFont (display, gc, font->fid); + +  pixmap =  +    XCreatePixmap (display, window, width, height,  +                   DefaultDepth (display, DefaultScreen (display))); + +  ocean.flags = DoRed | DoGreen | DoBlue; +  ocean.red = 40 * 256; +  ocean.green = 41 * 256; +  ocean.blue = 72 * 256; +  if (XAllocColor (display, cmap, &ocean) == 0) +    printf ("Cant allocate color\n"); + +  lat_lon.flags = DoRed | DoGreen | DoBlue; +  lat_lon.red = 0 * 256; +  lat_lon.green = 0 * 256; +  lat_lon.blue = 86 * 256; +  if (XAllocColor (display, cmap, &lat_lon) == 0) +    printf ("Cant allocate color\n"); + +  tux_yellow.flags = DoRed | DoGreen | DoBlue; +  tux_yellow.red = 248 * 256; +  tux_yellow.green = 191 * 256; +  tux_yellow.blue = 17 * 256; +  if (XAllocColor (display, cmap, &tux_yellow) == 0) +    printf ("Cant allocate color\n"); + +  for (int land_col = 0; land_col < XtNumber (land); land_col++) +  { +    land[land_col].flags = DoRed | DoGreen | DoBlue; +    land[land_col].red = (120 + 9 * land_col) * 256; +    land[land_col].green = (40 + 3 * land_col) * 256; +    land[land_col].blue = 0 * 256; +    if (XAllocColor (display, cmap, &land[land_col]) == 0) +      printf ("Cant allocate color\n"); +  } + +  selected_land.flags = DoRed | DoGreen | DoBlue; +  selected_land.red = 3 * 256; +  selected_land.green = 40 * 256; +  selected_land.blue = 13 * 256; +  if (XAllocColor (display, cmap, &selected_land) == 0) +    printf ("Cant allocate color\n"); + +  border.flags = DoRed | DoGreen | DoBlue; +  border.red   = 0 * 256; +  border.green = 0 * 256; +  border.blue  = 0 * 256; +  if (XAllocColor (display, cmap, &border) == 0) +    printf ("Cant allocate color\n"); + +  selected_border.flags = DoRed | DoGreen | DoBlue; +  selected_border.red   = 80 * 256; +  selected_border.green = 255 * 256; +  selected_border.blue  = 80 * 256; +  if (XAllocColor (display, cmap, &selected_border) == 0) +    printf ("Cant allocate color\n"); + +  name_colour.flags = DoRed | DoGreen | DoBlue; +  name_colour.red   = 255 * 256; +  name_colour.green = 255 * 256; +  name_colour.blue  = 0 * 256; +  if (XAllocColor (display, cmap, &name_colour) == 0) +    printf ("Cant allocate color\n"); + +  location_dot.flags = DoRed | DoGreen | DoBlue; +  location_dot.red   = 255 * 256; +  location_dot.green = 55 * 256; +  location_dot.blue  = 200 * 256; +  if (XAllocColor (display, cmap, &location_dot) == 0) +    printf ("Cant allocate color\n"); + +  // Find the selected timezone (or LA if a timezone was not selected) and  +  // make that the selected zone and place. + +  default_zone (arg_zone); + +  if (guessing_timezone) +  { +    pthread_create (&tid, NULL, timezone_guess, NULL); +    guess_timeout = time (NULL) + 10; +    displayed_lat = M_PI/2; +    displayed_lon = 0; +  } +  else +  { +    displayed_lat = target_lat; +    displayed_lon = target_lon; +  } + +  /* ask for exposure event and keyboard events */ +  XSelectInput(display, window, KeymapNotify | ExposureMask); + +  /* pop this window up on the screen */ +  XMapRaised (display, window); + +  redraw_map (); +     +  while (1) +  { +    if (guessing_timezone && (time (NULL) > guess_timeout)) +    { +      guessing_timezone = FALSE; +      guess_failed_timeout = time (NULL) + 3; +      guess_failed = TRUE; +    } + +    if ((displayed_lat != target_lat) || (displayed_lon != target_lon) ||  +        guessing_timezone || guess_failed || +  	(info_displayed ^ show_information)) +    { +      if (guess_failed && (time (NULL) > guess_failed_timeout)) +      { +        guess_failed = FALSE; +      } + +      next_view (); +      redraw_map (); +    } +    else +    { +      usleep (1000); +    } + +    while (strlen (input_keys)) +    { +      handle_key (input_keys[0]); +      memmove (&input_keys[0], &input_keys[1], strlen (input_keys)); +    } +       +    // If there is an event pending, go on to process it. + +    if (XCheckIfEvent (display, &xevent, event_predicate, NULL)) +      handle_event (&xevent);  +  } + +  return 0; +} diff --git a/abs/not_built/core/alsa-oss/PKGBUILD b/abs/not_built/core/alsa-oss/PKGBUILD new file mode 100644 index 0000000..66f7030 --- /dev/null +++ b/abs/not_built/core/alsa-oss/PKGBUILD @@ -0,0 +1,20 @@ +# $Id: PKGBUILD 13736 2008-09-28 09:04:09Z tpowa $ +# Maintainer: judd <jvinet@zeroflux.org> +pkgname=alsa-oss +pkgver=1.0.17 +pkgrel=1 +pkgdesc="OSS compatibility library" +arch=(i686 x86_64) +license=('GPL') +url="http://www.alsa-project.org" +options=(!libtool) +depends=('glibc' 'alsa-lib>=1.0.17a') +source=(ftp://ftp.alsa-project.org/pub/oss-lib/$pkgname-$pkgver.tar.bz2) + +build() { +  cd $startdir/src/$pkgname-$pkgver +  ./configure --prefix=/usr +  make || return 1 +  make DESTDIR=$startdir/pkg install +} +md5sums=('1b1850c2fc91476a73d50f537cbd402f') diff --git a/abs/not_built/core/aufs2-util/PKGBUILD b/abs/not_built/core/aufs2-util/PKGBUILD new file mode 100644 index 0000000..87e7f7f --- /dev/null +++ b/abs/not_built/core/aufs2-util/PKGBUILD @@ -0,0 +1,24 @@ +# Contributor: Paul Mattal <paul@mattal.com> + +pkgname=aufs2-util +pkgver=20110314 +pkgrel=1 +pkgdesc="Another Unionfs Implementation that supports NFS branches" +arch=('i686' 'x86_64') +url="http://aufs.sourceforge.net/" +license=('GPL2') +depends=('glibc') +makedepends=('kernel26-headers') +replaces=('aufs-utils') +source=("ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.gz") + +build() { +  cd $srcdir/$pkgname-$pkgver +  make +} + +package() { +  cd $srcdir/$pkgname-$pkgver +  make DESTDIR=$pkgdir install +} +md5sums=('bf0f9c86361e12a3181fb3891e57cd8d') diff --git a/abs/not_built/core/cdrdao/PKGBUILD b/abs/not_built/core/cdrdao/PKGBUILD new file mode 100644 index 0000000..ff79afd --- /dev/null +++ b/abs/not_built/core/cdrdao/PKGBUILD @@ -0,0 +1,21 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: dorphell <dorphell@archlinux.org> +pkgname=cdrdao +pkgver=1.2.2 +pkgrel=2 +pkgdesc="Records audio/data CD-Rs in disk-at-once (DAO) mode" +arch=(i686 x86_64) +license=('GPL') +url="http://cdrdao.sourceforge.net/" +depends=('gcc-libs' 'lame' 'libmad' 'libvorbis' 'libao') +source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2 \ +	cdrdao-1.2.2-gcc43.patch) +md5sums=('f0cbf36907406cb4f4c568f9e6669a34' '828963048850fe9e540c2b29ee987fd7') + +build() { +  cd $startdir/src/$pkgname-$pkgver +  patch -Np1 -i $startdir/src/cdrdao-1.2.2-gcc43.patch +  ./configure --prefix=/usr --with-lame +  make || return 1 +  make DESTDIR=$startdir/pkg install +} diff --git a/abs/not_built/core/cdrdao/cdrdao-1.2.2-gcc43.patch b/abs/not_built/core/cdrdao/cdrdao-1.2.2-gcc43.patch new file mode 100644 index 0000000..f6707a9 --- /dev/null +++ b/abs/not_built/core/cdrdao/cdrdao-1.2.2-gcc43.patch @@ -0,0 +1,73 @@ +#!/bin/sh /usr/share/dpatch/dpatch-run +## 09-gcc-3.4.dpatch by Matthias Klose <doko@debian.org> +## +## DP: Fix build failures with g++-4.3 (Closes: #455309). + +@DPATCH@ + +diff -Naurp cdrdao-1.2.2.orig/trackdb/FormatConverter.cc cdrdao-1.2.2/trackdb/FormatConverter.cc +--- cdrdao-1.2.2.orig/trackdb/FormatConverter.cc	2005-05-10 00:55:28.000000000 +0000 ++++ cdrdao-1.2.2/trackdb/FormatConverter.cc	2008-03-07 11:14:07.000000000 +0000 +@@ -22,6 +22,7 @@ + #include <ao/ao.h> + #endif + #include <fstream> ++#include <cstring> +  + #include "config.h" + #include "util.h" +diff -Naurp cdrdao-1.2.2.orig/trackdb/FormatOgg.cc cdrdao-1.2.2/trackdb/FormatOgg.cc +--- cdrdao-1.2.2.orig/trackdb/FormatOgg.cc	2005-04-22 02:01:46.000000000 +0000 ++++ cdrdao-1.2.2/trackdb/FormatOgg.cc	2008-03-07 11:14:07.000000000 +0000 +@@ -18,6 +18,7 @@ +  */ +  + #include <stdio.h> ++#include <cstring> +  + #include "util.h" + #include "FormatOgg.h" +diff -Naurp cdrdao-1.2.2.orig/trackdb/FormatMp3.cc cdrdao-1.2.2/trackdb/FormatMp3.cc +--- cdrdao-1.2.2.orig/trackdb/FormatMp3.cc	2005-09-24 20:28:43.000000000 +0000 ++++ cdrdao-1.2.2/trackdb/FormatMp3.cc		2008-03-07 11.14.07.000000000 +0000 +@@ -25,6 +25,7 @@ + #include <stdlib.h> + #include <unistd.h> + #include <fcntl.h> ++#include <cstring>  + #include <sys/types.h> + #include <sys/stat.h> + #include <sys/mman.h> +diff -Naurp cdrdao-1.2.2.orig/trackdb/TempFileManager.cc cdrdao-1.2.2/trackdb/TempFileManager.cc +--- cdrdao-1.2.2.orig/trackdb/TempFileManager.cc	2005-04-22 02:01:46.000000000 +0000 ++++ cdrdao-1.2.2/trackdb/TempFileManager.cc	2008-03-07 11:14:07.000000000 +0000 +@@ -24,6 +24,7 @@ + #include <sys/stat.h> + #include <unistd.h> + #include <fcntl.h> ++#include <cstring> +  + #define DEFAULT_TEMP_PATH "/tmp/" +  +diff -Naurp cdrdao-1.2.2.orig/xdao/AudioCDProject.cc cdrdao-1.2.2/xdao/AudioCDProject.cc +--- cdrdao-1.2.2.orig/xdao/AudioCDProject.cc	2006-09-18 10:42:26.000000000 +0000 ++++ cdrdao-1.2.2/xdao/AudioCDProject.cc	2008-03-07 11:15:26.000000000 +0000 +@@ -18,6 +18,7 @@ +  */ +  + #include <assert.h> ++#include <cstring> + #include <gtkmm.h> + #include <libgnome/gnome-i18n.h> +  +diff -Naurp cdrdao-1.2.2.orig/xdao/TextEdit.cc cdrdao-1.2.2/xdao/TextEdit.cc +--- cdrdao-1.2.2.orig/xdao/TextEdit.cc	2004-02-12 01:13:32.000000000 +0000 ++++ cdrdao-1.2.2/xdao/TextEdit.cc	2008-03-07 11:14:07.000000000 +0000 +@@ -21,6 +21,7 @@ +  + #include <stddef.h> + #include <ctype.h> ++#include <cstring> +  + TextEdit::TextEdit(const char *sample) : Gtk::Entry() + { diff --git a/abs/not_built/core/cdrdao/gcc4.patch b/abs/not_built/core/cdrdao/gcc4.patch new file mode 100644 index 0000000..8fc84b7 --- /dev/null +++ b/abs/not_built/core/cdrdao/gcc4.patch @@ -0,0 +1,23 @@ +--- cdrdao-1.2.0/trackdb/FormatConverter.h	2005-06-30 13:35:59.000000000 +0200 ++++ cdrdao-1.2.0.az/trackdb/FormatConverter.h	2005-06-30 13:34:18.000000000 +0200 +@@ -95,7 +95,7 @@ +  +   // Convert all files contained in a given Toc object, and update the +   // Toc accordingly. This is a big time blocking call. +-  FormatSupport::Status convert(Toc* toc); ++  FormatSupport::Status convert(class Toc* toc); +  +   // Dynamic allocator. +   FormatSupport* newConverter(const char* src); +--- cdrdao-1.2.0/trackdb/CueParser.cc	2005-06-30 13:36:09.000000000 +0200 ++++ cdrdao-1.2.0.az/trackdb/CueParser.cc	2005-06-30 13:36:22.000000000 +0200 +@@ -23,7 +23,7 @@ +  + #include "Cue2Toc.h" +  +-extern Toc *parseToc(const char* tocBuffer, const char *filename); ++extern class Toc *parseToc(const char* tocBuffer, const char *filename); +  + Toc *parseCue(FILE *fp, const char *filename) + { + diff --git a/abs/not_built/core/cdrkit/PKGBUILD b/abs/not_built/core/cdrkit/PKGBUILD new file mode 100644 index 0000000..3b0d099 --- /dev/null +++ b/abs/not_built/core/cdrkit/PKGBUILD @@ -0,0 +1,42 @@ +# $Id: PKGBUILD 62750 2010-01-11 18:23:11Z andrea $ +# Maintainer: Andrea Scarpino <andrea@archlinux.org> +# Contributor: Alexander Fehr <pizzapunk gmail com> + +pkgname=cdrkit +pkgver=1.1.10 +pkgrel=1 +pkgdesc="Suite of programs for CD/DVD recording, ISO image creation, and audio CD extraction" +arch=('i686' 'x86_64') +url="http://cdrkit.org/" +license=('GPL2') +depends=('file' 'bzip2' 'perl') +makedepends=('cmake') +provides=('cdrtools') +conflicts=('cdrtools') +source=(http://cdrkit.org/releases/$pkgname-$pkgver.tar.gz) +md5sums=('3c25505d567113c269dc6e71640646d8') + +build() { +  cd "$srcdir/$pkgname-$pkgver" + +  make || return 1 +} +package() { +  cd "$srcdir/$pkgname-$pkgver" +  make PREFIX="$pkgdir/usr" install || return 1 + +  # Make symlinks for cdrtools compatibility +  cd "$pkgdir/usr/bin" +  ln -s wodim cdrecord || return 1 +  ln -s readom readcd || return 1 +  ln -s genisoimage mkisofs || return 1 +  ln -s genisoimage mkhybrid || return 1 +  ln -s icedax cdda2wav || return 1 + +  cd "$pkgdir/usr/share/man/man1" +  ln -s wodim.1 cdrecord.1 || return 1 +  ln -s readom.1 readcd.1 || return 1 +  ln -s genisoimage.1 mkisofs.1 || return 1 +  ln -s genisoimage.1 mkhybrid.1 || return 1 +  ln -s icedax.1 cdda2wav.1 || return 1 +} diff --git a/abs/not_built/core/ceton-scripts/PKGBUILD b/abs/not_built/core/ceton-scripts/PKGBUILD new file mode 100644 index 0000000..8bab8c0 --- /dev/null +++ b/abs/not_built/core/ceton-scripts/PKGBUILD @@ -0,0 +1,24 @@ +# $Id: PKGBUILD 5936 2008-07-21 20:24:16Z thomas $ +# Maintainer: Cecil Watson<knoppmyth@gmail.com> + +pkgname=ceton-scripts +pkgver=1 +pkgrel=2 +pkgdesc="Scripts by Ron Frazier for use with Ceton InfiniTV4 and MythTV 0.24" +arch=('i686' 'x86_64') +license=('GPL2') +url="http://linuxtv.org/" +source=('http://www.ronfrazier.net/mythtv/0.24/downloads/ceton_qam_channelmap.tar.gz' +	'http://www.ronfrazier.net/mythtv/0.24/downloads/ceton_channelmap.tar.gz' +	'ccm.patch' 'cqcm.patch') +build() { +  cd $startdir/src/ +  patch -p0 < ccm.patch +  patch -p0 < cqcm.patch +  mkdir -p $startdir/pkg/usr/bin +  install -m 755 *.pl $pkgdir/usr/bin +} +md5sums=('7ef75cb01332ab86d56c348353d59a0e' +         'ab362902926c01a9b03498cc1aed4d14' +         'b57b7f04c1c177455b47efc958325ab9' +         '40af5815f67fdf8070cf8aa041928a3b') diff --git a/abs/not_built/core/ceton-scripts/ccm.patch b/abs/not_built/core/ceton-scripts/ccm.patch new file mode 100644 index 0000000..53ec740 --- /dev/null +++ b/abs/not_built/core/ceton-scripts/ccm.patch @@ -0,0 +1,13 @@ +--- ceton_channelmap.pl.orig	2011-08-16 22:41:03.000000000 +0000 ++++ ceton_channelmap.pl	2011-08-16 22:41:47.000000000 +0000 +@@ -8,8 +8,8 @@ +  + my $mysql_host = 'localhost'; + my $mysql_db = 'mythconverg'; +-my $mysql_user = 'root'; +-my $mysql_pw = 'PUT PASSWORD HERE'; ++my $mysql_user = 'mythtv'; ++my $mysql_pw = 'mythtv'; +  + -e $wget_path or die "Error: wget does not appear to be in the location specified ($wget_path) . Please configure the \$wget_path variable in this script\n"; +  diff --git a/abs/not_built/core/ceton-scripts/cqcm.patch b/abs/not_built/core/ceton-scripts/cqcm.patch new file mode 100644 index 0000000..479ed1f --- /dev/null +++ b/abs/not_built/core/ceton-scripts/cqcm.patch @@ -0,0 +1,13 @@ +--- ceton_qam_channelmap.pl.orig	2011-08-16 22:41:13.000000000 +0000 ++++ ceton_qam_channelmap.pl	2011-08-16 22:42:37.000000000 +0000 +@@ -11,8 +11,8 @@ +  + my $mysql_host = 'localhost'; + my $mysql_db = 'mythconverg'; +-my $mysql_user = 'root'; +-my $mysql_pw = 'PUT PASSWORD HERE'; ++my $mysql_user = 'mythtv'; ++my $mysql_pw = 'mythtv'; +  + my $global_modulation = 'qam_256'; +  diff --git a/abs/not_built/core/cloog-ppl/PKGBUILD b/abs/not_built/core/cloog-ppl/PKGBUILD new file mode 100644 index 0000000..56af019 --- /dev/null +++ b/abs/not_built/core/cloog-ppl/PKGBUILD @@ -0,0 +1,32 @@ +# $Id: PKGBUILD 87235 2010-08-11 12:10:19Z allan $ +# Maintainer: Allan McRae <allan@archlinux.org> +# Contributor: ezzetabi <ezzetabi at gawab dot com> + +pkgname=cloog-ppl +pkgver=0.15.9 +pkgrel=2 +pkgdesc="Library that generates loops for scanning polyhedra" +arch=('i686' 'x86_64') +url="http://www.cloog.org/" +license=('GPL') +depends=('ppl>=0.11') +options=('!libtool') +source=(ftp://gcc.gnu.org/pub/gcc/infrastructure/${pkgname}-${pkgver}.tar.gz) +md5sums=('806e001d1b1a6b130069ff6274900af5') + +build() { +  cd $srcdir/$pkgname-$pkgver + +  # "Add" ppl-0.11 compatibility +  sed -i "/ppl_minor_version=/s#10#11#" configure + +  ./configure --prefix=/usr --infodir=/usr/share/info \ +    --with-bits=gmp --with-ppl=/usr  +  make +  make check +} + +package() { +  cd $srcdir/$pkgname-$pkgver +  make DESTDIR=$pkgdir/ install +} diff --git a/abs/not_built/core/coreutils/0001-ls-color-each-symlink-to-relative-name-in-properly.patch b/abs/not_built/core/coreutils/0001-ls-color-each-symlink-to-relative-name-in-properly.patch new file mode 100644 index 0000000..087b87c --- /dev/null +++ b/abs/not_built/core/coreutils/0001-ls-color-each-symlink-to-relative-name-in-properly.patch @@ -0,0 +1,135 @@ +From 6124a3842dfa8484b52e067a8ab8105c3875a4f7 Mon Sep 17 00:00:00 2001 +From: Jim Meyering <meyering@redhat.com> +Date: Thu, 10 May 2012 19:43:00 +0200 +Subject: [PATCH] ls: color each symlink-to-relative-name in / properly + +In order for ls --color to color each symlink, it must form the name +of each referent and then stat it to see if the link is dangling, to +a directory, to a file, etc.  When the symlink is to a relative name, +ls must concatenate the starting directory name and that relative name. +When, in addition, the starting directory was "/" or "/some-name", +the result was ill-formed, and the subsequent stat would usually fail, +making the caller color it as a dangling symlink. +* src/ls.c (make_link_name): Don't botch the case in which +dir_name(NAME) == "/" and LINKNAME is relative. +* tests/ls/root-rel-symlink-color: New file.  Test for the above. +* tests/Makefile.am (TESTS): Add it. +* NEWS (Bug fixes): Mention it. +Reported by Mike Frysinger in http://bugs.gnu.org/11453 +Bug introduced by commit v8.16-23-gbcb9078. +--- + NEWS                            |  5 ++++ + src/ls.c                        |  9 +++++++- + tests/Makefile.am               |  1 + + tests/ls/root-rel-symlink-color | 51 +++++++++++++++++++++++++++++++++++++++++ + 4 files changed, 65 insertions(+), 1 deletion(-) + create mode 100755 tests/ls/root-rel-symlink-color + +diff --git a/NEWS b/NEWS +index 6c620b3..f9e9c70 100644 +--- a/NEWS ++++ b/NEWS +@@ -2,6 +2,11 @@ GNU coreutils NEWS                                    -*- outline -*- +  + * Noteworthy changes in release ?.? (????-??-??) [?] +  ++** Bug fixes ++ ++  ls --color would mis-color relative-named symlinks in / ++  [bug introduced in coreutils-8.17] ++ +  + * Noteworthy changes in release 8.17 (2012-05-10) [stable] +  +diff --git a/src/ls.c b/src/ls.c +index 397e4ea..9494ae9 100644 +--- a/src/ls.c ++++ b/src/ls.c +@@ -3213,7 +3213,14 @@ make_link_name (char const *name, char const *linkname) +     return xstrdup (linkname); +  +   char *p = xmalloc (prefix_len + 1 + strlen (linkname) + 1); +-  stpcpy (stpncpy (p, name, prefix_len + 1), linkname); ++ ++  /* PREFIX_LEN usually specifies a string not ending in slash. ++     In that case, extend it by one, since the next byte *is* a slash. ++     Otherwise, the prefix is "/", so leave the length unchanged.  */ ++  if ( ! ISSLASH (name[prefix_len - 1])) ++    ++prefix_len; ++ ++  stpcpy (stpncpy (p, name, prefix_len), linkname); +   return p; + } +  +diff --git a/tests/Makefile.am b/tests/Makefile.am +index a4370a6..0bafc5f 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -449,6 +449,7 @@ TESTS =						\ +   ls/proc-selinux-segfault			\ +   ls/readdir-mountpoint-inode			\ +   ls/recursive					\ ++  ls/root-rel-symlink-color			\ +   ls/rt-1					\ +   ls/slink-acl					\ +   ls/stat-dtype					\ +diff --git a/tests/ls/root-rel-symlink-color b/tests/ls/root-rel-symlink-color +new file mode 100755 +index 0000000..d795432 +--- /dev/null ++++ b/tests/ls/root-rel-symlink-color +@@ -0,0 +1,51 @@ ++#!/bin/sh ++# Exercise the 8.17 ls bug with coloring relative-named symlinks in "/". ++ ++# Copyright (C) 2012 Free Software Foundation, Inc. ++ ++# This program is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the ++# GNU General Public License for more details. ++ ++# You should have received a copy of the GNU General Public License ++# along with this program.  If not, see <http://www.gnu.org/licenses/>. ++ ++. "${srcdir=.}/init.sh"; path_prepend_ ../src ++print_ver_ ls ++ ++symlink_to_rel= ++for i in /*; do ++  # Skip non-symlinks: ++  env test -h "$i" || continue ++ ++  # Skip dangling symlinks: ++  env test -e "$i" || continue ++ ++  # Skip any symlink-to-absolute-name: ++  case $(readlink "$i") in /*) continue ;; esac ++ ++  symlink_to_rel=$i ++  break ++done ++ ++test -z "$symlink_to_rel" \ ++  && skip_ no relative symlink in / ++ ++e='\33' ++color_code='01;36' ++c_pre="$e[0m$e[${color_code}m" ++c_post="$e[0m" ++printf "$c_pre$symlink_to_rel$c_post\n" > exp || framework_failure_ ++ ++env TERM=xterm LS_COLORS="ln=$color_code:or=1;31;42" \ ++  ls -d --color=always "$symlink_to_rel" > out || fail=1 ++ ++compare exp out || fail=1 ++ ++Exit $fail +--  +1.7.11.2 + diff --git a/abs/not_built/core/coreutils/PKGBUILD b/abs/not_built/core/coreutils/PKGBUILD new file mode 100644 index 0000000..f83225f --- /dev/null +++ b/abs/not_built/core/coreutils/PKGBUILD @@ -0,0 +1,66 @@ +# $Id: PKGBUILD 163714 2012-07-18 02:16:52Z dreisner $ +# Maintainer: Allan McRae <allan@archlinux.org> +# Contributor: judd <jvinet@zeroflux.org> + +pkgname=coreutils +pkgver=8.17 +pkgrel=3 +pkgdesc="The basic file, shell and text manipulation utilities of the GNU operating system" +arch=('i686' 'x86_64') +license=('GPL3') +url="http://www.gnu.org/software/coreutils" +groups=('base') +depends=('glibc' 'pam' 'acl' 'gmp' 'libcap') +replaces=('mktemp') +backup=('etc/pam.d/su') +install=${pkgname}.install +options=('!emptydirs') +source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz{,.sig} +	coreutils-pam.patch +	0001-ls-color-each-symlink-to-relative-name-in-properly.patch +	su.pam) +md5sums=('bbda656ce8ca2c6903948f9faa204ba3' +         'ebecd29b095aa21b0b2f833f1ec20d70' +         'aad79a2aa6d566c375d7bdd1b0767278' +         'd7c691898a695a6284a927e6a9426fe4' +         'fa85e5cce5d723275b14365ba71a8aad') + +build() { +  cd ${srcdir}/${pkgname}-${pkgver} + +  # added su wheel group pam patch (from fedora git) +  patch -Np1 -i ${srcdir}/coreutils-pam.patch + +  # fix coloring for symlinks in / +  # upstream commit 6124a3842dfa8484b52e067a8ab8105c3875a4f7 +  patch -Np1 -i $srcdir/0001-ls-color-each-symlink-to-relative-name-in-properly.patch + +  autoreconf -v +  ./configure --prefix=/usr --libexecdir=/usr/lib/coreutils \ +              --enable-install-program=su \ +              --enable-no-install-program=groups,hostname,kill,uptime \ +              --enable-pam +  make +} + +check() { +  cd ${srcdir}/${pkgname}-${pkgver} +  make RUN_EXPENSIVE_TESTS=yes check +} + +package() { +  cd ${srcdir}/${pkgname}-${pkgver} +  make DESTDIR=${pkgdir} install + +  cd ${pkgdir}/usr/bin +  install -dm755 ${pkgdir}/{bin,usr/sbin} + +  # binaries required by FHS +  _fhs=('cat' 'chgrp' 'chmod' 'chown' 'cp' 'date' 'dd' 'df' 'echo' 'false' +        'ln' 'ls' 'mkdir' 'mknod' 'mv' 'pwd' 'rm' 'rmdir' 'stty' 'su' 'sync' +        'true' 'uname') +  mv ${_fhs[@]} ${pkgdir}/bin + +  mv chroot ${pkgdir}/usr/sbin +  install -Dm644 ${srcdir}/su.pam ${pkgdir}/etc/pam.d/su +} diff --git a/abs/not_built/core/coreutils/coreutils-pam.patch b/abs/not_built/core/coreutils/coreutils-pam.patch new file mode 100644 index 0000000..e61908f --- /dev/null +++ b/abs/not_built/core/coreutils/coreutils-pam.patch @@ -0,0 +1,428 @@ +diff -urNp coreutils-8.4-orig/configure.ac coreutils-8.4/configure.ac +--- coreutils-8.4-orig/configure.ac	2010-01-11 18:20:42.000000000 +0100 ++++ coreutils-8.4/configure.ac	2010-02-12 10:17:46.000000000 +0100 +@@ -126,6 +126,13 @@ if test "$gl_gcc_warnings" = yes; then +   AC_SUBST([GNULIB_WARN_CFLAGS]) + fi +  ++dnl Give the chance to enable PAM ++AC_ARG_ENABLE(pam, dnl ++[  --enable-pam              Enable use of the PAM libraries], ++[AC_DEFINE(USE_PAM, 1, [Define if you want to use PAM]) ++LIB_PAM="-ldl -lpam -lpam_misc" ++AC_SUBST(LIB_PAM)]) ++ + AC_FUNC_FORK +  + optional_bin_progs= +diff -urNp coreutils-8.4-orig/doc/coreutils.texi coreutils-8.4/doc/coreutils.texi +--- coreutils-8.4-orig/doc/coreutils.texi	2010-01-03 18:06:20.000000000 +0100 ++++ coreutils-8.4/doc/coreutils.texi	2010-02-12 10:17:46.000000000 +0100 +@@ -15081,8 +15081,11 @@ to certain shells, etc.). + @findex syslog + @command{su} can optionally be compiled to use @code{syslog} to report + failed, and optionally successful, @command{su} attempts.  (If the system +-supports @code{syslog}.)  However, GNU @command{su} does not check if the +-user is a member of the @code{wheel} group; see below. ++supports @code{syslog}.) ++ ++This version of @command{su} has support for using PAM for ++authentication.  You can edit @file{/etc/pam.d/su} to customize its ++behaviour. +  + The program accepts the following options.  Also see @ref{Common options}. +  +@@ -15124,6 +15127,8 @@ environment variables except @env{TERM}, + @env{PATH} to a compiled-in default value.  Change to @var{user}'s home + directory.  Prepend @samp{-} to the shell's name, intended to make it + read its login startup file(s). ++Additionaly @env{DISPLAY} and @env{XAUTHORITY} environment variables  ++are preserved as well for PAM functionality. +  + @item -m + @itemx -p +@@ -15163,33 +15168,6 @@ Exit status: + the exit status of the subshell otherwise + @end display +  +-@cindex wheel group, not supported +-@cindex group wheel, not supported +-@cindex fascism +-@subsection Why GNU @command{su} does not support the @samp{wheel} group +- +-(This section is by Richard Stallman.) +- +-@cindex Twenex +-@cindex MIT AI lab +-Sometimes a few of the users try to hold total power over all the +-rest.  For example, in 1984, a few users at the MIT AI lab decided to +-seize power by changing the operator password on the Twenex system and +-keeping it secret from everyone else.  (I was able to thwart this coup +-and give power back to the users by patching the kernel, but I +-wouldn't know how to do that in Unix.) +- +-However, occasionally the rulers do tell someone.  Under the usual +-@command{su} mechanism, once someone learns the root password who +-sympathizes with the ordinary users, he or she can tell the rest.  The +-``wheel group'' feature would make this impossible, and thus cement the +-power of the rulers. +- +-I'm on the side of the masses, not that of the rulers.  If you are +-used to supporting the bosses and sysadmins in whatever they do, you +-might find this idea strange at first. +- +- + @node timeout invocation + @section @command{timeout}: Run a command with a time limit +  +diff -urNp coreutils-8.4-orig/src/Makefile.am coreutils-8.4/src/Makefile.am +--- coreutils-8.4-orig/src/Makefile.am	2010-01-03 18:06:20.000000000 +0100 ++++ coreutils-8.4/src/Makefile.am	2010-02-12 10:17:46.000000000 +0100 +@@ -361,7 +361,7 @@ factor_LDADD += $(LIB_GMP) + uptime_LDADD += $(GETLOADAVG_LIBS) +  + # for crypt +-su_LDADD += $(LIB_CRYPT) ++su_LDADD += $(LIB_CRYPT) @LIB_PAM@ +  + # for various ACL functions + copy_LDADD += $(LIB_ACL) +diff -urNp coreutils-8.4-orig/src/su.c coreutils-8.4/src/su.c +--- coreutils-8.4-orig/src/su.c	2010-02-12 10:15:15.000000000 +0100 ++++ coreutils-8.4/src/su.c	2010-02-12 10:24:29.000000000 +0100 +@@ -37,6 +37,16 @@ +    restricts who can su to UID 0 accounts.  RMS considers that to +    be fascist. +  ++#ifdef USE_PAM ++ ++   Actually, with PAM, su has nothing to do with whether or not a ++   wheel group is enforced by su.  RMS tries to restrict your access ++   to a su which implements the wheel group, but PAM considers that ++   to be fascist, and gives the user/sysadmin the opportunity to ++   enforce a wheel group by proper editing of /etc/pam.conf ++ ++#endif ++ +    Compile-time options: +    -DSYSLOG_SUCCESS	Log successful su's (by default, to root) with syslog. +    -DSYSLOG_FAILURE	Log failed su's (by default, to root) with syslog. +@@ -53,6 +63,15 @@ + #include <pwd.h> + #include <grp.h> +  ++#ifdef USE_PAM ++# include <signal.h> ++# include <sys/wait.h> ++# include <sys/fsuid.h> ++# include <unistd.h> ++# include <security/pam_appl.h> ++# include <security/pam_misc.h> ++#endif /* USE_PAM */ ++ + #include "system.h" + #include "getpass.h" +  +@@ -120,10 +139,17 @@ + /* The user to become if none is specified.  */ + #define DEFAULT_USER "root" +  ++#ifndef USE_PAM + char *crypt (char const *key, char const *salt); ++#endif +  +-static void run_shell (char const *, char const *, char **, size_t) ++static void run_shell (char const *, char const *, char **, size_t, ++	const struct passwd *) ++#ifdef USE_PAM ++	; ++#else +      ATTRIBUTE_NORETURN; ++#endif +  + /* If true, pass the `-f' option to the subshell.  */ + static bool fast_startup; +@@ -209,7 +235,26 @@ log_su (struct passwd const *pw, bool su + } + #endif +  ++#ifdef USE_PAM ++static pam_handle_t *pamh = NULL; ++static int retval; ++static struct pam_conv conv = { ++  misc_conv, ++  NULL ++}; ++ ++#define PAM_BAIL_P if (retval) { \ ++  pam_end(pamh, PAM_SUCCESS); \ ++  return 0; \ ++} ++#define PAM_BAIL_P_VOID if (retval) {		\ ++  pam_end(pamh, PAM_SUCCESS);			\ ++return;						\ ++} ++#endif ++ + /* Ask the user for a password. ++   If PAM is in use, let PAM ask for the password if necessary. +    Return true if the user gives the correct password for entry PW, +    false if not.  Return true without asking for a password if run by UID 0 +    or if PW has an empty password.  */ +@@ -217,6 +262,44 @@ log_su (struct passwd const *pw, bool su + static bool + correct_password (const struct passwd *pw) + { ++#ifdef USE_PAM ++  struct passwd *caller; ++  char *tty_name, *ttyn; ++  retval = pam_start(PROGRAM_NAME, pw->pw_name, &conv, &pamh); ++  PAM_BAIL_P; ++ ++  if (getuid() != 0 && !isatty(0)) { ++	fprintf(stderr, "standard in must be a tty\n"); ++	exit(1); ++  } ++ ++  caller = getpwuid(getuid()); ++  if(caller != NULL && caller->pw_name != NULL) { ++	  retval = pam_set_item(pamh, PAM_RUSER, caller->pw_name); ++	  PAM_BAIL_P; ++  } ++ ++  ttyn = ttyname(0); ++  if (ttyn) { ++    if (strncmp(ttyn, "/dev/", 5) == 0) ++       tty_name = ttyn+5; ++    else ++       tty_name = ttyn; ++    retval = pam_set_item(pamh, PAM_TTY, tty_name); ++    PAM_BAIL_P; ++  } ++  retval = pam_authenticate(pamh, 0); ++  PAM_BAIL_P; ++  retval = pam_acct_mgmt(pamh, 0); ++  if (retval == PAM_NEW_AUTHTOK_REQD) { ++    /* password has expired.  Offer option to change it. */ ++    retval = pam_chauthtok(pamh, PAM_CHANGE_EXPIRED_AUTHTOK); ++    PAM_BAIL_P; ++  } ++  PAM_BAIL_P; ++  /* must be authenticated if this point was reached */ ++  return 1; ++#else /* !USE_PAM */ +   char *unencrypted, *encrypted, *correct; + #if HAVE_GETSPNAM && HAVE_STRUCT_SPWD_SP_PWDP +   /* Shadow passwd stuff for SVR3 and maybe other systems.  */ +@@ -241,6 +324,7 @@ correct_password (const struct passwd *p +   encrypted = crypt (unencrypted, correct); +   memset (unencrypted, 0, strlen (unencrypted)); +   return STREQ (encrypted, correct); ++#endif /* !USE_PAM */ + } +  + /* Update `environ' for the new shell based on PW, with SHELL being +@@ -254,12 +338,18 @@ modify_environment (const struct passwd  +       /* Leave TERM unchanged.  Set HOME, SHELL, USER, LOGNAME, PATH. +          Unset all other environment variables.  */ +       char const *term = getenv ("TERM"); ++      char const *display = getenv ("DISPLAY"); ++      char const *xauthority = getenv ("XAUTHORITY"); +       if (term) +         term = xstrdup (term); +       environ = xmalloc ((6 + !!term) * sizeof (char *)); +       environ[0] = NULL; +       if (term) +         xsetenv ("TERM", term); ++      if (display) ++        xsetenv ("DISPLAY", display); ++      if (xauthority) ++        xsetenv ("XAUTHORITY", xauthority); +       xsetenv ("HOME", pw->pw_dir); +       xsetenv ("SHELL", shell); +       xsetenv ("USER", pw->pw_name); +@@ -292,8 +382,13 @@ change_identity (const struct passwd *pw + { + #ifdef HAVE_INITGROUPS +   errno = 0; +-  if (initgroups (pw->pw_name, pw->pw_gid) == -1) ++  if (initgroups (pw->pw_name, pw->pw_gid) == -1) { ++#ifdef USE_PAM ++    pam_close_session(pamh, 0); ++    pam_end(pamh, PAM_ABORT); ++#endif +     error (EXIT_CANCELED, errno, _("cannot set groups")); ++  } +   endgrent (); + #endif +   if (setgid (pw->pw_gid)) +@@ -302,6 +397,31 @@ change_identity (const struct passwd *pw +     error (EXIT_CANCELED, errno, _("cannot set user id")); + } +  ++#ifdef USE_PAM ++static int caught=0; ++/* Signal handler for parent process later */ ++static void su_catch_sig(int sig) ++{ ++  ++caught; ++} ++ ++int ++pam_copyenv (pam_handle_t *pamh) ++{ ++  char **env; ++ ++  env = pam_getenvlist(pamh); ++  if(env) { ++    while(*env) { ++	if (putenv (*env)) ++	  xalloc_die (); ++	env++; ++    } ++  } ++  return(0); ++} ++#endif ++ + /* Run SHELL, or DEFAULT_SHELL if SHELL is empty. +    If COMMAND is nonzero, pass it to the shell with the -c option. +    Pass ADDITIONAL_ARGS to the shell as more arguments; there +@@ -309,17 +429,49 @@ change_identity (const struct passwd *pw +  + static void + run_shell (char const *shell, char const *command, char **additional_args, +-           size_t n_additional_args) ++           size_t n_additional_args, const struct passwd *pw) + { +   size_t n_args = 1 + fast_startup + 2 * !!command + n_additional_args + 1; +   char const **args = xnmalloc (n_args, sizeof *args); +   size_t argno = 1; ++#ifdef USE_PAM ++  int child; ++  sigset_t ourset; ++  int status; ++ ++  retval = pam_open_session(pamh,0); ++  if (retval != PAM_SUCCESS) { ++    fprintf (stderr, "could not open session\n"); ++    exit (1); ++  } ++ ++/* do this at the last possible moment, because environment variables may ++   be passed even in the session phase ++*/ ++  if(pam_copyenv(pamh) != PAM_SUCCESS) ++     fprintf (stderr, "error copying PAM environment\n"); ++   ++  /* Credentials should be set in the parent */  ++  if (pam_setcred(pamh, PAM_ESTABLISH_CRED) != PAM_SUCCESS) { ++    pam_close_session(pamh, 0); ++    fprintf(stderr, "could not set PAM credentials\n"); ++    exit(1); ++  } ++ ++  child = fork(); ++  if (child == 0) {  /* child shell */ ++  change_identity (pw); ++  pam_end(pamh, 0); ++#endif +  +   if (simulate_login) +     { +       char *arg0; +       char *shell_basename; +  ++      if(chdir(pw->pw_dir)) ++	      error(0, errno, _("warning: cannot change directory to %s"), pw->pw_dir); ++ +       shell_basename = last_component (shell); +       arg0 = xmalloc (strlen (shell_basename) + 2); +       arg0[0] = '-'; +@@ -344,6 +496,67 @@ run_shell (char const *shell, char const +     error (0, errno, "%s", shell); +     exit (exit_status); +   } ++#ifdef USE_PAM ++  } else if (child == -1) { ++      fprintf(stderr, "can not fork user shell: %s", strerror(errno)); ++      pam_setcred(pamh, PAM_DELETE_CRED | PAM_SILENT); ++      pam_close_session(pamh, 0); ++      pam_end(pamh, PAM_ABORT); ++      exit(1); ++  } ++  /* parent only */ ++  sigfillset(&ourset); ++  if (sigprocmask(SIG_BLOCK, &ourset, NULL)) { ++    fprintf(stderr, "%s: signal malfunction\n", PROGRAM_NAME); ++    caught = 1; ++  } ++  if (!caught) { ++    struct sigaction action; ++    action.sa_handler = su_catch_sig; ++    sigemptyset(&action.sa_mask); ++    action.sa_flags = 0; ++    sigemptyset(&ourset); ++    if (sigaddset(&ourset, SIGTERM) ++        || sigaddset(&ourset, SIGALRM) ++        || sigaction(SIGTERM, &action, NULL) ++        || sigprocmask(SIG_UNBLOCK, &ourset, NULL)) { ++      fprintf(stderr, "%s: signal masking malfunction\n", PROGRAM_NAME); ++      caught = 1; ++    } ++  } ++  if (!caught) { ++    do { ++      int pid; ++ ++      pid = waitpid(-1, &status, WUNTRACED); ++ ++      if (((pid_t)-1 != pid) && (0 != WIFSTOPPED (status))) { ++          kill(getpid(), WSTOPSIG(status)); ++          /* once we get here, we must have resumed */ ++          kill(pid, SIGCONT); ++      } ++    } while (0 != WIFSTOPPED(status)); ++  } ++ ++  if (caught) { ++    fprintf(stderr, "\nSession terminated, killing shell..."); ++    kill (child, SIGTERM); ++  } ++  /* Not checking retval on this because we need to call close session */ ++  pam_setcred(pamh, PAM_DELETE_CRED | PAM_SILENT); ++  retval = pam_close_session(pamh, 0); ++  PAM_BAIL_P_VOID; ++  retval = pam_end(pamh, PAM_SUCCESS); ++  PAM_BAIL_P_VOID; ++  if (caught) { ++    sleep(2); ++    kill(child, SIGKILL); ++    fprintf(stderr, " ...killed.\n"); ++    exit(-1); ++  } ++  exit ((0 != WIFEXITED (status)) ? WEXITSTATUS (status) ++                                  : WTERMSIG (status) + 128); ++#endif /* USE_PAM */ + } +  + /* Return true if SHELL is a restricted shell (one not returned by +@@ -511,9 +724,9 @@ main (int argc, char **argv) +   shell = xstrdup (shell ? shell : pw->pw_shell); +   modify_environment (pw, shell); +  ++#ifndef USE_PAM +   change_identity (pw); +-  if (simulate_login && chdir (pw->pw_dir) != 0) +-    error (0, errno, _("warning: cannot change directory to %s"), pw->pw_dir); ++#endif +  +   /* error() flushes stderr, but does not check for write failure. +      Normally, we would catch this via our atexit() hook of +@@ -523,5 +736,5 @@ main (int argc, char **argv) +   if (ferror (stderr)) +     exit (EXIT_CANCELED); +  +-  run_shell (shell, command, argv + optind, MAX (0, argc - optind)); ++  run_shell (shell, command, argv + optind, MAX (0, argc - optind), pw); + } diff --git a/abs/not_built/core/coreutils/coreutils.install b/abs/not_built/core/coreutils/coreutils.install new file mode 100644 index 0000000..8caae66 --- /dev/null +++ b/abs/not_built/core/coreutils/coreutils.install @@ -0,0 +1,21 @@ +infodir=usr/share/info +filelist=(coreutils.info) + +post_install() { + [ -x usr/bin/install-info ] || return 0 + for file in ${filelist[@]}; do +    usr/bin/install-info $infodir/$file.gz $infodir/dir 2> /dev/null + done +} + +post_upgrade() { +  post_install $1 +} + +pre_remove() { + [ -x usr/bin/install-info ] || return 0 +  for file in ${filelist[@]}; do +    usr/bin/install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null +  done +} + diff --git a/abs/not_built/core/coreutils/su.pam b/abs/not_built/core/coreutils/su.pam new file mode 100644 index 0000000..cf15f40 --- /dev/null +++ b/abs/not_built/core/coreutils/su.pam @@ -0,0 +1,9 @@ +#%PAM-1.0 +auth		sufficient	pam_rootok.so +# Uncomment the following line to implicitly trust users in the "wheel" group. +#auth		sufficient	pam_wheel.so trust use_uid +# Uncomment the following line to require a user to be in the "wheel" group. +#auth		required	pam_wheel.so use_uid +auth		required	pam_unix.so +account		required	pam_unix.so +session		required	pam_unix.so diff --git a/abs/not_built/core/cpio/PKGBUILD b/abs/not_built/core/cpio/PKGBUILD new file mode 100644 index 0000000..712fa3d --- /dev/null +++ b/abs/not_built/core/cpio/PKGBUILD @@ -0,0 +1,30 @@ +# $Id: PKGBUILD 76085 2010-04-07 18:00:10Z tpowa $ +# Maintainer: judd <jvinet@zeroflux.org> +pkgname=cpio +pkgver=2.11 +pkgrel=2 +pkgdesc="A tool to copy files into or out of a cpio or tar archive" +arch=('i686' 'x86_64') +license=('GPL') +url="http://www.gnu.org/software/cpio" +depends=('glibc') +source=(ftp://ftp.gnu.org/gnu/cpio/cpio-${pkgver}.tar.gz) +install=cpio.install +md5sums=('1112bb6c45863468b5496ba128792f6c') + +build() { +  cd ${srcdir}/${pkgname}-${pkgver} +  ./configure --prefix=/usr --mandir=/usr/share/man +  make || return 1 +} +package() { +  cd ${srcdir}/${pkgname}-${pkgver} +  make DESTDIR=${pkgdir} install +  rm -f ${pkgdir}/usr/bin/mt ${pkgdir}/pkg/usr/share/man/man1/mt.1 +  mv ${pkgdir}/usr/bin ${pkgdir}/bin +  rm -rf ${pkgdir}/usr/libexec +  # remove mt manpage it conflicts with mt-st from extra +  rm $pkgdir/usr/share/man/man1/mt.1 || return 1 +  # remove infodir +  rm $pkgdir/usr/share/info/dir +} diff --git a/abs/not_built/core/cpio/cpio-gcc43.patch b/abs/not_built/core/cpio/cpio-gcc43.patch new file mode 100644 index 0000000..0057b8d --- /dev/null +++ b/abs/not_built/core/cpio/cpio-gcc43.patch @@ -0,0 +1,139 @@ +http://bugs.gentoo.org/198817 + +from upstream gnulib for "extern inline" changes + +diff --git a/lib/argp-fmtstream.h b/lib/argp-fmtstream.h +index 93fa651..50f1387 100644 +--- a/lib/argp-fmtstream.h ++++ b/lib/argp-fmtstream.h +@@ -1,5 +1,5 @@ + /* Word-wrapping and line-truncating streams. +-   Copyright (C) 1997, 2006 Free Software Foundation, Inc. ++   Copyright (C) 1997, 2006-2007 Free Software Foundation, Inc. +    This file is part of the GNU C Library. +    Written by Miles Bader <miles@gnu.ai.mit.edu>. +  +@@ -134,6 +134,7 @@ extern ssize_t argp_fmtstream_printf (argp_fmtstream_t __fs, + 				      const char *__fmt, ...) +      __attribute__ ((__format__ (printf, 2, 3))); +  ++#if _LIBC || !defined __OPTIMIZE__ + extern int __argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch); + extern int argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch); +  +@@ -144,6 +145,7 @@ extern size_t __argp_fmtstream_write (argp_fmtstream_t __fs, + 				      const char *__str, size_t __len); + extern size_t argp_fmtstream_write (argp_fmtstream_t __fs, + 				    const char *__str, size_t __len); ++#endif +  + /* Access macros for various bits of state.  */ + #define argp_fmtstream_lmargin(__fs) ((__fs)->lmargin) +@@ -153,6 +155,7 @@ extern size_t argp_fmtstream_write (argp_fmtstream_t __fs, + #define __argp_fmtstream_rmargin argp_fmtstream_rmargin + #define __argp_fmtstream_wmargin argp_fmtstream_wmargin +  ++#if _LIBC || !defined __OPTIMIZE__ + /* Set __FS's left margin to LMARGIN and return the old value.  */ + extern size_t argp_fmtstream_set_lmargin (argp_fmtstream_t __fs, + 					  size_t __lmargin); +@@ -174,6 +177,7 @@ extern size_t __argp_fmtstream_set_wmargin (argp_fmtstream_t __fs, + /* Return the column number of the current output point in __FS.  */ + extern size_t argp_fmtstream_point (argp_fmtstream_t __fs); + extern size_t __argp_fmtstream_point (argp_fmtstream_t __fs); ++#endif +  + /* Internal routines.  */ + extern void _argp_fmtstream_update (argp_fmtstream_t __fs); +@@ -197,7 +201,28 @@ extern int __argp_fmtstream_ensure (argp_fmtstream_t __fs, size_t __amount); + #endif +  + #ifndef ARGP_FS_EI +-#define ARGP_FS_EI extern inline ++# ifdef __GNUC__ ++   /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 ++      inline semantics, unless -fgnu89-inline is used.  It defines a macro ++      __GNUC_STDC_INLINE__ to indicate this situation or a macro ++      __GNUC_GNU_INLINE__ to indicate the opposite situation. ++      GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline ++      semantics but warns, unless -fgnu89-inline is used: ++        warning: C99 inline functions are not supported; using GNU89 ++        warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute ++      It defines a macro __GNUC_GNU_INLINE__ to indicate this situation.  */ ++#  if defined __GNUC_STDC_INLINE__ ++#   define ARGP_FS_EI inline ++#  elif defined __GNUC_GNU_INLINE__ ++#   define ARGP_FS_EI extern inline __attribute__ ((__gnu_inline__)) ++#  else ++#   define ARGP_FS_EI extern inline ++#  endif ++# else ++   /* With other compilers, assume the ISO C99 meaning of 'inline', if ++      the compiler supports 'inline' at all.  */ ++#  define ARGP_FS_EI inline ++# endif + #endif +  + ARGP_FS_EI size_t +diff --git a/lib/argp.h b/lib/argp.h +index fb11de6..aa76eb4 100644 +--- a/lib/argp.h ++++ b/lib/argp.h +@@ -520,9 +520,11 @@ extern void __argp_state_help (const struct argp_state *__restrict __state, + 			       FILE *__restrict __stream, + 			       unsigned int __flags); +  ++#if _LIBC || !defined __USE_EXTERN_INLINES + /* Possibly output the standard usage message for ARGP to stderr and exit.  */ + extern void argp_usage (const struct argp_state *__state); + extern void __argp_usage (const struct argp_state *__state); ++#endif +  + /* If appropriate, print the printf string FMT and following args, preceded +    by the program name and `:', to stderr, and followed by a `Try ... --help' +@@ -551,6 +553,7 @@ extern void __argp_failure (const struct argp_state *__restrict __state, + 			    const char *__restrict __fmt, ...) +      __attribute__ ((__format__ (__printf__, 4, 5))); +  ++#if _LIBC || !defined __USE_EXTERN_INLINES + /* Returns true if the option OPT is a valid short option.  */ + extern int _option_is_short (const struct argp_option *__opt) __THROW; + extern int __option_is_short (const struct argp_option *__opt) __THROW; +@@ -559,6 +562,7 @@ extern int __option_is_short (const struct argp_option *__opt) __THROW; +    options array.  */ + extern int _option_is_end (const struct argp_option *__opt) __THROW; + extern int __option_is_end (const struct argp_option *__opt) __THROW; ++#endif +  + /* Return the input field for ARGP in the parser corresponding to STATE; used +    by the help routines.  */ +@@ -579,7 +583,28 @@ extern void *__argp_input (const struct argp *__restrict __argp, + # endif +  + # ifndef ARGP_EI +-#  define ARGP_EI extern __inline__ ++#  ifdef __GNUC__ ++    /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 ++       inline semantics, unless -fgnu89-inline is used.  It defines a macro ++       __GNUC_STDC_INLINE__ to indicate this situation or a macro ++       __GNUC_GNU_INLINE__ to indicate the opposite situation. ++       GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline ++       semantics but warns, unless -fgnu89-inline is used: ++         warning: C99 inline functions are not supported; using GNU89 ++         warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute ++       It defines a macro __GNUC_GNU_INLINE__ to indicate this situation.  */ ++#   if defined __GNUC_STDC_INLINE__ ++#    define ARGP_EI __inline__ ++#   elif defined __GNUC_GNU_INLINE__ ++#    define ARGP_EI extern __inline__ __attribute__ ((__gnu_inline__)) ++#   else ++#    define ARGP_EI extern __inline__ ++#   endif ++#  else ++    /* With other compilers, assume the ISO C99 meaning of 'inline', if ++       the compiler supports 'inline' at all.  */ ++#   define ARGP_EI inline ++#  endif + # endif +  + ARGP_EI void diff --git a/abs/not_built/core/cpio/cpio.install b/abs/not_built/core/cpio/cpio.install new file mode 100644 index 0000000..e5502ca --- /dev/null +++ b/abs/not_built/core/cpio/cpio.install @@ -0,0 +1,21 @@ +infodir=/usr/share/info +filelist=(cpio.info) + +post_install() { + [ -x usr/bin/install-info ] || return 0 + for file in ${filelist[@]}; do +    usr/bin/install-info $infodir/$file $infodir/dir 2> /dev/null + done +} + +post_upgrade() { +  post_install $1 +} + +pre_remove() { + [ -x usr/bin/install-info ] || return 0 +  for file in ${filelist[@]}; do +    usr/bin/install-info --delete $infodir/$file $infodir/dir 2> /dev/null +  done +} + diff --git a/abs/not_built/core/dash/PKGBUILD b/abs/not_built/core/dash/PKGBUILD new file mode 100644 index 0000000..b4d3c80 --- /dev/null +++ b/abs/not_built/core/dash/PKGBUILD @@ -0,0 +1,32 @@ +# $Id: PKGBUILD 81892 2010-06-06 21:30:28Z dan $ +# Maintainer: Dan McGee <dan@archlinux.org> + +pkgname=dash +pkgver=0.5.6.1 +pkgrel=1 +pkgdesc="A POSIX compliant shell that aims to be as small as possible" +arch=('i686' 'x86_64') +url="http://gondor.apana.org.au/~herbert/dash/" +license=('BSD') +groups=('base') +depends=('glibc') +#provides=('sh') +source=("http://gondor.apana.org.au/~herbert/dash/files/dash-$pkgver.tar.gz") +md5sums=('1c846f4f5a33c0050b2045a6f7037e56') + +build() { +  cd $srcdir/$pkgname-$pkgver +  ./configure --prefix=/usr --mandir=/usr/share/man --exec-prefix="" +  make || return 1 +} +package() { +  cd $srcdir/$pkgname-$pkgver +  make DESTDIR=$pkgdir install || return 1 + +  # license +  install -m644 -D COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING + +  # dash is our default /bin/sh +  #cd $pkgdir/bin +  #ln -s dash sh +} diff --git a/abs/not_built/core/db4.5/PKGBUILD b/abs/not_built/core/db4.5/PKGBUILD new file mode 100644 index 0000000..db87a0d --- /dev/null +++ b/abs/not_built/core/db4.5/PKGBUILD @@ -0,0 +1,41 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +pkgname=db4.5 +pkgver=4.5.20 +pkgrel=2 +pkgdesc="The Berkeley DB embedded database system 4.5" +arch=('i686' 'x86_64') +license=('custom') +url="http://www.oracle.com/technology/software/products/berkeley-db/index.html" +depends=('gcc-libs') +options=('!libtool' '!makeflags') +source=(http://download-uk.oracle.com/berkeley-db/db-${pkgver}.tar.gz +	http://www.oracle.com/technology/products/berkeley-db/db/update/4.5.20/patch.4.5.20.1 +	http://www.oracle.com/technology/products/berkeley-db/db/update/4.5.20/patch.4.5.20.2) +md5sums=('b0f1c777708cb8e9d37fb47e7ed3312d' +         'a571e239b9041d7990df287cbc59ad6f' +         'b7a7086a067ba116f5a8464362c9a9a7') + +build() { +  cd ${startdir}/src/db-${pkgver}/ +  patch -Np0 -i ${startdir}/src/patch.4.5.20.1 || return 1 +  patch -Np0 -i ${startdir}/src/patch.4.5.20.2 || return 1 + +  cd build_unix +  ../dist/configure --prefix=/usr --enable-compat185 \ +    --enable-shared --disable-static --enable-cxx +  make LIBSO_LIBS=-lpthread || return 1 +  make prefix=${startdir}/pkg/usr \ +       includedir=${startdir}/pkg/usr/include/db4.5 install + +  rm -rf ${startdir}/pkg/usr/docs +  rm -f ${startdir}/pkg/usr/lib/libdb{,_cxx}.so +  rm -f ${startdir}/pkg/usr/lib/libdb{,_cxx}-4.so + +  cd ${startdir}/pkg/usr/bin +  for i in *; do +    mv $i db4.5_${i/db_/} +  done +  mkdir -p ${startdir}/pkg/usr/share/licenses/${pkgname} +  install -m644 ${startdir}/src/db-${pkgver}/LICENSE ${startdir}/pkg/usr/share/licenses/${pkgname}/LICENSE +} diff --git a/abs/not_built/core/dhcp/ChangeLog b/abs/not_built/core/dhcp/ChangeLog new file mode 100644 index 0000000..9cffaa9 --- /dev/null +++ b/abs/not_built/core/dhcp/ChangeLog @@ -0,0 +1,11 @@ + +2010-07-16  kevin  <kevin@archlinux.org> +	* dhcp 4.2.0-1 + +2009-07-19  kevin  <kevin@archlinux.org> +	* dhcp 4.1.0.p1-1 +	* Adopted RedHat patch to fix bug where dhcpd won't start if ipv6 module +	  is not loaded.  Fixes FS#12792. +	* Added /etc/conf.d/dhcp feature contributed by Fabiano Furtado Pessoa +	  Coelho <fusca14@gmail.com>	 + diff --git a/abs/not_built/core/dhcp/PKGBUILD b/abs/not_built/core/dhcp/PKGBUILD new file mode 100644 index 0000000..af4e49a --- /dev/null +++ b/abs/not_built/core/dhcp/PKGBUILD @@ -0,0 +1,77 @@ +# $Id: PKGBUILD 85736 2010-07-19 02:41:06Z kevin $ +# Maintainer: judd <jvinet@zeroflux.org> +pkgbase=dhcp +pkgname=('dhcp' +         'dhclient') +# separate patch levels with a period to maintain proper versioning. +pkgver=4.2.0 +_pkgver=4.2.0 +pkgrel=1 +arch=('i686' 'x86_64') +license=('custom:isc-dhcp') +url="https://www.isc.org/software/dhcp" +source=(http://ftp.isc.org/isc/${pkgname}/${pkgname}-${_pkgver}.tar.gz +dhcpd dhcp.conf.d dhcp-4.1.1-missing-ipv6-not-fatal.patch dhclient-script-pathFixes.patch) +md5sums=('83abd7c4f9c24d8dd024ca5a71380c0a' +         'df22cffa7d7415ece7bb025b7bf774dd' +         '49da3192e5c885e3c7d02f447c2dea5e' +         'fd64aeb4f399dcc41ea43089a3811094' +         'ddcc5cd576ec631ade6c4da21952b50b') + +build() { +  cd ${srcdir}/${pkgname}-${_pkgver} +  # Define _GNU_SOURCE to fix IPV6. +  sed '/^CFLAGS="$CFLAGS/ s/INGS"/INGS -D_GNU_SOURCE"/' -i configure +  # Make not having ipv6 non-fatal. +  patch -Np0 -i ${srcdir}/dhcp-4.1.1-missing-ipv6-not-fatal.patch +  ./configure --prefix=/usr --sysconfdir=/etc \ +      --with-srv-lease-file=/var/state/dhcp/dhcpd.leases \ +      --with-srv6-lease-file=/var/state/dhcp/dhcpd6.leases +  make || return 1 +} + +package_dhcp(){ +  pkgdesc="A DHCP server, client, and relay agent" +  depends=('openssl>=0.9.8a') +  backup=('etc/dhcpd.conf' 'etc/conf.d/dhcp') +  install=dhcp.install +   +  cd ${srcdir}/${pkgname}-${_pkgver} +  make DESTDIR=${pkgdir} install +  install -D -m755 ${srcdir}/dhcpd ${pkgdir}/etc/rc.d/dhcpd +  install -D -m644 ${srcdir}/dhcp.conf.d ${pkgdir}/etc/conf.d/${pkgbase} +  mkdir -p ${pkgdir}/var/state/dhcp +  rm -f ${pkgdir}/etc/dhclient.conf +  rm -f ${pkgdir}/usr/sbin/dhclient +  rm -f ${pkgdir}/usr/share/man/man{5,8}/dhclient* +   +  # install licenses +  install -m644 -D ${srcdir}/${pkgbase}-${_pkgver}/LICENSE \ +                   ${pkgdir}/usr/share/licenses/dhcp/LICENSE +} + +package_dhclient(){ +   +  pkgdesc="dhclient is standalone client from the dhcp package" +  depends=('bash') + +  cd ${srcdir}/${pkgname}-${_pkgver}/client/scripts +  patch -Np1 -i ${srcdir}/dhclient-script-pathFixes.patch linux || return 1 +  cd ${srcdir}/${pkgname}-${_pkgver}/client +  make DESTDIR=${pkgdir} install +  install -m755 -d ${startdir}/pkg/var/lib/dhclient + +  #not needed after fresh install +  rm -f ${pkgdir}/var/lib/dhclient/dhcpd.leases + +  #move dhclient.conf to dhclient.conf.example +  mv ${pkgdir}/etc/dhclient.conf ${pkgdir}/etc/dhclient.conf.example + +  # install dhclient linux script +  mkdir ${pkgdir}/sbin +  install -m755 -D ${srcdir}/${pkgname}-${_pkgver}/client/scripts/linux \ +                   ${pkgdir}/sbin/dhclient-script +  # install licenses +  install -m644 -D ${srcdir}/${pkgname}-${_pkgver}/LICENSE \ +                   ${pkgdir}/usr/share/licenses/dhclient/LICENSE +} diff --git a/abs/not_built/core/dhcp/dhclient-script-pathFixes.patch b/abs/not_built/core/dhcp/dhclient-script-pathFixes.patch new file mode 100644 index 0000000..e19c328 --- /dev/null +++ b/abs/not_built/core/dhcp/dhclient-script-pathFixes.patch @@ -0,0 +1,118 @@ +--- linux	2009-04-21 16:21:09.000000000 +0200 ++++ linux_new	2010-06-30 19:06:20.000000000 +0200 +@@ -23,7 +23,7 @@ + # of the $1 in its args. +  + # 'ip' just looks too weird.  /sbin/ip looks less weird. +-ip=/sbin/ip ++ip=/usr/sbin/ip +  + make_resolv_conf() { +   if [ x"$new_domain_name_servers" != x ]; then +@@ -112,9 +112,9 @@ + if [ x$reason = xPREINIT ]; then +   if [ x$alias_ip_address != x ]; then +     # Bring down alias interface. Its routes will disappear too. +-    ifconfig $interface:0- inet 0 ++    /sbin/ifconfig $interface:0- inet 0 +   fi +-  ifconfig $interface 0 up ++  /sbin/ifconfig $interface 0 up +  +   # We need to give the kernel some time to get the interface up. +   sleep 1 +@@ -141,32 +141,32 @@ +   if [ x$old_ip_address != x ] && [ x$alias_ip_address != x ] && \ + 		[ x$alias_ip_address != x$old_ip_address ]; then +     # Possible new alias. Remove old alias. +-    ifconfig $interface:0- inet 0 ++    /sbin/ifconfig $interface:0- inet 0 +   fi +   if [ x$old_ip_address != x ] && [ x$old_ip_address != x$new_ip_address ]; then +     # IP address changed. Bringing down the interface will delete all routes, +     # and clear the ARP cache. +-    ifconfig $interface inet 0 down ++    /sbin/ifconfig $interface inet 0 down +  +   fi +   if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \ +      [ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then +  +-    ifconfig $interface inet $new_ip_address $new_subnet_arg \ ++    /sbin/ifconfig $interface inet $new_ip_address $new_subnet_arg \ + 					$new_broadcast_arg $mtu_arg +     # Add a network route to the computed network address. +     for router in $new_routers; do +       if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then +-	route add -host $router dev $interface ++	/sbin/route add -host $router dev $interface +       fi +-      route add default gw $router $metric_arg dev $interface ++      /sbin/route add default gw $router $metric_arg dev $interface +     done +   fi +   if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ]; +    then +-    ifconfig $interface:0- inet 0 +-    ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg +-    route add -host $alias_ip_address $interface:0 ++    /sbin/ifconfig $interface:0- inet 0 ++    /sbin/ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg ++    /sbin/route add -host $alias_ip_address $interface:0 +   fi +   make_resolv_conf +   exit_with_hooks 0 +@@ -176,42 +176,42 @@ +    || [ x$reason = xSTOP ]; then +   if [ x$alias_ip_address != x ]; then +     # Turn off alias interface. +-    ifconfig $interface:0- inet 0 ++    /sbin/ifconfig $interface:0- inet 0 +   fi +   if [ x$old_ip_address != x ]; then +     # Shut down interface, which will delete routes and clear arp cache. +-    ifconfig $interface inet 0 down ++    /sbin/ifconfig $interface inet 0 down +   fi +   if [ x$alias_ip_address != x ]; then +-    ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg +-    route add -host $alias_ip_address $interface:0 ++    /sbin/ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg ++    /sbin/route add -host $alias_ip_address $interface:0 +   fi +   exit_with_hooks 0 + fi +  + if [ x$reason = xTIMEOUT ]; then +   if [ x$alias_ip_address != x ]; then +-    ifconfig $interface:0- inet 0 ++    /sbin/ifconfig $interface:0- inet 0 +   fi +-  ifconfig $interface inet $new_ip_address $new_subnet_arg \ ++  /sbin/ifconfig $interface inet $new_ip_address $new_subnet_arg \ + 					$new_broadcast_arg $mtu_arg +   set $new_routers +   if ping -q -c 1 $1; then +     if [ x$new_ip_address != x$alias_ip_address ] && \ + 			[ x$alias_ip_address != x ]; then +-      ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg +-      route add -host $alias_ip_address dev $interface:0 ++      /sbin/ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg ++      /sbin/route add -host $alias_ip_address dev $interface:0 +     fi +     for router in $new_routers; do +       if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then +-	route add -host $router dev $interface ++	/sbin/route add -host $router dev $interface +       fi +-      route add default gw $router $metric_arg dev $interface ++      /sbin/route add default gw $router $metric_arg dev $interface +     done +     make_resolv_conf +     exit_with_hooks 0 +   fi +-  ifconfig $interface inet 0 down ++  /sbin/ifconfig $interface inet 0 down +   exit_with_hooks 1 + fi +  diff --git a/abs/not_built/core/dhcp/dhcp-4.1.1-missing-ipv6-not-fatal.patch b/abs/not_built/core/dhcp/dhcp-4.1.1-missing-ipv6-not-fatal.patch new file mode 100644 index 0000000..cc5ddb8 --- /dev/null +++ b/abs/not_built/core/dhcp/dhcp-4.1.1-missing-ipv6-not-fatal.patch @@ -0,0 +1,39 @@ +--- common/discover.c	2009-09-29 21:44:49.000000000 +0200 ++++ common/discover.c_new	2010-06-30 19:40:02.000000000 +0200 +@@ -443,7 +443,7 @@ + 	} +  + #ifdef DHCPv6 +-	if (local_family == AF_INET6) { ++	if ((local_family == AF_INET6) && !access("/proc/net/if_inet6", R_OK)) { + 		ifaces->fp6 = fopen("/proc/net/if_inet6", "r"); + 		if (ifaces->fp6 == NULL) { + 			log_error("Error opening '/proc/net/if_inet6' to " +@@ -454,6 +454,8 @@ + 			ifaces->fp = NULL; + 			return 0; + 		} ++	} else { ++		ifaces->fp6 = NULL; + 	} + #endif +  +@@ -721,7 +723,7 @@ + 		return 1; + 	} + #ifdef DHCPv6 +-	if (!(*err)) { ++	if (!(*err) && ifaces->fp6) { + 		if (local_family == AF_INET6) + 			return next_iface6(info, err, ifaces); + 	} +@@ -740,7 +742,8 @@ + 	ifaces->sock = -1; + #ifdef DHCPv6 + 	if (local_family == AF_INET6) { +-		fclose(ifaces->fp6); ++		if(ifaces->fp6) ++			fclose(ifaces->fp6); + 		ifaces->fp6 = NULL; + 	} + #endif diff --git a/abs/not_built/core/dhcp/dhcp.conf.d b/abs/not_built/core/dhcp/dhcp.conf.d new file mode 100644 index 0000000..99ba6d1 --- /dev/null +++ b/abs/not_built/core/dhcp/dhcp.conf.d @@ -0,0 +1,6 @@ +# +# Arguments to be passed to the DHCP server daemon +# + +DHCP_ARGS="-q" + diff --git a/abs/not_built/core/dhcp/dhcp.install b/abs/not_built/core/dhcp/dhcp.install new file mode 100644 index 0000000..c0ad39e --- /dev/null +++ b/abs/not_built/core/dhcp/dhcp.install @@ -0,0 +1,11 @@ +# arg 1:  the new package version +post_install() { +  [ -f var/state/dhcp/dhcpd.leases ] || : >var/state/dhcp/dhcpd.leases +  #echo "If dhcpd doesn't start, ensure the ipv6 kernel module is loaded." +} + +# arg 1:  the new package version +# arg 2:  the old package version +post_upgrade() { +  post_install $1 +} diff --git a/abs/not_built/core/dhcp/dhcpd b/abs/not_built/core/dhcp/dhcpd new file mode 100755 index 0000000..1fbb31e --- /dev/null +++ b/abs/not_built/core/dhcp/dhcpd @@ -0,0 +1,40 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions +. /etc/conf.d/dhcp + +PIDFILE="/var/run/dhcpd.pid" +PID=`cat $PIDFILE 2>/dev/null` +case "$1" in +  start) +    stat_busy "Starting DHCP Server" +    if [ "$PID" = "" ]; then  +       /usr/sbin/dhcpd $DHCP_ARGS  +    fi +    if [ "$PID" != "" -o $? -gt 0 ]; then +      stat_fail +    else +      add_daemon dhcpd +      stat_done +    fi +    ;; +  stop) +    stat_busy "Stopping DHCP Server" +    [ ! -z "$PID" ]  && kill $PID &> /dev/null +    rm -f $PIDFILE +    if [ $? -gt 0 ]; then +      stat_fail +    else +      rm_daemon dhcpd +      stat_done +    fi +    ;; +  restart) +    $0 stop +    sleep 1 +    $0 start +    ;; +  *) +    echo "usage: $0 {start|stop|restart}"   +esac diff --git a/abs/not_built/core/directfb/PKGBUILD b/abs/not_built/core/directfb/PKGBUILD new file mode 100644 index 0000000..c24a17d --- /dev/null +++ b/abs/not_built/core/directfb/PKGBUILD @@ -0,0 +1,32 @@ +# $Id: PKGBUILD 24882 2010-08-29 14:24:38Z jlichtblau $ +# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org> +# Maintainer: Eric Belanger <eric@archlinux.org> +# Contributor: Eric Belanger <eric@archlinux.org> + +pkgname=directfb +pkgver=1.4.5 +pkgrel=1 +pkgdesc="A thin library that provides hardware graphics acceleration, input device handling and abstraction, integrated windowing system on top of the Linux Framebuffer Device" +arch=('i686' 'x86_64') +url="http://www.directfb.org" +license=('LGPL') +depends=('libjpeg' 'libxext' 'sdl' 'sysfsutils' 'libpng' 'freetype2') +options=('!libtool') +changelog=$pkgname.changelog +source=(http://www.directfb.org/downloads/Core/DirectFB-${pkgver%.*}/DirectFB-${pkgver}.tar.gz) +md5sums=('7cfd568a1267c4c2c97ba00c29cb4f7d') + +build() { +  cd ${srcdir}/DirectFB-${pkgver} + +  ./configure --prefix=/usr --sysconfdir=/etc --enable-static --enable-zlib \ +              --enable-x11 --enable-sdl --disable-vnc --disable-osx \ +              --enable-video4linux2 --enable-voodoo || return 1 +  make || return 1 +}  + +package() { +  cd ${srcdir}/DirectFB-${pkgver} + +  make DESTDIR=${pkgdir} install || return 1 +} diff --git a/abs/not_built/core/directfb/directfb.changelog b/abs/not_built/core/directfb/directfb.changelog new file mode 100644 index 0000000..e7e4dc6 --- /dev/null +++ b/abs/not_built/core/directfb/directfb.changelog @@ -0,0 +1,35 @@ +2010-08-29  Jaroslav Lichtblau  <dragonlord@aur.archlinux.org> + +	* directfb 1.4.5-1 +	* Upstream update + +2010-01-20  Eric Belanger  <eric@archlinux.org> + +	* directfb 1.4.3-1 +	* Upstream update + +2009-11-08  Eric Belanger  <eric@archlinux.org> + +	* directfb 1.4.2-1 +	* Upstream update + +2009-07-13  Eric Belanger  <eric@archlinux.org> + +	* directfb 1.4.1-1 +	* Upstream update + +2009-05-03  Eric Belanger  <eric@archlinux.org> + +	* directfb 1.2.8-1 +	* Upstream update + +2009-03-06  Eric Belanger  <eric@archlinux.org> + +	* directfb 1.2.7-1 +	* Upstream update + +2008-07-29  Eric Belanger  <eric@archlinux.org> + +	* directfb 1.2.0-1 +	* Upstream update +	* Added ChangeLog diff --git a/abs/not_built/core/diskless-legacy/PKGBUILD b/abs/not_built/core/diskless-legacy/PKGBUILD new file mode 100644 index 0000000..85cfc3a --- /dev/null +++ b/abs/not_built/core/diskless-legacy/PKGBUILD @@ -0,0 +1,14 @@ +# $Id: PKGBUILD 23123 2009-01-03 02:43:02Z kevin $ +# Maintainer: Greg Frost <gregfrost1@bigpond.com> +pkgname=diskless-legacy +pkgver=1 +pkgrel=3 +pkgdesc="Script for configuring a diskless mythtv frontends using NFS root." +arch=i686 +depends=(tftp-hpa dhcp) +source=(config_diskless_frontend.bash) + +build() { +  install -D -m755 ${srcdir}/config_diskless_frontend.bash \ +    ${pkgdir}/usr/local/bin/config_diskless_frontend.bash +} diff --git a/abs/not_built/core/diskless-legacy/config_diskless_frontend.bash b/abs/not_built/core/diskless-legacy/config_diskless_frontend.bash new file mode 100755 index 0000000..24d5fc1 --- /dev/null +++ b/abs/not_built/core/diskless-legacy/config_diskless_frontend.bash @@ -0,0 +1,704 @@ +#!/bin/bash +# This script configures your backend so that a diskless +# frontend can boot from it. + +function backtitle() { # no arguments. +  BT="${0##*/}" +  KMV='/etc/LinHES-release' +  if [ -f "$KMV" ]; then +    BT="-= $(cat $KMV) $BT =-" +  fi +} + +function must_be_root() { # no arguments. +  test $(id -u) == 0 && return +  MSG="\Z1ERROR\Zn: This script \Z4should\Zn be run by \Z1root\Zn." +  dialog --backtitle "$BT" --colors --msgbox "$MSG" 5 45 +  exit 4 +} + +backtitle  +must_be_root + +TITLE="Diskless FE Configuration" +DOPTS=(--backtitle "$BT" --title "$TITLE" --trim --aspect 30 ) + +DAEMON_LOG=/var/log/daemon.log +BOOT_DEFAULT=/tftpboot/pxelinux.cfg/default + +unable_to_determine_mac_for_default_fe () +{ +  if dialog "${DOPTS[@]}" --yes-label "Boot FE and try again" \ +       --no-label "Delete $fe_nfsroot" \ +       --yesno "Unable to automatically determine the MAC address of +       the current default frontend by interrogating $DAEMON_LOG. +       This may be because you have not yet booted the diskless FE. You can +       either boot the diskless FE and try running $0 again, or delete +       $fe_nfsroot and re-create it later." 0 0 ; then +    exit +  else +    rm -Rf $fe_nfsroot $BOOT_DEFAULT +  fi +  exit +} + +find_existing_diskless_fes() { + +  unset frontend_names +  unset frontend_nfsroots +  unset frontend_ips +  unset frontend_macs + +  for frontend_config in $(ls /tftpboot/pxelinux.cfg 2> /dev/null) ; do + +    frontend_name=$(basename $( +      grep append /tftpboot/pxelinux.cfg/$frontend_config | +      sed -e 's/.*nfsroot=//' | awk -F, '{print $1}' | awk -F/ '{print $NF}')) +    frontend_nfsroot=$( +      grep append /tftpboot/pxelinux.cfg/$frontend_config | +      cut -d ':' -f 2 | cut -d ',' -f 1) +    frontend_ip=\ +$((0x${frontend_config:0:2})).$((0x${frontend_config:2:2})).\ +$((0x${frontend_config:4:2})).$((0x${frontend_config:6:2})) +    frontend_mac=$( +      cat /etc/dhcpd.conf | +      grep "host $frontend_name" | +      sed 's/hardware ethernet /#/g' | +      cut -d '#' -f 2 | +      cut -d ';' -f 1) + +    if [ -n "$frontend_name" -a -n "$frontend_nfsroot" -a \ +         -n "$frontend_ip" -a -n "$frontend_mac" ] ; then +      frontend_names=( "${frontend_names[@]}" $frontend_name ) +      frontend_nfsroots=( "${frontend_nfsroots[@]}" $frontend_nfsroot ) +      frontend_ips=( "${frontend_ips[@]}" $frontend_ip ) +      frontend_macs=( "${frontend_macs[@]}" $frontend_mac ) +    fi +  done + +echo frontend_names="${frontend_names[@]}" +echo frontend_nfsroots="${frontend_nfsroots[@]}" +echo frontend_ips="${frontend_ips[@]}" +echo frontend_macs="${frontend_macs[@]}" + +} + +check_for_default_fe () { +  # This function looks to see if there is a diskless FE that has only been +  # partially configured (i.e. it's MAC address has not been determined and +  # as a result it has not been allocated a fixed IP. + +  if [ -e $BOOT_DEFAULT ] ; then +      # There is a $BOOT_DEFAULT config file that has not yet been set to a +      # fixed IP address. See if we can interrogate the log files to +      # determine what the MAC adderss of the FE is so that we can turn it +      # into a fixed ip node. This is the first step in allowing multiple +      # diskless frontends. + +      # First determine from the default file, the nfsroot that it is for. + +      fe_nfsroot=$(grep append $BOOT_DEFAULT | cut -d ':' -f 2 | cut -d ',' -f 1) + +      if [ -z "$fe_nfsroot" ] ; then +        echo "Unable to determine the location of the nfsroot from" \ +          $BOOT_DEFAULT +        exit +      fi + +      echo fe_nfsroot=$fe_nfsroot + +      # Now determine the IP address by looking for an instance in the +      # daemon log file for which the specified nfsroot was mounted. + +      fe_ipaddress=$( +        grep "authenticated mount request from " $DAEMON_LOG | +        grep $fe_nfsroot | +        tail -1 | +        sed 's/authenticated mount request from /#/g' | +        cut -d '#' -f 2 | +        cut -d ':' -f 1) + +      echo fe_ipaddress=$fe_ipaddress + +      unset fe_macaddress + +      if [ ! -z "$fe_ipaddress" ] ; then +        fe_macaddress=$( +          grep "DHCPACK on $fe_ipaddress" $DAEMON_LOG | +          tail -1 | +          sed 's/DHCPACK on '$fe_ipaddress' to /#/g' | +          cut -d '#' -f 2 | +          cut -d ' ' -f 1) +      fi + +      echo fe_macaddress=$fe_macaddress + +      if [ -z "$fe_macaddress" ] ; then +        unable_to_determine_mac_for_default_fe +      else +        if ! dialog "${DOPTS[@]}" --yesno "By interrogating $DAEMON_LOG, +                it appears that the $(basename $fe_nfsroot) frontend was +                last used by a host with MAC Address of $fe_macaddress which +                was allocated IP address $fe_ipaddress. +                Do you wish to allocate the IP to that host (so that you +                can configure another diskless FE)?" 0 0 ; then +          dialog "${DOPTS[@]}" --msgbox "Boot the correct diskless FE and +            run $0 again." 0 0 +          exit +        fi + +        # Setup dhcpd.conf so that the FE's MAC address always uses a fixed +        # ip address and the PXE configuration is fixed for that address. + +        hex_ip_address=$(printf "%02X%02X%02X%02X" $(echo $fe_ipaddress | +          tr '.' ' ')) +        echo hex_ip_address=$hex_ip_address +        mv -fv $BOOT_DEFAULT $(dirname $BOOT_DEFAULT)/$hex_ip_address + +        cp -f /etc/dhcpd.conf /etc/dhcpd.conf.bak +        cat /etc/dhcpd.conf.bak | +          grep -v "host $(basename $fe_nfsroot)" > \ +          /etc/dhcpd.conf +        echo "\ +host $(basename $fe_nfsroot) \ +{hardware ethernet $fe_macaddress; fixed-address $fe_ipaddress;}" \ +          >> /etc/dhcpd.conf + +        /sbin/sv restart dhcpd + +        dialog "${DOPTS[@]}" --msgbox "The frontend $(basename $fe_nfsroot) +          with a MAC address of $fe_macaddress and an nfsroot directory of +          $fe_nfsroot has been configured with a fixed IP address of +          $fe_ipaddress." 0 0 +        exit +      fi +  fi + +} + +get_network_interface() { +  NETDEVICES="$(cat /proc/net/dev | +    awk -F: '/ath.:|wlan.:|eth.:|tr.:/{print $1}')" +  echo NETDEVICES=$NETDEVICES +  NUM_DEVICES=$(echo $NETDEVICES | wc -w) +  echo NUM_DEVICES=$NUM_DEVICES +  if [ $NUM_DEVICES = 1 ] ; then +    INTERFACE=$NETDEVICES +  else +    DEVICELIST="" +    DEVNUM=0 +    for DEVICE in $NETDEVICES +    do +      DEVNUM=$(($DEVNUM + 1)) +      DEVICELIST="$DEVICELIST $DEVICE Interface${DEVNUM} " +    done +    echo DEVICELIST=$DEVICELIST +    TMP=/tmp/interface +    rm -Rf $TMP +    dialog "${DOPTS[@]}" --menu "Which network interface?" 18 70 12 \ +      $DEVICELIST 2>$TMP || exit +    INTERFACE=$(cat $TMP) +  fi +  echo INTERFACE=$INTERFACE +} + +validip(){ +  echo "$1" | egrep -q -e '[0-9]+\.[0-9]+\.[0-9]+.[0-9]+' +  return $? +} + +get_network_info() { +  BACKEND_IP=$(echo $(ifconfig $INTERFACE | grep "inet addr" | tr ':' ' ') | +    cut -d ' ' -f 3) +  echo BACKEND_IP=$BACKEND_IP +  NAMESERVERS="$(awk '/^nameserver/{printf "%s ",$2}' /etc/resolv.conf)" +  echo NAMESERVERS=$NAMESERVERS +  GATEWAY="$(LANG=C LC_ALL=C route -n | awk '/^0\.0\.0\.0/{print $2; exit}')" +  echo GATEWAY=$GATEWAY +  NETWORK="${BACKEND_IP%.*}" +  echo NETWORK=$NETWORK +  HOST="${BACKEND_IP##*.}" +  echo HOST=$HOST +  NETMASK="$(LANG=C LC_ALL=C ifconfig $INTERFACE | +    awk '/[Mm]ask/{FS="[:   ]*";$0=$0; print $8; exit}')" +  echo NETMASK=$NETMASK + +  # See if we can determine the range of IP addresses currently allowed in +  # dhcpd.conf + +  IPRANGE=( $(grep ^[[:space:]]*range /etc/dhcpd.conf | +              sed 's/range//g' | tr -d ';') ) + +  echo ${IPRANGE[@]} +  if [ $(echo ${IPRANGE[@]} | wc -w) -eq 2 ] ; then +    START=$(echo ${IPRANGE[0]} | tr '.' '\t' | cut -f 4) +    END=$(echo ${IPRANGE[1]} | tr '.' '\t' | cut -f 4) +    echo START=$START +    echo END=$END +  fi + +  # Could not + +  if [ -z "$START" -o -z "$END" ] ; then +    if [ "$HOST" -lt "20" ] ; then +      START=21 +      END=26 +    else +      START=11 +      END=16 +    fi +  fi + +  IPRANGE_FROM="" +  IPRANGE_TO="" + +  while [ -z "$IPRANGE_FROM" -o -z "$IPRANGE_TO" -o -z "$IPRANGE" ] +  do +    IPRANGE="$NETWORK.$START $NETWORK.$END" +    rm -f /tmp/iprange + +    if ! dialog "${DOPTS[@]}" --clear --inputbox "Please enter the desired +           IP-Range of addresses that should be allocated by clients, +           separated by a single space." 10 75 "$IPRANGE" \ +           2> /tmp/iprange ; then +      exit +    fi + +    IPRANGE=$(cat /tmp/iprange) +    echo IPRANGE=$IPRANGE +    IPRANGE_FROM="${IPRANGE%% *}" +    IPRANGE_TO="${IPRANGE##* }" + +    for i in "$IPRANGE_FROM" "$IPRANGE_TO" +    do +      validip "$i" || IPRANGE="" +    done +  done +} + +setup_dhcpd() { +  # Generate dhcpd.conf from template + +  if [ ! -f /etc/dhcpd.conf.orig ] ; then +    mv -f /etc/dhcpd.conf /etc/dhcpd.conf.orig +  fi + +  ALLNAMESERVERS="" +  for i in $NAMESERVERS; do +    ALLNAMESERVERS="${ALLNAMESERVERS:+$ALLNAMESERVERS,} $i" +  done +  echo ALLNAMESERVERS=$ALLNAMESERVERS + +  cat >/etc/dhcpd.conf <<EOT +# dhcpd.conf for LinHES Diskless Frontend + +# global settings +## POF allow booting; +allow bootp; +default-lease-time 600; +max-lease-time 7200; + +subnet ${NETWORK}.0 netmask ${NETMASK} { +  next-server $BACKEND_IP; +  filename "pxelinux.0"; +  option subnet-mask ${NETMASK}; +  range ${IPRANGE_FROM} ${IPRANGE_TO}; +  ${ALLNAMESERVERS:+option domain-name-servers $ALLNAMESERVERS;} +  ${GATEWAY:+option routers $GATEWAY;} +} +EOT + +  for (( fe = 0 ; fe < ${#frontend_names[@]} ; fe++ )) ; do +    echo "host ${frontend_names[$fe]} \ +{hardware ethernet ${frontend_macs[$fe]}; \ +fixed-address ${frontend_ips[$fe]};}" >> \ +      /etc/dhcpd.conf +  done + +  /sbin/add_service.sh dhcpd +} + +setup_tftpd() { +  /sbin/add_service.sh tftpd +} + +check_delete_of_existing_nfsroot() { +  if [ -d $NFSROOT ] ; then +    if dialog "${DOPTS[@]}" --yesno "\ +There is already a directory $NFSROOT. Do you want to delete it and \ +rebuild it from scratch?" 10 70 ; then +      echo Deleting $NFSROOT +      rm -Rf $NFSROOT +    else +      echo "OK then, bye." +      exit +    fi +  fi +} + +enable_mysql_and_backend_networking() { +  # Enable mysql networking on the backend. + +  /sbin/sv stop mythbackend + +  if grep -q ^skip-networking /etc/my.cnf ; then +    echo "Commenting out skip-networking." +    cp /etc/my.cnf /etc/my.cnf~ +    cat /etc/my.cnf~ | sed 's/^skip-networking/#skip-networking/g' > \ +      /etc/my.cnf +    /sbin/sv restart mysql +  else +    echo "Already commented out skip-networking." +  fi + +  # Make sure that the backend ip settings in the mythtv mysql database have +  # the actual IP address of the backend rather than the loopback address. +  # Otherwise the frontend will not be able to connect to the backend. + +  echo "Setting backend IP in mythtv's mysql settings" +  echo " +UPDATE settings SET data='$BACKEND_IP' WHERE value='BackendServerIP'; +UPDATE settings SET data='$BACKEND_IP' WHERE value='MasterServerIP';" | +    mysql mythconverg + +  /sbin/sv start mythbackend +} + +export_mounts() { +  # Ensure that the /myth directory is exported. + +  if ! grep -q ^/myth[[:space:]] /etc/exports ; then +    echo "Adding line for /myth in /etc/exports" +    echo "/myth *(rw,async,no_subtree_check)" >> /etc/exports +  else +    echo "Already added line for /myth in /etc/exports" +  fi + +  if ! grep -q ^/data/var/cache/pacman[[:space:]] /etc/exports ; then +    echo "Adding line for /data/var/cache/pacman in /etc/exports" +    echo "/data/var/cache/pacman *(rw,async,no_subtree_check)" >> /etc/exports +  else +    echo "Already added line for /data/var/cache/pacman in /etc/exports" +  fi + +  # Ensure that the montpoints that are used as storage groups are exported. + +  for storage_mount in ${storage_mounts[@]} ; do + +    if ! grep -q ^${storage_mount}[[:space:]] /etc/exports ; then +      echo "Adding line for ${storage_mount} in /etc/exports" +      echo "${storage_mount} *(rw,async,no_subtree_check)" >> /etc/exports +    else +      echo "Already added line for ${storage_mount} in /etc/exports" +    fi +  done +} + +find_storage_mounts() { +  unset storage_mounts +  for group in $(mysql -sB mythconverg -e \ +    "select dirname from storagegroup where hostname = '$(hostname)'") ; do + +    group_mount=$group +    while ! mountpoint -q $group_mount ; do +      group_mount=$(dirname $group_mount) +    done + +    echo Storage group $group mountpoint is $group_mount +    storage_mounts=( "${storage_mounts[@]}" $group_mount ) +  done +} + +enable_nfs() { +  /sbin/add_service.sh nfsd +} + +restart_nfs (){ +  /usr/sbin/exportfs -arv +} + +export_nfsroot() { +  # Ensure that the NFSROOT directory is appropriately exported. + +  if ! grep -q ^$NFSROOT[[:space:]] /etc/exports ; then +    echo "Adding line for $NFSROOT in /etc/exports" +    echo "$NFSROOT *(rw,no_root_squash,async,no_subtree_check)" >> /etc/exports +  else +    echo "Already added line for $NFSROOT in /etc/exports" +  fi +} + +create_tftpboot_directory() { +  # Create the directory with the tftp stuff. + +  echo "Creating /tftpboot directories" +  mkdir -p /tftpboot/pxelinux.cfg + +  if [ ! -e /tftpboot/pxelinux.0 ] ; then +   cp -fv /usr/lib/syslinux/pxelinux.0 /tftpboot/pxelinux.0 +  fi + +  if [ ! -e /tftpboot/vmlinuz26 ] ; then +    cp -fv /boot/vmlinuz26 /tftpboot/vmlinuz26 +  fi + +  if [ ! -e /tftpboot/kernel26.img ] ; then + +    echo "Building kernel miniroot" +#    if [ -z "$(awk -F\" '$1 ~ /^MODULES=/ && $2 ~ /nfs/' /etc/mkinitcpio.conf)" ] ; then +#      cp /etc/mkinitcpio.conf /etc/mkinitcpio.conf~ +#      sed -e '/^MODULES=/s/\"$/ nfs\"/' < /etc/mkinitcpio.conf~ > /etc/mkinitcpio.conf +#    fi +    if [ -z "$(awk -F\" '$1 ~ /^HOOKS=/ && $2 ~ /net/' /etc/mkinitcpio.conf)" ] ; then +      cp /etc/mkinitcpio.conf /etc/mkinitcpio.conf~ +      sed -e '/^HOOKS=/s/\"$/ net\"/' < /etc/mkinitcpio.conf~ > /etc/mkinitcpio.conf +    fi +    /sbin/mkinitcpio -g /tftpboot/kernel26.img +  fi +} + +create_default_pxelinux_entry() { +  echo "\ +  default linux + +  label linux +  kernel vmlinuz26 +  append initrd=kernel26.img rootfstype=nfs root=/dev/nfs nfsroot=$BACKEND_IP:$NFSROOT,v3,rsize=16384,wsize=16384 init=/sbin/runit ip=dhcp" \ +    > /tftpboot/pxelinux.cfg/default +} + +create_new_nfsroot() { +  # Prompt the user for the name of the NFSROOT. + +  FRONTEND= +  NFSROOT= + +  while [ -z "$FRONTEND" ] ; do +    if ! dialog "${DOPTS[@]}" --inputbox "Enter the hostname of the new +           diskless FE:" 0 0 2> /tmp/frontend_hostname ; then +      exit +    fi + +    FRONTEND=$(cat /tmp/frontend_hostname) +  done + +  # Prompt the user for the location of the NFSROOT. + +  while [ -z "$NFSROOT" ] ; do +    NFSROOT=/nfsroot/$FRONTEND + +    if ! dialog "${DOPTS[@]}" --clear --inputbox "Enter the location of the +           NFSROOT for the diskless FE:" \ +           0 0 "$NFSROOT" 2> /tmp/nfsroot_location ; then +      exit +    fi + +    NFSROOT=$(cat /tmp/nfsroot_location) +  done + +  check_delete_of_existing_nfsroot + +  # Create the nfsroot directory that the FE will use as its root filesystem. + +  echo "Creating the $NFSROOT directory." +  mkdir -p $NFSROOT +  for DIR in /* ; do +    if [[ "$DIR" != /mnt && \ +          "$DIR" != /data && \ +          "$DIR" != /media && \ +          "$DIR" != /tmp && \ +          "$DIR" != /etc.old && \ +          "$DIR" != /storage && \ +          "$DIR" != /var && \ +          "$DIR" != /nfsroot && \ +          "$DIR" != /tftpboot && \ +          "$DIR" != /cdrom ]] +    then +      if mountpoint -q $DIR && [ "$DIR" != "/dev" ] ; then +        echo "  Making mountpoint dir $DIR" +        cd $NFSROOT +        tar c $DIR --exclude=$DIR/* 2> /dev/null | tar x 2> /dev/null +      else +        echo "  Copying $DIR to $NFSROOT" +        cp -ax $DIR $NFSROOT +      fi +    fi +  done + +  cd $NFSROOT + +  # Exclude specific bits of /var + +  tar c /var \ +    --exclude=/var/lib/dhcpcd \ +    --exclude=/var/lib/locate \ +    --exclude=/var/lib/mlocate \ +    --exclude=/var/lib/named \ +    2> /dev/null | tar x 2> /dev/null + +  for DIR in /mnt /data /tmp /media /cdrom /var/lib/mlocate ; do +    echo "  Creating $DIR" +    tar c $DIR --exclude=$DIR/* 2> /dev/null | tar x 2> /dev/null +  done + +  mkdir -p $NFSROOT/data/var/cache/pacman + +  chroot $NFSROOT /sbin/remove_service.sh dhcpd +  chroot $NFSROOT /sbin/remove_service.sh lighttpd +  chroot $NFSROOT /sbin/remove_service.sh mysql +  chroot $NFSROOT /sbin/remove_service.sh mythbackend +  chroot $NFSROOT /sbin/remove_service.sh nfsd +  chroot $NFSROOT /sbin/remove_service.sh nmbd +  chroot $NFSROOT /sbin/remove_service.sh smbd +  chroot $NFSROOT /sbin/remove_service.sh tftpd +  chroot $NFSROOT /sbin/remove_service.sh avahi + +  # Update the fstab. + +  cp $NSFROOT/etc/fstab $NFSROOT/etc/fstab~ +  cat $NFSROOT/etc/fstab~ | grep -v ext[34] | grep -v xfs | +    grep -v ^UUID= > $NFSROOT/etc/fstab + +  echo "\ +$BACKEND_IP:/nfsroot / nfs defaults,nolock,auto,noatime 0 2 +$BACKEND_IP:/myth /myth nfs defaults,nolock,auto,noatime 0 0 +$BACKEND_IP:/data/var/cache/pacman /data/var/cache/pacman nfs defaults,nolock,auto,noatime 0 0 +" >> $NFSROOT/etc/fstab + +  for storage_mount in ${storage_mounts[@]} ; do +    echo "\ +$BACKEND_IP:${storage_mount} ${storage_mount} nfs auto,noatime,nolock,rsize=32768,wsize=32768 0 0" \ +    >> $NFSROOT/etc/fstab +  done + +  cp $NFSROOT/etc/rc.sysinit $NFSROOT/etc/rc.sysinit~ +  sed -e '/^\/sbin\/minilogd/s/$/\n\n# Mount NFS early\n\/bin\/mount -a -t nfs/' \ +    < $NFSROOT/etc/rc.sysinit~ > $NFSROOT/etc/rc.sysinit + +  # Update networking + +  echo $FRONTEND > $NFSROOT/etc/hostname + +  cp $NFSROOT/etc/hosts $NFSROOT/etc/hosts~ +  echo "127.0.0.1 $FRONTEND localhost" > $NFSROOT/etc/hosts +  cat $NFSROOT/etc/hosts~ | grep -v 127.0.0.1 >> $NFSROOT/etc/hosts + +  cp $NFSROOT/etc/net/ifaces/eth0/options $NFSROOT/etc/net/ifaces/eth0/options~ +  sed -e 's/^BOOTPROTO=.*/BOOTPROTO=none/' < $NFSROOT/etc/net/ifaces/eth0/options~ \ +    > $NFSROOT/etc/net/ifaces/eth0/options + +  # Update mysql settings + +  cp /usr/share/mythtv/mysql.txt $NFSROOT/home/mythtv/.mythtv/mysql.txt + +  if grep -q DBHostName=localhost $NFSROOT/home/mythtv/.mythtv/mysql.txt ; then +    echo "Setting database host in frontend's mysql.txt." +      cp $NFSROOT/home/mythtv/.mythtv/mysql.txt \ +         $NFSROOT/home/mythtv/.mythtv/mysql.txt.orig +      cat $NFSROOT/home/mythtv/.mythtv/mysql.txt.orig | +        sed 's/DBHostName=localhost/DBHostName='$BACKEND_IP'/g' > \ +        $NFSROOT/home/mythtv/.mythtv/mysql.txt +  else +    echo "Already set Database host in frontend's mysql.txt." +  fi + +  chown mythtv:mythtv $NFSROOT/home/mythtv/.mythtv/mysql.txt + +  # Check if the user has a diskless_tweak.<frontend_name> file in root's  +  # home directory. If they do, run it inside the chroot of the NFS root. + +  if [[ -x ~/diskless_tweak.$FRONTEND ]] ; then +    echo Running tweak file ~/diskless_tweak.$FRONTEND +    chroot $NFSROOT bash -v ~/diskless_tweak.$FRONTEND +  fi + +  create_default_pxelinux_entry +  export_nfsroot +  restart_nfs + +  dialog "${DOPTS[@]}" --msgbox "Boot your diskless FE +  and then re-run this script ($0) so that the MAC address +  of the Diskless FE can be obtained." 0 0 +} + +########################################## +########################################## +## +## MAIN BODY OF SCRIPT                  ## +## +########################################## +########################################## + +check_for_default_fe +find_existing_diskless_fes + +get_network_interface +get_network_info +setup_tftpd +setup_dhcpd +enable_mysql_and_backend_networking +find_storage_mounts +export_mounts +create_tftpboot_directory +enable_nfs + +# Restart nfs to ensure that the exported /myth directory can be mounted. This +# is required to create a new frontend. + +restart_nfs + +if [ ${#frontend_names[@]} -eq 0 ] ; then +  create_new_nfsroot +else +  for (( fe = 0 ; fe < ${#frontend_names[@]} ; fe++ )) ; do +    frontend_options=( "${frontend_options[@]}" \ +      "${frontend_names[$fe]} (MAC:${frontend_macs[$fe]} \ +IP:${frontend_ips[$fe]})" "" ) +  done + +echo 0=${frontend_names[0]} +echo 1=${frontend_names[1]} +echo 2=${frontend_names[2]} +echo 3=${frontend_names[3]} + +  if ! dialog "${DOPTS[@]}" --menu "Select a frontend to delete or to create +         a new one." 0 0 0 "${frontend_options[@]}" \ +         "New Frontend" "" 2> /tmp/selected_fe; then +    exit +  fi + +  selected_option=$(cat /tmp/selected_fe) + +  if [ "$selected_option" = "New Frontend" ] ; then +    create_new_nfsroot +    exit +  fi + +echo $selected_option +echo ${frontend_options[0]} +echo ${frontend_options[2]} +echo ${frontend_nfsroots[@]} + +  for (( fe = 0 ; fe < ${#frontend_names[@]} ; fe++ )) ; do +    if [ "$selected_option" = "${frontend_options[$(($fe*2))]}" ] ; then +      if dialog "${DOPTS[@]}" --yesno "Do you wish to delete the frontend +           with nfsroot ${frontend_nfsroots[$fe]}?" 0 0 ; then +        # Delete the nfsroot directory. +        rm -Rfv ${frontend_nfsroots[$fe]} + +        # Delete the tftpboot pxe boot config file. + +        hex_ip_address=$(printf "%02X%02X%02X%02X" \ +          $(echo ${frontend_ips[$fe]} | tr '.' ' ')) +        rm /tftpboot/pxelinux.cfg/$hex_ip_address + +        # Remove reference to the frontend from the dhcp.conf +        cp -fv /etc/dhcpd.conf /etc/dhcpd.conf.bak +        grep -v "host ${frontend_names[$fe]}" /etc/dhcpd.conf.bak > \ +          /etc/dhcpd.conf +        /sbin/sv restart dhcpd +      fi +    fi +  done +fi + diff --git a/abs/not_built/core/dvd+rw-tools/PKGBUILD b/abs/not_built/core/dvd+rw-tools/PKGBUILD new file mode 100644 index 0000000..7f7597b --- /dev/null +++ b/abs/not_built/core/dvd+rw-tools/PKGBUILD @@ -0,0 +1,32 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: damir <damir@archlinux.org> + +pkgname=dvd+rw-tools +pkgver=7.1 +origver=7.1 # sometimes it is not the same as pkgver and has '-' in it +pkgrel=1 +[ "$CARCH" = "x86_64" ] && force=y +pkgdesc="dvd burning tools" +arch=(i686 x86_64) +license=('GPL') +url="http://fy.chalmers.se/~appro/linux/DVD+RW" +depends=('cdrkit' 'gcc-libs') +source=("http://fy.chalmers.se/~appro/linux/DVD+RW/tools/${pkgname}-$origver.tar.gz" +	"buildpatch-7.0-3-20080108-karolina.patch") +md5sums=('8acb3c885c87f6838704a0025e435871' '54b4dc52f5380216d4d9fc2dd2086d31') + +build() { +  	# fix build, thank you Karolina +	cd $startdir/src/$pkgname-$pkgver +	patch -Np1 -i $startdir/src/buildpatch-7.0-3-20080108-karolina.patch + +  cd ${startdir}/src/${pkgname}-${pkgver} +  make || return 1 +  mkdir -p ${startdir}/pkg/usr/bin +  for bin in growisofs dvd+rw-booktype dvd+rw-format dvd+rw-mediainfo dvd-ram-control; do +    install -D -m755 $bin ${startdir}/pkg/usr/bin/$bin || return 1 +  done +  install -D -m644 growisofs.1 ${startdir}/pkg/usr/share/man/man1/growisofs.1 || return 1 +} + + diff --git a/abs/not_built/core/dvd+rw-tools/buildpatch-7.0-3-20080108-karolina.patch b/abs/not_built/core/dvd+rw-tools/buildpatch-7.0-3-20080108-karolina.patch new file mode 100644 index 0000000..0b7951f --- /dev/null +++ b/abs/not_built/core/dvd+rw-tools/buildpatch-7.0-3-20080108-karolina.patch @@ -0,0 +1,22 @@ +diff -Naur dvd+rw-tools-7.0/growisofs.c dvd+rw-tools-7.0_new/growisofs.c +--- dvd+rw-tools-7.0/growisofs.c	2006-09-24 19:28:53.000000000 +0200 ++++ dvd+rw-tools-7.0_new/growisofs.c	2008-01-08 00:56:57.000000000 +0100 +@@ -418,6 +418,7 @@ + #include <sys/types.h> + #include <sys/stat.h> + #include <assert.h> ++#include <limits.h> + #include "mp.h" +  + #if defined(__unix) || defined(__unix__) +diff -Naur dvd+rw-tools-7.0/transport.hxx dvd+rw-tools-7.0_new/transport.hxx +--- dvd+rw-tools-7.0/transport.hxx	2006-09-23 13:29:07.000000000 +0200 ++++ dvd+rw-tools-7.0_new/transport.hxx	2008-01-08 00:57:36.000000000 +0100 +@@ -137,6 +137,7 @@ + #include <sys/wait.h> + #include <sys/utsname.h> + #include <scsi/sg.h> ++#include <limits.h> + #if !defined(SG_FLAG_LUN_INHIBIT) + # if defined(SG_FLAG_UNUSED_LUN_INHIBIT) + #  define SG_FLAG_LUN_INHIBIT SG_FLAG_UNUSED_LUN_INHIBIT diff --git a/abs/not_built/core/eggdbus/PKGBUILD b/abs/not_built/core/eggdbus/PKGBUILD new file mode 100644 index 0000000..f4bf786 --- /dev/null +++ b/abs/not_built/core/eggdbus/PKGBUILD @@ -0,0 +1,24 @@ +# Maintainer: kiefer <jorgelmadrid@gmail.com> + +pkgname=eggdbus +pkgver=0.6 +pkgrel=5 +pkgdesc="GObject bindings for D-Bus" +arch=('i686' 'x86_64') +url="http://cgit.freedesktop.org/~david/eggdbus" +license=('GPL') +depends=('dbus' 'dbus-glib' 'glibc') +makedepends=('gtk-doc') +source=("http://dl.dropbox.com/u/162810/${pkgname}-${pkgver}.tar.gz ") +md5sums=('ee993bd3c26d85ffe479b2d2bf91b661') + +build() { + +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./autogen.sh --prefix=/usr || return 1 +  make || return 1 +} +package() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  make DESTDIR="${pkgdir}" install || return 1 +} diff --git a/abs/not_built/core/evieext/PKGBUILD b/abs/not_built/core/evieext/PKGBUILD new file mode 100644 index 0000000..29754f2 --- /dev/null +++ b/abs/not_built/core/evieext/PKGBUILD @@ -0,0 +1,25 @@ +# $Id: PKGBUILD 51098 2009-09-04 21:12:24Z jgc $ +#Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=evieext +pkgver=1.1.0 +pkgrel=1 +pkgdesc="X11 Event Interception extension wire protocol" +arch=(any) +url="http://xorg.freedesktop.org/" +license=('MIT') +source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('d0b57a8fbbf0845588a690542a6c29d351c2b4e5') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr || return 1 +  make || return 1 +} +package() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  make DESTDIR="${pkgdir}" install || return 1 +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1 +} + diff --git a/abs/not_built/core/fam/PKGBUILD b/abs/not_built/core/fam/PKGBUILD new file mode 100644 index 0000000..3287aef --- /dev/null +++ b/abs/not_built/core/fam/PKGBUILD @@ -0,0 +1,47 @@ +# $Id: PKGBUILD 42582 2009-06-16 05:21:39Z tpowa $ +# Maintainer: Allan McRae <allan@archlinux.org> +# Contributor: Tom Newsom <Jeepster@gmx.co.uk> + +pkgname=fam +pkgver=2.7.0 +pkgrel=14 +pkgdesc="File Alteration Monitor" +arch=('i686' 'x86_64') +license=('LGPL' 'GPL') +depends=('rpcbind' 'gcc-libs' 'bash') +url="http://oss.sgi.com/projects/fam/" +backup=(etc/fam/fam.conf) +options=('!makeflags') # Don't !libtool +source=(ftp://oss.sgi.com/projects/fam/download/stable/${pkgname}-${pkgver}.tar.gz +	fam-2.7.0-dnotify.patch +	fam-2.7.0-largefiles.patch +	fam-2.7.0-limits.patch +	fam-2.7.0-buildfixes.patch +	fam) +md5sums=('1bf3ae6c0c58d3201afc97c6a4834e39' +         '073d1763318344635ea316293390205c' +         '47b41e0b0498793af004696a096d7da1' +         '2638b8ffacb9f03b6e438e08ea7b290a' +         'fc0cabc0ac4f819680401eb3090c29c9' +         '0b4dd9894ccc03f57787f9dfc0a7bd6f') + +build() { +  cd ${srcdir}/${pkgname}-${pkgver} +  patch -Np1 -i ${srcdir}/fam-2.7.0-dnotify.patch || return 1 +  patch -Np1 -i ${srcdir}/fam-2.7.0-largefiles.patch || return 1 +  patch -Np0 -i ${srcdir}/fam-2.7.0-limits.patch || return 1 +  patch -Np1 -i ${srcdir}/fam-2.7.0-buildfixes.patch || return 1 + +  chmod 755 configure || return 1 + +  autoheader || return 1 +  aclocal || return 1 +  automake -a -c || return 1 +  autoconf || return 1 +  libtoolize --copy --force || return 1 + +  ./configure --prefix=/usr --sysconfdir=/etc/fam +  make || return 1 +  make DESTDIR=${pkgdir} install +  install -D -m755 ../fam ${pkgdir}/etc/rc.d/fam +} diff --git a/abs/not_built/core/fam/fam b/abs/not_built/core/fam/fam new file mode 100755 index 0000000..53dd2a4 --- /dev/null +++ b/abs/not_built/core/fam/fam @@ -0,0 +1,44 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/sbin/famd` +case "$1" in +  start) +    #Check for running portmap, start when not running +    ck_daemon rpcbind && /etc/rc.d/rpcbind start +    stat_busy "Starting File Alteration Monitor" +    if [ ! -f /var/run/daemons/rpcbind ]; then +      stat_fail +      echo "ERROR: rpcbind is not running" +      exit 1 +    fi +    if [ -z "$PID" ]; then +       /usr/sbin/famd -T 0 -c /etc/fam/fam.conf +    fi +    if [ ! -z "$PID" -o $? -gt 0 ]; then +      stat_fail +    else +      add_daemon fam +      stat_done +    fi +    ;; +  stop) +    stat_busy "Stopping File Alteration Monitor" +    [ ! -z "$PID" ]  && kill $PID &> /dev/null +    if [ $? -gt 0 ]; then +      stat_fail +    else +      rm_daemon fam +      stat_done +    fi +    ;; +  restart) +    $0 stop +    sleep 1 +    $0 start +    ;; +  *) +    echo "usage: $0 {start|stop|restart}"   +esac diff --git a/abs/not_built/core/fam/fam-2.7.0-buildfixes.patch b/abs/not_built/core/fam/fam-2.7.0-buildfixes.patch new file mode 100644 index 0000000..abc7888 --- /dev/null +++ b/abs/not_built/core/fam/fam-2.7.0-buildfixes.patch @@ -0,0 +1,69 @@ +diff -Naur fam-2.7.0-old/include/BTree.h fam-2.7.0/include/BTree.h +--- fam-2.7.0-old/include/BTree.h	2003-01-20 14:22:30.000000000 +1000 ++++ fam-2.7.0/include/BTree.h	2009-06-14 21:21:41.000000000 +1000 +@@ -24,6 +24,7 @@ + #define BTree_included +  + #include "Boolean.h" ++#include <cstdlib> +  + //  This is an in-core B-Tree implementation. + // +diff -Naur fam-2.7.0-old/lib/Client.c++ fam-2.7.0/lib/Client.c++ +--- fam-2.7.0-old/lib/Client.c++	2003-01-19 00:18:12.000000000 +1000 ++++ fam-2.7.0/lib/Client.c++	2009-06-14 21:22:33.000000000 +1000 +@@ -34,7 +34,7 @@ + #include <syslog.h> + #include <errno.h> +  +-#include <iostream.h> ++#include <iostream> +  + #include "fam.h" + #include "Client.h" +diff -Naur fam-2.7.0-old/src/DNotify.c++ fam-2.7.0/src/DNotify.c++ +--- fam-2.7.0-old/src/DNotify.c++	2009-06-14 21:14:34.000000000 +1000 ++++ fam-2.7.0/src/DNotify.c++	2009-06-14 21:23:23.000000000 +1000 +@@ -31,6 +31,7 @@ + #include <sys/types.h> + #include <sys/stat.h> + #include <libgen.h> ++#include <cstdlib> +  + #include "DNotify.h" +  +diff -Naur fam-2.7.0-old/src/IMon.c++ fam-2.7.0/src/IMon.c++ +--- fam-2.7.0-old/src/IMon.c++	2003-01-19 00:18:12.000000000 +1000 ++++ fam-2.7.0/src/IMon.c++	2009-06-14 21:24:11.000000000 +1000 +@@ -40,7 +40,7 @@ + #include "Interest.h" + #include "Log.h" + #include "Scheduler.h" +-#include "alloc.h" ++#include <memory> +  + int		   IMon::imonfd = -2; + IMon::EventHandler IMon::ehandler = NULL; +diff -Naur fam-2.7.0-old/src/Interest.h fam-2.7.0/src/Interest.h +--- fam-2.7.0-old/src/Interest.h	2009-06-14 21:14:34.000000000 +1000 ++++ fam-2.7.0/src/Interest.h	2009-06-14 21:25:25.000000000 +1000 +@@ -29,6 +29,7 @@ + #include <netinet/in.h>  //  for in_addr +  + #include "Boolean.h" ++#include <cstdlib> +  + class Event; + class FileSystem; +diff -Naur fam-2.7.0-old/src/NFSFileSystem.c++ fam-2.7.0/src/NFSFileSystem.c++ +--- fam-2.7.0-old/src/NFSFileSystem.c++	2003-01-19 00:18:12.000000000 +1000 ++++ fam-2.7.0/src/NFSFileSystem.c++	2009-06-14 21:26:16.000000000 +1000 +@@ -97,7 +97,7 @@ +  +     attr_cache_timeout = ACREGMAX; +  +-    char * p; ++    const char * p; +          +     if (strstr(opt, "noac")) { +         f_noac = true; diff --git a/abs/not_built/core/fam/fam-2.7.0-dnotify.patch b/abs/not_built/core/fam/fam-2.7.0-dnotify.patch new file mode 100644 index 0000000..1d8910e --- /dev/null +++ b/abs/not_built/core/fam/fam-2.7.0-dnotify.patch @@ -0,0 +1,975 @@ +--- fam-2.7.0/src/DNotify.c++	2004-01-30 00:00:00.000000000 +0100 ++++ fam-2.7.0.dnotify/src/DNotify.c++	2004-01-30 00:00:00.000000000 +0100 +@@ -0,0 +1,582 @@ ++//  Copyright (C) 2001 Red Hat, Inc.  All Rights Reserved. ++//  Copyright (C) 1999 Silicon Graphics, Inc.  All Rights Reserved. ++//   ++//  This program is free software; you can redistribute it and/or modify it ++//  under the terms of version 2 of the GNU General Public License as ++//  published by the Free Software Foundation. ++// ++//  This program is distributed in the hope that it would be useful, but ++//  WITHOUT ANY WARRANTY; without even the implied warranty of ++//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  Further, any ++//  license provided herein, whether implied or otherwise, is limited to ++//  this program in accordance with the express provisions of the GNU ++//  General Public License.  Patent licenses, if any, provided herein do not ++//  apply to combinations of this program with other product or programs, or ++//  any other product whatsoever.  This program is distributed without any ++//  warranty that the program is delivered free of the rightful claim of any ++//  third person by way of infringement or the like.  See the GNU General ++//  Public License for more details. ++// ++//  You should have received a copy of the GNU General Public License along ++//  with this program; if not, write the Free Software Foundation, Inc., 59 ++//  Temple Place - Suite 330, Boston MA 02111-1307, USA. ++ ++#define _GNU_SOURCE   ++#include <fcntl.h> ++ ++#include <string.h> ++#include <signal.h> ++#include <stdio.h> ++#include <unistd.h> ++#include <sys/types.h> ++#include <sys/stat.h> ++#include <libgen.h> ++ ++#include "DNotify.h" ++ ++#include "Interest.h" ++#include "Log.h" ++#include "Scheduler.h" ++#include <memory> ++ ++ ++int DNotify::pipe_write_fd = -2; ++int DNotify::pipe_read_fd = -2; ++volatile sig_atomic_t DNotify::queue_overflowed = 0; ++volatile sig_atomic_t DNotify::queue_changed = 0; ++int DNotify::change_queue[QUEUESIZE]; ++volatile int DNotify::queue_head = 0; // Only modified by read handler ++volatile int DNotify::queue_tail = 0; // Only modified by signal handler ++DNotify::EventHandler DNotify::ehandler; ++ ++DNotify::DirWatch *DNotify::dir_hash[DIR_HASHSIZE]; ++DNotify::FileWatch *DNotify::file_hash[FILE_HASHSIZE]; ++ ++struct DNotify::FileWatch ++{ ++    DirWatch *dir_watch; ++    dev_t file_dev; ++    ino_t file_ino; ++    FileWatch *next; // The DirWatch.watches list ++    FileWatch *hash_link; ++}; ++ ++struct DNotify::DirWatch ++{ ++    int fd; ++    dev_t dir_dev; ++    ino_t dir_ino; ++     ++    DirWatch *hash_link; ++    FileWatch *watches; ++}; ++ ++struct DNotify::ChangeEventData ++{ ++    dev_t file_dev; ++    ino_t file_ino; ++};     ++ ++DNotify::DNotify(EventHandler h) ++{ ++    assert(ehandler == NULL); ++    ehandler = h; ++} ++ ++DNotify::~DNotify() ++{ ++    if (pipe_read_fd >= 0) ++    { ++	//  Tell the scheduler. ++ ++	(void) Scheduler::remove_read_handler(pipe_read_fd); ++ ++	//  Close the pipe. ++ ++	if (close(pipe_read_fd) < 0) ++	    Log::perror("can't pipe read end"); ++	else ++	    Log::debug("closed pipe read end"); ++	 ++	if (close(pipe_write_fd) < 0) ++	    Log::perror("can't pipe write end"); ++	else ++	    Log::debug("closed pipe write end"); ++	pipe_read_fd = -1; ++    } ++    ehandler = NULL; ++} ++ ++void ++DNotify::overflow_signal_handler(int sig, siginfo_t *si, void *data) ++{ ++  char c = 'x'; ++ ++  { ++    char *str = "*************** overflow sigqueue ***********************\n"; ++    write (STDERR_FILENO, str, strlen(str)); ++  } ++ ++  if (!queue_overflowed) ++  { ++      queue_overflowed = 1; ++      // Trigger the read handler ++      write(pipe_write_fd, &c, 1); ++  } ++} ++ ++void ++DNotify::signal_handler(int sig, siginfo_t *si, void *data) ++{ ++  int left; ++  char c = 'x'; ++ ++  if (queue_head <= queue_tail) ++    left = (QUEUESIZE + queue_head) - queue_tail; ++  else  ++    left = queue_head - queue_tail; ++   ++  // Must leave at least one item unused to see difference ++  // Betweeen empty and full ++  if (left <= 1) ++  { ++      queue_overflowed = 1; ++      { ++	char *str = "*************** overflow famqueue ****************\n"; ++	write (STDERR_FILENO, str, strlen(str)); ++      } ++  } ++  else ++  { ++      change_queue[queue_tail] = si->si_fd; ++      queue_tail = (queue_tail + 1) % QUEUESIZE; ++  } ++   ++  if (!queue_changed) ++  { ++      queue_changed = 1; ++      // Trigger the read handler ++      write(pipe_write_fd, &c, 1); ++  } ++} ++ ++bool ++DNotify::is_active() ++{ ++    if (pipe_read_fd == -2) ++    { ++        int filedes[2]; ++	int res; ++	 ++	res = pipe (filedes); ++	if (res >= 0) ++	{   Log::debug("opened pipe"); ++   	    pipe_read_fd = filedes[0]; ++   	    pipe_write_fd = filedes[1]; ++ ++	    // Setup signal handler: ++	    struct sigaction act; ++	     ++	    act.sa_sigaction = signal_handler; ++	    sigemptyset(&act.sa_mask); ++	    act.sa_flags = SA_SIGINFO; ++	    sigaction(SIGRTMIN, &act, NULL); ++ ++	    // When the RT queue overflows we get a SIGIO ++	    act.sa_sigaction = overflow_signal_handler; ++	    sigemptyset(&act.sa_mask); ++	    sigaction(SIGIO, &act, NULL); ++ ++	    (void) Scheduler::install_read_handler(pipe_read_fd, read_handler, NULL); ++	} ++    } ++    return pipe_read_fd >= 0; ++} ++ ++DNotify::DirWatch * ++DNotify::lookup_dirwatch (int fd) ++{ ++  DirWatch **p; ++  DirWatch *w; ++ ++  p = dir_hashchain (fd); ++ ++  while (*p) ++    { ++      w = *p; ++ ++      if (w->fd == fd) ++	return w; ++ ++      p = &w->hash_link; ++    } ++   ++  return *p; ++} ++ ++// This colud be made faster by using another hash table. ++// But it's not that bad, since it is only used by express/revoke ++DNotify::DirWatch * ++DNotify::lookup_dirwatch (dev_t dir_dev, ino_t dir_ino) ++{ ++  DirWatch *p; ++  int i; ++ ++  for (i=0;i<DIR_HASHSIZE;i++) ++    { ++      p = dir_hash[i]; ++       ++      while (p) ++	{ ++	  if (p->dir_dev == dir_dev && p->dir_ino == dir_ino) ++	    return p; ++	   ++	  p = p->hash_link; ++	} ++    } ++   ++  return NULL; ++} ++ ++DNotify::FileWatch * ++DNotify::lookup_filewatch (dev_t dev, ino_t ino) ++{ ++  FileWatch **p; ++  FileWatch *w; ++ ++  p = file_hashchain (dev, ino); ++ ++  while (*p) ++    { ++      w = *p; ++ ++      if (w->file_dev == dev && w->file_ino == ino) ++	return w; ++ ++      p = &w->hash_link; ++    } ++   ++  return *p; ++} ++ ++// Make sure w is not already in the hash table before calling ++// this function. ++void ++DNotify::hash_dirwatch(DirWatch *w) ++{ ++  DirWatch **p; ++  p = dir_hashchain (w->fd); ++  w->hash_link = *p; ++  *p = w; ++} ++ ++// Make sure w is not already in the hash table before calling ++// this function. ++void ++DNotify::hash_filewatch(FileWatch *w) ++{ ++  FileWatch **p; ++  p = file_hashchain (w->file_dev, w->file_ino); ++  w->hash_link = *p; ++  *p = w; ++} ++ ++void ++DNotify::unhash_dirwatch(DirWatch *w) ++{ ++  DirWatch **p; ++   ++  p = dir_hashchain (w->fd); ++   ++  while (*p) ++    { ++      if (*p == w) ++	{ ++	  *p = w->hash_link; ++	  break; ++	} ++      p = &(*p)->hash_link; ++    } ++  w->hash_link = NULL; ++} ++ ++void ++DNotify::unhash_filewatch(FileWatch *w) ++{ ++  FileWatch **p; ++   ++  p = file_hashchain (w->file_dev, w->file_ino); ++   ++  while (*p) ++    { ++      if (*p == w) ++	{ ++	  *p = w->hash_link; ++	  break; ++	} ++      p = &(*p)->hash_link; ++    } ++  w->hash_link = NULL; ++} ++ ++DNotify::Status ++DNotify::watch_dir(const char *notify_dir, dev_t file_dev, ino_t file_ino) ++{ ++  struct stat stat; ++  dev_t dir_dev; ++  ino_t dir_ino; ++  DirWatch *dwatch; ++  FileWatch *fw; ++     ++  if (lstat (notify_dir, &stat) == -1) ++      return BAD; ++   ++  dwatch = lookup_dirwatch(stat.st_dev, stat.st_ino); ++  if (!dwatch) ++    { ++      Log::debug ("New DirWatch for %s (%x %x)\n", ++		  notify_dir, (int)stat.st_dev, (int)stat.st_ino); ++      dwatch = new DirWatch; ++      dwatch->watches = NULL; ++      dwatch->hash_link = NULL; ++      dwatch->dir_dev = stat.st_dev; ++      dwatch->dir_ino = stat.st_ino; ++       ++      dwatch->fd = open(notify_dir, O_RDONLY); ++      fcntl (dwatch->fd, F_SETSIG, SIGRTMIN); ++      if (fcntl (dwatch->fd, F_NOTIFY, ++                 (DN_MODIFY|DN_CREATE|DN_DELETE|DN_RENAME|DN_ATTRIB)  ++		  | DN_MULTISHOT) == -1) { ++	      return BAD; ++      } ++      hash_dirwatch (dwatch); ++    } ++ ++  fw = lookup_filewatch (file_dev, file_ino); ++  if (fw && fw->dir_watch == dwatch) ++	return OK; ++   ++  // No old FileWatch, need to add one: ++  Log::debug("New FileWatch for %x %x\n", (int)file_dev, (int)file_ino); ++  fw = new FileWatch; ++  fw->next = dwatch->watches; ++  dwatch->watches = fw; ++  fw->file_dev = file_dev; ++  fw->file_ino = file_ino; ++  fw->dir_watch = dwatch; ++  hash_filewatch(fw); ++  return OK; ++} ++ ++char * ++dirname_dup (const char *name) ++{ ++  char *copy = strdup(name); ++  char *res = dirname(copy); ++  res = strdup(res); ++  free (copy); ++  return res; ++} ++ ++DNotify::Status ++DNotify::express(const char *name, struct stat *status) ++{ ++    struct stat stat; ++    char *notify_dir; ++    int res; ++    Status s; ++    dev_t dev; ++    ino_t ino; ++ ++    Log::debug("express() name: %s\n", name); ++ ++    if (!is_active()) ++	return BAD; ++ ++    if (::lstat (name, &stat) == -1) ++      return BAD; ++ ++    dev = stat.st_dev; ++    ino = stat.st_ino; ++     ++    if ((stat.st_mode & S_IFMT) != S_IFDIR) ++	notify_dir = dirname_dup (name); ++    else ++	notify_dir = (char *)name; ++ ++    s = watch_dir (notify_dir, dev, ino); ++    if (notify_dir != name) ++        free (notify_dir); ++    if (s) ++      return s; ++ ++    // Check for a race condition; if someone removed or changed the ++    // file at the same time that we are expressing interest in it, ++    // revoke the interest so we don't get notifications about changes ++    // to a recycled inode that we don't otherwise care about. ++    // ++    struct stat st; ++    if (status == NULL) { ++	status = &st; ++    } ++    if (::lstat(name, status) == -1) { ++	Log::perror("stat on \"%s\" failed", name); ++	revoke(name, stat.st_dev, stat.st_ino); ++	return BAD; ++    } ++    if (status->st_dev != stat.st_dev ++	|| status->st_ino != stat.st_ino) { ++	Log::error("File \"%s\" changed between express and stat", ++		   name); ++	revoke(name, stat.st_dev, stat.st_ino); ++	return BAD; ++    }	 ++ ++    Log::debug("told dnotify to monitor \"%s\" = dev %d/%d, ino %d", name, ++	       major(status->st_dev), minor(status->st_dev), ++	       status->st_ino); ++    return OK; ++} ++ ++DNotify::Status ++DNotify::revoke(const char *name, dev_t dev, ino_t ino) ++{ ++    FileWatch *fwatch; ++    DirWatch *dwatch; ++     ++    Log::debug("revoke() name: %s, dev: %x, ino: %x\n", name, dev, ino); ++ ++    if (!is_active()) ++	return BAD; ++ ++    // Lookup FileWatch by dev:ino, and its DirWatch. ++    fwatch = lookup_filewatch (dev, ino); ++    if (fwatch == NULL) ++	return BAD; ++     ++    dwatch = fwatch->dir_watch; ++     ++    // delete FileWatch, if last FileWatch: close fd, delete DirWatch ++    Log::debug ("Destroying FileWatch for (%x %x)\n", ++		(int)fwatch->file_dev, (int)fwatch->file_ino); ++    FileWatch **p; ++    for (p=&dwatch->watches; *p; p=&(*p)->next) ++    { ++      if (*p == fwatch) ++	{ ++	  *p = (*p)->next; ++	  break; ++	} ++    } ++    unhash_filewatch(fwatch); ++    delete fwatch; ++    if (dwatch->watches == NULL) ++      { ++	Log::debug ("Destroying DirWatch for (%x %x)\n", ++		    (int)dwatch->dir_dev, (int)dwatch->dir_ino); ++	close(dwatch->fd); ++	unhash_dirwatch(dwatch); ++	delete dwatch; ++      } ++   ++    return OK; ++} ++ ++ ++void ++DNotify::all_watches_changed(void) ++{ ++  int i; ++  FileWatch *fw; ++ ++  for (i=0; i<FILE_HASHSIZE; i++) ++  { ++      fw = file_hash[i]; ++      while (fw) ++      { ++	  (*ehandler)(fw->file_dev, fw->file_ino, CHANGE); ++ ++	  fw = fw->hash_link; ++      } ++  } ++} ++ ++ ++void ++DNotify::read_handler(int fd, void *) ++{ ++    static char readbuf[5000]; ++    DirWatch *dw; ++    FileWatch *fw; ++    int snap_queue_tail; ++    int last_fd; ++ ++    int rc = read(fd, readbuf, sizeof readbuf); ++    queue_changed = 0; ++    if (rc < 0) ++        Log::perror("pipe read"); ++    else if (queue_overflowed) ++    { ++	  // There is a *slight* race condition here. Between reading ++	  // the queue_overflow flag and resetting it. But it doesn't ++	  // matter, since I'm gonna handle the overflow after reseting ++	  // anyway. ++	  queue_overflowed = false; ++ ++	  // We're soon gonna check all watches anyway, so ++	  // get rid of the current queue ++	  queue_head = queue_tail; ++	   ++	  all_watches_changed (); ++    } ++    else ++    { ++	// Don't read events that happen later than ++	// the initial read. (Otherwise skipping fd's ++	// might miss some changes). ++	snap_queue_tail = queue_tail; ++	last_fd = -1; ++	while (queue_head != snap_queue_tail) ++	{ ++	    fd = change_queue[queue_head]; ++	    queue_head = (queue_head + 1) % QUEUESIZE; ++ ++	    // Skip multiple changes to the same fd ++	    if (fd != last_fd) ++	    { ++		dw = lookup_dirwatch (fd); ++		if (dw) ++		{ ++		    int n_watches, i; ++		    ChangeEventData *data; ++		     ++		    Log::debug("dnotify said dev %d/%d, ino %ld changed", ++			       major(dw->dir_dev), minor(dw->dir_dev), dw->dir_ino); ++		     ++		    n_watches = 0; ++		    for (fw=dw->watches; fw; fw=fw->next) ++			n_watches++; ++		     ++		    data = new ChangeEventData[n_watches]; ++ ++		    i = 0; ++		    for (fw=dw->watches; fw; fw=fw->next) ++		    { ++			data[i].file_dev = fw->file_dev; ++			data[i].file_ino = fw->file_ino; ++			i++; ++		    } ++ ++		    for (i = 0; i < n_watches; i++) ++		    { ++			(*ehandler)(data[i].file_dev, data[i].file_ino, CHANGE); ++		    } ++		     ++		    delete[] data; ++		} ++	    } ++	    last_fd = fd; ++	} ++    } ++} ++ +--- fam-2.7.0/src/DNotify.h	2004-01-30 00:00:00.000000000 +0100 ++++ fam-2.7.0.dnotify/src/DNotify.h	2004-01-30 00:00:00.000000000 +0100 +@@ -0,0 +1,98 @@ ++//  Copyright (C) 2001 Red Hat, Inc.  All Rights Reserved. ++//  Copyright (C) 1999 Silicon Graphics, Inc.  All Rights Reserved. ++// ++//  This program is free software; you can redistribute it and/or modify it ++//  under the terms of version 2 of the GNU General Public License as ++//  published by the Free Software Foundation. ++// ++//  This program is distributed in the hope that it would be useful, but ++//  WITHOUT ANY WARRANTY; without even the implied warranty of ++//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  Further, any ++//  license provided herein, whether implied or otherwise, is limited to ++//  this program in accordance with the express provisions of the GNU ++//  General Public License.  Patent licenses, if any, provided herein do not ++//  apply to combinations of this program with other product or programs, or ++//  any other product whatsoever.  This program is distributed without any ++//  warranty that the program is delivered free of the rightful claim of any ++//  third person by way of infringement or the like.  See the GNU General ++//  Public License for more details. ++// ++//  You should have received a copy of the GNU General Public License along ++//  with this program; if not, write the Free Software Foundation, Inc., 59 ++//  Temple Place - Suite 330, Boston MA 02111-1307, USA. ++ ++#ifndef DNotify_included ++#define DNotify_included ++ ++#include "config.h" ++#include "Monitor.h" ++#include <signal.h> ++ ++//  DNotify is an object encapsulating the dnotify linux fcntl. ++//  It "emulates" the IMon interface. ++//  There can only be one instantiation of the DNotify object. ++// ++//  The user of this object uses express() and revoke() to ++//  express/revoke interest in a file.  There is also ++//  a callback, the EventHandler.  When an dnotify event comes in, ++//  the EventHandler is called. ++// ++//  The user of the DNotify object is the Interest class. ++ ++class DNotify : public Monitor { ++public: ++    DNotify(EventHandler h); ++    ~DNotify(); ++ ++    static bool is_active(); ++ ++    virtual Status express(const char *name, struct stat *stat_return); ++    virtual Status revoke(const char *name, dev_t dev, ino_t ino); ++ ++private: ++    struct FileWatch; ++    struct DirWatch; ++    struct ChangeEventData; ++   ++    //  Class Variables ++    enum { QUEUESIZE = 1024 }; ++    static int pipe_write_fd; ++    static int pipe_read_fd; ++    static int change_queue[QUEUESIZE]; ++    static volatile sig_atomic_t queue_overflowed; ++    static volatile sig_atomic_t queue_changed; ++    static volatile int queue_head; // Only modified by read handler ++    static volatile int queue_tail; // Only modified by signal handler ++    static EventHandler ehandler; ++    static void overflow_signal_handler(int sig, siginfo_t *si, void *data); ++    static void signal_handler(int sig, siginfo_t *si, void *data); ++    static void read_handler(int fd, void *closure); ++  ++    enum { DIR_HASHSIZE = 367 }; ++    static DirWatch *dir_hash[DIR_HASHSIZE]; ++    enum { FILE_HASHSIZE = 823 }; ++    static FileWatch *file_hash[FILE_HASHSIZE]; ++ ++    static DirWatch **dir_hashchain(int fd) ++			  { return &dir_hash[(unsigned) (fd) % DIR_HASHSIZE]; } ++    static FileWatch **file_hashchain(dev_t d, ino_t i) ++			  { return &file_hash[(unsigned) (d+i) % FILE_HASHSIZE]; } ++ ++    static DirWatch *lookup_dirwatch (int fd); ++    static DirWatch *lookup_dirwatch (dev_t dir_dev, ino_t dir_ino); ++    static FileWatch *lookup_filewatch (dev_t file_dev, ino_t file_ino); ++    static void hash_dirwatch(DirWatch *w); ++    static void hash_filewatch(FileWatch *w); ++    static void unhash_dirwatch(DirWatch *w); ++    static void unhash_filewatch(FileWatch *w); ++    static Status watch_dir(const char *notify_dir, dev_t file_dev, ino_t file_ino); ++ ++    static void all_watches_changed(void); ++     ++    DNotify(const DNotify&);			// Do not copy ++    DNotify & operator = (const DNotify&);	//  or assign. ++}; ++ ++#endif /* !IMon_included */ ++ ++ +--- fam-2.7.0/src/Interest.c++	2004-01-30 00:00:00.000000000 +0100 ++++ fam-2.7.0.dnotify/src/Interest.c++	2004-01-30 00:00:00.000000000 +0100 +@@ -42,12 +42,21 @@ + #include "Event.h" + #include "FileSystem.h" + #include "IMon.h" ++#include "DNotify.h" + #include "Log.h" + #include "Pollster.h" + #include "timeval.h" +  + Interest *Interest::hashtable[]; +-IMon      Interest::imon(imon_handler); ++ ++#ifdef USE_DNOTIFY  ++static DNotify dnotify(Interest::monitor_handler); ++Monitor * Interest::monitor = &dnotify; ++#else ++static IMon imon(Interest::monitor_handler); ++Monitor * Interest::monitor = &imon; ++#endif ++ + bool      Interest::xtab_verification = true; +  + Interest::Interest(const char *name, FileSystem *fs, in_addr host, ExportVerification ev) +@@ -60,10 +69,10 @@ +       mypath_exported_to_host(ev == NO_VERIFY_EXPORTED) + { +     memset(&old_stat, 0, sizeof(old_stat));  +-    IMon::Status s = IMon::BAD; +  +-    s = imon.express(name, &old_stat); +-    if (s != IMon::OK) ++    Monitor::Status s = Monitor::BAD; ++    s = monitor->express(name, &old_stat); ++    if (s != Monitor::OK) +     {   int rc = lstat(name, &old_stat); + 	if (rc < 0) + 	{   Log::info("can't lstat %s", name); +@@ -100,7 +109,7 @@ +     } + #endif +  +-    if (exported_to_host()) fs->ll_monitor(this, s == IMon::OK); ++    if (exported_to_host()) fs->ll_monitor(this, s == Monitor::OK); + } +  + Interest::~Interest() +@@ -128,7 +137,7 @@ + 		pp = &p->hashlink;	// move to next element + 	    } + 	if (!found_same) +-	    (void) imon.revoke(name(), dev, ino); ++	  (void) monitor->revoke(name(), dev, ino); +     } + } +  +@@ -147,7 +156,7 @@ +  +         // Express interest. +         IMon::Status s = IMon::BAD; +-	s = imon.express(name(), NULL); ++	s = monitor->express(name(), NULL); +         if (s != IMon::OK) { +             return true; +         } +@@ -248,23 +257,23 @@ + } +  + void +-Interest::imon_handler(dev_t device, ino_t inumber, int event) ++Interest::monitor_handler(dev_t device, ino_t inumber, int event) + { +     assert(device || inumber); +  +     for (Interest *p = *hashchain(device, inumber), *next = p; p; p = next) +     {	next = p->hashlink; + 	if (p->ino == inumber && p->dev == device) +-	{   if (event == IMon::EXEC) ++	  {   if (event == Monitor::EXEC) + 	    {   p->cur_exec_state = EXECUTING; + 		(void) p->report_exec_state(); + 	    } +-	    else if (event == IMon::EXIT) ++	    else if (event == Monitor::EXIT) + 	    {   p->cur_exec_state = NOT_EXECUTING; + 		(void) p->report_exec_state(); + 	    } + 	    else +-	    {   assert(event == IMon::CHANGE); ++	    {   assert(event == Monitor::CHANGE); + 		p->scan(); + 	    } + 	} +--- fam-2.7.0/config.h.in	2003-01-20 01:40:15.000000000 +0100 ++++ fam-2.7.0.dnotify/config.h.in	2004-01-30 13:50:33.000000000 +0100 +@@ -180,3 +180,6 @@ +  + /* Define to `int' if <sys/types.h> doesn't define. */ + #undef uid_t ++ ++/* Define to 1 if you have F_NOTIFY fcntl */ ++#undef USE_DNOTIFY +--- fam-2.7.0/configure.ac	2003-11-26 20:47:59.000000000 +0100 ++++ fam-2.7.0.dnotify/configure.ac	2004-01-30 13:50:33.000000000 +0100 +@@ -34,7 +34,26 @@ + AC_HEADER_DIRENT + AC_CHECK_HEADERS([fcntl.h limits.h linux/imon.h netinet/in.h rpc/rpc.h rpcsvc/mount.h stddef.h stdlib.h string.h syslog.h sys/imon.h sys/param.h sys/select.h sys/statvfs.h sys/syssgi.h sys/time.h sys/types.h sys/un.h unistd.h]) +  +-if test "$have_sys_imon_h"; then ++# Test for the linux dnotify fcntl ++AC_MSG_CHECKING([for dnotify fcntl support]) ++AC_TRY_COMPILE([ ++#define _GNU_SOURCE   ++#include <fcntl.h> ++#include <unistd.h> ++], ++[ int fd = 1; ++  fcntl (fd, F_NOTIFY, (DN_MODIFY|DN_CREATE|DN_DELETE|DN_RENAME|DN_ATTRIB) ++                       |DN_MULTISHOT); ++], have_dnotify=yes, have_dnotify=no) ++ ++use_dnotify=false ++AC_MSG_RESULT($have_dnotify) ++ ++if test "$have_dnotify"; then ++        MONITOR_FUNCS=IMonNone ++        AC_DEFINE([USE_DNOTIFY], [], [Use dnotify]) ++	use_dnotify=true ++elif test "$have_sys_imon_h"; then + 	MONITOR_FUNCS=IMonIRIX + elif test "$have_linux_imon_h"; then + 	MONITOR_FUNCS=IMonLinux +@@ -42,6 +62,7 @@ + 	MONITOR_FUNCS=IMonNone + fi + AC_SUBST(MONITOR_FUNCS) ++AM_CONDITIONAL(USE_DNOTIFY, $use_dnotify) +  + # Checks for typedefs, structures, and compiler characteristics. + AC_HEADER_STDBOOL +--- fam-2.7.0/src/IMon.h	2004-01-30 00:00:00.000000000 +0200 ++++ fam-2.7.0.dnotify/src/IMon.h	2004-01-30 00:00:00.000000000 +0200 +@@ -24,10 +24,7 @@ + #define IMon_included +  + #include "config.h" +-#include <sys/stat.h> +-#include <sys/types.h> +- +-#include "Boolean.h" ++#include "Monitor.h" +  + struct stat; +  +@@ -41,25 +38,18 @@ + // + //  The user of the IMon object is the Interest class. +  +-class IMon { ++class IMon : public Monitor { +  + public: +- +-    enum Status { OK = 0, BAD = -1 }; +-    enum Event { EXEC, EXIT, CHANGE }; +- +-    typedef void (*EventHandler)(dev_t, ino_t, int event); +- +     IMon(EventHandler h); +     ~IMon(); +  +     static bool is_active(); +  +-    Status express(const char *name, struct stat *stat_return); +-    Status revoke(const char *name, dev_t dev, ino_t ino); ++    virtual Status express(const char *name, struct stat *stat_return); ++    virtual Status revoke(const char *name, dev_t dev, ino_t ino); +  + private: +- +     //  Class Variables +  +     static int imonfd; +--- fam-2.7.0/src/Interest.h	2004-01-30 00:00:00.000000000 +0200 ++++ fam-2.7.0.dnotify/src/Interest.h	2004-01-30 00:00:00.000000000 +0200 +@@ -32,7 +32,7 @@ +  + class Event; + class FileSystem; +-class IMon; ++class Monitor; + struct stat; +  + //  Interest -- abstract base class for filesystem entities of interest. +@@ -74,7 +74,7 @@ +  +     //  Public Class Method +  +-    static void imon_handler(dev_t, ino_t, int event); ++    static void monitor_handler(dev_t, ino_t, int event); +  +     static void enable_xtab_verification(bool enable); +  +@@ -121,7 +121,7 @@ +  +     //  Class Variables +  +-    static IMon imon; ++    static Monitor *monitor; +     static Interest *hashtable[HASHSIZE]; +     static bool xtab_verification; +  +--- fam-2.7.0/src/Makefile.am	2003-01-19 13:00:17.000000000 +0100 ++++ fam-2.7.0.dnotify/src/Makefile.am	2004-01-30 13:50:38.000000000 +0100 +@@ -71,7 +71,11 @@ +   main.c++ \ +   timeval.c++ \ +   timeval.h \ +-  @MONITOR_FUNCS@.c++ ++  Monitor.h \ ++  DNotify.h \ ++  DNotify.c++ \ ++  @MONITOR_FUNCS@.c++  +  +-EXTRA_famd_SOURCES = IMonIrix.c++ IMonLinux.c++ IMonNone.c++ ++EXTRA_famd_SOURCES = IMonIrix.c++ IMonLinux.c++ IMonNone.c++ DNotify.c++ \ ++  DNotify.h Monitor.h +  +--- fam-2.7.0/src/Monitor.h	2004-01-30 00:00:00.000000000 +0200 ++++ fam-2.7.0.dnotify/src/Monitor.h	2004-01-30 00:00:00.000000000 +0200 +@@ -0,0 +1,57 @@ ++//  Copyright (C) 2001 Red Hat, Inc.  All Rights Reserved. ++//  Copyright (C) 1999 Silicon Graphics, Inc.  All Rights Reserved. ++//   ++//  This program is free software; you can redistribute it and/or modify it ++//  under the terms of version 2 of the GNU General Public License as ++//  published by the Free Software Foundation. ++// ++//  This program is distributed in the hope that it would be useful, but ++//  WITHOUT ANY WARRANTY; without even the implied warranty of ++//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  Further, any ++//  license provided herein, whether implied or otherwise, is limited to ++//  this program in accordance with the express provisions of the GNU ++//  General Public License.  Patent licenses, if any, provided herein do not ++//  apply to combinations of this program with other product or programs, or ++//  any other product whatsoever.  This program is distributed without any ++//  warranty that the program is delivered free of the rightful claim of any ++//  third person by way of infringement or the like.  See the GNU General ++//  Public License for more details. ++// ++//  You should have received a copy of the GNU General Public License along ++//  with this program; if not, write the Free Software Foundation, Inc., 59 ++//  Temple Place - Suite 330, Boston MA 02111-1307, USA. ++ ++#ifndef Monitor_included ++#define Monitor_included ++ ++#include "config.h" ++#include <sys/stat.h> ++#include <sys/types.h> ++ ++struct stat; ++ ++//  Monitor is an abstract baseclass for differend file monitoring ++//  systems. The original system used was IMon, and the Montor API ++//  is heavily influenced by that. ++//  There can only be one instantiation of the Monitor object. ++// ++//  The user of this object uses express() and revoke() to ++//  express/revoke interest in a file to imon.  There is also ++//  a callback, the EventHandler.  When an event comes in, ++//  the EventHandler is called. ++// ++//  The main implementers of the Monitor class is IMon and DNotify ++ ++class Monitor { ++public: ++ ++    enum Status { OK = 0, BAD = -1 }; ++    enum Event { EXEC, EXIT, CHANGE }; ++ ++    typedef void (*EventHandler)(dev_t, ino_t, int event); ++ ++    virtual Status express(const char *name, struct stat *stat_return) = 0; ++    virtual Status revoke(const char *name, dev_t dev, ino_t ino) = 0; ++}; ++ ++#endif /* !Monitor_included */ diff --git a/abs/not_built/core/fam/fam-2.7.0-largefiles.patch b/abs/not_built/core/fam/fam-2.7.0-largefiles.patch new file mode 100644 index 0000000..60de9a4 --- /dev/null +++ b/abs/not_built/core/fam/fam-2.7.0-largefiles.patch @@ -0,0 +1,8 @@ +--- fam-2.7.0/common.am	2003-01-19 06:09:08.000000000 -0600 ++++ fam-2.7.0.largefile/common.am	2005-01-12 19:08:06.462113110 -0600 +@@ -1,2 +1,5 @@ +-INCLUDES = @FAM_INC@ -DFAM_CONF=\"@FAM_CONF@\" ++INCLUDES = @FAM_INC@ -DFAM_CONF=\"@FAM_CONF@\" \ ++       -D_FILE_OFFSET_BITS=64                  \ ++       -D_LARGEFILE64_SOURCE ++ diff --git a/abs/not_built/core/fam/fam-2.7.0-limits.patch b/abs/not_built/core/fam/fam-2.7.0-limits.patch new file mode 100644 index 0000000..4248957 --- /dev/null +++ b/abs/not_built/core/fam/fam-2.7.0-limits.patch @@ -0,0 +1,11 @@ +--- include/fam.h.orig	2005-05-25 09:26:38.000000000 +0000 ++++ include/fam.h	2005-05-25 09:27:04.000000000 +0000 +@@ -41,7 +41,7 @@ + *****************************************************************************/ +  + /* For NAME_MAX - maximum # of chars in a filename */ +-#include "limits.h" ++#include <limits.h> +  +  +  diff --git a/abs/not_built/core/feh/PKGBUILD b/abs/not_built/core/feh/PKGBUILD new file mode 100644 index 0000000..0f97b3b --- /dev/null +++ b/abs/not_built/core/feh/PKGBUILD @@ -0,0 +1,31 @@ +# $Id: PKGBUILD 94545 2010-10-08 08:16:45Z bisson $ +# Maintainer: +# Contributor: Andrea Scarpino <andrea@archlinux.org> +# Contributor: dorphell <dorphell@archlinux.org> +# Contributor: Tom Newsom <Jeepster@gmx.co.uk> + +pkgname=feh +pkgver=1.10 +pkgrel=2 +pkgdesc='Fast, lightweight image viewer which uses imlib2' +arch=('i686' 'x86_64') +url='https://derf.homelinux.org/~derf/projects/feh/' +license=('MIT') +depends=('libxinerama' 'giblib' 'perl' 'libjpeg7' 'libpng12') +makedepends=('libxt') +source=("https://derf.homelinux.org/~derf/projects/${pkgname}/${pkgname}-${pkgver}.tar.bz2") +sha1sums=('c42095ed6a7636fe9d1ec90d3994f4a57af84681') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" + +  sed -i -e 's:/usr/local:/usr:g' config.mk +  make +} + +package(){ +  cd "${srcdir}/${pkgname}-${pkgver}" + +  make DESTDIR="${pkgdir}" install +  install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" +} diff --git a/abs/not_built/core/feh/__changelog b/abs/not_built/core/feh/__changelog new file mode 100644 index 0000000..431a054 --- /dev/null +++ b/abs/not_built/core/feh/__changelog @@ -0,0 +1 @@ +1/20/11 - chw - Added libjpeg7 and libpng12 as deps. diff --git a/abs/not_built/core/fltk/PKGBUILD b/abs/not_built/core/fltk/PKGBUILD new file mode 100644 index 0000000..f5335f6 --- /dev/null +++ b/abs/not_built/core/fltk/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 71291 2010-03-06 01:40:12Z pierre $ + +pkgname=fltk +pkgver=1.1.10 +pkgrel=1 +pkgdesc="Graphical user interface toolkit for X" +arch=('i686' 'x86_64') +license=('LGPL') +url="http://www.fltk.org/" +depends=('libjpeg' 'libpng' 'gcc-libs' 'libxft' 'libxext') +makedepends=('mesa') +source=("http://ftp.easysw.com/pub/$pkgname/$pkgver/$pkgname-$pkgver-source.tar.bz2") +md5sums=('a1765594bc427ff892e36089fe1fa672') + +build() { +  cd $srcdir/$pkgname-$pkgver +  export LDFLAGS="${LDFLAGS//-Wl,--as-needed}" +  export LDFLAGS="${LDFLAGS//,--as-needed}" +  ./configure --prefix=/usr --enable-threads --enable-xft --enable-shared +  make || return 1 +} + +package() { +  cd $srcdir/$pkgname-$pkgver +  make DESTDIR=$pkgdir install +} diff --git a/abs/not_built/core/fontcacheproto/PKGBUILD b/abs/not_built/core/fontcacheproto/PKGBUILD new file mode 100644 index 0000000..527dd57 --- /dev/null +++ b/abs/not_built/core/fontcacheproto/PKGBUILD @@ -0,0 +1,21 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +#Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=fontcacheproto +pkgver=0.1.3 +pkgrel=1 +pkgdesc="X11 font cache extension wire protocol" +arch=('i686' 'x86_64') +url="http://xorg.freedesktop.org/" +source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2) + +build() { +  cd ${startdir}/src/${pkgname}-${pkgver} +  ./configure --prefix=/usr +  make || return 1 +} +package() { +  cd ${startdir}/src/${pkgname}-${pkgver} +  make DESTDIR=${startdir}/pkg install || return 1 +} +md5sums=('a8a50e5e995bfacb0359575faf7f6906') diff --git a/abs/not_built/core/ftgl/PKGBUILD b/abs/not_built/core/ftgl/PKGBUILD new file mode 100644 index 0000000..73fe640 --- /dev/null +++ b/abs/not_built/core/ftgl/PKGBUILD @@ -0,0 +1,27 @@ +# $Id: PKGBUILD 30671 2009-03-21 08:04:20Z eric $ +# Maintainer: Alexander Baldeck <alexander@archlinux.org> +# Contributor: tobias <tobias@archlinux.org> + +pkgname=ftgl +pkgver=2.1.3rc5 +pkgrel=1 +pkgdesc="OpenGL library to use arbitrary fonts" +arch=('i686' 'x86_64') +url="http://ftgl.wiki.sourceforge.net/" +license=('MIT') +depends=('freetype2' 'glut') +makedepends=('doxygen') +options=('!libtool') +source=(http://downloads.sourceforge.net/ftgl/$pkgname-2.1.3-rc5.tar.bz2) +md5sums=('c7879018cde844059495b3029b0b6503') + +build() { +  cd $srcdir/ftgl-2.1.3~rc5 +  ./configure --prefix=/usr --with-pic || return 1 +  make || return 1 +} +package() { +  cd $srcdir/ftgl-2.1.3~rc5 +  make DESTDIR=$pkgdir install || return 1 +  install -D -m644 COPYING $pkgdir/usr/share/licenses/$pkgname/LICENSE || return 1 +} diff --git a/abs/not_built/core/fxload/PKGBUILD b/abs/not_built/core/fxload/PKGBUILD new file mode 100644 index 0000000..e128688 --- /dev/null +++ b/abs/not_built/core/fxload/PKGBUILD @@ -0,0 +1,22 @@ +# Contributor: Jochen Immendörfer <jochen dot immendoerfer at gmail dot com> +pkgname=fxload +pkgver=2008_10_13 +pkgrel=1 +pkgdesc="fxload firmware loader. Used with udev or devfs/hotplug." +url="http://linux-hotplug.sourceforge.net/" +depends=('glibc') +makedepends=('sed') +source=(http://downloads.sourceforge.net/sourceforge/linux-hotplug/$pkgname-$pkgver.tar.gz) +md5sums=('4477a2457f064228bef4a93ba2f21692') +arch=('i686') +license=('GPL') + +build() { +  cd ${srcdir}/${pkgname}-${pkgver} +  make || return 1 +  sed -i 's|/usr/bin/install|/bin/install|' Makefile +} +package() { +  cd ${srcdir}/${pkgname}-${pkgver} +  make exec_prefix=${pkgdir} prefix=${pkgdir} install || return 1 +} diff --git a/abs/not_built/core/gen-init-cpio/Makefile b/abs/not_built/core/gen-init-cpio/Makefile new file mode 100644 index 0000000..1ebe763 --- /dev/null +++ b/abs/not_built/core/gen-init-cpio/Makefile @@ -0,0 +1,42 @@ + +DESTDIR = +PREFIX = / + +MKDIR = /bin/mkdir +INSTALL = /bin/install -c -m 755 + +CC   = /usr/bin/gcc  +LD   = /usr/bin/gcc + +CFLAGS += -Wall -Wstrict-prototypes -Wsign-compare -Wchar-subscripts \ +           -Wpointer-arith -Wcast-align -Wsign-compare + +#pretty print! +E = @echo +Q = @ + +all: gen_init_cpio +.PHONY: all +.DEFAULT: all + +%.o: %.c +	$(E) "  compile " $@ +	$(Q) $(CC) -c $(CFLAGS) $< -o $@ + +gen_init_cpio: gen_init_cpio.o +	$(E) ">>build   " $@ +	$(Q) $(LD) $(LDFLAGS) $@.o -o $@ $(LIB_OBJS) + +clean: +	$(E) "  clean   " +	$(Q) rm -f gen_init_cpio *.o +.PHONY: clean + +install: all +	$(MKDIR) -p $(DESTDIR)$(PREFIX)sbin/ +	$(INSTALL) gen_init_cpio $(DESTDIR)$(PREFIX)sbin/ +.PHONY: install + +uninstall: +	rm $(DESTDIR)$(PREFIX)sbin/gen_init_cpio +.PHONY: uninstall diff --git a/abs/not_built/core/gen-init-cpio/PKGBUILD b/abs/not_built/core/gen-init-cpio/PKGBUILD new file mode 100644 index 0000000..cad7221 --- /dev/null +++ b/abs/not_built/core/gen-init-cpio/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 60483 2009-12-05 10:21:23Z tpowa $ +# Maintainer : Tobias Powalowski <tpowa@archlinux.org> + +pkgname=gen-init-cpio +pkgver=2.6.32 +pkgrel=1 +pkgdesc="Program to compress initramfs images" +arch=('i686' 'x86_64') +license=('custom:none') +groups=('base') +url="http://www.kernel.org/" +depends=('glibc') +source=(Makefile gen_init_cpio.c) +md5sums=('8e3a142a522d65121c3bead41013be98' +         '1e930eb3d6255aca3b91a73e31bf9da6') + +build() +{ +  cd $srcdir/ +  make || return 1 +} + +package() { +  cd $srcdir/ +  make DESTDIR=$pkgdir install +} diff --git a/abs/not_built/core/gen-init-cpio/gen_init_cpio.c b/abs/not_built/core/gen-init-cpio/gen_init_cpio.c new file mode 100644 index 0000000..83b3dde --- /dev/null +++ b/abs/not_built/core/gen-init-cpio/gen_init_cpio.c @@ -0,0 +1,592 @@ +#include <stdio.h> +#include <stdlib.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <string.h> +#include <unistd.h> +#include <time.h> +#include <fcntl.h> +#include <errno.h> +#include <ctype.h> +#include <limits.h> + +/* + * Original work by Jeff Garzik + * + * External file lists, symlink, pipe and fifo support by Thayne Harbaugh + * Hard link support by Luciano Rocha + */ + +#define xstr(s) #s +#define str(s) xstr(s) + +static unsigned int offset; +static unsigned int ino = 721; + +struct file_handler { +	const char *type; +	int (*handler)(const char *line); +}; + +static void push_string(const char *name) +{ +	unsigned int name_len = strlen(name) + 1; + +	fputs(name, stdout); +	putchar(0); +	offset += name_len; +} + +static void push_pad (void) +{ +	while (offset & 3) { +		putchar(0); +		offset++; +	} +} + +static void push_rest(const char *name) +{ +	unsigned int name_len = strlen(name) + 1; +	unsigned int tmp_ofs; + +	fputs(name, stdout); +	putchar(0); +	offset += name_len; + +	tmp_ofs = name_len + 110; +	while (tmp_ofs & 3) { +		putchar(0); +		offset++; +		tmp_ofs++; +	} +} + +static void push_hdr(const char *s) +{ +	fputs(s, stdout); +	offset += 110; +} + +static void cpio_trailer(void) +{ +	char s[256]; +	const char name[] = "TRAILER!!!"; + +	sprintf(s, "%s%08X%08X%08lX%08lX%08X%08lX" +	       "%08X%08X%08X%08X%08X%08X%08X", +		"070701",		/* magic */ +		0,			/* ino */ +		0,			/* mode */ +		(long) 0,		/* uid */ +		(long) 0,		/* gid */ +		1,			/* nlink */ +		(long) 0,		/* mtime */ +		0,			/* filesize */ +		0,			/* major */ +		0,			/* minor */ +		0,			/* rmajor */ +		0,			/* rminor */ +		(unsigned)strlen(name)+1, /* namesize */ +		0);			/* chksum */ +	push_hdr(s); +	push_rest(name); + +	while (offset % 512) { +		putchar(0); +		offset++; +	} +} + +static int cpio_mkslink(const char *name, const char *target, +			 unsigned int mode, uid_t uid, gid_t gid) +{ +	char s[256]; +	time_t mtime = time(NULL); + +	sprintf(s,"%s%08X%08X%08lX%08lX%08X%08lX" +	       "%08X%08X%08X%08X%08X%08X%08X", +		"070701",		/* magic */ +		ino++,			/* ino */ +		S_IFLNK | mode,		/* mode */ +		(long) uid,		/* uid */ +		(long) gid,		/* gid */ +		1,			/* nlink */ +		(long) mtime,		/* mtime */ +		(unsigned)strlen(target)+1, /* filesize */ +		3,			/* major */ +		1,			/* minor */ +		0,			/* rmajor */ +		0,			/* rminor */ +		(unsigned)strlen(name) + 1,/* namesize */ +		0);			/* chksum */ +	push_hdr(s); +	push_string(name); +	push_pad(); +	push_string(target); +	push_pad(); +	return 0; +} + +static int cpio_mkslink_line(const char *line) +{ +	char name[PATH_MAX + 1]; +	char target[PATH_MAX + 1]; +	unsigned int mode; +	int uid; +	int gid; +	int rc = -1; + +	if (5 != sscanf(line, "%" str(PATH_MAX) "s %" str(PATH_MAX) "s %o %d %d", name, target, &mode, &uid, &gid)) { +		fprintf(stderr, "Unrecognized dir format '%s'", line); +		goto fail; +	} +	rc = cpio_mkslink(name, target, mode, uid, gid); + fail: +	return rc; +} + +static int cpio_mkgeneric(const char *name, unsigned int mode, +		       uid_t uid, gid_t gid) +{ +	char s[256]; +	time_t mtime = time(NULL); + +	sprintf(s,"%s%08X%08X%08lX%08lX%08X%08lX" +	       "%08X%08X%08X%08X%08X%08X%08X", +		"070701",		/* magic */ +		ino++,			/* ino */ +		mode,			/* mode */ +		(long) uid,		/* uid */ +		(long) gid,		/* gid */ +		2,			/* nlink */ +		(long) mtime,		/* mtime */ +		0,			/* filesize */ +		3,			/* major */ +		1,			/* minor */ +		0,			/* rmajor */ +		0,			/* rminor */ +		(unsigned)strlen(name) + 1,/* namesize */ +		0);			/* chksum */ +	push_hdr(s); +	push_rest(name); +	return 0; +} + +enum generic_types { +	GT_DIR, +	GT_PIPE, +	GT_SOCK +}; + +struct generic_type { +	const char *type; +	mode_t mode; +}; + +static struct generic_type generic_type_table[] = { +	[GT_DIR] = { +		.type = "dir", +		.mode = S_IFDIR +	}, +	[GT_PIPE] = { +		.type = "pipe", +		.mode = S_IFIFO +	}, +	[GT_SOCK] = { +		.type = "sock", +		.mode = S_IFSOCK +	} +}; + +static int cpio_mkgeneric_line(const char *line, enum generic_types gt) +{ +	char name[PATH_MAX + 1]; +	unsigned int mode; +	int uid; +	int gid; +	int rc = -1; + +	if (4 != sscanf(line, "%" str(PATH_MAX) "s %o %d %d", name, &mode, &uid, &gid)) { +		fprintf(stderr, "Unrecognized %s format '%s'", +			line, generic_type_table[gt].type); +		goto fail; +	} +	mode |= generic_type_table[gt].mode; +	rc = cpio_mkgeneric(name, mode, uid, gid); + fail: +	return rc; +} + +static int cpio_mkdir_line(const char *line) +{ +	return cpio_mkgeneric_line(line, GT_DIR); +} + +static int cpio_mkpipe_line(const char *line) +{ +	return cpio_mkgeneric_line(line, GT_PIPE); +} + +static int cpio_mksock_line(const char *line) +{ +	return cpio_mkgeneric_line(line, GT_SOCK); +} + +static int cpio_mknod(const char *name, unsigned int mode, +		       uid_t uid, gid_t gid, char dev_type, +		       unsigned int maj, unsigned int min) +{ +	char s[256]; +	time_t mtime = time(NULL); + +	if (dev_type == 'b') +		mode |= S_IFBLK; +	else +		mode |= S_IFCHR; + +	sprintf(s,"%s%08X%08X%08lX%08lX%08X%08lX" +	       "%08X%08X%08X%08X%08X%08X%08X", +		"070701",		/* magic */ +		ino++,			/* ino */ +		mode,			/* mode */ +		(long) uid,		/* uid */ +		(long) gid,		/* gid */ +		1,			/* nlink */ +		(long) mtime,		/* mtime */ +		0,			/* filesize */ +		3,			/* major */ +		1,			/* minor */ +		maj,			/* rmajor */ +		min,			/* rminor */ +		(unsigned)strlen(name) + 1,/* namesize */ +		0);			/* chksum */ +	push_hdr(s); +	push_rest(name); +	return 0; +} + +static int cpio_mknod_line(const char *line) +{ +	char name[PATH_MAX + 1]; +	unsigned int mode; +	int uid; +	int gid; +	char dev_type; +	unsigned int maj; +	unsigned int min; +	int rc = -1; + +	if (7 != sscanf(line, "%" str(PATH_MAX) "s %o %d %d %c %u %u", +			 name, &mode, &uid, &gid, &dev_type, &maj, &min)) { +		fprintf(stderr, "Unrecognized nod format '%s'", line); +		goto fail; +	} +	rc = cpio_mknod(name, mode, uid, gid, dev_type, maj, min); + fail: +	return rc; +} + +static int cpio_mkfile(const char *name, const char *location, +			unsigned int mode, uid_t uid, gid_t gid, +			unsigned int nlinks) +{ +	char s[256]; +	char *filebuf = NULL; +	struct stat buf; +	long size; +	int file = -1; +	int retval; +	int rc = -1; +	int namesize; +	int i; + +	mode |= S_IFREG; + +	retval = stat (location, &buf); +	if (retval) { +		fprintf (stderr, "File %s could not be located\n", location); +		goto error; +	} + +	file = open (location, O_RDONLY); +	if (file < 0) { +		fprintf (stderr, "File %s could not be opened for reading\n", location); +		goto error; +	} + +	filebuf = malloc(buf.st_size); +	if (!filebuf) { +		fprintf (stderr, "out of memory\n"); +		goto error; +	} + +	retval = read (file, filebuf, buf.st_size); +	if (retval < 0) { +		fprintf (stderr, "Can not read %s file\n", location); +		goto error; +	} + +	size = 0; +	for (i = 1; i <= nlinks; i++) { +		/* data goes on last link */ +		if (i == nlinks) size = buf.st_size; + +		namesize = strlen(name) + 1; +		sprintf(s,"%s%08X%08X%08lX%08lX%08X%08lX" +		       "%08lX%08X%08X%08X%08X%08X%08X", +			"070701",		/* magic */ +			ino,			/* ino */ +			mode,			/* mode */ +			(long) uid,		/* uid */ +			(long) gid,		/* gid */ +			nlinks,			/* nlink */ +			(long) buf.st_mtime,	/* mtime */ +			size,			/* filesize */ +			3,			/* major */ +			1,			/* minor */ +			0,			/* rmajor */ +			0,			/* rminor */ +			namesize,		/* namesize */ +			0);			/* chksum */ +		push_hdr(s); +		push_string(name); +		push_pad(); + +		if (size) { +			fwrite(filebuf, size, 1, stdout); +			offset += size; +			push_pad(); +		} + +		name += namesize; +	} +	ino++; +	rc = 0; +	 +error: +	if (filebuf) free(filebuf); +	if (file >= 0) close(file); +	return rc; +} + +static char *cpio_replace_env(char *new_location) +{ +       char expanded[PATH_MAX + 1]; +       char env_var[PATH_MAX + 1]; +       char *start; +       char *end; + +       for (start = NULL; (start = strstr(new_location, "${")); ) { +               end = strchr(start, '}'); +               if (start < end) { +                       *env_var = *expanded = '\0'; +                       strncat(env_var, start + 2, end - start - 2); +                       strncat(expanded, new_location, start - new_location); +                       strncat(expanded, getenv(env_var), PATH_MAX); +                       strncat(expanded, end + 1, PATH_MAX); +                       strncpy(new_location, expanded, PATH_MAX); +               } else +                       break; +       } + +       return new_location; +} + + +static int cpio_mkfile_line(const char *line) +{ +	char name[PATH_MAX + 1]; +	char *dname = NULL; /* malloc'ed buffer for hard links */ +	char location[PATH_MAX + 1]; +	unsigned int mode; +	int uid; +	int gid; +	int nlinks = 1; +	int end = 0, dname_len = 0; +	int rc = -1; + +	if (5 > sscanf(line, "%" str(PATH_MAX) "s %" str(PATH_MAX) +				"s %o %d %d %n", +				name, location, &mode, &uid, &gid, &end)) { +		fprintf(stderr, "Unrecognized file format '%s'", line); +		goto fail; +	} +	if (end && isgraph(line[end])) { +		int len; +		int nend; + +		dname = malloc(strlen(line)); +		if (!dname) { +			fprintf (stderr, "out of memory (%d)\n", dname_len); +			goto fail; +		} + +		dname_len = strlen(name) + 1; +		memcpy(dname, name, dname_len); + +		do { +			nend = 0; +			if (sscanf(line + end, "%" str(PATH_MAX) "s %n", +					name, &nend) < 1) +				break; +			len = strlen(name) + 1; +			memcpy(dname + dname_len, name, len); +			dname_len += len; +			nlinks++; +			end += nend; +		} while (isgraph(line[end])); +	} else { +		dname = name; +	} +	rc = cpio_mkfile(dname, cpio_replace_env(location), +	                 mode, uid, gid, nlinks); + fail: +	if (dname_len) free(dname); +	return rc; +} + +static void usage(const char *prog) +{ +	fprintf(stderr, "Usage:\n" +		"\t%s <cpio_list>\n" +		"\n" +		"<cpio_list> is a file containing newline separated entries that\n" +		"describe the files to be included in the initramfs archive:\n" +		"\n" +		"# a comment\n" +		"file <name> <location> <mode> <uid> <gid> [<hard links>]\n" +		"dir <name> <mode> <uid> <gid>\n" +		"nod <name> <mode> <uid> <gid> <dev_type> <maj> <min>\n" +		"slink <name> <target> <mode> <uid> <gid>\n" +		"pipe <name> <mode> <uid> <gid>\n" +		"sock <name> <mode> <uid> <gid>\n" +		"\n" +		"<name>       name of the file/dir/nod/etc in the archive\n" +		"<location>   location of the file in the current filesystem\n" +		"             expands shell variables quoted with ${}\n" +		"<target>     link target\n" +		"<mode>       mode/permissions of the file\n" +		"<uid>        user id (0=root)\n" +		"<gid>        group id (0=root)\n" +		"<dev_type>   device type (b=block, c=character)\n" +		"<maj>        major number of nod\n" +		"<min>        minor number of nod\n" +		"<hard links> space separated list of other links to file\n" +		"\n" +		"example:\n" +		"# A simple initramfs\n" +		"dir /dev 0755 0 0\n" +		"nod /dev/console 0600 0 0 c 5 1\n" +		"dir /root 0700 0 0\n" +		"dir /sbin 0755 0 0\n" +		"file /sbin/kinit /usr/src/klibc/kinit/kinit 0755 0 0\n", +		prog); +} + +struct file_handler file_handler_table[] = { +	{ +		.type    = "file", +		.handler = cpio_mkfile_line, +	}, { +		.type    = "nod", +		.handler = cpio_mknod_line, +	}, { +		.type    = "dir", +		.handler = cpio_mkdir_line, +	}, { +		.type    = "slink", +		.handler = cpio_mkslink_line, +	}, { +		.type    = "pipe", +		.handler = cpio_mkpipe_line, +	}, { +		.type    = "sock", +		.handler = cpio_mksock_line, +	}, { +		.type    = NULL, +		.handler = NULL, +	} +}; + +#define LINE_SIZE (2 * PATH_MAX + 50) + +int main (int argc, char *argv[]) +{ +	FILE *cpio_list; +	char line[LINE_SIZE]; +	char *args, *type; +	int ec = 0; +	int line_nr = 0; + +	if (2 != argc) { +		usage(argv[0]); +		exit(1); +	} + +	if (!strcmp(argv[1], "-")) +		cpio_list = stdin; +	else if (! (cpio_list = fopen(argv[1], "r"))) { +		fprintf(stderr, "ERROR: unable to open '%s': %s\n\n", +			argv[1], strerror(errno)); +		usage(argv[0]); +		exit(1); +	} + +	while (fgets(line, LINE_SIZE, cpio_list)) { +		int type_idx; +		size_t slen = strlen(line); + +		line_nr++; + +		if ('#' == *line) { +			/* comment - skip to next line */ +			continue; +		} + +		if (! (type = strtok(line, " \t"))) { +			fprintf(stderr, +				"ERROR: incorrect format, could not locate file type line %d: '%s'\n", +				line_nr, line); +			ec = -1; +			break; +		} + +		if ('\n' == *type) { +			/* a blank line */ +			continue; +		} + +		if (slen == strlen(type)) { +			/* must be an empty line */ +			continue; +		} + +		if (! (args = strtok(NULL, "\n"))) { +			fprintf(stderr, +				"ERROR: incorrect format, newline required line %d: '%s'\n", +				line_nr, line); +			ec = -1; +		} + +		for (type_idx = 0; file_handler_table[type_idx].type; type_idx++) { +			int rc; +			if (! strcmp(line, file_handler_table[type_idx].type)) { +				if ((rc = file_handler_table[type_idx].handler(args))) { +					ec = rc; +					fprintf(stderr, " line %d\n", line_nr); +				} +				break; +			} +		} + +		if (NULL == file_handler_table[type_idx].type) { +			fprintf(stderr, "unknown file type line %d: '%s'\n", +				line_nr, line); +		} +	} +	if (ec == 0) +		cpio_trailer(); + +	exit(ec); +} diff --git a/abs/not_built/core/giblib/PKGBUILD b/abs/not_built/core/giblib/PKGBUILD new file mode 100644 index 0000000..0771c30 --- /dev/null +++ b/abs/not_built/core/giblib/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 68040 2010-02-10 15:13:54Z giovanni $ +# Maintainer: Giovanni Scafora <giovanni@archlinux.org> +# Contributor: Tom Newsom <Jeepster@gmx.co.uk> + +pkgname=giblib +pkgver=1.2.4 +pkgrel=4 +pkgdesc="A library that feh uses as a wrapper to imlib2" +arch=('i686' 'x86_64') +url="http://freshmeat.net/projects/giblib/" +license=('MIT') +depends=('imlib2' 'libxext' 'freetype2') +options=('!libtool') +source=(ftp://ftp.archlinux.org/other/giblib/${pkgname}-${pkgver}.tar.bz2) +md5sums=('ff61760ef73421c5f02d2f6c8d3ac913') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" + +  ./configure --prefix=/usr || return 1 +  make || return 1 +  make DESTDIR="${pkgdir}" docsdir=/usr/share/doc/giblib install || return 1 + +  # Install custom license +  install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1 +} diff --git a/abs/not_built/core/glibc/PKGBUILD b/abs/not_built/core/glibc/PKGBUILD new file mode 100644 index 0000000..93a0751 --- /dev/null +++ b/abs/not_built/core/glibc/PKGBUILD @@ -0,0 +1,153 @@ +# $Id: PKGBUILD 163512 2012-07-14 13:07:15Z allan $ +# Maintainer: Allan McRae <allan@archlinux.org> + +# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc +# NOTE: valgrind requires rebuilt with each major glibc version + +pkgname=glibc +pkgver=2.16.0 +pkgrel=2 +pkgdesc="GNU C Library" +arch=('i686' 'x86_64') +url="http://www.gnu.org/software/libc" +license=('GPL' 'LGPL') +groups=('base') +depends=('linux-api-headers>=3.4' 'tzdata') +makedepends=('gcc>=4.7') +backup=(etc/gai.conf +        etc/locale.gen +        etc/nscd.conf) +options=('!strip') +install=glibc.install +source=(http://ftp.gnu.org/gnu/libc/${pkgname}-${pkgver}.tar.xz{,.sig} +        glibc-2.15-fix-res_query-assert.patch +        glibc-2.15-revert-c5a0802a.patch +        nscd.rcd +        nscd.service +        nscd.tmpfiles +        locale.gen.txt +        locale-gen) +md5sums=('80b181b02ab249524ec92822c0174cf7' +         '2a1221a15575820751c325ef4d2fbb90' +         '31f415b41197d85d3bbee3d1eecd06a3' +         '0a0383d50d63f1c02919fe9943b82014' +         '589d79041aa767a5179eaa4e2737dd3f' +         'ad8a9af15ab7eeaa23dc7ee85024af9f' +         'bccbe5619e75cf1d97312ec3681c605c' +         '07ac979b6ab5eeb778d55f041529d623' +         '476e9113489f93b348b21e144b6a8fcf') + +build() { +  cd ${srcdir}/${pkgname}-${pkgver} + +  # fix res_query assertion +  # http://sourceware.org/bugzilla/show_bug.cgi?id=13013 +  patch -p1 -i ${srcdir}/glibc-2.15-fix-res_query-assert.patch + +  # revert commit c5a0802a - causes various hangs +  # https://bugzilla.redhat.com/show_bug.cgi?id=552960 +  patch -p1 -i ${srcdir}/glibc-2.15-revert-c5a0802a.patch + +  cd ${srcdir} +  mkdir glibc-build +  cd glibc-build + +  if [[ ${CARCH} = "i686" ]]; then +    # Hack to fix NPTL issues with Xen, only required on 32bit platforms +    # TODO: make separate glibc-xen package for i686 +    export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs" +  fi + +  echo "slibdir=/lib" >> configparms + +  # remove hardening options from CFLAGS for building libraries +  CFLAGS=${CFLAGS/-fstack-protector/} +  CFLAGS=${CFLAGS/-D_FORTIFY_SOURCE=2/} + +  ${srcdir}/${pkgname}-${pkgver}/configure --prefix=/usr \ +      --libdir=/usr/lib --libexecdir=/usr/lib \ +      --with-headers=/usr/include \ +      --enable-add-ons=nptl,libidn \ +      --enable-obsolete-rpc \ +      --enable-kernel=2.6.32 \ +      --enable-bind-now --disable-profile \ +      --enable-stackguard-randomization \ +      --enable-multi-arch + +  # build libraries with hardening disabled +  echo "build-programs=no" >> configparms +  make +   +  # re-enable hardening for programs +  sed -i "/build-programs=/s#no#yes#" configparms +  echo "CC += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms +  echo "CXX += -fstack-protector -D_FORTIFY_SOURCE=2" >> configparms +  make + +  # remove harding in preparation to run test-suite +  sed -i '2,4d' configparms +} + +check() { +  cd ${srcdir}/glibc-build +  make -k check +} + +package() { +  cd ${srcdir}/glibc-build + +  ln -s usr/lib ${pkgdir}/lib + +  install -dm755 ${pkgdir}/etc +  touch ${pkgdir}/etc/ld.so.conf + +  make install_root=${pkgdir} install + +  rm -f ${pkgdir}/etc/ld.so.{cache,conf} + +  install -dm755 ${pkgdir}/{etc/rc.d,usr/{sbin,lib/{,locale,systemd/system,tmpfiles.d}}} + +  install -m644 ${srcdir}/${pkgname}-${pkgver}/nscd/nscd.conf ${pkgdir}/etc/nscd.conf +  sed -i -e 's/^\tserver-user/#\tserver-user/' ${pkgdir}/etc/nscd.conf +  install -m755 ${srcdir}/nscd.rcd ${pkgdir}/etc/rc.d/nscd +  install -m644 ${srcdir}/nscd.service ${pkgdir}/usr/lib/systemd/system +  install -m644 ${srcdir}/nscd.tmpfiles ${pkgdir}/usr/lib/tmpfiles.d/nscd.conf + +  install -m644 ${srcdir}/${pkgname}-${pkgver}/posix/gai.conf ${pkgdir}/etc/gai.conf + +  install -m755 ${srcdir}/locale-gen ${pkgdir}/usr/sbin + +  # create /etc/locale.gen +  install -m644 ${srcdir}/locale.gen.txt ${pkgdir}/etc/locale.gen +  sed -e '1,3d' -e 's|/| |g' -e 's|\\| |g' -e 's|^|#|g' \ +    ${srcdir}/glibc-2.16.0/localedata/SUPPORTED >> ${pkgdir}/etc/locale.gen + +  if [[ ${CARCH} = "x86_64" ]]; then +    # fix paths and compliance with binary blobs... +    sed -i '/RTLDLIST/s%lib64%lib%' ${pkgdir}/usr/bin/ldd +    ln -s usr/lib ${pkgdir}/lib64 +  fi + +  # Do not strip the following files for improved debugging support +  # ("improved" as in not breaking gdb and valgrind...): +  #   ld-${pkgver}.so +  #   libc-${pkgver}.so +  #   libpthread-${pkgver}.so +  #   libthread_db-1.0.so + +  cd $pkgdir +  strip $STRIP_BINARIES sbin/{ldconfig,sln} \ +                        usr/bin/{gencat,getconf,getent,iconv,locale,localedef} \ +                        usr/bin/{makedb,pcprofiledump,pldd,rpcgen,sprof} \ +                        usr/lib/getconf/* \ +                        usr/sbin/{iconvconfig,nscd} +  [[ $CARCH = "i686" ]] && strip $STRIP_BINARIES usr/bin/lddlibc4 + +  strip $STRIP_STATIC usr/lib/*.a + +  strip $STRIP_SHARED usr/lib/{libanl,libBrokenLocale,libcidn,libcrypt}-*.so \ +                      usr/lib/libnss_{compat,db,dns,files,hesiod,nis,nisplus}-*.so \ +                      usr/lib/{libdl,libm,libnsl,libresolv,librt,libutil}-*.so \ +                      usr/lib/{libmemusage,libpcprofile,libSegFault}.so \ +                      usr/lib/{pt_chown,{audit,gconv}/*.so} +} diff --git a/abs/not_built/core/glibc/glibc-2.15-fix-res_query-assert.patch b/abs/not_built/core/glibc/glibc-2.15-fix-res_query-assert.patch new file mode 100644 index 0000000..a894da9 --- /dev/null +++ b/abs/not_built/core/glibc/glibc-2.15-fix-res_query-assert.patch @@ -0,0 +1,51 @@ +--- a/resolv/res_query.c	 ++++ a/resolv/res_query.c	 +@@ -122,6 +122,7 @@ __libc_res_nquery(res_state statp, + 		  int *resplen2) + { + 	HEADER *hp = (HEADER *) answer; ++	HEADER *hp2; + 	int n, use_malloc = 0; + 	u_int oflags = statp->_flags; +  +@@ -239,26 +240,25 @@ __libc_res_nquery(res_state statp, + 	  /* __libc_res_nsend might have reallocated the buffer.  */ + 	  hp = (HEADER *) *answerp; +  +-	/* We simplify the following tests by assigning HP to HP2.  It +-	   is easy to verify that this is the same as ignoring all +-	   tests of HP2.  */ +-	HEADER *hp2 = answerp2 ? (HEADER *) *answerp2 : hp; +- +-	if (n < (int) sizeof (HEADER) && answerp2 != NULL +-	    && *resplen2 > (int) sizeof (HEADER)) ++	/* We simplify the following tests by assigning HP to HP2 or ++	   vice versa.  It is easy to verify that this is the same as ++	   ignoring all tests of HP or HP2.  */ ++	if (answerp2 == NULL || *resplen2 < (int) sizeof (HEADER)) + 	  { +-	    /* Special case of partial answer.  */ +-	    assert (hp != hp2); +-	    hp = hp2; ++	    hp2 = hp; + 	  } +-	else if (answerp2 != NULL && *resplen2 < (int) sizeof (HEADER) +-		 && n > (int) sizeof (HEADER)) ++	else + 	  { +-	    /* Special case of partial answer.  */ +-	    assert (hp != hp2); +-	    hp2 = hp; ++	    hp2 = (HEADER *) *answerp2; ++	    if (n < (int) sizeof (HEADER)) ++	      { ++	        hp = hp2; ++	      } + 	  } +  ++	/* Make sure both hp and hp2 are defined */ ++	assert((hp != NULL) && (hp2 != NULL)); ++ + 	if ((hp->rcode != NOERROR || ntohs(hp->ancount) == 0) + 	    && (hp2->rcode != NOERROR || ntohs(hp2->ancount) == 0)) { + #ifdef DEBUG diff --git a/abs/not_built/core/glibc/glibc-2.15-revert-c5a0802a.patch b/abs/not_built/core/glibc/glibc-2.15-revert-c5a0802a.patch new file mode 100644 index 0000000..d889472 --- /dev/null +++ b/abs/not_built/core/glibc/glibc-2.15-revert-c5a0802a.patch @@ -0,0 +1,226 @@ +diff -rup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S +--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S	2011-12-22 18:04:12.937212834 +0000 ++++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S	2011-12-22 18:04:42.104222278 +0000 +@@ -137,7 +137,6 @@ __pthread_cond_wait: + 	cmpl	$PI_BIT, %eax + 	jne	18f +  +-90: + 	movl	$(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %ecx + 	movl	%ebp, %edx + 	xorl	%esi, %esi +@@ -151,9 +150,6 @@ __pthread_cond_wait: + 	sete	16(%esp) + 	je	19f +  +-	cmpl	$-EAGAIN, %eax +-	je	91f +- + 	/* Normal and PI futexes dont mix. Use normal futex functions only + 	   if the kernel does not support the PI futex functions.  */ + 	cmpl	$-ENOSYS, %eax +@@ -398,78 +394,6 @@ __pthread_cond_wait: + #endif + 	call	__lll_unlock_wake + 	jmp	11b +- +-91: +-.LcleanupSTART2: +-	/* FUTEX_WAIT_REQUEUE_PI returned EAGAIN.  We need to +-	   call it again.  */ +- +-	/* Get internal lock.  */ +-	movl	$1, %edx +-	xorl	%eax, %eax +-	LOCK +-#if cond_lock == 0 +-	cmpxchgl %edx, (%ebx) +-#else +-	cmpxchgl %edx, cond_lock(%ebx) +-#endif +-	jz	92f +- +-#if cond_lock == 0 +-	movl	%ebx, %edx +-#else +-	leal	cond_lock(%ebx), %edx +-#endif +-#if (LLL_SHARED-LLL_PRIVATE) > 255 +-	xorl	%ecx, %ecx +-#endif +-	cmpl	$-1, dep_mutex(%ebx) +-	setne	%cl +-	subl	$1, %ecx +-	andl	$(LLL_SHARED-LLL_PRIVATE), %ecx +-#if LLL_PRIVATE != 0 +-	addl	$LLL_PRIVATE, %ecx +-#endif +-	call	__lll_lock_wait +- +-92: +-	/* Increment the cond_futex value again, so it can be used as a new +-	   expected value. */ +-	addl	$1, cond_futex(%ebx) +-	movl	cond_futex(%ebx), %ebp +- +-	/* Unlock.  */ +-	LOCK +-#if cond_lock == 0 +-	subl	$1, (%ebx) +-#else +-	subl	$1, cond_lock(%ebx) +-#endif +-	je	93f +-#if cond_lock == 0 +-	movl	%ebx, %eax +-#else +-	leal	cond_lock(%ebx), %eax +-#endif +-#if (LLL_SHARED-LLL_PRIVATE) > 255 +-	xorl	%ecx, %ecx +-#endif +-	cmpl	$-1, dep_mutex(%ebx) +-	setne	%cl +-	subl	$1, %ecx +-	andl	$(LLL_SHARED-LLL_PRIVATE), %ecx +-#if LLL_PRIVATE != 0 +-	addl	$LLL_PRIVATE, %ecx +-#endif +-	call	__lll_unlock_wake +- +-93: +-	/* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */ +-	xorl	%ecx, %ecx +-	movl	dep_mutex(%ebx), %edi +-	jmp	90b +-.LcleanupEND2: +- + 	.size	__pthread_cond_wait, .-__pthread_cond_wait + versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait, + 		  GLIBC_2_3_2) +@@ -642,10 +566,6 @@ __condvar_w_cleanup: + 	.long	.LcleanupEND-.Lsub_cond_futex + 	.long	__condvar_w_cleanup-.LSTARTCODE + 	.uleb128  0 +-	.long	.LcleanupSTART2-.LSTARTCODE +-	.long	.LcleanupEND2-.LcleanupSTART2 +-	.long	__condvar_w_cleanup-.LSTARTCODE +-	.uleb128  0 + 	.long	.LcallUR-.LSTARTCODE + 	.long	.LENDCODE-.LcallUR + 	.long	0 +Only in b/nptl/sysdeps/unix/sysv/linux/i386/i486: pthread_cond_wait.S.orig +diff -rup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S +--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S	2011-12-22 18:04:12.941212837 +0000 ++++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S	2011-12-22 18:05:05.155229737 +0000 +@@ -23,7 +23,6 @@ + #include <lowlevelcond.h> + #include <tcb-offsets.h> + #include <pthread-pi-defines.h> +-#include <pthread-errnos.h> + #include <stap-probe.h> +  + #include <kernel-features.h> +@@ -137,14 +136,11 @@ __pthread_cond_wait: + 	cmpl	$PI_BIT, %eax + 	jne	61f +  +-90: + 	movl	$(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %esi + 	movl	$SYS_futex, %eax + 	syscall +  + 	movl	$1, %r8d +-	cmpq	$-EAGAIN, %rax +-	je	91f + #ifdef __ASSUME_REQUEUE_PI + 	jmp	62f + #else +@@ -331,70 +327,6 @@ __pthread_cond_wait: +  + 13:	movq	%r10, %rax + 	jmp	14b +- +-91: +-.LcleanupSTART2: +-	/* FUTEX_WAIT_REQUEUE_PI returned EAGAIN.  We need to +-	   call it again.  */ +-	movq	8(%rsp), %rdi +- +-	/* Get internal lock.  */ +-	movl	$1, %esi +-	xorl	%eax, %eax +-	LOCK +-#if cond_lock == 0 +-	cmpxchgl %esi, (%rdi) +-#else +-	cmpxchgl %esi, cond_lock(%rdi) +-#endif +-	jz	92f +- +-#if cond_lock != 0 +-	addq	$cond_lock, %rdi +-#endif +-	LP_OP(cmp) $-1, dep_mutex-cond_lock(%rdi) +-	movl	$LLL_PRIVATE, %eax +-	movl	$LLL_SHARED, %esi +-	cmovne	%eax, %esi +-	callq	__lll_lock_wait +-#if cond_lock != 0 +-	subq	$cond_lock, %rdi +-#endif +-92: +-	/* Increment the cond_futex value again, so it can be used as a new +-	   expected value. */ +-	incl	cond_futex(%rdi) +-	movl	cond_futex(%rdi), %edx +- +-	/* Release internal lock.  */ +-	LOCK +-#if cond_lock == 0 +-	decl	(%rdi) +-#else +-	decl	cond_lock(%rdi) +-#endif +-	jz	93f +- +-#if cond_lock != 0 +-	addq	$cond_lock, %rdi +-#endif +-	LP_OP(cmp) $-1, dep_mutex-cond_lock(%rdi) +-	movl	$LLL_PRIVATE, %eax +-	movl	$LLL_SHARED, %esi +-	cmovne	%eax, %esi +-	/* The call preserves %rdx.  */ +-	callq	__lll_unlock_wake +-#if cond_lock != 0 +-	subq	$cond_lock, %rdi +-#endif +-93: +-	/* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */ +-	xorq	%r10, %r10 +-	mov	dep_mutex(%rdi), %R8_LP +-	leaq	cond_futex(%rdi), %rdi +-	jmp	90b +-.LcleanupEND2: +- + 	.size	__pthread_cond_wait, .-__pthread_cond_wait + versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait, + 		  GLIBC_2_3_2) +@@ -547,15 +479,11 @@ __condvar_cleanup1: + 	.uleb128 .LcleanupSTART-.LSTARTCODE + 	.uleb128 .LcleanupEND-.LcleanupSTART + 	.uleb128 __condvar_cleanup1-.LSTARTCODE +-	.uleb128 0 +-	.uleb128 .LcleanupSTART2-.LSTARTCODE +-	.uleb128 .LcleanupEND2-.LcleanupSTART2 +-	.uleb128 __condvar_cleanup1-.LSTARTCODE +-	.uleb128 0 ++	.uleb128  0 + 	.uleb128 .LcallUR-.LSTARTCODE + 	.uleb128 .LENDCODE-.LcallUR + 	.uleb128 0 +-	.uleb128 0 ++	.uleb128  0 + .Lcstend: +  diff --git a/abs/not_built/core/glibc/glibc.install b/abs/not_built/core/glibc/glibc.install new file mode 100644 index 0000000..7f85ade --- /dev/null +++ b/abs/not_built/core/glibc/glibc.install @@ -0,0 +1,20 @@ +infodir=usr/share/info +filelist=(libc.info{,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11}) + +post_upgrade() { +  sbin/ldconfig -r . +  [ -x sbin/init ] && sbin/init u +  usr/sbin/locale-gen +   +  [ -x usr/bin/install-info ] || return 0 +  for file in ${filelist[@]}; do +    usr/bin/install-info $infodir/$file.gz $infodir/dir 2> /dev/null +  done +} + +pre_remove() { +  [ -x usr/bin/install-info ] || return 0 +  for file in ${filelist[@]}; do +    usr/bin/install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null +  done +} diff --git a/abs/not_built/core/glibc/locale-gen b/abs/not_built/core/glibc/locale-gen new file mode 100755 index 0000000..5aff344 --- /dev/null +++ b/abs/not_built/core/glibc/locale-gen @@ -0,0 +1,42 @@ +#!/bin/sh + +set -e + +LOCALEGEN=/etc/locale.gen +LOCALES=/usr/share/i18n/locales +if [ -n "$POSIXLY_CORRECT" ]; then +  unset POSIXLY_CORRECT +fi + + +[ -f $LOCALEGEN -a -s $LOCALEGEN ] || exit 0; + +# Remove all old locale dir and locale-archive before generating new +# locale data. +rm -rf /usr/lib/locale/* || true + +umask 022 + +is_entry_ok() { +  if [ -n "$locale" -a -n "$charset" ] ; then +    true +  else +    echo "error: Bad entry '$locale $charset'" +    false +  fi +} + +echo "Generating locales..." +while read locale charset; do \ +	case $locale in \#*) continue;; "") continue;; esac; \ +	is_entry_ok || continue +	echo -n "  `echo $locale | sed 's/\([^.\@]*\).*/\1/'`"; \ +	echo -n ".$charset"; \ +	echo -n `echo $locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`; \ +	echo -n '...'; \ +        if [ -f $LOCALES/$locale ]; then input=$locale; else \ +        input=`echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; fi; \ +	localedef -i $input -c -f $charset -A /usr/share/locale/locale.alias $locale; \ +	echo ' done'; \ +done < $LOCALEGEN +echo "Generation complete." diff --git a/abs/not_built/core/glibc/locale.gen.txt b/abs/not_built/core/glibc/locale.gen.txt new file mode 100644 index 0000000..ccdd817 --- /dev/null +++ b/abs/not_built/core/glibc/locale.gen.txt @@ -0,0 +1,23 @@ +# Configuration file for locale-gen +# +# lists of locales that are to be generated by the locale-gen command. +# +# Each line is of the form: +# +#     <locale> <charset> +# +#  where <locale> is one of the locales given in /usr/share/i18n/locales +#  and <charset> is one of the character sets listed in /usr/share/i18n/charmaps +# +#  Examples: +#  en_US ISO-8859-1 +#  en_US.UTF-8 UTF-8 +#  de_DE ISO-8859-1 +#  de_DE@euro ISO-8859-15 +# +#  The locale-gen command will generate all the locales, +#  placing them in /usr/lib/locale. +# +#  A list of supported locales is included in this file. +#  Uncomment the ones you need. +# diff --git a/abs/not_built/core/glibc/nscd.rcd b/abs/not_built/core/glibc/nscd.rcd new file mode 100755 index 0000000..4b48ab0 --- /dev/null +++ b/abs/not_built/core/glibc/nscd.rcd @@ -0,0 +1,65 @@ +#!/bin/bash + +daemon_name="nscd" + +. /etc/rc.conf +. /etc/rc.d/functions + + +get_pid() { +	pidof -o %PPID $daemon_name +} + +case "$1" in +	start) +		stat_busy "Starting $daemon_name daemon" +		PID=$(get_pid) +		if [[ -z $PID ]]; then +			rm -f /run/$daemon_name.pid +			mkdir -p /run/nscd /var/db/nscd +			rm -f /run/nscd/* /var/db/nscd/* +			$daemon_name +			if (( $? > 0 )); then +				stat_fail +				exit 1 +			else +				echo $(get_pid) > /var/run/$daemon_name.pid +				add_daemon $daemon_name +				stat_done +			fi +		else +			stat_fail +			exit 1 +		fi +		;; + +	stop) +		stat_busy "Stopping $daemon_name daemon" +		PID=$(get_pid) +		[[ -n $PID ]] && nscd --shutdown &> /dev/null +		if (( $? > 0 )); then +			stat_fail +			exit 1 +		else +			rm -f /run/$daemon_name.pid &> /dev/null +			rm_daemon $daemon_name +			stat_done +		fi +		;; + +	restart) +		$0 stop +		sleep 3 +		$0 start +		;; + +	status) +		stat_busy "Checking $daemon_name status"; +		ck_status $daemon_name +		;; + +	*) +		echo "usage: $0 {start|stop|restart|status}" +esac + +exit 0 diff --git a/abs/not_built/core/glibc/nscd.service b/abs/not_built/core/glibc/nscd.service new file mode 100644 index 0000000..de5315e --- /dev/null +++ b/abs/not_built/core/glibc/nscd.service @@ -0,0 +1,17 @@ +[Unit] +Description=Name Service Cache Daemon +After=syslog.target +  +[Service] +Type=forking +ExecStart=/usr/sbin/nscd +ExecStop=/usr/sbin/nscd --shutdown +ExecReload=/usr/sbin/nscd -i passwd +ExecReload=/usr/sbin/nscd -i group +ExecReload=/usr/sbin/nscd -i hosts +ExecReload=/usr/sbin/nscd -i service +Restart=always +PIDFile=/run/nscd/nscd.pid +  +[Install] +WantedBy=multi-user.target diff --git a/abs/not_built/core/glibc/nscd.tmpfiles b/abs/not_built/core/glibc/nscd.tmpfiles new file mode 100644 index 0000000..8a24a78 --- /dev/null +++ b/abs/not_built/core/glibc/nscd.tmpfiles @@ -0,0 +1 @@ +d /run/nscd 0755 root root diff --git a/abs/not_built/core/grub-gfx/040_all_grub-0.96-nxstack.patch b/abs/not_built/core/grub-gfx/040_all_grub-0.96-nxstack.patch new file mode 100644 index 0000000..121941c --- /dev/null +++ b/abs/not_built/core/grub-gfx/040_all_grub-0.96-nxstack.patch @@ -0,0 +1,623 @@ +Fix NX segfaulting on amd64. + +Patch by Peter Jones. + +http://lists.gnu.org/archive/html/bug-grub/2005-03/msg00011.html + +--- grub-0.97/grub/asmstub.c ++++ grub-0.97/grub/asmstub.c +@@ -42,6 +42,7 @@ + #include <sys/time.h> + #include <termios.h> + #include <signal.h> ++#include <sys/mman.h> +  + #ifdef __linux__ + # include <sys/ioctl.h>		/* ioctl */ +@@ -79,7 +80,7 @@ + struct apm_info apm_bios_info; +  + /* Emulation requirements. */ +-char *grub_scratch_mem = 0; ++void *grub_scratch_mem = 0; +  + struct geometry *disks = 0; +  +@@ -103,14 +104,62 @@ + static unsigned int serial_speed; + #endif /* SIMULATE_SLOWNESS_OF_SERIAL */ +  ++/* This allocates page-aligned storage of the specified size, which must be ++ * a multiple of the page size as determined by calling sysconf(_SC_PAGESIZE) ++ */ ++#ifdef __linux__ ++static void * ++grub_mmap_alloc(size_t len) ++{ ++  int mmap_flags = MAP_ANONYMOUS|MAP_PRIVATE|MAP_EXECUTABLE; ++ ++#ifdef MAP_32BIT ++  mmap_flags |= MAP_32BIT; ++#endif ++  /* Mark the simulated stack executable, as GCC uses stack trampolines ++   * to implement nested functions. */ ++  return mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC, mmap_flags, -1, 0); ++} ++#else /* !defined(__linux__) */ ++static void * ++grub_mmap_alloc(size_t len) ++{ ++  int fd = 0, offset = 0, ret = 0; ++  void *pa = MAP_FAILED;  ++  char template[] = "/tmp/grub_mmap_alloc_XXXXXX"; ++  errno_t e; ++ ++  fd = mkstemp(template); ++  if (fd < 0) ++    return pa; ++ ++  unlink(template); ++ ++  ret = ftruncate(fd, len); ++  if (ret < 0) ++    return pa; ++ ++  /* Mark the simulated stack executable, as GCC uses stack trampolines ++   * to implement nested functions. */ ++  pa = mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC, ++                  MAP_PRIVATE|MAP_EXECUTABLE, fd, offset); ++ ++  e = errno; ++  close(fd); ++  errno = e; ++  return pa; ++} ++#endif /* defined(__linux__) */ ++ + /* The main entry point into this mess. */ + int + grub_stage2 (void) + { +   /* These need to be static, because they survive our stack transitions. */ +   static int status = 0; +-  static char *realstack; +-  char *scratch, *simstack; ++  static void *realstack; ++  void *simstack_alloc_base, *simstack; ++  size_t simstack_size, page_size; +   int i; +  +   /* We need a nested function so that we get a clean stack frame, +@@ -140,9 +189,35 @@ +   } +  +   assert (grub_scratch_mem == 0); +-  scratch = malloc (0x100000 + EXTENDED_MEMSIZE + 15); +-  assert (scratch); +-  grub_scratch_mem = (char *) ((((int) scratch) >> 4) << 4); ++ ++  /* Allocate enough pages for 0x100000 + EXTENDED_SIZE + 15, and ++   * make sure the memory is aligned to a multiple of the system's ++   * page size */ ++  page_size = sysconf (_SC_PAGESIZE); ++  simstack_size = ( 0x100000 + EXTENDED_MEMSIZE + 15); ++  if (simstack_size % page_size) ++    { ++      /* If we're not on a page_size boundary, round up to the next one */ ++      simstack_size &= ~(page_size-1); ++      simstack_size += page_size; ++    } ++ ++  /* Add one for a PROT_NONE boundary page at each end. */ ++  simstack_size += 2 * page_size; ++ ++  simstack_alloc_base = grub_mmap_alloc(simstack_size); ++  assert (simstack_alloc_base != MAP_FAILED); ++ ++  /* mark pages above and below our simstack area as innaccessable. ++   * If the implementation we're using doesn't support that, then the ++   * new protection modes are undefined.  It's safe to just ignore ++   * them, though.  It'd be nice if we knew that we'd get a SEGV for ++   * touching the area, but that's all.  it'd be nice to have. */ ++  mprotect (simstack_alloc_base, page_size, PROT_NONE); ++  mprotect ((void *)((unsigned long)simstack_alloc_base + ++                         simstack_size - page_size),  page_size, PROT_NONE); ++ ++  grub_scratch_mem = (void *)((unsigned long)simstack_alloc_base + page_size); +  +   /* FIXME: simulate the memory holes using mprot, if available. */ +  +@@ -215,7 +290,7 @@ +   device_map = 0; +   free (disks); +   disks = 0; +-  free (scratch); ++  munmap(simstack_alloc_base, simstack_size); +   grub_scratch_mem = 0; +  +   if (serial_device) +--- grub-0.97/stage2/builtins.c ++++ grub-0.97/stage2/builtins.c +@@ -131,63 +131,98 @@ + } +  +  ++/* blocklist_read_helper nee disk_read_blocklist_func was a nested ++ * function, to which pointers were taken and exposed globally.  Even ++ * in the GNU-C nested functions extension, they have local linkage, ++ * and aren't guaranteed to be accessable *at all* outside of their  ++ * containing scope. ++ * ++ * Above and beyond all of that, the variables within blocklist_func_context ++ * are originally local variables, with local (not even static) linkage, ++ * from within blocklist_func.  These were each referenced by ++ * disk_read_blocklist_func, which is only called from other functions ++ * through a globally scoped pointer. ++ *  ++ * The documentation in GCC actually uses the words "all hell will break ++ * loose" to describe this scenario. ++ * ++ * Also, "start_sector" was also used uninitialized, but gcc doesn't warn ++ * about it (possibly because of the scoping madness?) ++ */ ++    ++static struct { ++       int start_sector; ++       int num_sectors; ++       int num_entries; ++       int last_length; ++} blocklist_func_context = { ++       .start_sector = 0, ++       .num_sectors = 0, ++       .num_entries = 0, ++       .last_length = 0 ++}; ++ ++/* Collect contiguous blocks into one entry as many as possible, ++   and print the blocklist notation on the screen.  */ ++static void ++blocklist_read_helper (int sector, int offset, int length) ++{ ++  int *start_sector = &blocklist_func_context.start_sector; ++  int *num_sectors = &blocklist_func_context.num_sectors; ++  int *num_entries = &blocklist_func_context.num_entries; ++  int *last_length = &blocklist_func_context.last_length; ++ ++  if (*num_sectors > 0) ++  { ++    if (*start_sector + *num_sectors == sector ++      && offset == 0 && *last_length == SECTOR_SIZE) ++    { ++      *num_sectors++; ++      *last_length = length; ++      return; ++    } ++    else ++    { ++      if (*last_length == SECTOR_SIZE) ++        grub_printf ("%s%d+%d", *num_entries ? "," : "", ++          *start_sector - part_start, *num_sectors); ++      else if (*num_sectors > 1) ++        grub_printf ("%s%d+%d,%d[0-%d]", *num_entries ? "," : "", ++          *start_sector - part_start, *num_sectors-1, ++          *start_sector + *num_sectors-1 - part_start,  ++          *last_length); ++      else ++        grub_printf ("%s%d[0-%d]", *num_entries ? "," : "", ++          *start_sector - part_start, *last_length); ++      *num_entries++; ++      *num_sectors = 0; ++    } ++  } ++ ++  if (offset > 0) ++  { ++    grub_printf("%s%d[%d-%d]", *num_entries ? "," : "", ++          sector-part_start, offset, offset+length); ++    *num_entries++; ++  } ++  else ++  { ++    *start_sector = sector; ++    *num_sectors = 1; ++    *last_length = length; ++  } ++} ++ + /* blocklist */ + static int + blocklist_func (char *arg, int flags) + { +   char *dummy = (char *) RAW_ADDR (0x100000); +-  int start_sector; +-  int num_sectors = 0; +-  int num_entries = 0; +-  int last_length = 0; +- +-  auto void disk_read_blocklist_func (int sector, int offset, int length); +-   +-  /* Collect contiguous blocks into one entry as many as possible, +-     and print the blocklist notation on the screen.  */ +-  auto void disk_read_blocklist_func (int sector, int offset, int length) +-    { +-      if (num_sectors > 0) +-	{ +-	  if (start_sector + num_sectors == sector +-	      && offset == 0 && last_length == SECTOR_SIZE) +-	    { +-	      num_sectors++; +-	      last_length = length; +-	      return; +-	    } +-	  else +-	    { +-	      if (last_length == SECTOR_SIZE) +-		grub_printf ("%s%d+%d", num_entries ? "," : "", +-			     start_sector - part_start, num_sectors); +-	      else if (num_sectors > 1) +-		grub_printf ("%s%d+%d,%d[0-%d]", num_entries ? "," : "", +-			     start_sector - part_start, num_sectors-1, +-			     start_sector + num_sectors-1 - part_start,  +-			     last_length); +-	      else +-		grub_printf ("%s%d[0-%d]", num_entries ? "," : "", +-			     start_sector - part_start, last_length); +-	      num_entries++; +-	      num_sectors = 0; +-	    } +-	} +- +-      if (offset > 0) +-	{ +-	  grub_printf("%s%d[%d-%d]", num_entries ? "," : "", +-		      sector-part_start, offset, offset+length); +-	  num_entries++; +-	} +-      else +-	{ +-	  start_sector = sector; +-	  num_sectors = 1; +-	  last_length = length; +-	} +-    } +  ++  int *start_sector = &blocklist_func_context.start_sector; ++  int *num_sectors = &blocklist_func_context.num_sectors; ++  int *num_entries = &blocklist_func_context.num_entries; ++   +   /* Open the file.  */ +   if (! grub_open (arg)) +     return 1; +@@ -204,15 +241,15 @@ +   grub_printf (")"); +  +   /* Read in the whole file to DUMMY.  */ +-  disk_read_hook = disk_read_blocklist_func; ++  disk_read_hook = blocklist_read_helper; +   if (! grub_read (dummy, -1)) +     goto fail; +  +   /* The last entry may not be printed yet.  Don't check if it is a +    * full sector, since it doesn't matter if we read too much. */ +-  if (num_sectors > 0) +-    grub_printf ("%s%d+%d", num_entries ? "," : "", +-		 start_sector - part_start, num_sectors); ++  if (*num_sectors > 0) ++	grub_printf ("%s%d+%d", *num_entries ? "," : "", ++                *start_sector - part_start, *num_sectors); +  +   grub_printf ("\n"); +    +@@ -1868,6 +1905,77 @@ +  +  + /* install */ ++static struct { ++       int saved_sector; ++       int installaddr; ++       int installlist; ++       char *stage2_first_buffer; ++} install_func_context = { ++       .saved_sector = 0, ++       .installaddr = 0, ++       .installlist = 0, ++       .stage2_first_buffer = NULL, ++}; ++ ++/* Save the first sector of Stage2 in STAGE2_SECT.  */ ++/* Formerly disk_read_savesect_func with local scope inside install_func */ ++static void ++install_savesect_helper(int sector, int offset, int length) ++{ ++  if (debug) ++    printf ("[%d]", sector); ++ ++  /* ReiserFS has files which sometimes contain data not aligned ++     on sector boundaries.  Returning an error is better than ++     silently failing. */ ++  if (offset != 0 || length != SECTOR_SIZE) ++    errnum = ERR_UNALIGNED; ++ ++  install_func_context.saved_sector = sector; ++} ++ ++/* Write SECTOR to INSTALLLIST, and update INSTALLADDR and  INSTALLSECT.  */ ++/* Formerly disk_read_blocklist_func with local scope inside install_func */ ++static void ++install_blocklist_helper (int sector, int offset, int length) ++{ ++  int *installaddr = &install_func_context.installaddr; ++  int *installlist = &install_func_context.installlist; ++  char **stage2_first_buffer = &install_func_context.stage2_first_buffer; ++  /* Was the last sector full? */ ++  static int last_length = SECTOR_SIZE; ++ ++  if (debug) ++    printf("[%d]", sector); ++ ++  if (offset != 0 || last_length != SECTOR_SIZE) ++    { ++      /* We found a non-sector-aligned data block. */ ++      errnum = ERR_UNALIGNED; ++      return; ++    } ++ ++  last_length = length; ++ ++  if (*((unsigned long *) (*installlist - 4)) ++      + *((unsigned short *) *installlist) != sector ++      || *installlist == (int) *stage2_first_buffer + SECTOR_SIZE + 4) ++    { ++      *installlist -= 8; ++ ++      if (*((unsigned long *) (*installlist - 8))) ++        errnum = ERR_WONT_FIT; ++      else ++        { ++          *((unsigned short *) (*installlist + 2)) = (*installaddr >> 4); ++          *((unsigned long *) (*installlist - 4)) = sector; ++        } ++    } ++ ++  *((unsigned short *) *installlist) += 1; ++  *installaddr += 512; ++} ++ + static int + install_func (char *arg, int flags) + { +@@ -1875,8 +1983,12 @@ +   char *stage1_buffer = (char *) RAW_ADDR (0x100000); +   char *stage2_buffer = stage1_buffer + SECTOR_SIZE; +   char *old_sect = stage2_buffer + SECTOR_SIZE; +-  char *stage2_first_buffer = old_sect + SECTOR_SIZE; +-  char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE; ++  /* stage2_first_buffer used to be defined as: ++   * char *stage2_first_buffer = old_sect + SECTOR_SIZE;  */ ++  char **stage2_first_buffer = &install_func_context.stage2_first_buffer; ++  /* and stage2_second_buffer was: ++   * char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE; */ ++  char *stage2_second_buffer = old_sect + SECTOR_SIZE + SECTOR_SIZE; +   /* XXX: Probably SECTOR_SIZE is reasonable.  */ +   char *config_filename = stage2_second_buffer + SECTOR_SIZE; +   char *dummy = config_filename + SECTOR_SIZE; +@@ -1885,10 +1997,11 @@ +   int src_drive, src_partition, src_part_start; +   int i; +   struct geometry dest_geom, src_geom; +-  int saved_sector; ++  int *saved_sector = &install_func_context.saved_sector; +   int stage2_first_sector, stage2_second_sector; +   char *ptr; +-  int installaddr, installlist; ++  int *installaddr = &install_func_context.installaddr; ++  int *installlist = &install_func_context.installlist; +   /* Point to the location of the name of a configuration file in Stage 2.  */ +   char *config_file_location; +   /* If FILE is a Stage 1.5?  */ +@@ -1897,67 +2010,13 @@ +   int is_open = 0; +   /* If LBA is forced?  */ +   int is_force_lba = 0; +-  /* Was the last sector full? */ +-  int last_length = SECTOR_SIZE; +-   ++ ++  *stage2_first_buffer = old_sect + SECTOR_SIZE; + #ifdef GRUB_UTIL +   /* If the Stage 2 is in a partition mounted by an OS, this will store +      the filename under the OS.  */ +   char *stage2_os_file = 0; + #endif /* GRUB_UTIL */ +-   +-  auto void disk_read_savesect_func (int sector, int offset, int length); +-  auto void disk_read_blocklist_func (int sector, int offset, int length); +-   +-  /* Save the first sector of Stage2 in STAGE2_SECT.  */ +-  auto void disk_read_savesect_func (int sector, int offset, int length) +-    { +-      if (debug) +-	printf ("[%d]", sector); +- +-      /* ReiserFS has files which sometimes contain data not aligned +-         on sector boundaries.  Returning an error is better than +-         silently failing. */ +-      if (offset != 0 || length != SECTOR_SIZE) +-	errnum = ERR_UNALIGNED; +- +-      saved_sector = sector; +-    } +- +-  /* Write SECTOR to INSTALLLIST, and update INSTALLADDR and +-     INSTALLSECT.  */ +-  auto void disk_read_blocklist_func (int sector, int offset, int length) +-    { +-      if (debug) +-	printf("[%d]", sector); +- +-      if (offset != 0 || last_length != SECTOR_SIZE) +-	{ +-	  /* We found a non-sector-aligned data block. */ +-	  errnum = ERR_UNALIGNED; +-	  return; +-	} +- +-      last_length = length; +- +-      if (*((unsigned long *) (installlist - 4)) +-	  + *((unsigned short *) installlist) != sector +-	  || installlist == (int) stage2_first_buffer + SECTOR_SIZE + 4) +-	{ +-	  installlist -= 8; +- +-	  if (*((unsigned long *) (installlist - 8))) +-	    errnum = ERR_WONT_FIT; +-	  else +-	    { +-	      *((unsigned short *) (installlist + 2)) = (installaddr >> 4); +-	      *((unsigned long *) (installlist - 4)) = sector; +-	    } +-	} +- +-      *((unsigned short *) installlist) += 1; +-      installaddr += 512; +-    } +  +   /* First, check the GNU-style long option.  */ +   while (1) +@@ -1987,10 +2049,10 @@ +   addr = skip_to (0, file); +  +   /* Get the installation address.  */ +-  if (! safe_parse_maxint (&addr, &installaddr)) ++  if (! safe_parse_maxint (&addr, installaddr)) +     { +       /* ADDR is not specified.  */ +-      installaddr = 0; ++      *installaddr = 0; +       ptr = addr; +       errnum = 0; +     } +@@ -2084,17 +2146,17 @@ +     = (dest_drive & BIOS_FLAG_FIXED_DISK); +    +   /* Read the first sector of Stage 2.  */ +-  disk_read_hook = disk_read_savesect_func; +-  if (grub_read (stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE) ++  disk_read_hook = install_savesect_helper; ++  if (grub_read (*stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE) +     goto fail; +  +-  stage2_first_sector = saved_sector; ++  stage2_first_sector = *saved_sector; +    +   /* Read the second sector of Stage 2.  */ +   if (grub_read (stage2_second_buffer, SECTOR_SIZE) != SECTOR_SIZE) +     goto fail; +  +-  stage2_second_sector = saved_sector; ++  stage2_second_sector = *saved_sector; +    +   /* Check for the version of Stage 2.  */ +   if (*((short *) (stage2_second_buffer + STAGE2_VER_MAJ_OFFS)) +@@ -2110,27 +2172,27 @@ +  +   /* If INSTALLADDR is not specified explicitly in the command-line, +      determine it by the Stage 2 id.  */ +-  if (! installaddr) ++  if (! *installaddr) +     { +       if (! is_stage1_5) + 	/* Stage 2.  */ +-	installaddr = 0x8000; ++	*installaddr = 0x8000; +       else + 	/* Stage 1.5.  */ +-	installaddr = 0x2000; ++	*installaddr = 0x2000; +     } +  +   *((unsigned long *) (stage1_buffer + STAGE1_STAGE2_SECTOR)) +     = stage2_first_sector; +   *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_ADDRESS)) +-    = installaddr; ++    = *installaddr; +   *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_SEGMENT)) +-    = installaddr >> 4; ++    = *installaddr >> 4; +  +-  i = (int) stage2_first_buffer + SECTOR_SIZE - 4; ++  i = (int) *stage2_first_buffer + SECTOR_SIZE - 4; +   while (*((unsigned long *) i)) +     { +-      if (i < (int) stage2_first_buffer ++      if (i < (int) *stage2_first_buffer + 	  || (*((int *) (i - 4)) & 0x80000000) + 	  || *((unsigned short *) i) >= 0xA00 + 	  || *((short *) (i + 2)) == 0) +@@ -2144,13 +2206,13 @@ +       i -= 8; +     } +  +-  installlist = (int) stage2_first_buffer + SECTOR_SIZE + 4; +-  installaddr += SECTOR_SIZE; ++  *installlist = (int) *stage2_first_buffer + SECTOR_SIZE + 4; ++  *installaddr += SECTOR_SIZE; +    +   /* Read the whole of Stage2 except for the first sector.  */ +   grub_seek (SECTOR_SIZE); +  +-  disk_read_hook = disk_read_blocklist_func; ++  disk_read_hook = install_blocklist_helper; +   if (! grub_read (dummy, -1)) +     goto fail; +    +@@ -2233,7 +2295,7 @@ + 	  /* Skip the first sector.  */ + 	  grub_seek (SECTOR_SIZE); + 	   +-	  disk_read_hook = disk_read_savesect_func; ++	  disk_read_hook = install_savesect_helper; + 	  if (grub_read (stage2_buffer, SECTOR_SIZE) != SECTOR_SIZE) + 	    goto fail; + 	   +@@ -2303,7 +2365,7 @@ + 	  else + #endif /* GRUB_UTIL */ + 	    { +-	      if (! devwrite (saved_sector - part_start, 1, stage2_buffer)) ++	      if (! devwrite (*saved_sector - part_start, 1, stage2_buffer)) + 		goto fail; + 	    } + 	} +@@ -2325,7 +2387,7 @@ + 	  goto fail; + 	} +  +-      if (fwrite (stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE) ++      if (fwrite (*stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE) + 	{ + 	  fclose (fp); + 	  errnum = ERR_WRITE; +@@ -2352,7 +2414,7 @@ + 	goto fail; +  +       if (! devwrite (stage2_first_sector - src_part_start, 1, +-		      stage2_first_buffer)) ++		      *stage2_first_buffer)) + 	goto fail; +  +       if (! devwrite (stage2_second_sector - src_part_start, 1, +--- grub-0.97/stage2/shared.h ++++ grub-0.97/stage2/shared.h +@@ -36,8 +36,8 @@ +  + /* Maybe redirect memory requests through grub_scratch_mem. */ + #ifdef GRUB_UTIL +-extern char *grub_scratch_mem; +-# define RAW_ADDR(x) ((x) + (int) grub_scratch_mem) ++extern void *grub_scratch_mem; ++# define RAW_ADDR(x) ((x) + (unsigned long) grub_scratch_mem) + # define RAW_SEG(x) (RAW_ADDR ((x) << 4) >> 4) + #else + # define RAW_ADDR(x) (x) diff --git a/abs/not_built/core/grub-gfx/05-grub-0.97-initrdaddr.diff b/abs/not_built/core/grub-gfx/05-grub-0.97-initrdaddr.diff new file mode 100644 index 0000000..ccf5f3e --- /dev/null +++ b/abs/not_built/core/grub-gfx/05-grub-0.97-initrdaddr.diff @@ -0,0 +1,16 @@ +--- grub-0.96/stage2/boot.c ++++ grub-0.96/stage2/boot.c +@@ -824,8 +824,11 @@ +     moveto = (mbi.mem_upper + 0x400) << 10; +    +   moveto = (moveto - len) & 0xfffff000; +-  max_addr = (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0203 +-	      ? lh->initrd_addr_max : LINUX_INITRD_MAX_ADDRESS); ++  max_addr = LINUX_INITRD_MAX_ADDRESS; ++  if (lh->header == LINUX_MAGIC_SIGNATURE && ++      lh->version >= 0x0203 && ++      lh->initrd_addr_max < max_addr) ++    max_addr = lh->initrd_addr_max; +   if (moveto + len >= max_addr) +     moveto = (max_addr - len) & 0xfffff000; +    diff --git a/abs/not_built/core/grub-gfx/PKGBUILD b/abs/not_built/core/grub-gfx/PKGBUILD new file mode 100644 index 0000000..5d95294 --- /dev/null +++ b/abs/not_built/core/grub-gfx/PKGBUILD @@ -0,0 +1,106 @@ +# Maintainer: Douglas Soares de Andrade <dsandrade@gmail.com> +# Contributor: judd <jvinet@zeroflux.org> +# Contributor: Mario A. Vazquez +# Contributor: Jerzy Goca <juras256@epf.pl> + +pkgname=grub +pkgver=0.97 +pkgrel=43 +pkgdesc="A GNU multiboot boot loader" +arch=('i686' 'x86_64') +license=('GPL') +url="http://www.gnu.org/software/grub/" +depends=('ncurses') +makedepends=('automake>=1.10' 'autoconf>=2.61' 'patch') +#conflicts=('grub') +groups=('base') +provides=('grub') +source=(ftp://alpha.gnu.org/gnu/grub/grub-$pkgver.tar.gz \ +        menu.lst install-grub grub-0.97-graphics.patch \ +        splash.xpm.gz grub-inode-size.patch \ +        040_all_grub-0.96-nxstack.patch \ +        05-grub-0.97-initrdaddr.diff ext4.patch \ +        i2o.patch special-devices.patch more-raid.patch intelmac.patch) +backup=('boot/grub/menu.lst') +install=grub-gfx.install + +build() { +  cd $startdir/src/grub-$pkgver + +  #set destination architecture here +  DESTARCH="i686" +  #DESTARCH="x86_64" + +  # graphics patch +  patch -p1 < ../grub-0.97-graphics.patch || return 1 + +  # optimizations break the build -- disable them +  # adding special devices to grub, patches are from fedora +  patch -Np1 -i ../special-devices.patch || return 1 +  patch -Np1 -i ../i2o.patch || return 1 +  patch -Np1 -i ../more-raid.patch || return 1 +  patch -Np1 -i ../intelmac.patch || return 1 +  patch -Np1 -i ../grub-inode-size.patch || return 1 +  patch -Np1 -i ../ext4.patch || return 1 + +  # correcting problems for new wersion of autotools +  sed -i -e'/^AC_PROG_CC/ a\AM_PROG_CC_C_O\ ' configure.ac +  sed -i -e'/^AC_PROG_CC/ a\AM_PROG_AS\ ' configure.ac +  aclocal +  autoconf +  automake + +  #arch64 fixes for static build +  if [ "$CARCH" = "x86_64" ]; then +    echo "this package has to be build on i686, won't compile on x86_64" +    sleep 5 +  else +    if [ "$DESTARCH" = "x86_64" ]; then +      # patch from gentoo for fixing a segfault +      patch -Np1 -i ../040_all_grub-0.96-nxstack.patch || return 1 +      # patch from frugalware to make it boot when more than 2GB ram installed +      patch -Np1 -i ../05-grub-0.97-initrdaddr.diff || return 1 +      CFLAGS="-static" ./configure --prefix=/usr --bindir=/bin --sbindir=/sbin +    else +      CFLAGS= ./configure --prefix=/usr --bindir=/bin --sbindir=/sbin +    fi +  fi + +  CFLAGS= make || return 1 +  make DESTDIR=$startdir/pkg install +  install -D -m644 ../menu.lst $startdir/pkg/boot/grub/menu.lst +  install -D -m755 ../install-grub $startdir/pkg/sbin/install-grub + +  # symlink for compatibility with the <=0.7 installer +  mkdir -p $startdir/pkg/usr/share +  ln -s ../lib/grub $startdir/pkg/usr/share/grub + +  # splashimage xpm install +  install -D -m644 $startdir/splash.xpm.gz $startdir/pkg/boot/grub/splash.xpm.gz + +  # Create a symlink to people that was using it +  pushd $startdir/pkg/boot/grub/ +  ln -s splash.xpm.gz arch.xpm.gz +  popd + +  rm -f $pkgdir/usr/share/info/dir || return 1 + +  if [ "$DESTARCH" = "x86_64" ]; then +    # fool makepkg into building a x86_64 package +    export CARCH="x86_64" +  fi + +} +md5sums=('cd3f3eb54446be6003156158d51f4884' +         '58cfec4abda85307f779147ab9a6be48' +         '3182c4ae4963a16930bc772bba89dacf' +         '12f043616b51ce2ba82e46c9186a528d' +         '342f59f24cf5de5f013eacda68e617eb' +         'ada26cbc681907823cc4ff2a55b97866' +         'eb9d69c46af3a0667c1f651817d7f075' +         'ccd2d757e79e3a03dc19ede7391ed328' +         '39e0f9a05b7e04aceb24fc7bc4893e3d' +         '826fdbf446067f9861baf9f6a69a4583' +         '49f6d4bcced0bc8bbcff273f3254bbfa' +         'f41f702014a064918d7afc6fc23baa6e' +         '175dc6b9f4ab94e8056c3afb3e34460a') diff --git a/abs/not_built/core/grub-gfx/ext4.patch b/abs/not_built/core/grub-gfx/ext4.patch new file mode 100644 index 0000000..8a2f9bd --- /dev/null +++ b/abs/not_built/core/grub-gfx/ext4.patch @@ -0,0 +1,263 @@ +diff -ruNp grub-0.97/stage2/fsys_ext2fs.c grub-0.97-patch/stage2/fsys_ext2fs.c +--- grub-0.97/stage2/fsys_ext2fs.c      2004-08-08 20:19:18.000000000 +0200 ++++ grub-0.97-patch/stage2/fsys_ext2fs.c        2007-12-29 16:25:19.000000000  ++0100 +@@ -51,6 +51,9 @@ typedef unsigned int __u32; + #define EXT2_TIND_BLOCK                 (EXT2_DIND_BLOCK + 1) + #define EXT2_N_BLOCKS                   (EXT2_TIND_BLOCK + 1) +  ++/* Inode flags */ ++#define EXT4_EXTENTS_FL                 0x00080000 /* Inode uses extents */ ++ + /* include/linux/ext2_fs.h */ + struct ext2_super_block +   { +@@ -191,6 +194,42 @@ struct ext2_dir_entry + #define EXT2_DIR_REC_LEN(name_len)      (((name_len) + 8 + EXT2_DIR_ROUND) & \ +                                          ~EXT2_DIR_ROUND) +  ++/* linux/ext4_fs_extents.h */ ++/* ++ * This is the extent on-disk structure. ++ * It's used at the bottom of the tree. ++ */ ++struct ext4_extent { ++    __u32 ee_block;       /* first logical block extent covers */ ++    __u16 ee_len;         /* number of blocks covered by extent */ ++    __u16 ee_start_hi;    /* high 16 bits of physical block */ ++    __u32 ee_start;       /* low 32 bits of physical block */ ++}; ++ ++/* ++ * This is index on-disk structure. ++ * It's used at all the levels except the bottom. ++ */ ++struct ext4_extent_idx { ++    __u32 ei_block;       /* index covers logical blocks from 'block' */ ++    __u32 ei_leaf;        /* pointer to the physical block of the next * ++                                 * level. leaf or next index could be there */ ++    __u16 ei_leaf_hi;     /* high 16 bits of physical block */ ++    __u16 ei_unused; ++}; ++ ++/* ++ * Each block (leaves and indexes), even inode-stored has header. ++ */ ++struct ext4_extent_header { ++    __u16  eh_magic;       /* probably will support different formats */ ++    __u16  eh_entries;     /* number of valid entries */ ++    __u16  eh_max;         /* capacity of store in entries */ ++    __u16  eh_depth;       /* has tree real underlying blocks? */ ++    __u32  eh_generation;  /* generation of the tree */ ++}; ++ ++#define EXT4_EXT_MAGIC          0xf30a +  + /* ext2/super.c */ + #define log2(n) ffz(~(n)) +@@ -279,6 +318,26 @@ ext2_rdfsb (int fsblock, int buffer) +                  EXT2_BLOCK_SIZE (SUPERBLOCK), (char *) buffer); + } +  ++/* Walk through extents index tree to find the good leaf */ ++static struct ext4_extent_header *  ++ext4_recurse_extent_index(struct ext4_extent_header *extent_block, int logical_block) ++{ ++  int i; ++  struct ext4_extent_idx *index = (struct ext4_extent_idx *) (extent_block + 1); ++  if (extent_block->eh_magic != EXT4_EXT_MAGIC) ++    return NULL; ++  if (extent_block->eh_depth == 0) ++    return extent_block; ++  for (i = 0; i < extent_block->eh_entries; i++) ++    { ++      if (logical_block < index[i].ei_block) ++        break; ++    } ++  if (i == 0 || !ext2_rdfsb(index[i-1].ei_leaf, DATABLOCK1)) ++    return NULL; ++  return (ext4_recurse_extent_index((struct ext4_extent_header *) DATABLOCK1, logical_block)); ++} ++ + /* from +   ext2/inode.c:ext2_bmap() + */ +--- grub-0.97/stage2/fsys_ext2fs.c~	2008-12-28 20:19:00.000000000 +0100 ++++ grub-0.97/stage2/fsys_ext2fs.c	2008-12-28 20:19:00.000000000 +0100 +@@ -366,83 +366,106 @@ +     } +   printf ("logical block %d\n", logical_block); + #endif /* E2DEBUG */ +- +-  /* if it is directly pointed to by the inode, return that physical addr */ +-  if (logical_block < EXT2_NDIR_BLOCKS) +-    { +-#ifdef E2DEBUG +-      printf ("returning %d\n", (unsigned char *) (INODE->i_block[logical_block])); +-      printf ("returning %d\n", INODE->i_block[logical_block]); +-#endif /* E2DEBUG */ +-      return INODE->i_block[logical_block]; +-    } +-  /* else */ +-  logical_block -= EXT2_NDIR_BLOCKS; +-  /* try the indirect block */ +-  if (logical_block < EXT2_ADDR_PER_BLOCK (SUPERBLOCK)) ++  /* standard ext2 inode */ ++  if (!(INODE->i_flags & EXT4_EXTENTS_FL)) +     { +-      if (mapblock1 != 1 +-	  && !ext2_rdfsb (INODE->i_block[EXT2_IND_BLOCK], DATABLOCK1)) +-	{ +-	  errnum = ERR_FSYS_CORRUPT; +-	  return -1; +-	} +-      mapblock1 = 1; +-      return ((__u32 *) DATABLOCK1)[logical_block]; +-    } +-  /* else */ +-  logical_block -= EXT2_ADDR_PER_BLOCK (SUPERBLOCK); +-  /* now try the double indirect block */ +-  if (logical_block < (1 << (EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK) * 2))) +-    { +-      int bnum; +-      if (mapblock1 != 2 +-	  && !ext2_rdfsb (INODE->i_block[EXT2_DIND_BLOCK], DATABLOCK1)) +-	{ +-	  errnum = ERR_FSYS_CORRUPT; +-	  return -1; +-	} +-      mapblock1 = 2; +-      if ((bnum = (((__u32 *) DATABLOCK1) +-		   [logical_block >> EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK)])) +-	  != mapblock2 +-	  && !ext2_rdfsb (bnum, DATABLOCK2)) +-	{ +-	  errnum = ERR_FSYS_CORRUPT; +-	  return -1; +-	} +-      mapblock2 = bnum; ++      /* if it is directly pointed to by the inode, return that physical addr */ ++      if (logical_block < EXT2_NDIR_BLOCKS) ++        { ++#ifdef E2DEBUG ++          printf ("returning %d\n", (unsigned char *) (INODE->i_block[logical_block])); ++          printf ("returning %d\n", INODE->i_block[logical_block]); ++#endif /* E2DEBUG */ ++          return INODE->i_block[logical_block]; ++        } ++      /* else */ ++      logical_block -= EXT2_NDIR_BLOCKS; ++      /* try the indirect block */ ++      if (logical_block < EXT2_ADDR_PER_BLOCK (SUPERBLOCK)) ++        { ++          if (mapblock1 != 1 ++         && !ext2_rdfsb (INODE->i_block[EXT2_IND_BLOCK], DATABLOCK1)) ++       { ++         errnum = ERR_FSYS_CORRUPT; ++         return -1; ++       } ++          mapblock1 = 1; ++          return ((__u32 *) DATABLOCK1)[logical_block]; ++        } ++      /* else */ ++      logical_block -= EXT2_ADDR_PER_BLOCK (SUPERBLOCK); ++      /* now try the double indirect block */ ++      if (logical_block < (1 << (EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK) * 2))) ++        { ++          int bnum; ++          if (mapblock1 != 2 ++         && !ext2_rdfsb (INODE->i_block[EXT2_DIND_BLOCK], DATABLOCK1)) ++       { ++         errnum = ERR_FSYS_CORRUPT; ++         return -1; ++       } ++          mapblock1 = 2; ++          if ((bnum = (((__u32 *) DATABLOCK1) ++                  [logical_block >> EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK)])) ++         != mapblock2 ++         && !ext2_rdfsb (bnum, DATABLOCK2)) ++       { ++         errnum = ERR_FSYS_CORRUPT; ++         return -1; ++       } ++          mapblock2 = bnum; ++          return ((__u32 *) DATABLOCK2) ++            [logical_block & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)]; ++        } ++      /* else */ ++      mapblock2 = -1; ++      logical_block -= (1 << (EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK) * 2)); ++      if (mapblock1 != 3 ++          && !ext2_rdfsb (INODE->i_block[EXT2_TIND_BLOCK], DATABLOCK1)) ++        { ++          errnum = ERR_FSYS_CORRUPT; ++          return -1; ++        } ++      mapblock1 = 3; ++      if (!ext2_rdfsb (((__u32 *) DATABLOCK1) ++                  [logical_block >> (EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK) ++                                     * 2)], ++                  DATABLOCK2)) ++        { ++          errnum = ERR_FSYS_CORRUPT; ++          return -1; ++        } ++      if (!ext2_rdfsb (((__u32 *) DATABLOCK2) ++                  [(logical_block >> EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK)) ++                   & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)], ++                  DATABLOCK2)) ++        { ++          errnum = ERR_FSYS_CORRUPT; ++          return -1; ++        } +       return ((__u32 *) DATABLOCK2) +-	[logical_block & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)]; +-    } +-  /* else */ +-  mapblock2 = -1; +-  logical_block -= (1 << (EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK) * 2)); +-  if (mapblock1 != 3 +-      && !ext2_rdfsb (INODE->i_block[EXT2_TIND_BLOCK], DATABLOCK1)) +-    { +-      errnum = ERR_FSYS_CORRUPT; +-      return -1; ++       [logical_block & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)]; +     } +-  mapblock1 = 3; +-  if (!ext2_rdfsb (((__u32 *) DATABLOCK1) +-		   [logical_block >> (EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK) +-				      * 2)], +-		   DATABLOCK2)) +-    { +-      errnum = ERR_FSYS_CORRUPT; +-      return -1; +-    } +-  if (!ext2_rdfsb (((__u32 *) DATABLOCK2) +-		   [(logical_block >> EXT2_ADDR_PER_BLOCK_BITS (SUPERBLOCK)) +-		    & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)], +-		   DATABLOCK2)) ++  /* inode is in extents format */ ++  else +     { ++      int i; ++      struct ext4_extent_header *extent_hdr = ext4_recurse_extent_index((struct ext4_extent_header *) INODE->i_block, logical_block); ++      struct ext4_extent *extent = (struct ext4_extent *) (extent_hdr + 1); ++      if ( extent_hdr == NULL || extent_hdr->eh_magic != EXT4_EXT_MAGIC) ++      { ++        errnum = ERR_FSYS_CORRUPT; ++        return -1; ++      } ++      for (i = 0; i<extent_hdr->eh_entries; i++) ++        { ++          if (extent[i].ee_block <= logical_block && logical_block < extent[i].ee_block + extent[i].ee_len && !(extent[i].ee_len>>15)) ++            return (logical_block - extent[i].ee_block + extent[i].ee_start); ++        } ++      /* We should not arrive here */ +       errnum = ERR_FSYS_CORRUPT; +       return -1; +     } +-  return ((__u32 *) DATABLOCK2) +-    [logical_block & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)]; + } +  + /* preconditions: all preconds of ext2fs_block_map */ diff --git a/abs/not_built/core/grub-gfx/grub-0.97-graphics.patch b/abs/not_built/core/grub-gfx/grub-0.97-graphics.patch new file mode 100644 index 0000000..e0baa90 --- /dev/null +++ b/abs/not_built/core/grub-gfx/grub-0.97-graphics.patch @@ -0,0 +1,1293 @@ +diff -urpN grub-0.97/configure.ac grub-0.97-gfx/configure.ac +--- grub-0.97/configure.ac	2005-10-13 16:27:23.000000000 -0400 ++++ grub-0.97-gfx/configure.ac	2005-10-13 16:27:35.000000000 -0400 +@@ -595,6 +595,11 @@ AC_ARG_ENABLE(diskless, +   [  --enable-diskless       enable diskless support]) + AM_CONDITIONAL(DISKLESS_SUPPORT, test "x$enable_diskless" = xyes) +  ++dnl Graphical splashscreen support ++AC_ARG_ENABLE(graphics, ++  [  --disable-graphics      disable graphics terminal support]) ++AM_CONDITIONAL(GRAPHICS_SUPPORT, test "x$enable_graphics" != xno) ++ + dnl Hercules terminal + AC_ARG_ENABLE(hercules, +   [  --disable-hercules      disable hercules terminal support]) +diff -urpN grub-0.97/stage2/Makefile.am grub-0.97-gfx/stage2/Makefile.am +--- grub-0.97/stage2/Makefile.am	2005-10-13 16:27:23.000000000 -0400 ++++ grub-0.97-gfx/stage2/Makefile.am	2005-10-13 16:27:35.000000000 -0400 +@@ -7,7 +7,7 @@ noinst_HEADERS = apic.h defs.h dir.h dis +         fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \ + 	imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \ + 	nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \ +-	terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h ++	terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h graphics.h + EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS) +  + # For <stage1.h>. +@@ -19,7 +19,7 @@ libgrub_a_SOURCES = boot.c builtins.c ch + 	disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \ + 	fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \ + 	fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \ +-	terminfo.c tparm.c ++	terminfo.c tparm.c graphics.c + libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \ + 	-DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \ + 	-DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \ +@@ -79,8 +79,14 @@ else + HERCULES_FLAGS = + endif +  ++if GRAPHICS_SUPPORT ++GRAPHICS_FLAGS = -DSUPPORT_GRAPHICS=1 ++else ++GRAPHICS_FLAGS = ++endif ++ + STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ +-	$(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) ++	$(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) $(GRAPHICS_FLAGS) +  + STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000 + STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1 +@@ -90,7 +96,8 @@ pre_stage2_exec_SOURCES = asm.S bios.c b + 	cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \ + 	fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \ + 	fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \ +-	hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c ++	hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c \ ++	graphics.c + pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) + pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) + pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK) +diff -urpN grub-0.97/stage2/asm.S grub-0.97-gfx/stage2/asm.S +--- grub-0.97/stage2/asm.S	2005-10-13 16:27:23.000000000 -0400 ++++ grub-0.97-gfx/stage2/asm.S	2005-10-13 16:27:35.000000000 -0400 +@@ -2216,6 +2216,156 @@ ENTRY(console_setcursor) + 	pop	%ebx + 	pop	%ebp + 	ret ++ ++/* graphics mode functions */ ++#ifdef SUPPORT_GRAPHICS ++VARIABLE(cursorX) ++.word	0 ++VARIABLE(cursorY) ++.word	0 ++VARIABLE(cursorCount) ++.word 0 ++VARIABLE(cursorBuf) ++.byte	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ++ ++	 ++/* ++ * int set_videomode(mode) ++ * BIOS call "INT 10H Function 0h" to set video mode ++ *	Call with	%ah = 0x0 ++ *			%al = video mode ++ *      Returns old videomode. ++ */ ++ENTRY(set_videomode) ++	push	%ebp ++	push	%ebx ++	push	%ecx ++ ++	movb	0x10(%esp), %cl ++ ++	call	EXT_C(prot_to_real) ++	.code16 ++ ++	xorw	%bx, %bx ++	movb	$0xf, %ah ++	int	$0x10			/* Get Current Video mode */ ++	movb	%al, %ch ++	xorb	%ah, %ah ++	movb	%cl, %al ++        int	$0x10			/* Set Video mode */ ++ ++	DATA32	call	EXT_C(real_to_prot) ++	.code32 ++ ++	xorb	%ah, %ah ++	movb	%ch, %al ++ ++	pop	%ecx ++	pop	%ebx ++	pop	%ebp ++	ret ++ ++ ++/* ++ * unsigned char * graphics_get_font() ++ * BIOS call "INT 10H Function 11h" to set font ++ *      Call with       %ah = 0x11 ++ */ ++ENTRY(graphics_get_font) ++	push	%ebp ++	push	%ebx ++	push	%ecx ++	push	%edx ++ ++	call	EXT_C(prot_to_real) ++	.code16 ++ ++	movw	$0x1130, %ax ++	movb	$6, %bh		/* font 8x16 */ ++	int	$0x10 ++	movw	%bp, %dx ++	movw	%es, %cx ++ ++	DATA32	call	EXT_C(real_to_prot) ++	.code32 ++ ++	xorl	%eax, %eax ++	movw	%cx, %ax ++	shll	$4, %eax ++	movw	%dx, %ax ++ ++	pop	%edx ++	pop	%ecx ++	pop	%ebx ++	pop	%ebp ++	ret ++	 ++ ++	 ++/* ++ * graphics_set_palette(index, red, green, blue) ++ * BIOS call "INT 10H Function 10h" to set individual dac register ++ *	Call with	%ah = 0x10 ++ *			%bx = register number ++ *			%ch = new value for green (0-63) ++ *			%cl = new value for blue (0-63) ++ *			%dh = new value for red (0-63) ++ */ ++ ++ENTRY(graphics_set_palette) ++	push	%ebp ++	push	%eax ++	push	%ebx ++	push	%ecx ++	push	%edx ++ ++	movw	$0x3c8, %bx		/* address write mode register */ ++ ++	/* wait vertical retrace */ ++ ++	movw	$0x3da, %dx ++l1b:	inb	%dx, %al	/* wait vertical active display */ ++	test	$8, %al ++	jnz	l1b ++ ++l2b:	inb	%dx, %al	/* wait vertical retrace */ ++	test	$8, %al ++	jnz	l2b ++ ++	mov	%bx, %dx ++	movb	0x18(%esp), %al		/* index */ ++	outb	%al, %dx ++	inc	%dx ++ ++	movb	0x1c(%esp), %al		/* red */ ++	outb	%al, %dx ++ ++	movb	0x20(%esp), %al		/* green */ ++	outb	%al, %dx ++ ++	movb	0x24(%esp), %al		/* blue */ ++	outb	%al, %dx ++ ++	movw	0x18(%esp), %bx ++ ++	call	EXT_C(prot_to_real) ++	.code16 ++ ++	movb	%bl, %bh ++	movw	$0x1000, %ax ++	int	$0x10 ++ ++	DATA32	call	EXT_C(real_to_prot) ++	.code32	 ++ ++	pop	%edx ++	pop	%ecx ++	pop	%ebx ++	pop	%eax ++	pop	%ebp ++	ret ++ ++#endif /* SUPPORT_GRAPHICS */ + 		 + /* +  * getrtsecs() +diff -urpN grub-0.97/stage2/builtins.c grub-0.97-gfx/stage2/builtins.c +--- grub-0.97/stage2/builtins.c	2005-10-13 16:27:23.000000000 -0400 ++++ grub-0.97-gfx/stage2/builtins.c	2005-10-13 16:27:35.000000000 -0400 +@@ -852,6 +852,138 @@ static struct builtin builtin_dhcp = + }; + #endif /* SUPPORT_NETBOOT */ +  ++static int terminal_func (char *arg, int flags); ++ ++#ifdef SUPPORT_GRAPHICS ++ ++static int splashimage_func(char *arg, int flags) { ++    char splashimage[64]; ++    int i; ++     ++    /* filename can only be 64 characters due to our buffer size */ ++    if (strlen(arg) > 63) ++	return 1; ++    if (flags == BUILTIN_CMDLINE) { ++	if (!grub_open(arg)) ++	    return 1; ++	grub_close(); ++    } ++ ++    strcpy(splashimage, arg); ++ ++    /* get rid of TERM_NEED_INIT from the graphics terminal. */ ++    for (i = 0; term_table[i].name; i++) { ++	if (grub_strcmp (term_table[i].name, "graphics") == 0) { ++	    term_table[i].flags &= ~TERM_NEED_INIT; ++	    break; ++	} ++    } ++     ++    graphics_set_splash(splashimage); ++ ++    if (flags == BUILTIN_CMDLINE && graphics_inited) { ++	graphics_end(); ++	graphics_init(); ++	graphics_cls(); ++    } ++ ++    /* FIXME: should we be explicitly switching the terminal as a  ++     * side effect here? */ ++    terminal_func("graphics", flags); ++ ++    return 0; ++} ++ ++static struct builtin builtin_splashimage = ++{ ++  "splashimage", ++  splashimage_func, ++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++  "splashimage FILE", ++  "Load FILE as the background image when in graphics mode." ++}; ++ ++ ++/* foreground */ ++static int ++foreground_func(char *arg, int flags) ++{ ++    if (grub_strlen(arg) == 6) { ++	int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2; ++	int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2; ++	int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2; ++ ++	foreground = (r << 16) | (g << 8) | b; ++	if (graphics_inited) ++	    graphics_set_palette(15, r, g, b); ++ ++	return (0); ++    } ++ ++    return (1); ++} ++ ++static struct builtin builtin_foreground = ++{ ++  "foreground", ++  foreground_func, ++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++  "foreground RRGGBB", ++  "Sets the foreground color when in graphics mode." ++  "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal." ++}; ++ ++ ++/* background */ ++static int ++background_func(char *arg, int flags) ++{ ++    if (grub_strlen(arg) == 6) { ++	int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2; ++	int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2; ++	int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2; ++ ++	background = (r << 16) | (g << 8) | b; ++	if (graphics_inited) ++	    graphics_set_palette(0, r, g, b); ++	return (0); ++    } ++ ++    return (1); ++} ++ ++static struct builtin builtin_background = ++{ ++  "background", ++  background_func, ++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++  "background RRGGBB", ++  "Sets the background color when in graphics mode." ++  "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal." ++}; ++ ++#endif /* SUPPORT_GRAPHICS */ ++ ++ ++/* clear */ ++static int  ++clear_func()  ++{ ++  if (current_term->cls) ++    current_term->cls(); ++ ++  return 0; ++} ++ ++static struct builtin builtin_clear = ++{ ++  "clear", ++  clear_func, ++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++  "clear", ++  "Clear the screen" ++}; ++ +  + /* displayapm */ + static int +@@ -4085,7 +4217,7 @@ static struct builtin builtin_setup = + }; +  +  +-#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) ++#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS) + /* terminal */ + static int + terminal_func (char *arg, int flags) +@@ -4244,17 +4376,21 @@ terminal_func (char *arg, int flags) +  end: +   current_term = term_table + default_term; +   current_term->flags = term_flags; +-   ++ +   if (lines) +     max_lines = lines; +   else +-    /* 24 would be a good default value.  */ +-    max_lines = 24; +-   ++    max_lines = current_term->max_lines; ++ +   /* If the interface is currently the command-line, +      restart it to repaint the screen.  */ +-  if (current_term != prev_term && (flags & BUILTIN_CMDLINE)) ++  if ((current_term != prev_term) && (flags & BUILTIN_CMDLINE)){ ++    if (prev_term->shutdown) ++      prev_term->shutdown(); ++    if (current_term->startup) ++      current_term->startup(); +     grub_longjmp (restart_cmdline_env, 0); ++  } +    +   return 0; + } +@@ -4264,7 +4400,7 @@ static struct builtin builtin_terminal = +   "terminal", +   terminal_func, +   BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST, +-  "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules]", ++  "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules] [graphics]", +   "Select a terminal. When multiple terminals are specified, wait until" +   " you push any key to continue. If both console and serial are specified," +   " the terminal to which you input a key first will be selected. If no" +@@ -4276,7 +4412,7 @@ static struct builtin builtin_terminal = +   " seconds. The option --lines specifies the maximum number of lines." +   " The option --silent is used to suppress messages." + }; +-#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */ ++#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */ +  +  + #ifdef SUPPORT_SERIAL +@@ -4795,6 +4931,9 @@ static struct builtin builtin_vbeprobe = + /* The table of builtin commands. Sorted in dictionary order.  */ + struct builtin *builtin_table[] = + { ++#ifdef SUPPORT_GRAPHICS ++  &builtin_background, ++#endif +   &builtin_blocklist, +   &builtin_boot, + #ifdef SUPPORT_NETBOOT +@@ -4802,6 +4941,7 @@ struct builtin *builtin_table[] = + #endif /* SUPPORT_NETBOOT */ +   &builtin_cat, +   &builtin_chainloader, ++  &builtin_clear, +   &builtin_cmp, +   &builtin_color, +   &builtin_configfile, +@@ -4821,6 +4961,9 @@ struct builtin *builtin_table[] = +   &builtin_embed, +   &builtin_fallback, +   &builtin_find, ++#ifdef SUPPORT_GRAPHICS ++  &builtin_foreground, ++#endif +   &builtin_fstest, +   &builtin_geometry, +   &builtin_halt, +@@ -4864,9 +5007,12 @@ struct builtin *builtin_table[] = + #endif /* SUPPORT_SERIAL */ +   &builtin_setkey, +   &builtin_setup, +-#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) ++#ifdef SUPPORT_GRAPHICS ++  &builtin_splashimage, ++#endif /* SUPPORT_GRAPHICS */ ++#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS) +   &builtin_terminal, +-#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */ ++#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */ + #ifdef SUPPORT_SERIAL +   &builtin_terminfo, + #endif /* SUPPORT_SERIAL */ +diff -urpN grub-0.97/stage2/char_io.c grub-0.97-gfx/stage2/char_io.c +--- grub-0.97/stage2/char_io.c	2005-10-13 16:27:23.000000000 -0400 ++++ grub-0.97-gfx/stage2/char_io.c	2005-10-13 16:27:35.000000000 -0400 +@@ -35,6 +35,7 @@ struct term_entry term_table[] = +     { +       "console", +       0, ++      24, +       console_putchar, +       console_checkkey, +       console_getkey, +@@ -43,13 +44,16 @@ struct term_entry term_table[] = +       console_cls, +       console_setcolorstate, +       console_setcolor, +-      console_setcursor ++      console_setcursor, ++      0,  ++      0 +     }, + #ifdef SUPPORT_SERIAL +     { +       "serial", +       /* A serial device must be initialized.  */ +       TERM_NEED_INIT, ++      24, +       serial_putchar, +       serial_checkkey, +       serial_getkey, +@@ -58,6 +62,8 @@ struct term_entry term_table[] = +       serial_cls, +       serial_setcolorstate, +       0, ++      0, ++      0,  +       0 +     }, + #endif /* SUPPORT_SERIAL */ +@@ -65,6 +71,7 @@ struct term_entry term_table[] = +     { +       "hercules", +       0, ++      24, +       hercules_putchar, +       console_checkkey, +       console_getkey, +@@ -73,9 +80,28 @@ struct term_entry term_table[] = +       hercules_cls, +       hercules_setcolorstate, +       hercules_setcolor, +-      hercules_setcursor ++      hercules_setcursor, ++      0, ++      0 +     },       + #endif /* SUPPORT_HERCULES */ ++#ifdef SUPPORT_GRAPHICS ++    { "graphics", ++      TERM_NEED_INIT, /* flags */ ++      30, /* number of lines */ ++      graphics_putchar, /* putchar */ ++      console_checkkey, /* checkkey */ ++      console_getkey, /* getkey */ ++      graphics_getxy, /* getxy */ ++      graphics_gotoxy, /* gotoxy */ ++      graphics_cls, /* cls */ ++      graphics_setcolorstate, /* setcolorstate */ ++      graphics_setcolor, /* setcolor */ ++      graphics_setcursor, /* nocursor */ ++      graphics_init, /* initialize */ ++      graphics_end /* shutdown */ ++    }, ++#endif /* SUPPORT_GRAPHICS */ +     /* This must be the last entry.  */ +     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } +   }; +@@ -1046,13 +1072,15 @@ grub_putchar (int c) + 		 the following grub_printf call will print newlines.  */ + 	      count_lines = -1; +  ++	      grub_printf("\n"); + 	      if (current_term->setcolorstate) + 		current_term->setcolorstate (COLOR_STATE_HIGHLIGHT); + 	       +-	      grub_printf ("\n[Hit return to continue]"); ++	      grub_printf ("[Hit return to continue]"); +  + 	      if (current_term->setcolorstate) + 		current_term->setcolorstate (COLOR_STATE_NORMAL); ++	         + 	       + 	      do + 		{ +@@ -1090,7 +1118,7 @@ void + cls (void) + { +   /* If the terminal is dumb, there is no way to clean the terminal.  */ +-  if (current_term->flags & TERM_DUMB) ++  if (current_term->flags & TERM_DUMB)  +     grub_putchar ('\n'); +   else +     current_term->cls (); +@@ -1217,6 +1245,16 @@ memcheck (int addr, int len) +   return ! errnum; + } +  ++void ++grub_memcpy(void *dest, const void *src, int len) ++{ ++  int i; ++  register char *d = (char*)dest, *s = (char*)src; ++ ++  for (i = 0; i < len; i++) ++    d[i] = s[i]; ++} ++ + void * + grub_memmove (void *to, const void *from, int len) + { +diff -urpN grub-0.97/stage2/graphics.c grub-0.97-gfx/stage2/graphics.c +--- grub-0.97/stage2/graphics.c	1969-12-31 20:00:00.000000000 -0400 ++++ grub-0.97-gfx/stage2/graphics.c	2005-10-13 16:27:35.000000000 -0400 +@@ -0,0 +1,552 @@ ++/* graphics.c - graphics mode support for GRUB */ ++/* Implemented as a terminal type by Jeremy Katz <katzj@redhat.com> based ++ * on a patch by Paulo César Pereira de Andrade <pcpa@conectiva.com.br> ++ */ ++/* ++ *  GRUB  --  GRand Unified Bootloader ++ *  Copyright (C) 2001,2002  Red Hat, Inc. ++ *  Portions copyright (C) 2000  Conectiva, Inc. ++ * ++ *  This program is free software; you can redistribute it and/or modify ++ *  it under the terms of the GNU General Public License as published by ++ *  the Free Software Foundation; either version 2 of the License, or ++ *  (at your option) any later version. ++ * ++ *  This program is distributed in the hope that it will be useful, ++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of ++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the ++ *  GNU General Public License for more details. ++ * ++ *  You should have received a copy of the GNU General Public License ++ *  along with this program; if not, write to the Free Software ++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++ ++ ++#ifdef SUPPORT_GRAPHICS ++ ++#include <term.h> ++#include <shared.h> ++#include <graphics.h> ++ ++int saved_videomode; ++unsigned char *font8x16; ++ ++int graphics_inited = 0; ++static char splashimage[64]; ++ ++#define VSHADOW VSHADOW1 ++unsigned char VSHADOW1[38400]; ++unsigned char VSHADOW2[38400]; ++unsigned char VSHADOW4[38400]; ++unsigned char VSHADOW8[38400]; ++ ++/* constants to define the viewable area */ ++const int x0 = 0; ++const int x1 = 80; ++const int y0 = 0; ++const int y1 = 30; ++ ++/* text buffer has to be kept around so that we can write things as we ++ * scroll and the like */ ++unsigned short text[80 * 30]; ++ ++/* why do these have to be kept here? */ ++int foreground = (63 << 16) | (63 << 8) | (63), background = 0, border = 0; ++ ++/* current position */ ++static int fontx = 0; ++static int fonty = 0; ++ ++/* global state so that we don't try to recursively scroll or cursor */ ++static int no_scroll = 0; ++ ++/* color state */ ++static int graphics_standard_color = A_NORMAL; ++static int graphics_normal_color = A_NORMAL; ++static int graphics_highlight_color = A_REVERSE; ++static int graphics_current_color = A_NORMAL; ++static color_state graphics_color_state = COLOR_STATE_STANDARD; ++ ++ ++/* graphics local functions */ ++static void graphics_setxy(int col, int row); ++static void graphics_scroll(); ++ ++/* FIXME: where do these really belong? */ ++static inline void outb(unsigned short port, unsigned char val) ++{ ++    __asm __volatile ("outb %0,%1"::"a" (val), "d" (port)); ++} ++ ++static void MapMask(int value) { ++    outb(0x3c4, 2); ++    outb(0x3c5, value); ++} ++ ++/* bit mask register */ ++static void BitMask(int value) { ++    outb(0x3ce, 8); ++    outb(0x3cf, value); ++} ++ ++ ++ ++/* Set the splash image */ ++void graphics_set_splash(char *splashfile) { ++    grub_strcpy(splashimage, splashfile); ++} ++ ++/* Get the current splash image */ ++char *graphics_get_splash(void) { ++    return splashimage; ++} ++ ++/* Initialize a vga16 graphics display with the palette based off of ++ * the image in splashimage.  If the image doesn't exist, leave graphics ++ * mode.  */ ++int graphics_init() ++{ ++    if (!graphics_inited) { ++        saved_videomode = set_videomode(0x12); ++    } ++ ++    if (!read_image(splashimage)) { ++        set_videomode(saved_videomode); ++        grub_printf("failed to read image\n"); ++        return 0; ++    } ++ ++    font8x16 = (unsigned char*)graphics_get_font(); ++ ++    graphics_inited = 1; ++ ++    /* make sure that the highlight color is set correctly */ ++    graphics_highlight_color = ((graphics_normal_color >> 4) |  ++				((graphics_normal_color & 0xf) << 4)); ++ ++    return 1; ++} ++ ++/* Leave graphics mode */ ++void graphics_end(void) ++{ ++    if (graphics_inited) { ++        set_videomode(saved_videomode); ++        graphics_inited = 0; ++    } ++} ++ ++/* Print ch on the screen.  Handle any needed scrolling or the like */ ++void graphics_putchar(int ch) { ++    ch &= 0xff; ++ ++    graphics_cursor(0); ++ ++    if (ch == '\n') { ++        if (fonty + 1 < y1) ++            graphics_setxy(fontx, fonty + 1); ++        else ++            graphics_scroll(); ++        graphics_cursor(1); ++        return; ++    } else if (ch == '\r') { ++        graphics_setxy(x0, fonty); ++        graphics_cursor(1); ++        return; ++    } ++ ++    graphics_cursor(0); ++ ++    text[fonty * 80 + fontx] = ch; ++    text[fonty * 80 + fontx] &= 0x00ff; ++    if (graphics_current_color & 0xf0) ++        text[fonty * 80 + fontx] |= 0x100; ++ ++    graphics_cursor(0); ++ ++    if ((fontx + 1) >= x1) { ++        graphics_setxy(x0, fonty); ++        if (fonty + 1 < y1) ++            graphics_setxy(x0, fonty + 1); ++        else ++            graphics_scroll(); ++    } else { ++        graphics_setxy(fontx + 1, fonty); ++    } ++ ++    graphics_cursor(1); ++} ++ ++/* get the current location of the cursor */ ++int graphics_getxy(void) { ++    return (fontx << 8) | fonty; ++} ++ ++void graphics_gotoxy(int x, int y) { ++    graphics_cursor(0); ++ ++    graphics_setxy(x, y); ++ ++    graphics_cursor(1); ++} ++ ++void graphics_cls(void) { ++    int i; ++    unsigned char *mem, *s1, *s2, *s4, *s8; ++ ++    graphics_cursor(0); ++    graphics_gotoxy(x0, y0); ++ ++    mem = (unsigned char*)VIDEOMEM; ++    s1 = (unsigned char*)VSHADOW1; ++    s2 = (unsigned char*)VSHADOW2; ++    s4 = (unsigned char*)VSHADOW4; ++    s8 = (unsigned char*)VSHADOW8; ++ ++    for (i = 0; i < 80 * 30; i++) ++        text[i] = ' '; ++    graphics_cursor(1); ++ ++    BitMask(0xff); ++ ++    /* plano 1 */ ++    MapMask(1); ++    grub_memcpy(mem, s1, 38400); ++ ++    /* plano 2 */ ++    MapMask(2); ++    grub_memcpy(mem, s2, 38400); ++ ++    /* plano 3 */ ++    MapMask(4); ++    grub_memcpy(mem, s4, 38400); ++ ++    /* plano 4 */ ++    MapMask(8); ++    grub_memcpy(mem, s8, 38400); ++ ++    MapMask(15); ++  ++} ++ ++void graphics_setcolorstate (color_state state) { ++    switch (state) { ++    case COLOR_STATE_STANDARD: ++        graphics_current_color = graphics_standard_color; ++        break; ++    case COLOR_STATE_NORMAL: ++        graphics_current_color = graphics_normal_color; ++        break; ++    case COLOR_STATE_HIGHLIGHT: ++        graphics_current_color = graphics_highlight_color; ++        break; ++    default: ++        graphics_current_color = graphics_standard_color; ++        break; ++    } ++ ++    graphics_color_state = state; ++} ++ ++void graphics_setcolor (int normal_color, int highlight_color) { ++    graphics_normal_color = normal_color; ++    graphics_highlight_color = highlight_color; ++ ++    graphics_setcolorstate (graphics_color_state); ++} ++ ++void graphics_setcursor (int on) { ++    /* FIXME: we don't have a cursor in graphics */ ++    return; ++} ++ ++/* Read in the splashscreen image and set the palette up appropriately. ++ * Format of splashscreen is an xpm (can be gzipped) with 16 colors and ++ * 640x480. */ ++int read_image(char *s) ++{ ++    char buf[32], pal[16]; ++    unsigned char c, base, mask, *s1, *s2, *s4, *s8; ++    unsigned i, len, idx, colors, x, y, width, height; ++ ++    if (!grub_open(s)) ++        return 0; ++ ++    /* read header */ ++    if (!grub_read((char*)&buf, 10) || grub_memcmp(buf, "/* XPM */\n", 10)) { ++        grub_close(); ++        return 0; ++    } ++     ++    /* parse info */ ++    while (grub_read(&c, 1)) { ++        if (c == '"') ++            break; ++    } ++ ++    while (grub_read(&c, 1) && (c == ' ' || c == '\t')) ++        ; ++ ++    i = 0; ++    width = c - '0'; ++    while (grub_read(&c, 1)) { ++        if (c >= '0' && c <= '9') ++            width = width * 10 + c - '0'; ++        else ++            break; ++    } ++    while (grub_read(&c, 1) && (c == ' ' || c == '\t')) ++        ; ++ ++    height = c - '0'; ++    while (grub_read(&c, 1)) { ++        if (c >= '0' && c <= '9') ++            height = height * 10 + c - '0'; ++        else ++            break; ++    } ++    while (grub_read(&c, 1) && (c == ' ' || c == '\t')) ++        ; ++ ++    colors = c - '0'; ++    while (grub_read(&c, 1)) { ++        if (c >= '0' && c <= '9') ++            colors = colors * 10 + c - '0'; ++        else ++            break; ++    } ++ ++    base = 0; ++    while (grub_read(&c, 1) && c != '"') ++        ; ++ ++    /* palette */ ++    for (i = 0, idx = 1; i < colors; i++) { ++        len = 0; ++ ++        while (grub_read(&c, 1) && c != '"') ++            ; ++        grub_read(&c, 1);       /* char */ ++        base = c; ++        grub_read(buf, 4);      /* \t c # */ ++ ++        while (grub_read(&c, 1) && c != '"') { ++            if (len < sizeof(buf)) ++                buf[len++] = c; ++        } ++ ++        if (len == 6 && idx < 15) { ++            int r = ((hex(buf[0]) << 4) | hex(buf[1])) >> 2; ++            int g = ((hex(buf[2]) << 4) | hex(buf[3])) >> 2; ++            int b = ((hex(buf[4]) << 4) | hex(buf[5])) >> 2; ++ ++            pal[idx] = base; ++            graphics_set_palette(idx, r, g, b); ++            ++idx; ++        } ++    } ++ ++    x = y = len = 0; ++ ++    s1 = (unsigned char*)VSHADOW1; ++    s2 = (unsigned char*)VSHADOW2; ++    s4 = (unsigned char*)VSHADOW4; ++    s8 = (unsigned char*)VSHADOW8; ++ ++    for (i = 0; i < 38400; i++) ++        s1[i] = s2[i] = s4[i] = s8[i] = 0; ++ ++    /* parse xpm data */ ++    while (y < height) { ++        while (1) { ++            if (!grub_read(&c, 1)) { ++                grub_close(); ++                return 0; ++            } ++            if (c == '"') ++                break; ++        } ++ ++        while (grub_read(&c, 1) && c != '"') { ++            for (i = 1; i < 15; i++) ++                if (pal[i] == c) { ++                    c = i; ++                    break; ++                } ++ ++            mask = 0x80 >> (x & 7); ++            if (c & 1) ++                s1[len + (x >> 3)] |= mask; ++            if (c & 2) ++                s2[len + (x >> 3)] |= mask; ++            if (c & 4) ++                s4[len + (x >> 3)] |= mask; ++            if (c & 8) ++                s8[len + (x >> 3)] |= mask; ++ ++            if (++x >= 640) { ++                x = 0; ++ ++                if (y < 480) ++                    len += 80; ++                ++y; ++            } ++        } ++    } ++ ++    grub_close(); ++ ++    graphics_set_palette(0, (background >> 16), (background >> 8) & 63,  ++                background & 63); ++    graphics_set_palette(15, (foreground >> 16), (foreground >> 8) & 63,  ++                foreground & 63); ++    graphics_set_palette(0x11, (border >> 16), (border >> 8) & 63,  ++                         border & 63); ++ ++    return 1; ++} ++ ++ ++/* Convert a character which is a hex digit to the appropriate integer */ ++int hex(int v) ++{ ++    if (v >= 'A' && v <= 'F') ++        return (v - 'A' + 10); ++    if (v >= 'a' && v <= 'f') ++        return (v - 'a' + 10); ++    return (v - '0'); ++} ++ ++ ++/* move the graphics cursor location to col, row */ ++static void graphics_setxy(int col, int row) { ++    if (col >= x0 && col < x1) { ++        fontx = col; ++        cursorX = col << 3; ++    } ++    if (row >= y0 && row < y1) { ++        fonty = row; ++        cursorY = row << 4; ++    } ++} ++ ++/* scroll the screen */ ++static void graphics_scroll() { ++    int i, j; ++ ++    /* we don't want to scroll recursively... that would be bad */ ++    if (no_scroll) ++        return; ++    no_scroll = 1; ++ ++    /* move everything up a line */ ++    for (j = y0 + 1; j < y1; j++) { ++        graphics_gotoxy(x0, j - 1); ++        for (i = x0; i < x1; i++) { ++            graphics_putchar(text[j * 80 + i]); ++        } ++    } ++ ++    /* last line should be blank */ ++    graphics_gotoxy(x0, y1 - 1); ++    for (i = x0; i < x1; i++) ++        graphics_putchar(' '); ++    graphics_setxy(x0, y1 - 1); ++ ++    no_scroll = 0; ++} ++ ++ ++void graphics_cursor(int set) { ++    unsigned char *pat, *mem, *ptr, chr[16 << 2]; ++    int i, ch, invert, offset; ++ ++    if (set && no_scroll) ++        return; ++ ++    offset = cursorY * 80 + fontx; ++    ch = text[fonty * 80 + fontx] & 0xff; ++    invert = (text[fonty * 80 + fontx] & 0xff00) != 0; ++    pat = font8x16 + (ch << 4); ++ ++    mem = (unsigned char*)VIDEOMEM + offset; ++ ++    if (!set) { ++        for (i = 0; i < 16; i++) { ++            unsigned char mask = pat[i]; ++ ++            if (!invert) { ++                chr[i     ] = ((unsigned char*)VSHADOW1)[offset]; ++                chr[16 + i] = ((unsigned char*)VSHADOW2)[offset]; ++                chr[32 + i] = ((unsigned char*)VSHADOW4)[offset]; ++                chr[48 + i] = ((unsigned char*)VSHADOW8)[offset]; ++ ++                /* FIXME: if (shade) */ ++                if (1) { ++                    if (ch == DISP_VERT || ch == DISP_LL || ++                        ch == DISP_UR || ch == DISP_LR) { ++                        unsigned char pmask = ~(pat[i] >> 1); ++ ++                        chr[i     ] &= pmask; ++                        chr[16 + i] &= pmask; ++                        chr[32 + i] &= pmask; ++                        chr[48 + i] &= pmask; ++                    } ++                    if (i > 0 && ch != DISP_VERT) { ++                        unsigned char pmask = ~(pat[i - 1] >> 1); ++ ++                        chr[i     ] &= pmask; ++                        chr[16 + i] &= pmask; ++                        chr[32 + i] &= pmask; ++                        chr[48 + i] &= pmask; ++                        if (ch == DISP_HORIZ || ch == DISP_UR || ch == DISP_LR) { ++                            pmask = ~pat[i - 1]; ++ ++                            chr[i     ] &= pmask; ++                            chr[16 + i] &= pmask; ++                            chr[32 + i] &= pmask; ++                            chr[48 + i] &= pmask; ++                        } ++                    } ++                } ++                chr[i     ] |= mask; ++                chr[16 + i] |= mask; ++                chr[32 + i] |= mask; ++                chr[48 + i] |= mask; ++ ++                offset += 80; ++            } ++            else { ++                chr[i     ] = mask; ++                chr[16 + i] = mask; ++                chr[32 + i] = mask; ++                chr[48 + i] = mask; ++            } ++        } ++    } ++    else { ++        MapMask(15); ++        ptr = mem; ++        for (i = 0; i < 16; i++, ptr += 80) { ++            cursorBuf[i] = pat[i]; ++            *ptr = ~pat[i]; ++        } ++        return; ++    } ++ ++    offset = 0; ++    for (i = 1; i < 16; i <<= 1, offset += 16) { ++        int j; ++ ++        MapMask(i); ++        ptr = mem; ++        for (j = 0; j < 16; j++, ptr += 80) ++            *ptr = chr[j + offset]; ++    } ++ ++    MapMask(15); ++} ++ ++#endif /* SUPPORT_GRAPHICS */ +diff -urpN grub-0.97/stage2/graphics.h grub-0.97-gfx/stage2/graphics.h +--- grub-0.97/stage2/graphics.h	1969-12-31 20:00:00.000000000 -0400 ++++ grub-0.97-gfx/stage2/graphics.h	2005-10-13 16:27:35.000000000 -0400 +@@ -0,0 +1,42 @@ ++/* graphics.h - graphics console interface */ ++/* ++ *  GRUB  --  GRand Unified Bootloader ++ *  Copyright (C) 2002  Free Software Foundation, Inc. ++ * ++ *  This program is free software; you can redistribute it and/or modify ++ *  it under the terms of the GNU General Public License as published by ++ *  the Free Software Foundation; either version 2 of the License, or ++ *  (at your option) any later version. ++ * ++ *  This program is distributed in the hope that it will be useful, ++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of ++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the ++ *  GNU General Public License for more details. ++ * ++ *  You should have received a copy of the GNU General Public License ++ *  along with this program; if not, write to the Free Software ++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#ifndef GRAPHICS_H ++#define GRAPHICS_H ++ ++/* magic constant */ ++#define VIDEOMEM 0xA0000 ++ ++/* function prototypes */ ++char *graphics_get_splash(void); ++ ++int read_image(char *s); ++void graphics_cursor(int set); ++ ++/* function prototypes for asm functions */ ++void * graphics_get_font(); ++void graphics_set_palette(int idx, int red, int green, int blue); ++void set_int1c_handler(); ++void unset_int1c_handler(); ++ ++extern short cursorX, cursorY; ++extern char cursorBuf[16]; ++ ++#endif /* GRAPHICS_H */ +diff -urpN grub-0.97/stage2/shared.h grub-0.97-gfx/stage2/shared.h +--- grub-0.97/stage2/shared.h	2005-10-13 16:27:23.000000000 -0400 ++++ grub-0.97-gfx/stage2/shared.h	2005-10-13 16:27:35.000000000 -0400 +@@ -871,6 +871,7 @@ int grub_sprintf (char *buffer, const ch + int grub_tolower (int c); + int grub_isspace (int c); + int grub_strncat (char *s1, const char *s2, int n); ++void grub_memcpy(void *dest, const void *src, int len); + void *grub_memmove (void *to, const void *from, int len); + void *grub_memset (void *start, int c, int len); + int grub_strncat (char *s1, const char *s2, int n); +diff -urpN grub-0.97/stage2/stage2.c grub-0.97-gfx/stage2/stage2.c +--- grub-0.97/stage2/stage2.c	2005-10-13 16:27:23.000000000 -0400 ++++ grub-0.97-gfx/stage2/stage2.c	2005-10-13 16:27:35.000000000 -0400 +@@ -233,6 +233,7 @@ run_menu (char *menu_entries, char *conf + { +   int c, time1, time2 = -1, first_entry = 0; +   char *cur_entry = 0; ++  struct term_entry *prev_term = NULL; +  +   /* +    *  Main loop for menu UI. +@@ -714,6 +715,15 @@ restart: +    +   cls (); +   setcursor (1); ++  /* if our terminal needed initialization, we should shut it down ++   * before booting the kernel, but we want to save what it was so ++   * we can come back if needed */ ++  prev_term = current_term; ++  if (current_term->shutdown)  ++    { ++      (*current_term->shutdown)(); ++      current_term = term_table; /* assumption: console is first */ ++    } +    +   while (1) +     { +@@ -748,6 +758,13 @@ restart: + 	break; +     } +  ++  /* if we get back here, we should go back to what our term was before */ ++  current_term = prev_term; ++  if (current_term->startup) ++      /* if our terminal fails to initialize, fall back to console since ++       * it should always work */ ++      if ((*current_term->startup)() == 0) ++          current_term = term_table; /* we know that console is first */ +   show_menu = 1; +   goto restart; + } +@@ -1050,6 +1067,10 @@ cmain (void) + 	  while (is_preset); + 	} +  ++      /* go ahead and make sure the terminal is setup */ ++      if (current_term->startup) ++        (*current_term->startup)(); ++ +       if (! num_entries) + 	{ + 	  /* If no acceptable config file, goto command-line, starting +diff -urpN grub-0.97/stage2/term.h grub-0.97-gfx/stage2/term.h +--- grub-0.97/stage2/term.h	2005-10-13 16:27:23.000000000 -0400 ++++ grub-0.97-gfx/stage2/term.h	2005-10-13 16:27:35.000000000 -0400 +@@ -60,6 +60,8 @@ struct term_entry +   const char *name; +   /* The feature flags defined above.  */ +   unsigned long flags; ++  /* Default for maximum number of lines if not specified */ ++  unsigned short max_lines; +   /* Put a character.  */ +   void (*putchar) (int c); +   /* Check if any input character is available.  */ +@@ -79,6 +81,11 @@ struct term_entry +   void (*setcolor) (int normal_color, int highlight_color); +   /* Turn on/off the cursor.  */ +   int (*setcursor) (int on); ++ ++  /* function to start a terminal */ ++  int (*startup) (void); ++  /* function to use to shutdown a terminal */ ++  void (*shutdown) (void); + }; +  + /* This lists up available terminals.  */ +@@ -124,4 +131,23 @@ void hercules_setcolor (int normal_color + int hercules_setcursor (int on); + #endif +  ++#ifdef SUPPORT_GRAPHICS ++extern int foreground, background, border, graphics_inited; ++ ++void graphics_set_splash(char *splashfile); ++int set_videomode (int mode); ++void graphics_putchar (int c); ++int graphics_getxy(void); ++void graphics_gotoxy(int x, int y); ++void graphics_cls(void); ++void graphics_setcolorstate (color_state state); ++void graphics_setcolor (int normal_color, int highlight_color); ++void graphics_setcursor (int on); ++int graphics_init(void); ++void graphics_end(void); ++ ++int hex(int v); ++void graphics_set_palette(int idx, int red, int green, int blue); ++#endif /* SUPPORT_GRAPHICS */ ++ + #endif /* ! GRUB_TERM_HEADER */ diff --git a/abs/not_built/core/grub-gfx/grub-gfx.install b/abs/not_built/core/grub-gfx/grub-gfx.install new file mode 100644 index 0000000..6c73b15 --- /dev/null +++ b/abs/not_built/core/grub-gfx/grub-gfx.install @@ -0,0 +1,46 @@ +# arg 1:  the new package version +pre_install() { +  /bin/true +} + +# arg 1:  the new package version +post_install() { +	echo +	echo "*********************************************************************" +    echo "You need to run install-grub /dev/device or grub-install /dev/device " +    echo "to update grub loader." +    echo "Note: Device should be any of these (sda, sdb, hda, hdb, sda1, hda1) " +    echo "If you are in doubt, see your old grub config file (menu.lst.pacsave)" +    echo "********************************************************************" +	echo +} + +# arg 1:  the new package version +# arg 2:  the old package version +pre_upgrade() { +  /bin/true +} + +# arg 1:  the new package version +# arg 2:  the old package version +post_upgrade() { +	echo +	echo "*********************************************************************" +    echo "You need to run install-grub /dev/device or grub-install /dev/device " +    echo "to update grub loader." +    echo "Note: Device should be any of these (sda, sdb, hda, hdb, sda1, hda1) " +    echo "If you are in doubt, see your old grub config file (menu.lst.pacsave)" +    echo "********************************************************************" +	echo +} + +# arg 1:  the old package version +pre_remove() { +	/bin/true +} + +# arg 1:  the old package version +post_remove() { +  /bin/true +} + diff --git a/abs/not_built/core/grub-gfx/grub-inode-size.patch b/abs/not_built/core/grub-gfx/grub-inode-size.patch new file mode 100644 index 0000000..bef3bc1 --- /dev/null +++ b/abs/not_built/core/grub-gfx/grub-inode-size.patch @@ -0,0 +1,94 @@ +diff -Nrup a/stage2/fsys_ext2fs.c b/stage2/fsys_ext2fs.c +--- a/stage2/fsys_ext2fs.c	2004-08-08 20:19:18.000000000 +0200 ++++ b/stage2/fsys_ext2fs.c	2008-01-30 14:27:20.000000000 +0100 +@@ -79,7 +79,52 @@ struct ext2_super_block +     __u32 s_rev_level;		/* Revision level */ +     __u16 s_def_resuid;		/* Default uid for reserved blocks */ +     __u16 s_def_resgid;		/* Default gid for reserved blocks */ +-    __u32 s_reserved[235];	/* Padding to the end of the block */ ++    /* ++     * These fields are for EXT2_DYNAMIC_REV superblocks only. ++     * ++     * Note: the difference between the compatible feature set and ++     * the incompatible feature set is that if there is a bit set ++     * in the incompatible feature set that the kernel doesn't ++     * know about, it should refuse to mount the filesystem. ++     * ++     * e2fsck's requirements are more strict; if it doesn't know ++     * about a feature in either the compatible or incompatible ++     * feature set, it must abort and not try to meddle with ++     * things it doesn't understand... ++     */ ++    __u32 s_first_ino;		/* First non-reserved inode */ ++    __u16 s_inode_size;		/* size of inode structure */ ++    __u16 s_block_group_nr;	/* block group # of this superblock */ ++    __u32 s_feature_compat;	/* compatible feature set */ ++    __u32 s_feature_incompat;	/* incompatible feature set */ ++    __u32 s_feature_ro_compat;	/* readonly-compatible feature set */ ++    __u8  s_uuid[16];		/* 128-bit uuid for volume */ ++    char  s_volume_name[16];	/* volume name */ ++    char  s_last_mounted[64];	/* directory where last mounted */ ++    __u32 s_algorithm_usage_bitmap; /* For compression */ ++    /* ++     * Performance hints.  Directory preallocation should only ++     * happen if the EXT2_FEATURE_COMPAT_DIR_PREALLOC flag is on. ++     */ ++    __u8  s_prealloc_blocks;	/* Nr of blocks to try to preallocate*/ ++    __u8  s_prealloc_dir_blocks;	/* Nr to preallocate for dirs */ ++    __u16 s_reserved_gdt_blocks;/* Per group table for online growth */ ++    /* ++     * Journaling support valid if EXT2_FEATURE_COMPAT_HAS_JOURNAL set. ++     */ ++    __u8 s_journal_uuid[16];	/* uuid of journal superblock */ ++    __u32 s_journal_inum;	/* inode number of journal file */ ++    __u32 s_journal_dev;	/* device number of journal file */ ++    __u32 s_last_orphan;	/* start of list of inodes to delete */ ++    __u32 s_hash_seed[4];	/* HTREE hash seed */ ++    __u8  s_def_hash_version;	/* Default hash version to use */ ++    __u8  s_jnl_backup_type; 	/* Default type of journal backup */ ++    __u16 s_reserved_word_pad; ++    __u32 s_default_mount_opts; ++    __u32 s_first_meta_bg;	/* First metablock group */ ++    __u32 s_mkfs_time;		/* When the filesystem was created */ ++    __u32 s_jnl_blocks[17]; 	/* Backup of the journal inode */ ++    __u32 s_reserved[172];	/* Padding to the end of the block */ +   }; +  + struct ext2_group_desc +@@ -218,6 +263,9 @@ struct ext2_dir_entry + #define EXT2_ADDR_PER_BLOCK(s)          (EXT2_BLOCK_SIZE(s) / sizeof (__u32)) + #define EXT2_ADDR_PER_BLOCK_BITS(s)		(log2(EXT2_ADDR_PER_BLOCK(s))) +  ++#define EXT2_INODE_SIZE(s)		(SUPERBLOCK->s_inode_size) ++#define EXT2_INODES_PER_BLOCK(s)	(EXT2_BLOCK_SIZE(s)/EXT2_INODE_SIZE(s)) ++ + /* linux/ext2_fs.h */ + #define EXT2_BLOCK_SIZE_BITS(s)        ((s)->s_log_block_size + 10) + /* kind of from ext2/super.c */ +@@ -553,7 +601,7 @@ ext2fs_dir (char *dirname) +       gdp = GROUP_DESC; +       ino_blk = gdp[desc].bg_inode_table + + 	(((current_ino - 1) % (SUPERBLOCK->s_inodes_per_group)) +-	 >> log2 (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode))); ++	 >> log2 (EXT2_INODES_PER_BLOCK (SUPERBLOCK))); + #ifdef E2DEBUG +       printf ("inode table fsblock=%d\n", ino_blk); + #endif /* E2DEBUG */ +@@ -565,13 +613,12 @@ ext2fs_dir (char *dirname) +       /* reset indirect blocks! */ +       mapblock2 = mapblock1 = -1; +  +-      raw_inode = INODE + +-	((current_ino - 1) +-	 & (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode) - 1)); ++      raw_inode = (struct ext2_inode *)((char *)INODE + ++	((current_ino - 1) & (EXT2_INODES_PER_BLOCK (SUPERBLOCK) - 1)) * ++	EXT2_INODE_SIZE (SUPERBLOCK)); + #ifdef E2DEBUG +       printf ("ipb=%d, sizeof(inode)=%d\n", +-	      (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode)), +-	      sizeof (struct ext2_inode)); ++	      EXT2_INODES_PER_BLOCK (SUPERBLOCK), EXT2_INODE_SIZE (SUPERBLOCK)); +       printf ("inode=%x, raw_inode=%x\n", INODE, raw_inode); +       printf ("offset into inode table block=%d\n", (int) raw_inode - (int) INODE); +       for (i = (unsigned char *) INODE; i <= (unsigned char *) raw_inode; diff --git a/abs/not_built/core/grub-gfx/i2o.patch b/abs/not_built/core/grub-gfx/i2o.patch new file mode 100644 index 0000000..2af846c --- /dev/null +++ b/abs/not_built/core/grub-gfx/i2o.patch @@ -0,0 +1,45 @@ +Only in grub-0.94/docs: grub.info +Only in grub-0.94/docs: multiboot.info +diff -ur grub-0.94/lib/device.c grub-0.94.new/lib/device.c +--- grub-0.94/lib/device.c	2004-05-07 04:50:36.375238696 +0200 ++++ grub-0.94.new/lib/device.c	2004-05-07 04:48:57.611253104 +0200 +@@ -419,6 +419,12 @@ + { +   sprintf (name, "/dev/rd/c%dd%d", controller, drive); + } ++ ++static void ++get_i2o_disk_name (char *name, int unit) ++{ ++  sprintf (name, "/dev/i2o/hd%c", unit + 'a'); ++} + #endif +  + /* Check if DEVICE can be read. If an error occurs, return zero, +@@ -789,6 +795,26 @@ + 	  } +       } +   } ++ ++  /* I2O disks.  */ ++  for (i = 0; i < 8; i++) ++    { ++      char name[16]; ++       ++      get_i2o_disk_name (name, i); ++      if (check_device (name)) ++	{ ++	  (*map)[num_hd + 0x80] = strdup (name); ++	  assert ((*map)[num_hd + 0x80]); ++	   ++	  /* If the device map file is opened, write the map.  */ ++	  if (fp) ++	    fprintf (fp, "(hd%d)\t%s\n", num_hd, name); ++	   ++	  num_hd++; ++	} ++    } ++   + #endif /* __linux__ */ +    +   /* OK, close the device map file if opened.  */ diff --git a/abs/not_built/core/grub-gfx/install-grub b/abs/not_built/core/grub-gfx/install-grub new file mode 100755 index 0000000..3eb7ce5 --- /dev/null +++ b/abs/not_built/core/grub-gfx/install-grub @@ -0,0 +1,187 @@ +#!/bin/bash + +# +# This is a little helper script that tries to convert linux-style device +# names to grub-style.  It's not very smart, so it +# probably won't work for more complicated setups. +# +# If it doesn't work for you, try installing grub manually: +# +#    # mkdir -p /boot/grub +#    # cp /usr/lib/grub/i386-pc/* /boot/grub/ +# +# Then start up the 'grub' shell and run something like the following: +# +#    grub> root(hd0,0) +#    grub> setup(hd0) +# +# The "root" line should point to the partition your kernel is located on, +# /boot if you have a separate boot partition, otherwise your root (/). +# +# The "setup" line tells grub which disc/partition to install the +# bootloader to.  In the example above, it will install to the MBR of the +# primary master hard drive. +# + +usage() { +	echo "usage: install-grub <install_device> [boot_device]" +	echo +	echo "where <install_device> is the device where Grub will be installed" +	echo "and [boot_device] is the partition that contains the /boot" +	echo "directory (auto-detected if omitted)" +	echo +	echo "examples: install-grub /dev/hda" +	echo "          install-grub /dev/hda /dev/hda1" +	echo +	exit 0 +} + +## new install-grub, code was taken from setup script +ROOTDEV=$1 +PART_ROOT=$2 +VMLINUZ=vmlinuz26 + +if [ "$ROOTDEV" = "" ]; then +	usage +fi +if [ "$PART_ROOT" = "" ]; then +	PART_ROOT=$(mount | grep "on /boot type" | cut -d' ' -f 1) +fi +if [ "$PART_ROOT" = "" ]; then +	PART_ROOT=$(mount | grep "on / type" | cut -d' ' -f 1) +fi +if [ "$PART_ROOT" = "" ]; then +	echo "error: could not determine BOOT_DEVICE, please specify manually" >&2 +	exit 1 +fi + + +get_grub_map() { +	[ -e /tmp/dev.map ]  && rm /tmp/dev.map	 +	/sbin/grub --no-floppy --device-map /tmp/dev.map >/tmp/grub.log 2>&1 <<EOF +quit +EOF +} + +mapdev() { +	partition_flag=0 +	device_found=0 +	devs=$(cat /tmp/dev.map | grep -v fd | sed 's/ *\t/ /' | sed ':a;$!N;$!ba;s/\n/ /g') +	linuxdevice=$(echo $1 | cut -b1-8) +	if [ "$(echo $1 | egrep '[0-9]$')" ]; then +		# /dev/hdXY +		pnum=$(echo $1 | cut -b9-) +		pnum=$(($pnum-1)) +		partition_flag=1 +	fi +	for  dev in $devs +	do +	    if [ "(" = $(echo $dev | cut -b1) ]; then +		grubdevice="$dev" +	    else +		if [ "$dev" = "$linuxdevice" ]; then +			device_found=1 +			break    +		fi +	   fi +	done	 +	if [ "$device_found" = "1" ]; then +		if [ "$partition_flag" = "0" ]; then +			echo "$grubdevice" +		else +			grubdevice_stringlen=${#grubdevice} +			let grubdevice_stringlen-- +			grubdevice=$(echo $grubdevice | cut -b1-$grubdevice_stringlen) +			echo "$grubdevice,$pnum)" +		fi +	else +		echo " DEVICE NOT FOUND" +	fi +} + +dogrub() { +	get_grub_map	 +	if [ ! -f /boot/grub/menu.lst ]; then +		echo "Error: Couldn't find /boot/grub/menu.lst.  Is GRUB installed?" +		exit 1 +	fi +	# try to auto-configure GRUB... +	if [ "$PART_ROOT" != "" -a "$S_GRUB" != "1" ]; then +		grubdev=$(mapdev $PART_ROOT) +		# look for a separately-mounted /boot partition +		bootdev=$(mount | grep /boot | cut -d' ' -f 1) +		if [ "$grubdev" != "" -o "$bootdev" != "" ]; then +			cp /boot/grub/menu.lst /tmp/.menu.lst +			# remove the default entries by truncating the file at our little tag (#-*) +			head -n $(cat /tmp/.menu.lst | grep -n '#-\*' | cut -d: -f 1) /tmp/.menu.lst >/boot/grub/menu.lst +			rm -f /tmp/.menu.lst +			echo "" >>/boot/grub/menu.lst +			echo "# (0) Arch Linux" >>/boot/grub/menu.lst +			echo "title  Arch Linux" >>/boot/grub/menu.lst +			subdir= +			if [ "$bootdev" != "" ]; then +				grubdev=$(mapdev $bootdev) +			else +				subdir="/boot" +			fi +			echo "root   $grubdev" >>/boot/grub/menu.lst +			echo "kernel $subdir/$VMLINUZ root=$PART_ROOT ro" >>/boot/grub/menu.lst +			if [ "$VMLINUZ" = "vmlinuz26" ]; then +				echo "initrd $subdir/kernel26.img" >>/boot/grub/menu.lst +			fi +			echo "" >>/boot/grub/menu.lst +			# adding fallback/full image +			echo "# (1) Arch Linux" >>/boot/grub/menu.lst +			echo "title  Arch Linux Fallback" >>/boot/grub/menu.lst +			echo "root   $grubdev" >>/boot/grub/menu.lst +			echo "kernel $subdir/$VMLINUZ root=$PART_ROOT ro" >>/boot/grub/menu.lst +			if [ "$VMLINUZ" = "vmlinuz26" ]; then +				echo "initrd $subdir/kernel26-fallback.img" >>/boot/grub/menu.lst +			fi +			echo "" >>/boot/grub/menu.lst +		fi +	fi + +	echo "Installing the GRUB bootloader..." +	cp -a /usr/lib/grub/i386-pc/* /boot/grub/ +	sync +	# freeze xfs filesystems to enable grub installation on xfs filesystems +	if [ -x /usr/sbin/xfs_freeze ]; then +		/usr/sbin/xfs_freeze -f /boot > /dev/null 2>&1 +		/usr/sbin/xfs_freeze -f / > /dev/null 2>&1 +	fi +	# look for a separately-mounted /boot partition +	bootpart=$(mount | grep /boot | cut -d' ' -f 1) +	if [ "$bootpart" = "" ]; then +			bootpart=$PART_ROOT +	fi +	bootpart=$(mapdev $bootpart) +	bootdev=$(mapdev $ROOTDEV) +	if [ "$bootpart" = "" ]; then +		echo "Error: Missing/Invalid root device: $bootpart" +		exit 1 +	fi +	/sbin/grub --no-floppy --batch >/tmp/grub.log 2>&1 <<EOF +root $bootpart +setup $bootdev +quit +EOF +cat /tmp/grub.log +	# unfreeze xfs filesystems +	if [ -x /usr/sbin/xfs_freeze ]; then +		/usr/sbin/xfs_freeze -u /boot > /dev/null 2>&1 +		/usr/sbin/xfs_freeze -u / > /dev/null 2>&1 +	fi + +	if grep "Error [0-9]*: " /tmp/grub.log >/dev/null; then +		echo "Error installing GRUB. (see /tmp/grub.log for output)" +		exit 1 +	fi +	echo "GRUB was successfully installed." + +rm -f /tmp/grub.log + +exit 0 +} + +dogrub
\ No newline at end of file diff --git a/abs/not_built/core/grub-gfx/intelmac.patch b/abs/not_built/core/grub-gfx/intelmac.patch new file mode 100644 index 0000000..a3fabc7 --- /dev/null +++ b/abs/not_built/core/grub-gfx/intelmac.patch @@ -0,0 +1,67 @@ +--- grub-0.97.orig/stage2/asm.S	2004-06-19 18:55:22.000000000 +0200 ++++ grub-0.97/stage2/asm.S	2006-04-21 11:10:52.000000000 +0200 +@@ -1651,7 +1651,29 @@ + 	jnz	3f + 	ret +  +-3:	/* use keyboard controller */ ++3:	/* ++	 * try to switch gateA20 using PORT92, the "Fast A20 and Init" ++	 * register ++	*/ ++	mov $0x92, %dx ++	inb %dx, %al ++	/* skip the port92 code if it's unimplemented (read returns 0xff) */ ++	cmpb $0xff, %al ++	jz 6f ++	 ++	/* set or clear bit1, the ALT_A20_GATE bit */ ++	movb 4(%esp), %ah ++	testb %ah, %ah ++	jz 4f ++	orb $2, %al ++	jmp 5f ++4:	and $0xfd, %al ++	 ++	/* clear the INIT_NOW bit don't accidently reset the machine */ ++5:	and $0xfe, %al ++	outb %al, %dx ++	 ++6:	/* use keyboard controller */ + 	pushl	%eax +  + 	call    gloop1 +@@ -1661,9 +1683,12 @@ +  + gloopint1: + 	inb	$K_STATUS ++	cmpb	$0xff, %al ++	jz	gloopint1_done + 	andb	$K_IBUF_FUL, %al + 	jnz	gloopint1 +  ++gloopint1_done:	 + 	movb	$KB_OUTPUT_MASK, %al + 	cmpb	$0, 0x8(%esp) + 	jz	gdoit +@@ -1684,6 +1709,8 @@ +  + gloop1: + 	inb	$K_STATUS ++	cmpb	$0xff, %al ++	jz	gloop2ret + 	andb	$K_IBUF_FUL, %al + 	jnz	gloop1 +  +@@ -1991,6 +2018,11 @@ + ENTRY(console_getkey) + 	push	%ebp +  ++wait_for_key: ++	call	EXT_C(console_checkkey) ++	incl	%eax ++	jz	wait_for_key ++	 + 	call	EXT_C(prot_to_real) + 	.code16 +   diff --git a/abs/not_built/core/grub-gfx/menu.lst b/abs/not_built/core/grub-gfx/menu.lst new file mode 100644 index 0000000..cc2f0a8 --- /dev/null +++ b/abs/not_built/core/grub-gfx/menu.lst @@ -0,0 +1,47 @@ +# Config file for GRUB - The GNU GRand Unified Bootloader +# /boot/grub/menu.lst + +# DEVICE NAME CONVERSIONS  +# +#  Linux           Grub +# ------------------------- +#  /dev/fd0        (fd0) +#  /dev/hda        (hd0) +#  /dev/hdb2       (hd1,1) +#  /dev/hda3       (hd0,2) +# + +#  FRAMEBUFFER RESOLUTION SETTINGS +#     +-------------------------------------------------+ +#          | 640x480    800x600    1024x768   1280x1024 +#      ----+-------------------------------------------- +#      256 | 0x301=769  0x303=771  0x305=773   0x307=775 +#      32K | 0x310=784  0x313=787  0x316=790   0x319=793 +#      64K | 0x311=785  0x314=788  0x317=791   0x31A=794 +#      16M | 0x312=786  0x315=789  0x318=792   0x31B=795 +#     +-------------------------------------------------+ + +# general configuration: +timeout   5 +default   0 +color light-blue/black light-cyan/blue +splashimage /boot/grub/splash.xpm.gz + +# boot sections follow +# each is implicitly numbered from 0 in the order of appearance below +# +# TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line. +# +#-* + +# (0) Arch Linux +title  Arch Linux  [/boot/vmlinuz26] +root   (hd0,0) +kernel /vmlinuz26 root=/dev/hda3 ro +initrd /kernel26.img + +# (1) Windows +#title Windows +#rootnoverify (hd0,0) +#makeactive +#chainloader +1 diff --git a/abs/not_built/core/grub-gfx/more-raid.patch b/abs/not_built/core/grub-gfx/more-raid.patch new file mode 100644 index 0000000..39db234 --- /dev/null +++ b/abs/not_built/core/grub-gfx/more-raid.patch @@ -0,0 +1,100 @@ +--- grub-0.95/lib/device.c.moreraid	2004-11-30 17:09:36.736099360 -0500 ++++ grub-0.95/lib/device.c	2004-11-30 17:12:17.319686944 -0500 +@@ -544,6 +544,17 @@ + } +  + static void ++get_cciss_disk_name (char * name, int controller, int drive) ++{ ++  sprintf (name, "/dev/cciss/c%dd%d", controller, drive); ++} ++ ++static void ++get_cpqarray_disk_name (char * name, int controller, int drive) ++{ ++  sprintf (name, "/dev/ida/c%dd%d", controller, drive); ++} ++static void + get_ataraid_disk_name (char *name, int unit) + { +   sprintf (name, "/dev/ataraid/d%c", unit + '0'); +@@ -920,7 +931,7 @@ +      +     for (controller = 0; controller < 8; controller++) +       { +-	for (drive = 0; drive < 15; drive++) ++	for (drive = 0; drive < 32; drive++) + 	  { + 	    char name[24]; + 	     +@@ -940,6 +951,70 @@ +       } +   } + #endif /* __linux__ */ ++ ++#ifdef __linux__ ++  /* This is for cciss - we have ++     /dev/cciss/c<controller>d<logical drive>p<partition>. ++      ++     cciss driver currently supports up to 8 controllers, 16 logical ++     drives, and 7 partitions.  */ ++  { ++    int controller, drive; ++     ++    for (controller = 0; controller < 8; controller++) ++      { ++	for (drive = 0; drive < 16; drive++) ++	  { ++	    char name[24]; ++	     ++	    get_cciss_disk_name (name, controller, drive); ++	    if (check_device (name)) ++	      { ++		(*map)[num_hd + 0x80] = strdup (name); ++		assert ((*map)[num_hd + 0x80]); ++		 ++		/* If the device map file is opened, write the map.  */ ++		if (fp) ++		  fprintf (fp, "(hd%d)\t%s\n", num_hd, name); ++		 ++		num_hd++; ++	      } ++	  } ++      } ++  } ++#endif /* __linux__ */ ++ ++#ifdef __linux__ ++  /* This is for cpqarray - we have ++     /dev/ida/c<controller>d<logical drive>p<partition>. ++      ++     cpqarray driver currently supports up to 8 controllers, 16 logical ++     drives, and 15 partitions.  */ ++  { ++    int controller, drive; ++     ++    for (controller = 0; controller < 8; controller++) ++      { ++	for (drive = 0; drive < 15; drive++) ++	  { ++	    char name[24]; ++	     ++	    get_cpqarray_disk_name (name, controller, drive); ++	    if (check_device (name)) ++	      { ++		(*map)[num_hd + 0x80] = strdup (name); ++		assert ((*map)[num_hd + 0x80]); ++		 ++		/* If the device map file is opened, write the map.  */ ++		if (fp) ++		  fprintf (fp, "(hd%d)\t%s\n", num_hd, name); ++		 ++		num_hd++; ++	      } ++	  } ++      } ++  } ++#endif /* __linux__ */ +    +   /* OK, close the device map file if opened.  */ +   if (fp) diff --git a/abs/not_built/core/grub-gfx/special-devices.patch b/abs/not_built/core/grub-gfx/special-devices.patch new file mode 100644 index 0000000..894f3e8 --- /dev/null +++ b/abs/not_built/core/grub-gfx/special-devices.patch @@ -0,0 +1,18 @@ +--- grub-0.93/lib/device.c.raid	2002-05-20 05:53:46.000000000 -0400 ++++ grub-0.93/lib/device.c	2002-12-28 23:24:10.000000000 -0500 +@@ -689,7 +689,14 @@ +       if (strcmp (dev + strlen(dev) - 5, "/disc") == 0) + 	strcpy (dev + strlen(dev) - 5, "/part"); +     } +-  sprintf (dev + strlen(dev), "%d", ((partition >> 16) & 0xFF) + 1); ++ ++  sprintf (dev + strlen(dev), "%s%d",  ++	   /* Compaq smart and others */ ++	   (strncmp(dev, "/dev/ida/", 9) == 0 || ++	    strncmp(dev, "/dev/ataraid/", 13) == 0 || ++	    strncmp(dev, "/dev/cciss/", 11) == 0 || ++	    strncmp(dev, "/dev/rd/", 8) == 0) ? "p" : "", ++	   ((partition >> 16) & 0xFF) + 1); +    +   /* Open the partition.  */ +   fd = open (dev, O_RDWR); diff --git a/abs/not_built/core/grub-gfx/splash.xpm.gz b/abs/not_built/core/grub-gfx/splash.xpm.gz Binary files differnew file mode 100644 index 0000000..e44af43 --- /dev/null +++ b/abs/not_built/core/grub-gfx/splash.xpm.gz diff --git a/abs/not_built/core/hal-info/PKGBUILD b/abs/not_built/core/hal-info/PKGBUILD new file mode 100644 index 0000000..ca6f5ad --- /dev/null +++ b/abs/not_built/core/hal-info/PKGBUILD @@ -0,0 +1,25 @@ +# $Id: PKGBUILD 61557 2009-12-19 19:17:15Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=hal-info +_date=20091130 +pkgver=0.${_date} +pkgrel=1 +pkgdesc="Hardware Abstraction Layer information files" +arch=(any) +license=('GPL' 'custom') +url="http://www.freedesktop.org/wiki/Software/hal" +source=(http://hal.freedesktop.org/releases/hal-info-${_date}.tar.gz) +md5sums=('34375489a02a00b250fdc0b280be11b8') + +build() { +  cd "${srcdir}/${pkgname}-${_date}" +  ./configure --prefix=/usr --sysconfdir=/etc \ +    --enable-killswitch-dell-wlan=no --enable-killswitch-dell-bluetooth=no \ +    --enable-killswitch-dell-wwan=no || return 1 +  make || return 1 +  make DESTDIR="${pkgdir}" install || return 1 + +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1 +} diff --git a/abs/not_built/core/hal/PKGBUILD b/abs/not_built/core/hal/PKGBUILD new file mode 100644 index 0000000..6e928fd --- /dev/null +++ b/abs/not_built/core/hal/PKGBUILD @@ -0,0 +1,83 @@ +# $Id: PKGBUILD 82401 2010-06-10 21:48:17Z thomas $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +# Contributor: Link Dupont <link@subpop.net> + +pkgname=hal +pkgver=0.5.14 +pkgrel=4 +pkgdesc="Hardware Abstraction Layer" +arch=(i686 x86_64) +license=('GPL' 'custom') +url="http://www.freedesktop.org/wiki/Software/hal" +depends=('dbus-glib>=0.82' 'libusb>=0.1.12' 'udev>=146' 'filesystem>=0.7.1-5' 'hal-info>=0.20090716' 'eject' 'dmidecode' 'pciutils>=3.0.2' 'usbutils>=0.73-5' 'pm-utils>=1.2.5' 'consolekit>=0.4.1' 'util-linux-ng>=2.16') +makedepends=('pkgconfig' 'gperf') +options=('!libtool' '!makeflags') +install=hal.install +source=(http://hal.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz +        hal +        hal-0.5.9-hide-diagnostic.patch +        hal-remove-dell-killswitch.patch +        hal-KVM-evdev.patch +        hal-HDAPS-blacklist.patch +        hal-xen-unignore-axes.patch +        hal-use-at-console.patch +        fix-libusb-detection.patch +        dbus-error-init.patch +        path-max.patch +        handle-input-touchpad.patch +        macbook-fix-ioperm.patch) +md5sums=('e9163df591a6f38f59fdbfe33e73bf20' +         '277e96ac130d7bfce0b30f0b80db8782' +         '4d4b6801a1cedca22b8bdd9db73b16fb' +         '6d87c3e63184ae3a69caafc846f538a3' +         '6507e5091ee2d11a87ae738a8e2caecb' +         '1171c2d83b76059f2da7a3538e08fa4e' +         '52bd305299aa22ae07f1a862c22d30fa' +         '3f11234fb5e5044fbfc5199ec65b182c' +         'da088f12cfc2d190bbf95b747e19ab9e' +         '634f4ec2203eff7de8fa2ed2c6b9cbe0' +         'f8c9b3a40d03907b498feef571d42466' +         '0575677614db0632b17b1a719798c7e0' +         '46a5db3ff896ee37762aa8d7e70942c4') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  patch -Np1 -i "${srcdir}/hal-0.5.9-hide-diagnostic.patch" || return 1 +  patch -Np1 -i "${srcdir}/hal-remove-dell-killswitch.patch" || return 1 +  patch -Np1 -i "${srcdir}/hal-KVM-evdev.patch" || return 1 +  patch -Np1 -i "${srcdir}/hal-HDAPS-blacklist.patch" || return 1 +  patch -Np1 -i "${srcdir}/hal-xen-unignore-axes.patch" || return 1 +  patch -Np1 -i "${srcdir}/hal-use-at-console.patch" || return 1 +  patch -Np1 -i "${srcdir}/fix-libusb-detection.patch" || return 1 +  patch -Np1 -i "${srcdir}/dbus-error-init.patch" || return 1 +  patch -Np1 -i "${srcdir}/path-max.patch" || return 1 +  patch -Np1 -i "${srcdir}/handle-input-touchpad.patch" || return 1 +  patch -Np1 -i "${srcdir}/macbook-fix-ioperm.patch" || return 1 +   +  libtoolize --force || return 1 +  aclocal || return 1 +  autoconf || return 1 +  automake || return 1 + +  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ +      --libexecdir=/usr/lib/hal --with-udev-prefix=/etc \ +      --enable-static=no --disable-acpi-ibm \ +      --disable-docbook-docs --disable-console-kit \ +      --disable-policy-kit --disable-acl-management \ +      --enable-umount-helper --disable-smbios \ +      --with-hal-user=hal --with-hal-group=hal \ +      --with-pid-file=/var/run/hald.pid \ +      --disable-gtk-doc || return 1 +  make || return 1 +  make DESTDIR="${pkgdir}" install || return 1 +  install -m755 -d "${pkgdir}/etc/rc.d" +  install -m755 -d "${pkgdir}/media" || return 1 +  install -m755 "${srcdir}/hal" "${pkgdir}/etc/rc.d/" || return 1 + +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1 +   +  # Fix udev rule location +  install -d -m755 "${pkgdir}/lib" +  mv "${pkgdir}/etc/udev" "${pkgdir}/lib/" +} diff --git a/abs/not_built/core/hal/cryptsetup_location.patch b/abs/not_built/core/hal/cryptsetup_location.patch new file mode 100644 index 0000000..1e4f5ef --- /dev/null +++ b/abs/not_built/core/hal/cryptsetup_location.patch @@ -0,0 +1,36 @@ +diff -Naur hal-0.5.8.1/tools/linux/hal-luks-remove-linux hal-0.5.8.1-new/tools/linux/hal-luks-remove-linux +--- hal-0.5.8.1/tools/linux/hal-luks-remove-linux	2006-09-19 22:23:25.000000000 +0200 ++++ hal-0.5.8.1-new/tools/linux/hal-luks-remove-linux	2007-02-11 13:04:46.000000000 +0100 +@@ -6,7 +6,7 @@ + # This program is free software; you can redistribute it and/or modify + # it under the terms of the GNU General Public License version 2. +  +-CRYPTSETUP=/sbin/cryptsetup ++CRYPTSETUP=/usr/sbin/cryptsetup +  + echo LUKS cryptotext device $HAL_PROP_INFO_UDI is going away +  +diff -Naur hal-0.5.8.1/tools/linux/hal-luks-setup-linux hal-0.5.8.1-new/tools/linux/hal-luks-setup-linux +--- hal-0.5.8.1/tools/linux/hal-luks-setup-linux	2006-09-19 22:23:25.000000000 +0200 ++++ hal-0.5.8.1-new/tools/linux/hal-luks-setup-linux	2007-02-11 13:04:45.000000000 +0100 +@@ -9,7 +9,7 @@ + read password + PASSWORD=${PASSWORD//[^[:alnum:]_=[:space:]:.+-]/@} +  +-CRYPTSETUP=/sbin/cryptsetup ++CRYPTSETUP=/usr/sbin/cryptsetup +  + if [ ! -f $CRYPTSETUP ]; then +     echo org.freedesktop.Hal.Device.Volume.Crypto.SetupError >&2 +diff -Naur hal-0.5.8.1/tools/linux/hal-luks-teardown-linux hal-0.5.8.1-new/tools/linux/hal-luks-teardown-linux +--- hal-0.5.8.1/tools/linux/hal-luks-teardown-linux	2006-09-19 22:23:25.000000000 +0200 ++++ hal-0.5.8.1-new/tools/linux/hal-luks-teardown-linux	2007-02-11 13:04:44.000000000 +0100 +@@ -6,7 +6,7 @@ + # This program is free software; you can redistribute it and/or modify + # it under the terms of the GNU General Public License version 2. +  +-CRYPTSETUP=/sbin/cryptsetup ++CRYPTSETUP=/usr/sbin/cryptsetup +  + if [ ! -f $CRYPTSETUP ]; then + 	echo org.freedesktop.Hal.Device.Volume.Crypto.TeardownError >&2 diff --git a/abs/not_built/core/hal/dbus-error-init.patch b/abs/not_built/core/hal/dbus-error-init.patch new file mode 100644 index 0000000..fb3ad02 --- /dev/null +++ b/abs/not_built/core/hal/dbus-error-init.patch @@ -0,0 +1,231 @@ +From dcb2829b8eff61463b0869614ddb07b1c86cecaa Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> +Date: Wed, 30 Dec 2009 11:42:52 +0000 +Subject: linux/probe-input: don't use error prio init + +it may happen in the out: case that LIBHAL_FREE_DBUS_ERROR (&error) is +called before the error structure is initialized via +dbus_error_init (&error). This could lead to a segfault during startup +as seen in dmesg: + +|Intel AES-NI instructions are not detected. +|padlock: VIA PadLock not detected. +|hald-probe-inpu[1793]: segfault at 2 ip 00007f656fb68969 sp 00007fff39eeb950 error 4 in libc-2.10.2.so[7f656faf3000+14a000] +|hald-probe-inpu[1796]: segfault at 2 ip 00007fa2c3293969 sp 00007fffd92a5dd0 error 4 in libc-2.10.2.so[7fa2c321e000+14a000] +|hald-probe-inpu[1797]: segfault at 2 ip 00007f1d08ba2969 sp 00007fff34244e30 error 4 in libc-2.10.2.so[7f1d08b2d000+14a000] +|hald-probe-inpu[1799]: segfault at 2 ip 00007f35c0e3d969 sp 00007fffe5ec7ee0 error 4 in libc-2.10.2.so[7f35c0dc8000+14a000] +|hald-probe-inpu[1800]: segfault at 2 ip 00007f931c556969 sp 00007fffe1825b60 error 4 in libc-2.10.2.so[7f931c4e1000+14a000] +|hald-probe-inpu[1801]: segfault at 2 ip 00007f5156d9a969 sp 00007fff4e620af0 error 4 in libc-2.10.2.so[7f5156d25000+14a000] +|RPC: Registered udp transport module. +|RPC: Registered tcp transport module. + +What I run into seems to be reported as Debian #562068 [0]. This patch +makes the segfault go away on my machine. + +[0] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=562068 + +Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> +Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com> +--- +diff --git a/hald/linux/probing/probe-input.c b/hald/linux/probing/probe-input.c +index 94e9929..cad47d3 100644 +--- a/hald/linux/probing/probe-input.c ++++ b/hald/linux/probing/probe-input.c +@@ -70,6 +70,7 @@ main (int argc, char *argv[]) + 	fd = -1; +  + 	setup_logger (); ++	dbus_error_init (&error); +  + 	button_type = getenv ("HAL_PROP_BUTTON_TYPE"); + 	if (button_type == NULL) +@@ -96,7 +97,6 @@ main (int argc, char *argv[]) + 	if (udi == NULL) + 		goto out; +  +-	dbus_error_init (&error); + 	if ((ctx = libhal_ctx_init_direct (&error)) == NULL) + 		goto out; +  +-- +cgit v0.8.3-6-g21f6 +From baa61a879985d63f549854518ef14efd40e62e8c Mon Sep 17 00:00:00 2001 +From: Peter Jones <pjones@redhat.com> +Date: Wed, 24 Feb 2010 16:19:28 +0000 +Subject: Make sure dbus_error_init() is called before LIBHAL_FREE_DBUS_ERROR() + +If dbus_error_init() is not called before LIBHAL_FREE_DBUS_ERROR() is +called on that error, then it is uninitialized and may segfault.  This +means that dbus_error_init() must be called before any "goto out" if +"out:" calls LIBHAL_FREE_DBUS_ERROR(). + +Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com> +--- +diff --git a/hald/linux/probing/probe-hiddev.c b/hald/linux/probing/probe-hiddev.c +index 45d2084..bffc040 100644 +--- a/hald/linux/probing/probe-hiddev.c ++++ b/hald/linux/probing/probe-hiddev.c +@@ -57,11 +57,12 @@ main (int argc, char *argv[]) + 	/* assume failure */ + 	ret = 1; +  ++	dbus_error_init (&error); ++ + 	udi = getenv ("UDI"); + 	if (udi == NULL) + 		goto out; +  +-	dbus_error_init (&error); + 	if ((ctx = libhal_ctx_init_direct (&error)) == NULL) + 		goto out; +  +diff --git a/hald/linux/probing/probe-ieee1394-unit.c b/hald/linux/probing/probe-ieee1394-unit.c +index 70b0f86..aaa92e2 100644 +--- a/hald/linux/probing/probe-ieee1394-unit.c ++++ b/hald/linux/probing/probe-ieee1394-unit.c +@@ -388,6 +388,8 @@ int main (int argc, char *argv[]) +  + 	setup_logger (); +  ++	dbus_error_init (&error); ++ + 	udi = getenv ("UDI"); + 	if (udi == NULL) + 		goto out; +@@ -396,7 +398,6 @@ int main (int argc, char *argv[]) + 	if (ieee1394_udi == NULL) + 		goto out; +  +-	dbus_error_init (&error); + 	if ((ctx = libhal_ctx_init_direct (&error)) == NULL) + 		goto out; +  +diff --git a/hald/linux/probing/probe-net-bluetooth.c b/hald/linux/probing/probe-net-bluetooth.c +index 0b1b912..e911eea 100644 +--- a/hald/linux/probing/probe-net-bluetooth.c ++++ b/hald/linux/probing/probe-net-bluetooth.c +@@ -141,6 +141,8 @@ main (int argc, char *argv[]) + 	DBusMessage *reply = NULL; + 	DBusError error; +  ++	dbus_error_init (&error); ++ + 	udi = getenv ("UDI"); + 	if (udi == NULL) + 		goto out; +@@ -151,8 +153,6 @@ main (int argc, char *argv[]) +  + 	HAL_INFO (("Investigating '%s'", iface)); +  +-	dbus_error_init (&error); +- + 	if ((conn = dbus_bus_get (DBUS_BUS_SYSTEM, &error)) == NULL) + 		goto out; +  +diff --git a/hald/linux/probing/probe-printer.c b/hald/linux/probing/probe-printer.c +index 91ed7bc..7c6d1c6 100644 +--- a/hald/linux/probing/probe-printer.c ++++ b/hald/linux/probing/probe-printer.c +@@ -66,6 +66,8 @@ main (int argc, char *argv[]) + 	ret = 1; +  + 	setup_logger (); ++ ++	dbus_error_init (&error); + 	 + 	udi = getenv ("UDI"); + 	if (udi == NULL) { +@@ -73,7 +75,6 @@ main (int argc, char *argv[]) + 		goto out; + 	} +  +-	dbus_error_init (&error); + 	if ((ctx = libhal_ctx_init_direct (&error)) == NULL) { + 		HAL_ERROR (("ctx init failed")); + 		goto out; +diff --git a/hald/linux/probing/probe-smbios.c b/hald/linux/probing/probe-smbios.c +index 0bc9689..15c0d4f 100644 +--- a/hald/linux/probing/probe-smbios.c ++++ b/hald/linux/probing/probe-smbios.c +@@ -129,6 +129,8 @@ main (int argc, char *argv[]) + 	ret = 1; +  + 	setup_logger (); ++ ++	dbus_error_init (&error); + 	 + 	udi = getenv ("UDI"); + 	if (udi == NULL) { +@@ -136,7 +138,6 @@ main (int argc, char *argv[]) + 		goto out; + 	} +  +-	dbus_error_init (&error); + 	if ((ctx = libhal_ctx_init_direct (&error)) == NULL) { + 		HAL_ERROR (("ctx init failed")); + 		goto out; +diff --git a/hald/linux/probing/probe-storage.c b/hald/linux/probing/probe-storage.c +index 824a82e..dd524ca 100644 +--- a/hald/linux/probing/probe-storage.c ++++ b/hald/linux/probing/probe-storage.c +@@ -109,6 +109,8 @@ main (int argc, char *argv[]) + 	/* assume failure */ + 	ret = 1; +  ++	dbus_error_init (&error); ++ + 	if ((udi = getenv ("UDI")) == NULL) + 		goto out; + 	if ((device_file = getenv ("HAL_PROP_BLOCK_DEVICE")) == NULL) +@@ -127,7 +129,6 @@ main (int argc, char *argv[]) + 	else + 		only_check_for_fs = FALSE; +  +-	dbus_error_init (&error); + 	if ((ctx = libhal_ctx_init_direct (&error)) == NULL) + 		goto out; +  +diff --git a/hald/linux/probing/probe-video4linux.c b/hald/linux/probing/probe-video4linux.c +index cf913c0..7bc13e8 100644 +--- a/hald/linux/probing/probe-video4linux.c ++++ b/hald/linux/probing/probe-video4linux.c +@@ -58,6 +58,8 @@ main (int argc, char *argv[]) +  + 	setup_logger (); +  ++	dbus_error_init (&error); ++ + 	device_file = getenv ("HAL_PROP_VIDEO4LINUX_DEVICE"); + 	if (device_file == NULL) + 		goto out; +@@ -66,7 +68,6 @@ main (int argc, char *argv[]) + 	if (udi == NULL) + 		goto out; +  +-	dbus_error_init (&error); + 	ctx = libhal_ctx_init_direct (&error); + 	if (ctx == NULL) + 		goto out; +diff --git a/hald/linux/probing/probe-volume.c b/hald/linux/probing/probe-volume.c +index 0de1b91..7268fff 100644 +--- a/hald/linux/probing/probe-volume.c ++++ b/hald/linux/probing/probe-volume.c +@@ -318,6 +318,8 @@ main (int argc, char *argv[]) + 	/* assume failure */ + 	ret = 1; +  ++	dbus_error_init (&error); ++ + 	if ((udi = getenv ("UDI")) == NULL) + 		goto out; + 	if ((device_file = getenv ("HAL_PROP_BLOCK_DEVICE")) == NULL) +@@ -346,7 +348,6 @@ main (int argc, char *argv[]) +  + 	fsusage = getenv ("HAL_PROP_VOLUME_FSUSAGE"); +  +-	dbus_error_init (&error); + 	if ((ctx = libhal_ctx_init_direct (&error)) == NULL) + 		goto out; +  +-- +cgit v0.8.3-6-g21f6 diff --git a/abs/not_built/core/hal/fix-libusb-detection.patch b/abs/not_built/core/hal/fix-libusb-detection.patch new file mode 100644 index 0000000..d4f966d --- /dev/null +++ b/abs/not_built/core/hal/fix-libusb-detection.patch @@ -0,0 +1,66 @@ +From fce91df8ba7f305c624baf1f06961c040b088ecc Mon Sep 17 00:00:00 2001 +From: Joe Marcus Clarke <marcus@FreeBSD.org> +Date: Tue, 08 Dec 2009 00:05:27 +0000 +Subject: Fix libusb detection on Linux + +Adjust the FreeBSD libusb20 code so that it does not interfere with the +Linux libusb detection. + +Reported by:	Robby Workman <rw@rlworkman.net> +--- +diff --git a/configure.in b/configure.in +index a8fda51..8363595 100644 +--- a/configure.in ++++ b/configure.in +@@ -479,9 +479,6 @@ if test "x$with_libpci" != xno ; then + fi  + AM_CONDITIONAL([HAVE_LIBPCI], [test "x$USE_LIBPCI" = "xyes"]) +  +-USE_LIBUSB20=no +-USE_LIBUSB=no +-LIBUSB20_LIBS="" + AC_ARG_WITH([backend], + 	    AS_HELP_STRING([--with-backend=<name>], + 	                   [backend to use (linux/solaris/freebsd/dummy)]), +@@ -510,21 +507,25 @@ AM_CONDITIONAL(HALD_COMPILE_FREEBSD, [test x$HALD_BACKEND = xfreebsd], [Compilin + AM_CONDITIONAL(HALD_COMPILE_SOLARIS, [test x$HALD_BACKEND = xsolaris], [Compiling for Solaris]) + AC_SUBST(HALD_BACKEND) + if test "x$HALD_BACKEND" = "xfreebsd"; then +-    AC_CHECK_LIB([usb20], [libusb20_dev_get_info], [USE_LIBUSB20=yes], [USE_LIBUSB20=no]) +-fi +-if test "x$USE_LIBUSB20" = "xno"; then +-    AC_CHECK_LIB([usb], [libusb20_dev_get_info], [USE_LIBUSB=yes], [USE_LIBUSB=no]) +-fi +-AM_CONDITIONAL([HAVE_LIBUSB20],[test "x$USE_LIBUSB20" = "xyes"]) +-AM_CONDITIONAL([HAVE_LIBUSB20],[test "x$USE_LIBUSB" = "xyes"]) +-if test "x$USE_LIBUSB20" = "xyes"; then +-    AC_DEFINE(HAVE_LIBUSB20, 1, [Set if we need libusb20]) +-    LIBUSB20_LIBS="-lusb20" +-elif test "x$USE_LIBUSB" = "xyes"; then +-    AC_DEFINE(HAVE_LIBUSB20, 1, [Set if we need libsub20]) +-    LIBUSB20_LIBS="-lusb" ++    USE_BSDLIBUSB20=no ++    USE_BSDLIBUSB=no ++    LIBUSB20_LIBS="" ++    AC_CHECK_LIB([usb20], [libusb20_dev_get_info], [USE_BSDLIBUSB20=yes], [USE_BSDLIBUSB20=no]) ++    if test "x$USE_BSDLIBUSB20" = "xno"; then ++        AC_CHECK_LIB([usb], [libusb20_dev_get_info], [USE_BSDLIBUSB=yes], [USE_BSDLIBUSB=no]) ++    fi ++    AM_CONDITIONAL([HAVE_LIBUSB20],[test "x$USE_BSDLIBUSB20" = "xyes" -o "x$USE_BSDLIBUSB" = "xyes"]) ++    if test "x$USE_BSDLIBUSB20" = "xyes"; then ++        AC_DEFINE(HAVE_LIBUSB20, 1, [Set if we need libusb20]) ++        LIBUSB20_LIBS="-lusb20" ++    elif test "x$USE_BSDLIBUSB" = "xyes"; then ++        AC_DEFINE(HAVE_LIBUSB20, 1, [Set if we need libsub20]) ++        LIBUSB20_LIBS="-lusb" ++    fi ++    AC_SUBST(LIBUSB20_LIBS) ++else ++    AM_CONDITIONAL([HAVE_LIBUSB20], [false]) + fi +-AC_SUBST(LIBUSB20_LIBS) +  + dnl DBUS API is subject to changes + AC_DEFINE_UNQUOTED(DBUS_API_SUBJECT_TO_CHANGE, [], [DBUS API is subject to change]) +-- +cgit v0.8.3-6-g21f6 diff --git a/abs/not_built/core/hal/fix-udev-compatibility.patch b/abs/not_built/core/hal/fix-udev-compatibility.patch new file mode 100644 index 0000000..2cfa3ad --- /dev/null +++ b/abs/not_built/core/hal/fix-udev-compatibility.patch @@ -0,0 +1,31 @@ +diff -Nur hal-0.5.11.orig/hald/linux/blockdev.c hal-0.5.11/hald/linux/blockdev.c +--- hal-0.5.11.orig/hald/linux/blockdev.c	2008-05-08 01:23:41.000000000 +0200 ++++ hal-0.5.11/hald/linux/blockdev.c	2008-09-12 19:38:36.000000000 +0200 +@@ -1750,11 +1750,11 @@ +         char *ret; +         char *u_stdout; +         int u_exit_status; +-        const char *argv[] = {"/usr/bin/udevinfo", "--root", "--query", "name", "--path", NULL, NULL}; ++        const char *argv[] = {"/sbin/udevadm", "info", "--root", "--query", "name", "--path", NULL, NULL}; +         GError *g_error; +  +         ret = NULL; +-        argv[5] = sysfs_path; ++        argv[6] = sysfs_path; +  +         g_error = NULL; +  +diff -Nur hal-0.5.11.orig/hald/linux/coldplug.c hal-0.5.11/hald/linux/coldplug.c +--- hal-0.5.11.orig/hald/linux/coldplug.c	2008-05-08 01:23:32.000000000 +0200 ++++ hal-0.5.11/hald/linux/coldplug.c	2008-09-12 19:37:47.000000000 +0200 +@@ -149,8 +149,8 @@ + static gboolean + hal_util_init_sysfs_to_udev_map (void) + { +-	char *udevdb_export_argv[] = { "/usr/bin/udevinfo", "-e", NULL }; +-	char *udevroot_argv[] = { "/usr/bin/udevinfo", "-r", NULL }; ++	char *udevdb_export_argv[] = { "/sbin/udevadm", "info", "-e", NULL }; ++	char *udevroot_argv[] = { "/sbin/udevadm", "info", "-r", NULL }; + 	int udevinfo_exitcode; + 	UdevInfo *info = NULL; + 	char *p; diff --git a/abs/not_built/core/hal/hal b/abs/not_built/core/hal/hal new file mode 100644 index 0000000..012d456 --- /dev/null +++ b/abs/not_built/core/hal/hal @@ -0,0 +1,54 @@ +#!/bin/bash + +# general config +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in +    start) +        #Check for running dbus, start when not running +    	ck_daemon dbus && /etc/rc.d/dbus start +	if [ -x /etc/rc.d/acpid ]; then +		ck_daemon acpid && /etc/rc.d/acpid start +	fi +        stat_busy "Starting Hardware Abstraction Layer" +        if [ ! -x /var/cache/hald ] ; then +		install -m755 -g 82 -o 82 -d /var/cache/hald +        fi +	if [ ! -x /var/run/hald ]; then +		install -m755 -g 82 -o 82 -d /var/run/hald +	fi +	if [ ! -x /var/run/hald/hald-local ]; then +		install -m755 -g 0 -o 0 -d /var/run/hald/hald-local +	fi +	if [ ! -x /var/run/hald/hald-runner ]; then +		install -m755 -g 0 -o 0 -d /var/run/hald/hald-runner +	fi +	/usr/sbin/hald +	if [ $? -gt 0 ]; then +		stat_fail +	else +		add_daemon hal +		stat_done +	fi +        ;; +    stop) +	stat_busy "Stopping Hardware Abstraction Layer" +	[ -f /var/run/hald.pid ] && kill `cat /var/run/hald.pid` &> /dev/null +	if [ $? -gt 0 ]; then +		stat_fail +	else +		rm_daemon hal +		stat_done +	fi +	;; +    restart) +        $0 stop +	sleep 1 +        $0 start +        ;; +    *) +        echo "usage: $0 {start|stop|restart}" +	;; +esac +exit 0 diff --git a/abs/not_built/core/hal/hal-0.5.9-hide-diagnostic.patch b/abs/not_built/core/hal/hal-0.5.9-hide-diagnostic.patch new file mode 100644 index 0000000..58c882d --- /dev/null +++ b/abs/not_built/core/hal/hal-0.5.9-hide-diagnostic.patch @@ -0,0 +1,14 @@ +--- hal-0.5.9/fdi/policy/10osvendor/20-storage-methods.fdi.orig	2007-05-01 21:39:31.000000000 +0000 ++++ hal-0.5.9/fdi/policy/10osvendor/20-storage-methods.fdi	2007-05-01 21:51:14.000000000 +0000 +@@ -100,6 +100,11 @@ + 	</match> +       </match> +  ++      <!-- Hide partitions marked as Compaq Diagnostics --> ++      <match key="volume.partition.type" string="0x12"> ++        <merge key="volume.ignore" type="bool">true</merge> ++      </match> ++ +       <!-- EFI firmware partitions --> +       <match key="volume.fstype" string="vfat"> + 	<match key="volume.label" string="EFI"> diff --git a/abs/not_built/core/hal/hal-HDAPS-blacklist.patch b/abs/not_built/core/hal/hal-HDAPS-blacklist.patch new file mode 100644 index 0000000..8a68228 --- /dev/null +++ b/abs/not_built/core/hal/hal-HDAPS-blacklist.patch @@ -0,0 +1,30 @@ +From e1f85fe0cdfa7e4d4ce7a811d0b0c90bf38fba0c Mon Sep 17 00:00:00 2001 +From: Peter Hutterer <peter.hutterer@who-t.net> +Date: Thu, 25 Jun 2009 09:47:27 +1000 +Subject: [PATCH] Blacklist HDAPS accelerometer device from being picked up in X. + +This device posts accelerometer data through ABS_X/ABS_Y, making X unusable +if it's controlling the pointer. +--- + fdi/policy/10osvendor/10-x11-input.fdi |    6 ++++++ + 1 files changed, 6 insertions(+), 0 deletions(-) + +diff --git a/fdi/policy/10osvendor/10-x11-input.fdi b/fdi/policy/10osvendor/10-x11-input.fdi +index a342421..89ba672 100644 +--- a/fdi/policy/10osvendor/10-x11-input.fdi ++++ b/fdi/policy/10osvendor/10-x11-input.fdi +@@ -38,5 +38,11 @@ +         <merge key="input.x11_driver" type="string">evdev</merge> +       </match> +     </match> ++ ++    <!-- http://bugs.freedesktop.org/show_bug.cgi?id=22442  ++         Posts accel data through ABS_X/ABS_Y, makes X unusable --> ++    <match key="info.product" contains="ThinkPad HDAPS accelerometer data"> ++        <remove key="input.x11_driver" /> ++    </match> +   </device> + </deviceinfo> +--  +1.6.3.rc1.2.g0164.dirty + diff --git a/abs/not_built/core/hal/hal-KVM-evdev.patch b/abs/not_built/core/hal/hal-KVM-evdev.patch new file mode 100644 index 0000000..917655e --- /dev/null +++ b/abs/not_built/core/hal/hal-KVM-evdev.patch @@ -0,0 +1,36 @@ +From 7618498eec840cb26474dc47821e083957772706 Mon Sep 17 00:00:00 2001 +From: Peter Hutterer <peter.hutterer@who-t.net> +Date: Fri, 20 Mar 2009 14:37:24 +1000 +Subject: [PATCH] Add x11_driver for American Megatrends KVM. + +This device exposes only ABS_X, ABS_Y and buttons. It gets input.joystick +assigned but not input.mouse, hence the default evdev mapping doesn't pick up +on it. + +Red Hat Bug 484776 <https://bugzilla.redhat.com/show_bug.cgi?id=484776> + +Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> +--- + fdi/policy/10osvendor/10-x11-input.fdi |    6 ++++++ + 1 files changed, 6 insertions(+), 0 deletions(-) + +diff --git a/fdi/policy/10osvendor/10-x11-input.fdi b/fdi/policy/10osvendor/10-x11-input.fdi +index 769f75b..eb9767e 100644 +--- a/fdi/policy/10osvendor/10-x11-input.fdi ++++ b/fdi/policy/10osvendor/10-x11-input.fdi +@@ -2,6 +2,12 @@ + <deviceinfo version="0.2"> +   <device> +  ++    <!-- This KVMS has abs x/y and buttons. It only has inputInfo.joystick ++         set by hal and doesn't get picked up by default --> ++    <match key="input.product" contains="American Megatrends Inc. Virtual Keyboard and Mouse"> ++       <merge key="input.x11_driver" type="string">evdev</merge> ++    </match> ++ +     <!-- KVM emulates a USB graphics tablet which works in absolute coordinate mode --> +     <match key="input.product" contains="QEMU USB Tablet"> +        <merge key="input.x11_driver" type="string">evdev</merge> +--  +1.6.0.6 + diff --git a/abs/not_built/core/hal/hal-policy.patch b/abs/not_built/core/hal/hal-policy.patch new file mode 100644 index 0000000..96528b5 --- /dev/null +++ b/abs/not_built/core/hal/hal-policy.patch @@ -0,0 +1,32 @@ +--- hal-0.5.11/hal.conf.in	2008-05-27 16:09:25.000000000 +0200 ++++ hal-0.5.11/hal.conf.in	2008-05-27 16:21:28.000000000 +0200 +@@ -37,9 +37,27 @@ + 	   receive_sender="org.freedesktop.Hal"/> +   </policy> +  +-  <!-- Default policy for the exported interfaces; if PolicyKit is not used +-       for access control you will need to modify this --> ++  <!-- Default policy for the exported interfaces --> +   <policy context="default"> ++    <deny send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/> ++    <deny send_interface="org.freedesktop.Hal.Device.VideoAdapterPM"/> ++    <deny send_interface="org.freedesktop.Hal.Device.LaptopPanel"/> ++    <deny send_interface="org.freedesktop.Hal.Device.Volume"/> ++    <deny send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/> ++  </policy> ++ ++  <policy group="power"> ++    <allow send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/> ++    <allow send_interface="org.freedesktop.Hal.Device.LaptopPanel"/> ++  </policy> ++ ++  <policy group="storage"> ++    <allow send_interface="org.freedesktop.Hal.Device.Volume"/> ++    <allow send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/> ++  </policy> ++ ++  <!-- You can change this to a more suitable user, or make per-group --> ++  <policy user="0"> +     <allow send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/> +     <allow send_interface="org.freedesktop.Hal.Device.VideoAdapterPM"/> +     <allow send_interface="org.freedesktop.Hal.Device.LaptopPanel"/> diff --git a/abs/not_built/core/hal/hal-remove-dell-killswitch.patch b/abs/not_built/core/hal/hal-remove-dell-killswitch.patch new file mode 100644 index 0000000..ae0cf7a --- /dev/null +++ b/abs/not_built/core/hal/hal-remove-dell-killswitch.patch @@ -0,0 +1,201 @@ +diff -upr hal-0.5.12/tools/linux/hal-system-killswitch-get-power-linux hal-0.5.12.new/tools/linux/hal-system-killswitch-get-power-linux +--- hal-0.5.12/tools/linux/hal-system-killswitch-get-power-linux	2008-08-22 07:34:47.000000000 +0100 ++++ hal-0.5.12.new/tools/linux/hal-system-killswitch-get-power-linux	2009-03-03 10:45:20.000000000 +0000 +@@ -8,11 +8,6 @@ + # the Free Software Foundation; either version 2 of the License, or + # (at your option) any later version. +  +-DELL_WCTL=/usr/bin/dellWirelessCtl +-if [ -x "/usr/sbin/dellWirelessCtl" ]; then +-  DELL_WCTL=/usr/sbin/dellWirelessCtl +-fi +- + if [ "$HAL_PROP_KILLSWITCH_TYPE" = "bluetooth" ]; then +     if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "sonypic" ]; then + 	value="`hal-system-sonypic getbluetooth`" +@@ -22,25 +17,6 @@ if [ "$HAL_PROP_KILLSWITCH_TYPE" = "blue + 	    exit 1 + 	fi + 	exit ${value} +-    elif [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then +-	if [ -x "$DELL_WCTL" ]; then +-	    # TODO: write our own binary that links with libsmbios? +-	    $DELL_WCTL --st_bt +-	    value=$? +-	    if [ "$value" = "0" ]; then +-	        exit 1 +-	    elif [ "$value" = "1" ]; then +-	        exit 0 +-	    else +-	        echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 +-	        echo "dellWirelessCtl returned $value" >&2 +-                exit 1 +-	    fi +-        else +-	    echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 +-	    echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2 +-	    exit 1 +-	fi +     elif [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = thinkpad -a -r "$HAL_PROP_LINUX_SYSFS_PATH" ]; then + 	read value < $HAL_PROP_LINUX_SYSFS_PATH 2> /dev/null + 	if [ $? -eq 0 ]; then +@@ -55,56 +31,6 @@ if [ "$HAL_PROP_KILLSWITCH_TYPE" = "blue + 	echo "Access type not supported" >&2 + 	exit 1 +     fi +-elif [ "$HAL_PROP_KILLSWITCH_TYPE" = "wlan" ]; then +-    if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then +-	if [ -x "$DELL_WCTL" ]; then +- 	    # TODO: write our own binary that links with libsmbios? +-	    $DELL_WCTL --st_wlan +-	    value=$? +-	    if [ "$value" = "0" ]; then +-	        exit 1 +-	    elif [ "$value" = "1" ]; then +-	        exit 0 +-	    else +-	        echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 +-	        echo "dellWirelessCtl returned $value" >&2 +-                exit 1 +-	    fi +-	else  +-	    echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 +-	    echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2 +-	    exit 1 +-	fi +-    else +-	echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 +-	echo "Access type not supported" >&2 +-	exit 1 +-    fi +-elif [ "$HAL_PROP_KILLSWITCH_TYPE" = "wwan" ]; then +-    if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then +-	if [ -x "$DELL_WCTL" ]; then +-   	    # TODO: write our own binary that links with libsmbios? +-	    $DELL_WCTL --st_wwan +-	    value=$? +-	    if [ "$value" = "0" ]; then +-	        exit 1 +-	    elif [ "$value" = "1" ]; then +-	        exit 0 +-	    else +-	        echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 +-	        echo "dellWirelessCtl returned $value" >&2 +-                exit 1 +-	    fi +-	else  +-	    echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 +-	    echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2 +-	    exit 1 +-	fi +-    else +-	echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 +-	echo "Access type not supported" >&2 +-	exit 1 +-    fi + else +     echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 +     echo "Killswitch type not supported" >&2 +diff -upr hal-0.5.12/tools/linux/hal-system-killswitch-set-power-linux hal-0.5.12.new/tools/linux/hal-system-killswitch-set-power-linux +--- hal-0.5.12/tools/linux/hal-system-killswitch-set-power-linux	2008-10-24 09:45:54.000000000 +0100 ++++ hal-0.5.12.new/tools/linux/hal-system-killswitch-set-power-linux	2009-03-03 10:44:49.000000000 +0000 +@@ -8,11 +8,6 @@ + # the Free Software Foundation; either version 2 of the License, or + # (at your option) any later version. +  +-DELL_WCTL=/usr/bin/dellWirelessCtl +-if [ -x "/usr/sbin/dellWirelessCtl" ]; then +-    DELL_WCTL=/usr/sbin/dellWirelessCtl +-fi +- + if [ "$HAL_PROP_KILLSWITCH_TYPE" = "bluetooth" ]; then +     if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "sonypic" ]; then + 	hal-system-sonypic setbluetooth $value +@@ -23,26 +18,6 @@ if [ "$HAL_PROP_KILLSWITCH_TYPE" = "blue + 	    exit 1 + 	fi + 	exit 0 +-    elif [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then +-	if [ -x "$DELL_WCTL" ]; then +-	    # TODO: write our own binary that links with libsmbios? +-	    if [ "$value" = "true" ]; then +-	        $DELL_WCTL --bt 1 +-	        ret=$? +-	    else +-	        $DELL_WCTL --bt 0 +-	        ret=$? +-	    fi +-	    if [ "$ret" != "0" ]; then +-	        echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 +-	        echo "dellWirelessCtl returned $ret" >&2 +-	        exit 1 +-	    fi +-        else +-            echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 +-            echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2 +-            exit 1 +-        fi +     elif [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = thinkpad -a -w "$HAL_PROP_LINUX_SYSFS_PATH" ]; then +         if [ "$value" = "true" ]; then  + 	    bit=1;  +@@ -61,60 +36,6 @@ if [ "$HAL_PROP_KILLSWITCH_TYPE" = "blue + 	echo "Access type not supported" >&2 + 	exit 1 +     fi +-elif [ "$HAL_PROP_KILLSWITCH_TYPE" = "wlan" ]; then +-    if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then +-	if [ -x "$DELL_WCTL" ]; then +-	    # As a side effect we disable the physical kill switch +-	    # TODO: write our own binary that links with libsmbios? +-	    if [ "$value" = "true" ]; then +-	        $DELL_WCTL --sw_wlan 0 --wlan 1 +-	        ret=$? +-	    else +-	        $DELL_WCTL --sw_wlan 0 --wlan 0 +-	        ret=$? +-	    fi +-	    if [ "$ret" != "0" ]; then +-	        echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 +-	        echo "dellWirelessCtl returned $ret" >&2 +-                exit 1 +-	    fi +-        else +-            echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 +-            echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2 +-            exit 1 +-        fi +-    else +-	echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 +-	echo "Access type not supported" >&2 +-	exit 1 +-    fi +-elif [ "$HAL_PROP_KILLSWITCH_TYPE" = "wwan" ]; then +-    if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then  +-	if [ -x "$DELL_WCTL" ]; then +-	    # As a side effect we disable the physical kill switch +-	    # TODO: write our own binary that links with libsmbios? +-	    if [ "$value" = "true" ]; then +-	        $DELL_WCTL --sw_wwan 0 --wwan 1 +-	        ret=$? +-	    else +-	        $DELL_WCTL --sw_wwan 0 --wwan 0 +-	        ret=$? +-	    fi +-	    if [ "$ret" != "0" ]; then +-	        echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 +-	        echo "dellWirelessCtl returned $ret" >&2 +-                exit 1 +-	    fi +-        else +-            echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 +-            echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2 +-            exit 1 +-        fi +-    else +-	echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 +-	echo "Access type not supported" >&2 +-	exit 1 +-    fi + else +     echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2 +     echo "Killswitch type not supported" >&2 diff --git a/abs/not_built/core/hal/hal-use-at-console.patch b/abs/not_built/core/hal/hal-use-at-console.patch new file mode 100644 index 0000000..0b32f17 --- /dev/null +++ b/abs/not_built/core/hal/hal-use-at-console.patch @@ -0,0 +1,45 @@ +diff -up hal-0.5.13/hal.conf.in.drop-polkit hal-0.5.13/hal.conf.in +--- hal-0.5.13/hal.conf.in.drop-polkit	2009-02-04 17:07:23.000000000 -0500 ++++ hal-0.5.13/hal.conf.in	2009-07-29 23:15:16.866766074 -0400 +@@ -25,7 +25,41 @@ +            send_interface="org.freedesktop.Hal.Device"/> +     <allow send_destination="org.freedesktop.Hal" +            send_interface="org.freedesktop.Hal.Manager"/> ++  </policy> ++ ++  <!-- Only allow users at the local console to manipulate devices --> ++  <policy at_console="true"> ++    <allow send_destination="org.freedesktop.Hal" ++           send_interface="org.freedesktop.Hal.Device.CPUFreq"/> ++    <allow send_destination="org.freedesktop.Hal" ++    	   send_interface="org.freedesktop.Hal.Device.DockStation"/> ++    <allow send_destination="org.freedesktop.Hal" ++    	   send_interface="org.freedesktop.Hal.Device.KillSwitch"/> ++    <allow send_destination="org.freedesktop.Hal" ++    	   send_interface="org.freedesktop.Hal.Device.KeyboardBacklight"/> ++    <allow send_destination="org.freedesktop.Hal" ++    	   send_interface="org.freedesktop.Hal.Device.LaptopPanel"/> ++    <allow send_destination="org.freedesktop.Hal" ++    	   send_interface="org.freedesktop.Hal.Device.Leds"/> ++    <allow send_destination="org.freedesktop.Hal" ++    	   send_interface="org.freedesktop.Hal.Device.LightSensor"/> ++    <allow send_destination="org.freedesktop.Hal" ++    	   send_interface="org.freedesktop.Hal.Device.Storage"/> ++    <allow send_destination="org.freedesktop.Hal" ++    	   send_interface="org.freedesktop.Hal.Device.Storage.Removable"/> ++    <allow send_destination="org.freedesktop.Hal" ++    	   send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/> ++    <allow send_destination="org.freedesktop.Hal" ++    	   send_interface="org.freedesktop.Hal.Device.Volume"/> ++    <allow send_destination="org.freedesktop.Hal" ++    	   send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/> ++    <allow send_destination="org.freedesktop.Hal" ++    	   send_interface="org.freedesktop.Hal.Device.WakeOnLan"/> ++ ++  </policy> +  ++  <!-- well,...and root too --> ++  <policy user="root"> +     <allow send_destination="org.freedesktop.Hal" +            send_interface="org.freedesktop.Hal.Device.CPUFreq"/> +     <allow send_destination="org.freedesktop.Hal" diff --git a/abs/not_built/core/hal/hal-xen-unignore-axes.patch b/abs/not_built/core/hal/hal-xen-unignore-axes.patch new file mode 100644 index 0000000..b248639 --- /dev/null +++ b/abs/not_built/core/hal/hal-xen-unignore-axes.patch @@ -0,0 +1,39 @@ +From e48f59d2b9bcb43ea8a7b8c884dcb73c8f65b170 Mon Sep 17 00:00:00 2001 +From: Peter Hutterer <peter.hutterer@who-t.net> +Date: Mon, 19 Oct 2009 14:27:20 +1000 +Subject: [PATCH] Un-ignore absolute axes for the Xen Virtual Pointer. + +The evdev-internal axis type picking fails for the Xen Virtual Pointer as it +exposes both relative and absolute axes. Evdev picks the relative axes by +default, leading to a immovable pointer if the Xen backend only sends +absolute coordinates. + +Explicitly tell evdev to not ignore the absolute axes. + +https://bugzilla.redhat.com/show_bug.cgi?id=523914 + +Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> +--- + fdi/policy/10osvendor/10-x11-input.fdi |    7 +++++++ + 1 files changed, 7 insertions(+), 0 deletions(-) + +diff --git a/fdi/policy/10osvendor/10-x11-input.fdi b/fdi/policy/10osvendor/10-x11-input.fdi +index 89ba672..752c4ab 100644 +--- a/fdi/policy/10osvendor/10-x11-input.fdi ++++ b/fdi/policy/10osvendor/10-x11-input.fdi +@@ -44,5 +44,12 @@ +     <match key="info.product" contains="ThinkPad HDAPS accelerometer data"> +         <remove key="input.x11_driver" /> +     </match> ++ ++    <!-- https://bugzilla.redhat.com/show_bug.cgi?id=523914 ++         Mouse does not move in PV Xen guest --> ++    <match key="info.product" contains="Xen Virtual Pointer"> ++      <merge key="input.x11_options.IgnoreAbsoluteAxes" type="string">false</merge> ++      <merge key="input.x11_options.IgnoreRelativeAxes" type="string">false</merge> ++    </match> +   </device> + </deviceinfo> +--  +1.6.2.5 + diff --git a/abs/not_built/core/hal/hal.install b/abs/not_built/core/hal/hal.install new file mode 100644 index 0000000..d6afee3 --- /dev/null +++ b/abs/not_built/core/hal/hal.install @@ -0,0 +1,24 @@ +post_install() { +  getent group hal >/dev/null || usr/sbin/groupadd -g 82 hal +  getent group optical >/dev/null || usr/sbin/groupadd -g 93 optical +  getent group floppy >/dev/null || usr/sbin/groupadd -g 94 floppy +  getent group storage >/dev/null || usr/sbin/groupadd -g 95 storage +  getent passwd hal >/dev/null || usr/sbin/useradd -c 'HAL daemon' -u 82 -g hal -G optical,floppy,storage -d '/' -s /bin/false hal +  usr/bin/passwd -l hal &>/dev/null +} + +# arg 1:  the new package version +# arg 2:  the old package version +post_upgrade() { +  post_install $1 +} + +# arg 1:  the old package version +post_remove() { +  if getent passwd hal &>/dev/null; then +    usr/sbin/userdel hal +  fi +  if getent group hal &>/dev/null; then +    usr/sbin/groupdel hal +  fi +} diff --git a/abs/not_built/core/hal/handle-input-touchpad.patch b/abs/not_built/core/hal/handle-input-touchpad.patch new file mode 100644 index 0000000..9cd6464 --- /dev/null +++ b/abs/not_built/core/hal/handle-input-touchpad.patch @@ -0,0 +1,101 @@ +From 6dccf8e3ad181e8f56b1d2a994ec50a1953a1c2d Mon Sep 17 00:00:00 2001 +From: Michael Witten <mfwitten@gmail.com> +Date: Wed, 06 Jan 2010 00:53:17 +0000 +Subject: Policy: handle `input.touchpad' explicitly + +This commit essentially duplicates the policy for: + +   <match key="info.capabilities" contains="input.mouse"> + +and then changes `input.mouse' to `input.touchpad'. This +is necessary because in Linus Torvalds's Linux repo: + +    git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git + +the following commit: + +    commit 7105d2ea73e1391b681d0e1212c42f561c64d429 +    Author: Dmitry Torokhov <dmitry.torokhov@gmail.com> +    Date:   Fri Dec 11 23:54:54 2009 -0800 + +        Input: ALPS - do not set REL_X/REL_Y capabilities on the touchpad + +        Relative events are only reported via secondary device therefore device +        associated with the touchpad should not advertise these capabilities. + +        Signed-off-by: Dmitry Torokhov <dtor@mail.ru> + +made these few changes: + +    diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c +    index a3f492a..b03e7e0 100644 +    /--- a/drivers/input/mouse/alps.c +    /+++ b/drivers/input/mouse/alps.c +    /@@ -487,6 +487,17 @@ int alps_init(struct psmouse *psmouse) +     	if (alps_hw_init(psmouse)) +     		goto init_fail; + +    +	/* +    +	 * Undo part of setup done for us by psmouse core since touchpad +    +	 * is not a relative device. +    +	 */ +    +	__clear_bit(EV_REL, dev1->evbit); +    +	__clear_bit(REL_X, dev1->relbit); +    +	__clear_bit(REL_Y, dev1->relbit); +    + +    +	/* +    +	 * Now set up our capabilities. +    +	 */ +     	dev1->evbit[BIT_WORD(EV_KEY)] |= BIT_MASK(EV_KEY); +     	dev1->keybit[BIT_WORD(BTN_TOUCH)] |= BIT_MASK(BTN_TOUCH); +     	dev1->keybit[BIT_WORD(BTN_TOOL_FINGER)] |= BIT_MASK(BTN_TOOL_FINGER); + +so that HAL no longer adds: + +    input.mouse + +to an ALPS touchpad's: + +    info.capabilities + +so that HAL no longer marks the ALPS touchpad with: + +    input.x11_driver = 'evdev' + +because the policy file: + +    fdi/policy/10osvendor/10-x11-input.fdi + +doesn't define the policy for: + +    <match key="info.capabilities" contains="input.touchpad"> + +which was previous unnecessary because everything used to +be caught by the policy for: + +    <match key="info.capabilities" contains="input.mouse"> + +Signed-off-by: Michael Witten <mfwitten@gmail.com> +Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com> +--- +diff --git a/fdi/policy/10osvendor/10-x11-input.fdi b/fdi/policy/10osvendor/10-x11-input.fdi +index cff8fc5..8bbe263 100644 +--- a/fdi/policy/10osvendor/10-x11-input.fdi ++++ b/fdi/policy/10osvendor/10-x11-input.fdi +@@ -16,6 +16,14 @@ +       </match> +     </match> +  ++    <match key="info.capabilities" contains="input.touchpad"> ++      <merge key="input.x11_driver" type="string">mouse</merge> ++      <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" ++             string="Linux"> ++        <merge key="input.x11_driver" type="string">evdev</merge> ++      </match> ++    </match> ++ +     <match key="info.capabilities" contains="input.tablet"> +       <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" +              string="Linux"> +-- +cgit v0.8.3-6-g21f6 diff --git a/abs/not_built/core/hal/macbook-fix-ioperm.patch b/abs/not_built/core/hal/macbook-fix-ioperm.patch new file mode 100644 index 0000000..14d0b39 --- /dev/null +++ b/abs/not_built/core/hal/macbook-fix-ioperm.patch @@ -0,0 +1,41 @@ +From 597c1ffffd61a15a334ce42f2a569c59f0270bcb Mon Sep 17 00:00:00 2001 +From: Dmitry Torokhov <dmitry.torokhov@gmail.com> +Date: Thu, 25 Feb 2010 10:25:18 +0000 +Subject: Fix incorrect arguments to ioperm() call + +The second argument of ioperm() is not the last port to be accessed +but rather length of the port range [port, port + len). + +Signed-off-by: Dmitry Torokhov <dtor@mail.ru> +Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com> +--- +diff --git a/hald/linux/addons/addon-imac-backlight.c b/hald/linux/addons/addon-imac-backlight.c +index e869192..54e4ea3 100644 +--- a/hald/linux/addons/addon-imac-backlight.c ++++ b/hald/linux/addons/addon-imac-backlight.c +@@ -158,7 +158,8 @@ main (int argc, char **argv) + 		goto out; + 	} +  +-	if (ioperm(0xB2, 0xB3, 1) < 0) ++	/* Allow access to ports 0xB2 and 0xB3 */ ++	if (ioperm(0xB2, 2, 1) < 0) + 	{ + 		HAL_ERROR (("ioperm failed (you should be root).")); + 		exit(1); +diff --git a/hald/linux/addons/addon-macbookpro-backlight.c b/hald/linux/addons/addon-macbookpro-backlight.c +index 2a6fef6..c1bbbac 100644 +--- a/hald/linux/addons/addon-macbookpro-backlight.c ++++ b/hald/linux/addons/addon-macbookpro-backlight.c +@@ -507,7 +507,8 @@ main (int argc, char *argv[]) +  	state = INREG(0x7ae4); +  	OUTREG(0x7ae4, state); +  +-	if (ioperm (0x300, 0x304, 1) < 0) { ++	/* Allow access to porta 0x300 through 0x304 */ ++	if (ioperm (0x300, 5, 1) < 0) { + 		HAL_ERROR (("ioperm failed (you should be root).")); + 		exit(1); + 	} +-- +cgit v0.8.3-6-g21f6 diff --git a/abs/not_built/core/hal/ntfs-mount-fix.patch b/abs/not_built/core/hal/ntfs-mount-fix.patch new file mode 100644 index 0000000..13597f2 --- /dev/null +++ b/abs/not_built/core/hal/ntfs-mount-fix.patch @@ -0,0 +1,18 @@ +--- tools/hal-storage-mount.c.orig	2008-04-21 01:48:27.000000000 +0200 ++++ tools/hal-storage-mount.c	2008-04-21 01:47:44.000000000 +0200 +@@ -769,13 +769,13 @@ +  + 	if (pol_is_fixed) { + 		if (pol_change_uid) { +-			action = NULL; /* "hal-storage-mount-fixed-extra-options"; TODO: rethink */ ++			action = "hal-storage-mount-fixed-extra-options"; /*TODO: rethink */ + 		} else { + 			action = "org.freedesktop.hal.storage.mount-fixed"; + 		} + 	} else { + 		if (pol_change_uid) { +-			action = NULL; /* "hal-storage-mount-removable-extra-options"; TODO: rethink "extra-options" */ ++			action = "hal-storage-mount-removable-extra-options"; /*TODO: rethink "extra-options" */ + 		} else { + 			action = "org.freedesktop.hal.storage.mount-removable"; + 		} diff --git a/abs/not_built/core/hal/ntfs3g-valid-options.patch b/abs/not_built/core/hal/ntfs3g-valid-options.patch new file mode 100644 index 0000000..4731442 --- /dev/null +++ b/abs/not_built/core/hal/ntfs3g-valid-options.patch @@ -0,0 +1,11 @@ +--- fdi/policy/10osvendor/20-storage-methods.fdi.orig	2007-10-28 19:40:22.000000000 +0000 ++++ fdi/policy/10osvendor/20-storage-methods.fdi	2007-10-28 19:40:58.000000000 +0000 +@@ -240,6 +240,8 @@ + 	  <append key="volume.mount.valid_options" type="strlist">uid=</append> + 	  <append key="volume.mount.valid_options" type="strlist">gid=</append> + 	  <append key="volume.mount.valid_options" type="strlist">umask=</append> ++	  <append key="volume.mount.valid_options" type="strlist">dmask=</append> ++	  <append key="volume.mount.valid_options" type="strlist">fmask=</append> + 	  <append key="volume.mount.valid_options" type="strlist">locale=</append> + 	  <append key="volume.mount.valid_options" type="strlist">utf8</append> + 	</match> diff --git a/abs/not_built/core/hal/path-max.patch b/abs/not_built/core/hal/path-max.patch new file mode 100644 index 0000000..304185d --- /dev/null +++ b/abs/not_built/core/hal/path-max.patch @@ -0,0 +1,31 @@ +From a2c3dd5a04d79265772c09c4280606d5c2ed72c6 Mon Sep 17 00:00:00 2001 +From: Martin Pitt <martin.pitt@ubuntu.com> +Date: Mon, 04 Jan 2010 15:56:13 +0000 +Subject: Bump HAL_PATH_MAX to 4096 + +Some bits in the code use realpath() with destination paths of size +HAL_PATH_MAX. This potentially breaks on systems where PATH_MAX is bigger than +HAL_PATH_MAX (which was 512 until now). + +Since we can't use PATH_MAX directly (due to platforms like GNU/Hurd, which +apparently don't have it), just bump HAL_PATH_MAX to 4096 (as PATH_MAX is on +Linux), to avoid potential buffer overflows and also fix hal on Linux when +enabling FORTIFY in gcc. + +https://bugs.freedesktop.org/show_bug.cgi?id=25888 +--- +diff --git a/hald/util.h b/hald/util.h +index c2a1584..7883333 100644 +--- a/hald/util.h ++++ b/hald/util.h +@@ -38,7 +38,7 @@ + #endif +  + #define HAL_NAME_MAX 256 +-#define HAL_PATH_MAX 512 ++#define HAL_PATH_MAX 4096 +  + gboolean hal_util_remove_trailing_slash (gchar *path); +  +-- +cgit v0.8.3-6-g21f6 diff --git a/abs/not_built/core/heirloom-mailx/PKGBUILD b/abs/not_built/core/heirloom-mailx/PKGBUILD new file mode 100644 index 0000000..d7e82f0 --- /dev/null +++ b/abs/not_built/core/heirloom-mailx/PKGBUILD @@ -0,0 +1,64 @@ +# $Id: PKGBUILD 160422 2012-06-01 20:13:47Z stephane $ +# Maintainer: Stéphane Gaudreault <stephane@archlinux.org> +# Contributor: Sergej Pupykin <pupykin.s@arch@gmail.com> +# Contributor: Andreas Wagner <Andreas.Wagner@em.uni-frankfurt.de> + +pkgname=heirloom-mailx +pkgver=12.5 +pkgrel=3 +pkgdesc="A commandline utility for sending and receiving email" +arch=('i686' 'x86_64') +url="http://heirloom.sourceforge.net/mailx.html" +license=('custom') +groups=('base') +depends=('openssl' 'krb5') +optdepends=('smtp-forwarder: for sending mail') +replaces=('mailx' 'mailx-heirloom') +provides=('mailx' 'mailx-heirloom') +conflicts=('mailx' 'mailx-heirloom') +backup=(etc/mail.rc) +source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.xz) +sha1sums=('1998dd6168a68400e533712ae7163c72b6a7c056') +options=('!makeflags') # Does not build with MAKEFLAGS=-jX, X>1 + +# source PKGBUILD && mksource +mksource() { +  export CVSROOT=:pserver:anonymous@nail.cvs.sourceforge.net:/cvsroot/nail +  D=nail +  [ -d "${D}" ] && cvs up "${D}" || cvs co "${D}" +   +  _dirname=${pkgname}-${pkgver} +  mv $D ${_dirname} +  tar -cJv --exclude=CVS -f ${_dirname}.tar.xz ${_dirname} +  rm -rf ${_dirname} +} + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" + +  sed -i 's|/etc/nail.rc|/etc/mail.rc|g' mailx.1 + +  # For Linux and BSD, this should be set. +  echo "set bsdcompat" >> nail.rc + +  sed -i "s/pg/less/" cmd1.c + +  echo PREFIX=/usr \ +       MAILRC=/etc/mail.rc \ +       SENDMAIL=/usr/sbin/sendmail \ +       MAILSPOOL=/var/spool/mail \ +       UCBINSTALL=/usr/bin/install > makeflags + +  make `cat makeflags` IPv6=-DHAVE_IPv6_FUNCS +} + +package() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  make DESTDIR="${pkgdir}" `cat makeflags` install + +  # For compatibility with the old mailx program +  ln -sf mailx "${pkgdir}"/usr/bin/mail +  ln -sf mailx.1.gz "${pkgdir}"/usr/share/man/man1/mail.1.gz + +  install -D -m0644 COPYING "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE +} diff --git a/abs/not_built/core/hwdetect/PKGBUILD b/abs/not_built/core/hwdetect/PKGBUILD new file mode 100644 index 0000000..e386628 --- /dev/null +++ b/abs/not_built/core/hwdetect/PKGBUILD @@ -0,0 +1,19 @@ +# $Id: PKGBUILD 86895 2010-08-06 20:29:04Z tpowa $ +# Maintainer: Tobias Powalowski <tpowa@archlinux.org> +pkgname=hwdetect +pkgver=2010.08 +pkgrel=1 +pkgdesc="Hardware detection script with loading modules and mkinitcpio.conf / rc.conf support" +arch=(any) +license=('GPL') +depends=('sh' 'awk' 'grep' 'coreutils' 'sed' 'e2fsprogs') +optdepends=('cryptsetup: for encrypt mkinitcpio config support' +            'dmraid:     for dmraid mkinitcpio config support' +            'lvm2:       for lvm2 mkinitcpio config support' +            'mdadm:      for raid mkinitcpio config support') +source=(hwdetect) + +build() { +  install -D -m 755 ${srcdir}/hwdetect ${pkgdir}/sbin/hwdetect +} +md5sums=('cece9e167bb240c82855ffc3f632a5bb') diff --git a/abs/not_built/core/hwdetect/hwdetect b/abs/not_built/core/hwdetect/hwdetect new file mode 100755 index 0000000..280cafa --- /dev/null +++ b/abs/not_built/core/hwdetect/hwdetect @@ -0,0 +1,592 @@ +#! /bin/sh +# Autodetection script for scanning /sys for hardware +# for Archlinux by Tobias Powalowski <tpowa@archlinux.org> +usage () { +	echo "$0 [options]" +	echo "" +	echo " This is a tool that detects/lists modules that are exported by /sys" +	echo "" +	echo "  Options:" +	echo "    --kernel_version=      use kernel version (no autodetect)" +	echo "    --ide-legacy           use old ide modules instead of pata" +	echo "    --load-modules         load all detected modules" +	echo "    --unload-modules       unload all detected modules" +	echo "    --show-modules         show all detected modules" +	echo "    --show-modules-order   shows load order of detected modules" +	echo "    --show-agp             show AGP modules" +	echo "    --show-acpi            show ACPI modules"	 +	echo "    --show-ide             show IDE modules" +	echo "    --show-pata            show PATA modules" +	echo "    --show-scsi            show SCSI modules" +	echo "    --show-sata            show SATA modules" +	echo "    --show-usb             show USB modules" +	echo "    --show-fw              show FIREWIRE modules" +	echo "    --show-net             show NETWORK modules" +	echo "    --show-input           show INPUT modules" +	echo "    --show-irda            show IRDA modules" +	echo "    --show-isdn            show ISDN modules" +	echo "    --show-pcmcia          show PCMCIA modules" +	echo "    --show-sound           show SOUND modules" +	echo "    --show-staging         show STAGING modules" +	echo "    --show-video           show VIDEO modules" +	echo "    --show-other           show OTHER modules" +	echo "" +	echo "  For /etc/mkinitcpio.conf use:" +	echo "    --filesystem           add filesystems to MODULES=" +	echo "    --hostcontroller       show MODULES= for all hostcontrollers" +	echo "    --vmware               add BusLogic to MODULES for vmware" +	echo "    --ati-kms              add ati kernel mode setting"  +	echo "    --intel-kms            add intel kernel mode setting" +	echo "    --nvidia-kms           add nvidia kernel mode setting" +        echo ""  +	echo "    --rootdevice=          autodetected advanced features of rootdevice" +	echo "    --hooks-dir=           use this directory for HOOKS check" +	echo "    --advanced             show autodetected advanced HOOKS" +	echo "    --hooks                show HOOKS=" +	echo "    --dmraid               add dmraid to HOOKS=" +	echo "    --keymap               add keymap to HOOKS=" +	echo "    --usb                  add usb to HOOKS=" +	echo "    --usbinput             add usbinput to HOOKS=" +	echo "    --fw                   add fw to HOOKS=" +	echo "    --pcmcia               add pcmcia to HOOKS=" +	echo "    --nfs                  add net to HOOKS=" +	echo "    --btrfs                add btrfs to HOOKS=" +	echo "" +	echo "  For /etc/rc.conf use:" +	echo "    --net                  show network MODULES" +	echo "    --sound                show sound MODULES" +	echo "    --usbhost              show usb hostcontroller MODULES" +	echo "    --modules              show all detected MODULES" +	echo "" +	exit 1 +} + +[ "$1" = "" ]       && usage +[ "$1" = "--help" ] && usage +[ "$1" = "-h" ]     && usage + +# setting kernel version +case $1 in +	--kernel_version=*) +	KERNEL_VERSION="$(echo $1 | awk -F= '{print $2;}')" +	;; +	--rootdevice=*) +	ROOTDEVICE="$(echo $1 | awk -F= '{print $2;}')" +	;; +esac + +if [ "$KERNEL_VERSION" = "" ]; then +	KERNEL_VERSION="$(uname -r)" +fi + +# IDE/PATA switch +[ "$(echo $* | grep '\-ide-legacy')" ] && IDE_LEGACY=1 + +# uvesafb switch +[ "$(echo $* | grep '\-uvesafb')" ] && UVESAFB=1 + +# dmraid switch +[ "$(echo $* | grep '\-dmraid')" ] && DMRAID=1 + +# keymap switch +[ "$(echo $* | grep '\-keymap')" ] && KEYMAP=1 + +# usb switch +[ "$(echo $* | grep '\-usb ')" ] && USB=1 + +# usbinput switch +[ "$(echo $* | grep '\-usbinput')" ] && USBINPUT=1 + +# fw switch +[ "$(echo $* | grep '\-fw')" ] && FW=1 + +# pcmcia switch +[ "$(echo $* | grep '\-pcmcia')" ] && PCMCIA=1 + +# nfs switch +[ "$(echo $* | grep '\-nfs')" ] && NFS=1 + +# nfs switch +[ "$(echo $* | grep '\-btrfs')" ] && BTRFS=1 + +# vmware switch +[ "$(echo $* | grep '\-vmware')" ] && VMWARE=1 + +# vmware switch +[ "$(echo $* | grep '\-hooks')" ] && HOOKS=1 + +ADVANCED="" +# root device check +if ! [ "$ROOTDEVICE" = "" ]; then +        # check device mapper devices +	if [ "$(echo "$ROOTDEVICE" | grep "/dev/mapper")" ]; then +		# check if encryption is used +		if [ "$(cryptsetup status $ROOTDEVICE 2>/dev/null)" ]; then +			ADVANCED="encrypt" +			# check on lvm +			realdevice="$(cryptsetup status $ROOTDEVICE 2>/dev/null | grep "device:.*/dev/mapper/" | sed -e 's#.*\ ##g')" +			if [ "$(lvs $realdevice 2>/dev/null)" ]; then +				ADVANCED="lvm2 encrypt" +				vg="$(echo $(lvs -o vg_name --noheading $realdevice))" +				# check on raid +				[ "$(pvs -o pv_name,vg_name --noheading | grep "$vg$" | grep "/dev/md")" ] && ADVANCED="mdadm lvm2 encrypt" +			fi +			# check on raid +			if [ "$(cryptsetup status $ROOTDEVICE 2>/dev/null | grep "device:.*/dev/md" | sed -e 's#.*\ ##g')" ]; then +				ADVANCED="mdadm encrypt" +				realdevice="$(cryptsetup status $ROOTDEVICE 2>/dev/null | grep "device:.*/dev/md" | sed -e 's#.*\ ##g')" +				# check on lvm +				[ "$(mdadm --detail $realdevice | grep "/dev/dm-")" ] && ADVANCED="lvm2 mdadm encrypt" +			fi +		fi +		# check if lvm is used +		if [ "$(lvs $ROOTDEVICE 2>/dev/null)" ]; then +			ADVANCED="lvm2" +			vg="$(echo $(lvs -o vg_name --noheading $ROOTDEVICE))" +			# check on encrypt +			if [ "$(pvs -o pv_name,vg_name --noheading | grep "$vg$" | grep "/dev/dm-")" ]; then  +				ADVANCED="encrypt lvm2" +				# check on raid +				[ "$(pvs -o pv_name,vg_name --noheading | grep "$vg$" | grep "/dev/md")" ] && ADVANCED="mdadm encrypt lvm2" +				for i in "$(pvs -o pv_name,vg_name --noheading | grep "$vg$" | grep "/dev/dm-")"; do +					realdevice="$(echo $i | cut -d ' ' -f1)" +					#getsymlink="$(readlink $realdevice)" +					#correctdevice="$(echo $getsymlink | sed -e 's#\.\.#/dev#g')" +					[ "$(cryptsetup status $realdevice 2>/dev/null | grep "device:.*/dev/md")" ] && ADVANCED="mdadm encrypt lvm2" +				done +			fi +			# check on raid +			if [ "$(pvs -o pv_name,vg_name --noheading | grep "$vg$" | grep "/dev/md")" ]; then +				ADVANCED="mdadm lvm2" +				#check on encrypt +				[ "$(pvs -o pv_name,vg_name --noheading | grep "$vg$" | grep "/dev/dm-")" ] && ADVANCED="encrypt mdadm lvm2" +				for i in "$(pvs -o pv_name,vg_name --noheading | grep "$vg$" | grep "/dev/md")"; do +					realdevice="$(echo $i | cut -d ' ' -f1)" +					[ "$(mdadm --detail $realdevice | grep "/dev/dm-")" ] && ADVANCED="encrypt mdadm lvm2" +				done +			fi +		fi +	fi +	# check md device +	if [ "$(echo "$ROOTDEVICE" | grep "/dev/md")" ]; then +		ADVANCED="mdadm" +		# raid partitions or raid? +		if [ "$(echo "$ROOTDEVICE" | grep "/dev/md*p")" ]; then +			realdevice="$(echo $ROOTDEVICE | sed -e 's#p.*##g' -e 's#/dev/##g')" +			if ! [ "$(find /sys/block/$realdevice/slaves/ -name 'dm*' 2>/dev/null)" = "" ]; then +				SET_LVM="" +				SET_ENCRYPT="" +				for k in $(find /sys/block/$realdevice/slaves/ -name 'dm*' 2>/dev/null); do +					[ "$(lvs /dev/mapper/$(cat $k/dm/name) 2>/dev/null)" ] && SET_LVM="1" +					[ "$(cryptsetup status $(cat $k/dm/name) 2>/dev/null)" ] && SET_ENCRYPT="1" +					# check on lvm +					[ "$(lvs /dev/mapper/$(cat $k/dm/name) 2>/dev/null)" ] && ADVANCED="lvm2 mdadm" +					# check on encrypt +					[ "$(cryptsetup status $(cat $k/dm/name) 2>/dev/null)" ] && ADVANCED="encrypt mdadm" +					# check encrypted volume device +					realdevice="$(cryptsetup status $(cat $k/dm/name) 2>/dev/null | grep "device:.*/dev/mapper/" | sed -e 's#.*\ ##g')" +					[ "$(lvs $realdevice 2>/dev/null)" ] && ADVANCED="lvm2 encrypt mdadm" +					vg="$(echo $(lvs -o vg_name --noheading /dev/mapper/$(cat $k/dm/name) 2>/dev/null))" +					[ "$(pvs -o pv_name,vg_name --noheading | grep "$vg$" | grep "/dev/dm-")" ] && ADVANCED="encrypt lvm2 mdadm" +				done +				[ "$SET_LVM" = "1" -a "$SET_ENCRYPT" = "1" ] && ADVANCED="lvm2 encrypt mdadm" +			fi +		else +			realdevice="$(echo $ROOTDEVICE | sed -e 's#/dev/##g')" +			if ! [ "$(find /sys/block/$realdevice/slaves/ -name 'dm*' 2>/dev/null)" = "" ]; then +				SET_LVM="" +				SET_ENCRYPT="" +				for k in $(find /sys/block/$realdevice/slaves/ -name 'dm*' 2>/dev/null); do +					[ "$(lvs /dev/mapper/$(cat $k/dm/name) 2>/dev/null)" ] && SET_LVM="1" +					[ "$(cryptsetup status $(cat $k/dm/name) 2>/dev/null)" ] && SET_ENCRYPT="1" +					# check on lvm +					[ "$(lvs /dev/mapper/$(cat $k/dm/name) 2>/dev/null)" ] && ADVANCED="lvm2 mdadm" +					# check on encrypt +					[ "$(cryptsetup status $(cat $k/dm/name) 2>/dev/null)" ] && ADVANCED="encrypt mdadm" +					# check encrypted volume device +					realdevice="$(cryptsetup status $(cat $k/dm/name) 2>/dev/null | grep "device:.*/dev/mapper/" | sed -e 's#.*\ ##g')" +					[ "$(lvs $realdevice 2>/dev/null)" ] && ADVANCED="lvm2 encrypt mdadm" +					vg="$(echo $(lvs -o vg_name --noheading /dev/mapper/$(cat $k/dm/name) 2>/dev/null))" +					[ "$(pvs -o pv_name,vg_name --noheading | grep "$vg$" | grep "/dev/dm-")" ] && ADVANCED="encrypt lvm2 mdadm" +				done +				[ "$SET_LVM" = "1" -a "$SET_ENCRYPT" = "1" ] && ADVANCED="lvm2 encrypt mdadm" +			fi +		fi +	fi +fi + +# checking /sys +if ! [ -d /sys/ ]; then +	echo "/sys/ is not present -- mount /sys first" >&2 +	exit 1 +fi + +: >/tmp/modules-plain +: >/tmp/modules-stripped +: >/tmp/modules-sorted +: >/tmp/moduleslist +: >/tmp/.blkid + +# generate blkid +/sbin/blkid -c /dev/null -s TYPE > /tmp/.blkid + +# find pci aliases +aliases=$(find /sys/ -noleaf -name modalias  -exec cat {} +) + +# check for empty aliases +if [ "$aliases" = "" ]; then +	echo "hwdetect aborted -- you need a kernel >= 2.6.12" >&2 +	exit 1 +fi + +# generate files for the different actions +modprobe -i -a --set-version=$KERNEL_VERSION --show-depends $aliases >> /tmp/modules-plain 2>/dev/null + +# fix ide cdrom detection on proliant 1600 +if [ "$(echo $aliases | grep 'pci:v00000E11d00000001sv00000000sd00000000bc06sc02i00')" ]; then +	modprobe -i --set-version=$KERNEL_VERSION --show-depends ide-generic >> /tmp/modules-plain 2>/dev/null +fi + +# find PNP devices like parports, soundcards etc. +#   (workaround for rtc, pcspkr, irtty-sir and analog are included) +if [ "$(find /sys/devices -noleaf -name 'id' | grep /pnp)" ]; then +	for i in $(find /sys/devices -noleaf -name "id" | grep /pnp); do +		devid=$(cat $i | grep PNP) +		[ "$devid" ] || continue +	 +		modprobe -i --set-version=$KERNEL_VERSION --show-depends pnp:d${devid} >> /tmp/modules-plain 2>/dev/null +	 +		[ "$devid" = "PNP0800" ] && modprobe -i --set-version=$KERNEL_VERSION --show-depends pcspkr >> /tmp/modules-plain  2>/dev/null +		[ "$devid" = "PNP0b00" ] && modprobe -i --set-version=$KERNEL_VERSION --show-depends rtc_proc >> /tmp/modules-plain  2>/dev/null +		[ "$devid" = "PNP0b00" ] && modprobe -i --set-version=$KERNEL_VERSION --show-depends rtc_sysfs >> /tmp/modules-plain 2>/dev/null +		[ "$devid" = "PNP0b00" ] && modprobe -i --set-version=$KERNEL_VERSION --show-depends rtc_dev >> /tmp/modules-plain 2>/dev/null +		[ "$devid" = "PNP0510" ] && modprobe -i --set-version=$KERNEL_VERSION --show-depends irtty-sir >> /tmp/modules-plain 2>/dev/null +		[ "$devid" = "PNP0511" ] && modprobe -i --set-version=$KERNEL_VERSION --show-depends irtty-sir >> /tmp/modules-plain 2>/dev/null +		[ "$devid" = "PNPb02f" ] && modprobe -i --set-version=$KERNEL_VERSION --show-depends analog >> /tmp/modules-plain 2>/dev/null + +		# load ppp-generic if serial ports are detected for modems +		[ "$devid" = "PNP0501" ] && modprobe -i --set-version=$KERNEL_VERSION --show-depends ppp-generic >> /tmp/modules-plain 2>/dev/null +	done +fi + +# SCSI disks/cdroms/tapes/generic devices +if [ "$(find /sys/devices -noleaf -name 'type')" ]; then +	for i in $(cat $(find /sys/devices -noleaf -name "type")); do +		case $i in (4|5)       modprobe -i --set-version=$KERNEL_VERSION --show-depends sr_mod >> /tmp/modules-plain 2>/dev/null ;; esac +		case $i in (2|3|6|8|9) modprobe -i --set-version=$KERNEL_VERSION --show-depends sg >> /tmp/modules-plain 2>/dev/null ;; esac +		case $i in (0|7|14)    modprobe -i --set-version=$KERNEL_VERSION --show-depends sd_mod >> /tmp/modules-plain 2>/dev/null ;; esac +		case $i in (1)         modprobe -i --set-version=$KERNEL_VERSION --show-depends st >> /tmp/modules-plain 2>/dev/null ;; esac +	done +fi + +# add Buslogic for vmware +if [ "$VMWARE" = "1" ]; then +	 modprobe -i --set-version=$KERNEL_VERSION --show-depends BusLogic >> /tmp/modules-plain 2>/dev/null +fi + +# Parport modules +if [ "$(grep 'parport' /tmp/modules-plain)" ]; then +	modprobe -i --set-version=$KERNEL_VERSION --show-depends lp >> /tmp/modules-plain 2>/dev/null +	modprobe -i --set-version=$KERNEL_VERSION --show-depends ppdev >> /tmp/modules-plain 2>/dev/null +fi + +# Sound OSS compat modules +if [ "$(grep 'snd-pcm' /tmp/modules-plain)" ]; then +	modprobe -i --set-version=$KERNEL_VERSION --show-depends snd-pcm-oss >> /tmp/modules-plain 2>/dev/null +fi +if [ "$(grep 'snd-seq' /tmp/modules-plain)" ]; then +	modprobe -i --set-version=$KERNEL_VERSION --show-depends snd-seq-oss >> /tmp/modules-plain 2>/dev/null +fi + +sort -u /tmp/modules-plain >> /tmp/modules-stripped + +# OTHER modules loading first for speed up! +grep -v "ide/" /tmp/modules-stripped | grep -v "scsi/" | grep -v "fusion/" | grep -v "block/sx8" | grep -v "message/fusion" | \ +	grep -v  "block/cciss" | grep -v "block/cpqarray" | grep -v "block/DAC960" | grep -v "block/virtio" | grep -v "ata/" | \ +	grep -v "net/" | grep -v "pcmcia/" | grep -v "usb/" | \ +	grep -v "firewire" | grep -v "ieee1394/" | grep -v "usbhid/" | grep -v "staging/" | grep -v "wireless/" | grep -v "virtio_pci" >> /tmp/modules-sorted +# load virtio first! +grep "virtio_pci" /tmp/modules-stripped  >> /tmp/modules-sorted +# make a correct order for the modules, internal devices have priority! +# only use old ide modules if boot parameter 'ide-legacy' is given +if [ "$IDE_LEGACY" = "1" ]; then +	grep "ide/" /tmp/modules-stripped  | grep -v "ide-pci-generic" >> /tmp/modules-sorted +else +	grep "ata/pata" /tmp/modules-stripped | grep -v "pata_acpi" >> /tmp/modules-sorted +fi +grep "scsi/" /tmp/modules-stripped  | grep -v "sd_mod" | grep -v "sr_mod" | grep -v "/sg.ko" | grep -v "/st.ko" >> /tmp/modules-sorted +grep "block/" /tmp/modules-stripped | grep -v "virtio_blk" | grep -v "sx8" | grep -v "nbd" | grep -v "pktcdvd" | grep -v "floppy" >> /tmp/modules-sorted +grep "fusion/" /tmp/modules-stripped >> /tmp/modules-sorted +grep "ata/"  /tmp/modules-stripped| grep -v "pata" | grep -v "ata_generic" | grep -v "libata" >> /tmp/modules-sorted +grep "block/" /tmp/modules-stripped | grep "sx8" >> /tmp/modules-sorted +grep "net/" /tmp/modules-stripped | grep -v "wireless/" | grep -v "usb/" >> /tmp/modules-sorted +grep "wireless/" /tmp/modules-stripped >> /tmp/modules-sorted +grep "staging/" /tmp/modules-stripped >> /tmp/modules-sorted +grep "pcmcia/" /tmp/modules-stripped >> /tmp/modules-sorted + +# speed up usb module loading +grep "usb-storage" /tmp/modules-stripped >> /tmp/modules-sorted +grep "usblp" /tmp/modules-stripped >> /tmp/modules-sorted +grep "usbhid" /tmp/modules-stripped >> /tmp/modules-sorted +grep "usb/" /tmp/modules-stripped | grep -v "usb-storage" | grep -v "usbhid" | grep -v "usblp" >> /tmp/modules-sorted +grep "firewire/" /tmp/modules-stripped >> /tmp/modules-sorted +grep "ieee1394/" /tmp/modules-stripped >> /tmp/modules-sorted + +# add scsi and virtio device modules at the end +grep "virtio_blk" /tmp/modules-stripped >> /tmp/modules-sorted +grep "sd_mod" /tmp/modules-stripped >> /tmp/modules-sorted +grep "sr_mod" /tmp/modules-stripped >> /tmp/modules-sorted +grep "/st.ko" /tmp/modules-stripped >> /tmp/modules-sorted +grep "/sg.ko" /tmp/modules-stripped >> /tmp/modules-sorted + + +sed -ne "s#^insmod.*/\(.*\)\.ko.*#\1#p" /tmp/modules-sorted >> /tmp/moduleslist + +listmods() { +	key=$1 ; shift +	ex= +	while [ "$1" ]; do +		[ "$ex" ] && ex="$ex|$1" || ex="$1" +		shift +	done +	for ln in $(grep "$key" /tmp/modules-sorted | sed 's|^insmod ||g'); do +		if [ "$ex" ]; then +			echo $ln | egrep -v "$ex" | sed -ne "s#^/.*/\(.*\)\.ko.*#\1#p" +		else +			echo $ln | sed -ne "s#^/.*/\(.*\)\.ko.*#\1#p" +		fi +	done +} +showlist() { +	cat=$1 ; shift +	[ $# -gt 0 ] || return +	echo -n "$cat: " +	for i in $*; do echo -n "$i "; done +	echo "" +} + +showlist2() { +	cat=$1 ; shift +	[ $# -gt 0 ] || return +	echo -n "$cat=" +	for i in $*; do echo -n "$i "; done +	echo "" +} + +showlist3() { +	cat=$1 ; shift +	[ $# -gt 0 ] || return +	for i in $*; do echo -n "$i "; done +	echo "" +} + +# starting different actions +while [ $# -gt 0 ]; do +	case $1 in +		-hooks-dir=*|--hooks-dir=*) +			HOOKS_DIR="$(echo $1 | awk -F= '{print $2;}')" +			 ;; +		--load-modules) +			# load all detected pci modules +			for i in $(cat /tmp/moduleslist); do +				if [ -e /lib/udev/load-modules.sh ]; then  +					/lib/udev/load-modules.sh $i > /dev/null 2>&1 +				else +					modprobe $i > /dev/null 2>&1 +				fi +			done +			;; + +		--unload-modules) +			# load all detected pci modules +			for i in $(cat /tmp/moduleslist); do +				modprobe -r $i > /dev/null 2>&1 +			done +			;; + +		--show-modules) +			showlist "AGP    " $(listmods agp/) +			showlist "ACPI   " $(listmods acpi/) +			showlist "IDE    " $(listmods ide/ ide-) +			showlist "PATA   " $(listmods ata/pata pata_acpi) $(listmods ata/ata_piix) +			showlist "SCSI   " $(listmods virtio/virtio_pci) $(listmods scsi/) $(listmods message/fusion/) $(listmods drivers/block/ nbd pktcdvd sx8 floppy) +			showlist "SATA   " $(listmods ata/ pata ata_generic) $(listmods drivers/block/sx8) +			showlist "USB    " $(listmods usb/ usb/input) +			showlist "FW     " $(listmods firewire/) $(listmods ieee1394/) +			showlist "NET    " $(listmods net/ irda/) +			showlist "INPUT  " $(listmods input/ pcspkr) $(listmods hid/) +			showlist "IRDA   " $(listmods irda/) +			showlist "ISDN   " $(listmods isdn/) +			showlist "PCMCIA " $(listmods pcmcia/) +			showlist "SOUND  " $(listmods pcspkr) $(listmods sound/) +			showlist "STAGING" $(listmods staging/) +			showlist "VIDEO  " $(listmods video/) +			showlist "OTHER  " $(listmods modules/ agp/ acpi/ ide/ scsi/ message/fusion block/sx8 block/cciss block/cpqarray block/DAC960 block/virtio virtio/virtio_pci ata/ usb/ ieee1394 net/ isdn/ input/ irda/ pcmcia/ sound/ video/ firewire/ hid/ staging/) +			;; + +		--show-modules-order) +			showlist "MODULES ORDER" $(listmods modules/) +			;; + +		--show-agp)    showlist "AGP    " $(listmods agp/) ;; +		--show-acpi)   showlist "ACPI   " $(listmods acpi/) ;; +		--show-ide)    showlist "IDE    " $(listmods ide/ ide-) ;; +		--show-pata)   showlist "PATA   " $(listmods ata/pata pata_acpi) $(listmods ata/ata_piix) ;; +		--show-scsi)   showlist "SCSI   " $(listmods virtio/virtio_pci) $(listmods scsi/) $(listmods message/fusion/) $(listmods drivers/block/ nbd pktcdvd sx8 floppy) ;; +		--show-sata)   showlist "SATA   " $(listmods ata/ pata ata_generic) $(listmods drivers/block/sx8) ;; +		--show-usb)    showlist "USB    " $(listmods usb/ usb/input) ;; +		--show-fw)     showlist "FW     " $(listmods firewire/) $(listmods ieee1394/) ;; +		--show-net)    showlist "NET    " $(listmods net/ irda/) ;; +		--show-input)  showlist "INPUT  " $(listmods input/ pcspkr) $(listmods hid/) ;; +		--show-irda)   showlist "IRDA   " $(listmods irda/) ;; +		--show-isdn)   showlist "ISDN   " $(listmods isdn/) ;; +		--show-pcmcia) showlist "PCMCIA " $(listmods pcmcia/) ;; +		--show-sound)  showlist "SOUND  " $(listmods pcspkr) $(listmods sound/) ;; +		--show-staging) showlist "STAGING" $(listmods staging/) ;; +		--show-video)  showlist "VIDEO  " $(listmods video/) ;; +		--show-other)  showlist "OTHER  " $(listmods .ko agp/ acpi/ ide/ scsi/ message/fusion block/sx8 block/cciss block/cpqarray block/DAC960 block/virtio virtio/virtio_pci ata/ usb/ ieee1394 net/ isdn/ input/ irda/ pcmcia/ sound/ video/ firewire/ hid/ staging/) ;; +		--filesystem)   FILESYSTEM="ext2 ext3 ext4 nilfs2 btrfs reiserfs xfs jfs vfat" +				for i in $FILESYSTEM; do +					 [ "$(grep $i /tmp/.blkid)" ] && FS="$FS $i" +				done +				[ "$(echo $FS | grep btrfs)" ] && FS="$FS crc32c" +				MODULES_INITRAMFS="$MODULES_INITRAMFS $FS" +				showlist2 "MODULES" \"$MODULES_INITRAMFS\" | sed -e 's/(\  /(/g' -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g' +				;; +		--hostcontroller)HOSTCONTROLLER="$(listmods virtio/virtio_pci) $(listmods ide/ ide-) $(listmods ata/pata pata_acpi) $(listmods scsi/ /sg.ko /st.ko scsi_mod sr_mod sd_mod) $(listmods message/fusion/) $(listmods drivers/block/ virtio_blk nbd pktcdvd sx8 floppy) $(listmods ata/ pata ata_generic) $(listmods drivers/block/sx8) $(listmods ehci-hcd) $(listmods uhci-hcd) $(listmods ohci-hcd) $(listmods virtio_blk)" +				 MODULES_INITRAMFS="$MODULES_INITRAMFS $HOSTCONTROLLER" +				 showlist2 "MODULES" \"$MODULES_INITRAMFS\" | sed -e 's/(\  /(/g' -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g' +				 ;; +		--ati-kms) 	KMS="radeon" +				MODULES_INITRAMFS="$KMS $MODULES_INITRAMFS" +				showlist2 "MODULES" \"$MODULES_INITRAMFS\" | sed -e 's/(\  /(/g' -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g' +				;; +		--intel-kms) 	KMS="i915" +				MODULES_INITRAMFS="$KMS $MODULES_INITRAMFS" +				showlist2 "MODULES" \"$MODULES_INITRAMFS\" | sed -e 's/(\  /(/g' -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g' +				;; +		--nvidia-kms) 	KMS="nouveau" +				MODULES_INITRAMFS="$KMS $MODULES_INITRAMFS" +				showlist2 "MODULES" \"$MODULES_INITRAMFS\" | sed -e 's/(\  /(/g' -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g' +				;; +		--uvesafb) 	FB="uvesafb" +				MODULES_INITRAMFS="$FB $MODULES_INITRAMFS" +				! [ "$HOOKS" = "1" ] && showlist2 "MODULES" \"$MODULES_INITRAMFS\" | sed -e 's/(\  /(/g' -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g' +				;; +		--fbmodule) 	FB="" +				for i in $(cat /etc/modprobe.d/framebuffer_blacklist.conf); do +				    i=$(echo $i | sed -e 's/blacklist //g') +				    # check if already in FB array, to avoid double entries +				    if [ "$(cat /proc/modules | grep ^$i)" ]; then +					! [ "$(grep -w $FB)" ] && FB="$i" +				    fi +                                done +				MODULES_INITRAMFS="$FB $MODULES_INITRAMFS " +				! [ "$HOOKS" = "1" ] && showlist2 "MODULES" \"$MODULES_INITRAMFS\" | sed -e 's/(\  /(/g' -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g' +				;; +		--net)  if [ "$(showlist2 "MODULES"  \($(listmods drivers/net/ irda ppp_generic slhc) $(listmods drivers/usb/net/) $(listmods drivers/staging/) \) | sed -e 's/(\ /(/g' -e 's/\ )/)/g' -e 's/\ \ /\ /g' | grep '8139cp')" ] ; then +				if [ "$(dmesg | grep 'use 8139too')" ]; then +					MODULES_EXPORTED="$MODULES_EXPORTED $(listmods drivers/net/ irda ppp_generic slhc) $(listmods drivers/usb/net/) $(listmods drivers/staging/)" +					MODULES_EXPORTED="$(echo $MODULES_EXPORTED | sed -e 's/8139cp//g')" +					BLACKLIST_UDEV="!8139cp" +					for i in $MODULES_EXPORTED; do +						BLACKLIST_UDEV="$BLACKLIST_UDEV !$i" +					done +					showlist2 "MODULES"  \($BLACKLIST_UDEV $MODULES_EXPORTED\) | sed -e 's/(\  /(/g' -e 's/(\ /(/g' -e 's/\ )/)/g' -e 's/\ \ /\ /g' +				else +					MODULES_EXPORTED="$MODULES_EXPORTED $(listmods drivers/net/ irda ppp_generic slhc) $(listmods drivers/usb/net/) $(listmods drivers/staging/)" +					MODULES_EXPORTED="$(echo $MODULES_EXPORTED | sed -e 's/8139too//g')" +					BLACKLIST_UDEV="!8139too" +					for i in $MODULES_EXPORTED; do +						BLACKLIST_UDEV="$BLACKLIST_UDEV !$i" +					done +					showlist2 "MODULES"  \($BLACKLIST_UDEV $MODULES_EXPORTED\) | sed -e 's/(\  /(/g' -e 's/(\ /(/g' -e 's/\ )/)/g' -e 's/\ \ /\ /g' +				fi +			else +				MODULES_EXPORTED="$MODULES_EXPORTED $(listmods drivers/net/ irda ppp_generic slhc) $(listmods drivers/usb/net/) $(listmods drivers/staging/)" +				BLACKLIST_UDEV="" +				for i in $MODULES_EXPORTED; do +					BLACKLIST_UDEV="$BLACKLIST_UDEV !$i" +				done +				showlist2 "MODULES"  \($BLACKLIST_UDEV $MODULES_EXPORTED\) | sed -e 's/(\ /(/g' -e 's/\ )/)/g' -e 's/\ \ /\ /g' +			fi +			;; +		--sound) MODULES_EXPORTED="$MODULES_EXPORTED $(listmods pcspkr) $(listmods sound/)" +			 BLACKLIST_UDEV="" +			 for i in $MODULES_EXPORTED; do +				BLACKLIST_UDEV="$BLACKLIST_UDEV !$i" +			 done +			 showlist2 "MODULES" \($BLACKLIST_UDEV $MODULES_EXPORTED\) | sed -e 's/(\ /(/g' -e 's/\ )/)/g' -e 's/\ \ /\ /g' +			 ;; +		--usbhost) MODULES_EXPORTED="$MODULES_EXPORTED $(listmods ehci-hcd) $(listmods uhci-hcd) $(listmods ohci-hcd)" +			 BLACKLIST_UDEV="" +			 for i in $MODULES_EXPORTED; do +				BLACKLIST_UDEV="$BLACKLIST_UDEV !$i" +			 done +			 showlist2 "MODULES" \($BLACKLIST_UDEV $MODULES_EXPORTED\) | sed -e 's/(\ /(/g' -e 's/\ )/)/g' -e 's/\ \ /\ /g' +			 ;; +		--modules) showlist2 "MODULES" \($(listmods modules/)\) | sed -e 's/(\ /(/g' -e 's/\ )/)/g' -e 's/\ \ /\ /g' +			 ;; +		--hooks)  +			if [ "$HOOKS_DIR" = "" ]; then +				HOOKS_DIR="/lib/initcpio/install" +			fi +			START_HOOKS="base v86d udev keymap autodetect ide pata scsi sata usb fw pcmcia net dmraid usbinput $ADVANCED btrfs filesystems" +			# remove the ones that don't exist on the system +			for i in ${START_HOOKS}; do +				if ! [ -e "${HOOKS_DIR}/$i" ]; then  +					START_HOOKS=$(echo $START_HOOKS | sed -e "s/${i}\ //g") +				fi +			done +			# ide/pata check +			if [ "${IDE_LEGACY}" = "1" ]; then +				START_HOOKS=$(echo $START_HOOKS | sed -e "s/pata//g") +			else +				START_HOOKS=$(echo $START_HOOKS | sed -e "s/ide//g") +			fi +			if !  [ "$USBINPUT" = "1" ]; then +				START_HOOKS=$(echo $START_HOOKS | sed -e "s/usbinput//g") +			fi +			if ! [ "$KEYMAP" = "1" ]; then  +				START_HOOKS=$(echo $START_HOOKS | sed -e "s/keymap//g") +			fi +			if ! [ "$UVESAFB" = "1" ]; then  +				START_HOOKS=$(echo $START_HOOKS | sed -e "s/v86d//g") +			fi +			if ! [ "$DMRAID" = "1" ]; then  +				START_HOOKS=$(echo $START_HOOKS | sed -e "s/dmraid//g") +			fi +			if ! [ "$USB" = "1" ]; then +				START_HOOKS=$(echo $START_HOOKS | sed -e "s/usb\ //g") +			fi +			if ! [ "$FW" = "1" ]; then +				START_HOOKS=$(echo $START_HOOKS | sed -e "s/fw//g") +			fi +			if ! [ "$PCMCIA" = "1" ]; then +				START_HOOKS=$(echo $START_HOOKS | sed -e "s/pcmcia//g") +			fi +			if ! [ "$NFS" = "1" ]; then +				START_HOOKS=$(echo $START_HOOKS | sed -e "s/net//g") +			fi +			if ! [ "$BTRFS" = "1" ]; then +				START_HOOKS=$(echo $START_HOOKS | sed -e "s/btrfs//g") +			fi +			echo "HOOKS=\"$START_HOOKS\"" | sed -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g' +		;; +		--advanced) ADVANCED_ARCHBOOT="" +			    for i in $ADVANCED; do +				ADVANCED_ARCHBOOT="$ADVANCED_ARCHBOOT $(echo arch_$i)" +			    done +			    echo "$ADVANCED_ARCHBOOT" +			    ;; +	esac +	shift +done + +# cleanup +rm /tmp/modules-plain +rm /tmp/modules-sorted +rm /tmp/modules-stripped +rm /tmp/moduleslist + +# vim: set ts=2 sw=2 noet: diff --git a/abs/not_built/core/jack/40-hpet-permissions.rules b/abs/not_built/core/jack/40-hpet-permissions.rules new file mode 100644 index 0000000..7af3780 --- /dev/null +++ b/abs/not_built/core/jack/40-hpet-permissions.rules @@ -0,0 +1,2 @@ +KERNEL=="rtc0", GROUP="audio" +KERNEL=="hpet", GROUP="audio" diff --git a/abs/not_built/core/jack/99-audio.conf b/abs/not_built/core/jack/99-audio.conf new file mode 100644 index 0000000..eb76ef9 --- /dev/null +++ b/abs/not_built/core/jack/99-audio.conf @@ -0,0 +1,2 @@ +@audio 	- rtprio 	99 +@audio 	- memlock 	unlimited diff --git a/abs/not_built/core/jack/PKGBUILD b/abs/not_built/core/jack/PKGBUILD new file mode 100644 index 0000000..7515001 --- /dev/null +++ b/abs/not_built/core/jack/PKGBUILD @@ -0,0 +1,58 @@ +# $Id: PKGBUILD 157734 2012-04-29 05:10:29Z allan $ +# Maintainer: Ray Rashif <schiv@archlinux.org> +# Contributor: tobias <tobias@archlinux.net> +# Contributor: Robert Emil Berge <robert@rebi.no> + +pkgname=jack +_longname=jack-audio-connection-kit +pkgver=0.121.3 +pkgrel=6 +pkgdesc="A low-latency audio server" +arch=('i686' 'x86_64') +license=('GPL' 'LGPL') +depends=('libsamplerate' 'readline') +makedepends=('doxygen' 'libffado' 'celt') +optdepends=('libffado: FireWire support' +            'celt: NetJACK driver') +url="http://jackaudio.org/" +backup=(etc/security/limits.d/99-audio.conf) +options=('!libtool') +provides=("$_longname=$pkgver") +conflicts=("$_longname") +replaces=("$_longname") +install=$pkgname.install +source=("http://jackaudio.org/downloads/$_longname-$pkgver.tar.gz" +        '99-audio.conf' +        '40-hpet-permissions.rules') +md5sums=('35f470f7422c37b33eb965033f7a42e8' +         'ae65b7c9ebe0fff6c918ba9d97ae342d' +         '471aad533ff56c5d3cbbf65ce32cadef') + +build() { +  cd "$srcdir/$_longname-$pkgver" + +  ./configure --prefix=/usr \ +              --libdir=/usr/lib +  make +} + +package() { +  cd "$srcdir/$_longname-$pkgver" + +  make DESTDIR="$pkgdir" install + +  # configure realtime access/scheduling +  # see https://bugs.archlinux.org/task/26343 +  install -Dm644 "$srcdir/99-audio.conf" \ +    "$pkgdir/etc/security/limits.d/99-audio.conf" + +  install -Dm644 "$srcdir/40-hpet-permissions.rules" \ +    "$pkgdir/usr/lib/udev/rules.d/40-hpet-permissions.rules" + +  # install a missing header forgotten by upstream +  # see https://bugs.archlinux.org/task/26865 +  install -Dm644 "$srcdir/$_longname-$pkgver/jack/jslist.h" \ +    "$pkgdir/usr/include/jack/jslist.h" +} + +# vim:set ts=2 sw=2 et: diff --git a/abs/not_built/core/jack/jack.install b/abs/not_built/core/jack/jack.install new file mode 100644 index 0000000..8be532f --- /dev/null +++ b/abs/not_built/core/jack/jack.install @@ -0,0 +1,5 @@ +post_upgrade() { +	rm -f etc/security/limits.d/99-realtime.conf +} + +# vim:set ts=2 sw=2 et: diff --git a/abs/not_built/core/kakasi/PKGBUILD b/abs/not_built/core/kakasi/PKGBUILD new file mode 100644 index 0000000..2a8c08a --- /dev/null +++ b/abs/not_built/core/kakasi/PKGBUILD @@ -0,0 +1,20 @@ +# Maintainer: Allan McRae <mcrae_allan@hotmail.com> + +pkgname=kakasi +pkgver=2.3.4 +pkgrel=2 +pkgdesc="Convert Kanji characters to Hiragana, Katakana or Romaji" +arch=('i686' 'x86_64') +url="http://kakasi.namazu.org/" +license=('GPL') +source=(http://kakasi.namazu.org/stable/${pkgname}-${pkgver}.tar.gz) +md5sums=(4eff51aafbd56c9635791a20c03efa8f) + +build() { +  cd "$startdir/src/$pkgname-$pkgver" + +  ./configure --prefix=/usr +  make || return 1 +  make DESTDIR="$startdir/pkg" install +} + diff --git a/abs/not_built/core/kdelibs3/PKGBUILD b/abs/not_built/core/kdelibs3/PKGBUILD new file mode 100644 index 0000000..5331af0 --- /dev/null +++ b/abs/not_built/core/kdelibs3/PKGBUILD @@ -0,0 +1,57 @@ +# $ Id: $ +# Maintainer: Pierre Schmitz <pierre@archlinux.de> +# Contributor: Tobias Powalowski <tpowa@archlinux.org> + +pkgname=kdelibs3 +pkgver=3.5.10 +pkgrel=3 +pkgdesc="KDE3 Core Libraries" +arch=('i686' 'x86_64') +url="http://www.kde.org" +license=('GPL' 'LGPL') +depends=('libxslt' 'pcre' 'libart-lgpl' 'alsa-lib'  +         'jasper' 'bzip2' 'openssl' 'libidn' 'libxrender' +	 'aspell' 'heimdal' 'acl' 'libtiff' 'qt3' 'ca-certificates' +         'libjpeg') +makedepends=('pkgconfig' ) +options=('libtool') +install='kdelibs3.install' +source=("http://download.kde.org/stable/${pkgver}/src/kdelibs-${pkgver}.tar.bz2" +        'kde3.profile') +md5sums=('43cd55ed15f63b5738d620ef9f9fd568' +         '3c49828eb8985cfb25af8e1495f7800a') + +build() { +	cd $srcdir/kdelibs-$pkgver + +	. /etc/profile.d/qt3.sh +	. $srcdir/kde3.profile + +	# install KDE3 profile +	install -D -m755 $srcdir/kde3.profile $pkgdir/etc/profile.d/kde3.sh + +	./configure --prefix=/opt/kde \ +		--with-distribution='Arch Linux' \ +		--with-alsa \ +		--disable-dependency-tracking \ +		--disable-debug \ +		--disable-dnssd \ +		--disable-dnotify \ +		--enable-inotify \ +		--enable-sendfile \ +		--without-lua \ +		--without-hspell \ +		--enable-gcc-hidden-visibility \ +		--enable-final \ +		--enable-new-ldflags LDFLAGS="${LDFLAGS} -L/opt/qt/lib" \ +		--without-arts \ +		--disable-cups  \ +		--disable-libfam || return 1 +	make || return 1 +	make DESTDIR=$pkgdir install || return 1 + +	# cert bundle seems to be hardcoded +	# link it to the one from ca-certificates +	rm -f $pkgdir/opt/kde/share/apps/kssl/ca-bundle.crt +	ln -sf /etc/ssl/certs/ca-certificates.crt $pkgdir/opt/kde/share/apps/kssl/ca-bundle.crt +} diff --git a/abs/not_built/core/kdelibs3/__changelog b/abs/not_built/core/kdelibs3/__changelog new file mode 100644 index 0000000..2abf977 --- /dev/null +++ b/abs/not_built/core/kdelibs3/__changelog @@ -0,0 +1 @@ +remove cups support diff --git a/abs/not_built/core/kdelibs3/kde3.profile b/abs/not_built/core/kdelibs3/kde3.profile new file mode 100755 index 0000000..d7c7e9d --- /dev/null +++ b/abs/not_built/core/kdelibs3/kde3.profile @@ -0,0 +1,15 @@ +export KDE3DIR=/opt/kde +export KDEDIRS=/usr:$KDE3DIR +export PATH=$PATH:$KDE3DIR/bin +export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$KDE3DIR/lib/pkgconfig +if [ ! -z $XDG_DATA_DIRS ]; then +  export XDG_DATA_DIRS=$XDG_DATA_DIRS:$KDE3DIR/share +else +  export XDG_DATA_DIRS=$KDE3DIR/share +fi +if [ ! -z $XDG_CONFIG_DIRS ]; then +  export XDG_CONFIG_DIRS=$XDG_CONFIG_DIRS:$KDE3DIR/etc/xdg +else +  export XDG_CONFIG_DIRS=$KDE3DIR/etc/xdg +fi +unset KDE3DIR
\ No newline at end of file diff --git a/abs/not_built/core/kdelibs3/kdelibs3.install b/abs/not_built/core/kdelibs3/kdelibs3.install new file mode 100644 index 0000000..060ba21 --- /dev/null +++ b/abs/not_built/core/kdelibs3/kdelibs3.install @@ -0,0 +1,11 @@ +post_install() { +	grep -q '/opt/kde/lib' etc/ld.so.conf || echo '/opt/kde/lib' >> etc/ld.so.conf +} + +post_upgrade() { +	post_install +} + +post_remove() { +	sed  -ie '/\/opt\/kde\/lib/d' etc/ld.so.conf +} diff --git a/abs/not_built/core/libcl/PKGBUILD b/abs/not_built/core/libcl/PKGBUILD new file mode 100644 index 0000000..cd9e82e --- /dev/null +++ b/abs/not_built/core/libcl/PKGBUILD @@ -0,0 +1,38 @@ +# $Id$ +#Maintainer: Ionut Biru <ibiru@archlinux.org> + +pkgname=libcl +pkgver=1.0 +_pkgver=275.19 +pkgrel=1 +pkgdesc="OpenCL library and ICD loader from NVIDIA" +arch=('i686' 'x86_64') +url="http://www.nvidia.com/" +depends=('gcc-libs') +license=('custom') +options=('!strip') + +if [ "$CARCH" = "i686" ]; then +    _arch='x86' +    _pkg="NVIDIA-Linux-${_arch}-${_pkgver}" +    source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${_pkgver}/${_pkg}.run") +    md5sums=('9e74b1913ff5eb6786600d47b64ba57d') +elif [ "$CARCH" = "x86_64" ]; then +    _arch='x86_64' +    _pkg="NVIDIA-Linux-${_arch}-${_pkgver}-no-compat32" +    source=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${_pkgver}/${_pkg}.run") +    md5sums=('45a6074db3efe961d025afa7a89fa036') +fi +build() { +    cd $srcdir +    sh ${_pkg}.run --extract-only +} + +package() { +    cd $srcdir/${_pkg} +    install -D -m755 libOpenCL.so.1.0.0 $pkgdir/usr/lib/libOpenCL.so.1.0.0 +    ln -s /usr/lib/libOpenCL.so.1.0.0 $pkgdir/usr/lib/libOpenCL.so.1 +    ln -s /usr/lib/libOpenCL.so.1 $pkgdir/usr/lib/libOpenCL.so +    install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE +} +md5sums=('9e74b1913ff5eb6786600d47b64ba57d') diff --git a/abs/not_built/core/libdc1394/PKGBUILD b/abs/not_built/core/libdc1394/PKGBUILD new file mode 100644 index 0000000..d9ccecb --- /dev/null +++ b/abs/not_built/core/libdc1394/PKGBUILD @@ -0,0 +1,25 @@ +# $Id: PKGBUILD 72230 2010-03-13 20:17:43Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=libdc1394 +pkgver=2.1.2 +pkgrel=2 +pkgdesc="High level programming interface to control IEEE 1394 based cameras" +arch=(i686 x86_64) +license=('LGPL') +url="http://sourceforge.net/projects/libdc1394/" +depends=('libraw1394>=2.0.5' 'libusb') +options=(!libtool !emptydirs) +source=(http://downloads.sourceforge.net/sourceforge/libdc1394/${pkgname}-${pkgver}.tar.gz) +md5sums=('b85f1ade88d8d96688d5965ed8603d53') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr || return 1 +  make || return 1 +} +package() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  make DESTDIR="${pkgdir}" install || return 1 +} + diff --git a/abs/not_built/core/libdc1394/__changelog b/abs/not_built/core/libdc1394/__changelog new file mode 100644 index 0000000..2421e7e --- /dev/null +++ b/abs/not_built/core/libdc1394/__changelog @@ -0,0 +1 @@ +1/30/11 - chw - Changed dep from libusb1 to libusb. diff --git a/abs/not_built/core/libfetch/Makefile b/abs/not_built/core/libfetch/Makefile new file mode 100644 index 0000000..53bcee9 --- /dev/null +++ b/abs/not_built/core/libfetch/Makefile @@ -0,0 +1,89 @@ +prefix = /usr +DESTDIR = +DEBUG = false +FETCH_WITH_INET6 = true +FETCH_WITH_OPENSSL = true + +WARNINGS = -Wall -Wstrict-prototypes -Wsign-compare -Wchar-subscripts \ +	   -Wpointer-arith -Wcast-align +CFLAGS   = -O2 -pipe -I. -fPIC $(WARNINGS) \ +	   -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES + +CFLAGS	+= -DFTP_COMBINE_CWDS -DNETBSD + +ifeq ($(strip $(FETCH_WITH_INET6)), true) +CFLAGS+=	-DINET6 +endif + +ifeq ($(strip $(FETCH_WITH_OPENSSL)), true) +CFLAGS+=	-DWITH_SSL +LDFLAGS=	-lssl -lcrypto +endif + +ifeq ($(strip $(DEBUG)), true) +CFLAGS += -g -DDEBUG +else +CFLAGS += -UDEBUG +endif + +CC = gcc +LD = gcc +AR = ar +RANLIB = ranlib +INSTALL = install -c -D + +OBJS= fetch.o common.o ftp.o http.o file.o +INCS= fetch.h common.h +GEN = ftperr.h httperr.h +MAN = libdownload.3 + +#pretty print! +E = @/bin/echo +Q = @ + +all: libfetch.so libfetch.a +.PHONY: all + +%.o: %.c $(INCS) $(GEN) +	$(E) "  compile   " $@ +	$(Q) $(CC) $(CFLAGS) -c $< + +ftperr.h: ftp.errors Makefile errlist.sh +	$(E) "  generate  " $@ +	$(Q) ./errlist.sh ftp_errlist FTP ftp.errors > $@ + +httperr.h: http.errors Makefile errlist.sh +	$(E) "  generate  " $@ +	$(Q) ./errlist.sh http_errlist HTTP http.errors > $@ + +libfetch.so: $(GEN) $(INCS) $(OBJS) +	$(E) "  build     " $@ +	$(Q) rm -f $@ +	$(Q) $(LD) $(LDFLAGS) *.o -shared -o $@ +	$(E) "  built with:  " $(CFLAGS) + +libfetch.a: $(GEN) $(INCS) $(OBJS) +	$(E) "  build     " $@ +	$(Q) rm -f $@ +	$(Q) $(AR) rcs $@ *.o +	$(Q) $(RANLIB) $@ +	$(E) "  built with:  " $(CFLAGS) + +clean: +	$(E) "  clean     " +	$(Q) rm -f libfetch.so libfetch.a *.o $(GEN) +.PHONY: clean + +install: all +	$(Q) $(INSTALL) -m 755 libfetch.so $(DESTDIR)$(prefix)/lib/libfetch.so +	$(Q) $(INSTALL) -m 644 libfetch.a $(DESTDIR)$(prefix)/lib/libfetch.a +	$(Q) $(INSTALL) -m 644 fetch.h $(DESTDIR)$(prefix)/include/fetch.h +	$(Q) $(INSTALL) -m 644 fetch.3 $(DESTDIR)$(prefix)/share/man/man3/fetch.3 +.PHONY: install + +uninstall: +	$(Q) rm -f $(DESTDIR)$(prefix)/lib/libfetch.so +	$(Q) rm -f $(DESTDIR)$(prefix)/lib/libfetch.a +	$(Q) rm -f $(DESTDIR)$(prefix)/include/fetch.h +	$(Q) rm -f $(DESTDIR)$(prefix)/share/man/man3/fetch.3 +.PHONY: uninstall diff --git a/abs/not_built/core/libfetch/PKGBUILD b/abs/not_built/core/libfetch/PKGBUILD new file mode 100644 index 0000000..641e7d4 --- /dev/null +++ b/abs/not_built/core/libfetch/PKGBUILD @@ -0,0 +1,46 @@ +# $Id$ +# Maintainer: Aaron Griffin <aaron@archlinux.org> +# Contributor: Xavier Chantry <shiningxc@gmail.com> + +pkgname=libfetch +pkgver=2.33 +pkgrel=1 +pkgdesc="URL based download library" +arch=('i686' 'x86_64') +license=('BSD') +depends=('openssl>=1.0.0') +url="http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/net/libfetch/" +source=(Makefile +        ftp://ftp.archlinux.org/other/$pkgname/$pkgname-$pkgver.tar.gz) +md5sums=('5167d18db7660228e75290fc7d25fe56' +         'a176b94f7f30344ef8a71c047ca2136b') + +# keep an upgrade path for older installations +PKGEXT='.pkg.tar.gz' + +# source PKGBUILD && mksource +mksource() { +  export CVSROOT=:pserver:anoncvs@anoncvs.NetBSD.org:/cvsroot +  D=pkgsrc/net/libfetch +  [ -d "$D" ] && cvs up "$D" || cvs co "$D" +  pushd "$D" +  dirname=$(sed -n 's/DISTNAME=.*\(libfetch-.*$\)/\1/p' Makefile) +  cp -r files $dirname +  tar -czv --exclude=CVS -f ../../../$dirname.tar.gz $dirname +  rm -r $dirname +  popd +} + +build() { +  cd $srcdir/$pkgname-$pkgver +  cp $srcdir/Makefile . +  make || return 1 +} + +package() { +  cd $srcdir/$pkgname-$pkgver +  make DESTDIR=$pkgdir install +  licdir=$pkgdir/usr/share/licenses/libfetch/ +  mkdir -p $licdir +  sed -n -e '/Copyright (c)/,/SUCH DAMAGE\./p' common.c | cut -c '4-' > $licdir/LICENSE +} diff --git a/abs/not_built/core/libfetch/libfetch-2.33-1-i686.pkg.tar.gz b/abs/not_built/core/libfetch/libfetch-2.33-1-i686.pkg.tar.gz new file mode 120000 index 0000000..2c8ffbe --- /dev/null +++ b/abs/not_built/core/libfetch/libfetch-2.33-1-i686.pkg.tar.gz @@ -0,0 +1 @@ +/data/pkg_repo/packages/libfetch-2.33-1-i686.pkg.tar.gz
\ No newline at end of file diff --git a/abs/not_built/core/libgsf/PKGBUILD b/abs/not_built/core/libgsf/PKGBUILD new file mode 100644 index 0000000..a94faa2 --- /dev/null +++ b/abs/not_built/core/libgsf/PKGBUILD @@ -0,0 +1,61 @@ +# $Id: PKGBUILD 89728 2010-09-03 13:08:07Z remy $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca> + +pkgbase=libgsf +pkgname=('libgsf' 'libgsf-gnome') +pkgver=1.14.18 +pkgrel=2 +arch=('i686' 'x86_64') +url="http://www.gnome.org/" +license=('GPL' 'LGPL') +makedepends=('libxml2>=2.7.7' 'glib2>=2.24.1' 'bzip2' 'intltool' 'pkgconfig' +             'python2' 'libbonobo>=2.24.3' 'gconf>=2.28.1' 'pygtk') +options=('!libtool' '!emptydirs') +source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgbase}/1.14/${pkgbase}-${pkgver}.tar.bz2) +sha256sums=('16d29e82f7eba68f919f2588ea5328973490fe6d4a7a5f160e8af89b387c9a95') + +build() { +  cd "${srcdir}/${pkgbase}-${pkgver}" +  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ +      --mandir=/usr/share/man --disable-static || return 1 +  make || return 1 +} + +package_libgsf() { +  pkgdesc="The GNOME Structured File Library is a utility library for reading and writing structured file formats" +  depends=('libxml2>=2.7.7' 'glib2>=2.24.1' 'bzip2') +  cd "${srcdir}/${pkgbase}-${pkgver}" +  make DESTDIR="${pkgdir}" GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 install || return 1 +  rm -f "${pkgdir}/usr/share/man/man1/gsf-office-thumbnailer.1" +  rm -f "${pkgdir}/usr/lib/libgsf-gnome"* +  rm -rf "${pkgdir}/usr/include/libgsf-1/gsf-gnome/" +  rm -rf "${pkgdir}/etc/gconf" +  rm -f "${pkgdir}/usr/lib/pkgconfig/libgsf-gnome-1.pc" +  rm -f "${pkgdir}/usr/bin/gsf-office-thumbnailer" +  rm -f "${pkgdir}"/usr/lib/python*/site-packages/gsf/gnomemodule.so +} + +package_libgsf-gnome() { +  pkgdesc="Libgsf GNOME components" +  depends=("libgsf=${pkgver}" 'libbonobo>=2.24.3' 'gconf>=2.28.1') +  install=libgsf-gnome.install + +  cd "${srcdir}/${pkgbase}-${pkgver}" +  make -C gsf DESTDIR="${pkgdir}" install-libLTLIBRARIES || return 1 +  make -C gsf-gnome DESTDIR="${pkgdir}" install || return 1 +  make -C thumbnailer DESTDIR="${pkgdir}" install || return 1 +  make -C python DESTDIR="${pkgdir}" install || return 1 +  make -C doc DESTDIR="${pkgdir}" install-manpageDATA || return 1 + +  rm -f "${pkgdir}/usr/share/man/man1/gsf.1" +  rm -f "${pkgdir}/usr/share/man/man1/gsf-vba-dump.1" +  rm -f "${pkgdir}"/usr/lib/python*/site-packages/gsf/_* +  rm -f "${pkgdir}"/usr/lib/libgsf-1.so* +  install -m755 -d "${pkgdir}/usr/lib/pkgconfig" +  install -m644 libgsf-gnome-1.pc "${pkgdir}/usr/lib/pkgconfig/" || return 1 + +  install -m755 -d "${pkgdir}/usr/share/gconf/schemas" +  gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/libgsf-gnome.schemas" --domain libgsf "${pkgdir}/etc/gconf/schemas/"*.schemas || return 1 +  rm -f "${pkgdir}/etc/gconf/schemas/"*.schemas +} diff --git a/abs/not_built/core/libgsf/libgsf-gnome.install b/abs/not_built/core/libgsf/libgsf-gnome.install new file mode 100644 index 0000000..60f62ff --- /dev/null +++ b/abs/not_built/core/libgsf/libgsf-gnome.install @@ -0,0 +1,19 @@ +pkgname=libgsf-gnome + +post_install() { +  usr/sbin/gconfpkg --install ${pkgname} +} + +pre_upgrade() { +  pre_remove $1 +} + +post_upgrade() { +  post_install $1 +} + +pre_remove() { +  if [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then +    usr/sbin/gconfpkg --uninstall ${pkgname} +  fi +} diff --git a/abs/not_built/core/libsmbios/PKGBUILD b/abs/not_built/core/libsmbios/PKGBUILD new file mode 100644 index 0000000..c996a28 --- /dev/null +++ b/abs/not_built/core/libsmbios/PKGBUILD @@ -0,0 +1,40 @@ +# $Id: PKGBUILD 78087 2010-04-19 09:25:42Z dgriffiths $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +# Contributor: Alessio 'mOLOk' Bolognino <themolok@gmail.com> +# Contributor: daniel g. siegel <dgsiegel@gmail.com>  + +pkgname=libsmbios +pkgver=2.2.16 +pkgrel=2 +pkgdesc="A library for providing access to as much BIOS information as possible" +arch=('i686' 'x86_64') +url="http://linux.dell.com/libsmbios/main/index.html" +license=('GPL' 'custom') +depends=('gcc-libs>=4.3.3') +makedepends=('libxml2') +optdepends=('python: tools') +source=(http://linux.dell.com/libsmbios/download/${pkgname}/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.gz) +options=('!libtool') +md5sums=('6edf6659fbb77e7d0f60d5217a7d88ed') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  mkdir build +  cd build +  ../configure --prefix=/usr --sysconfdir=/etc --disable-static || return 1 +  mkdir -p out/libsmbios_c +  mkdir -p out/libsmbios_c++ +  LD_PRELOAD="" make || return 1 +} +package() { +  cd "${srcdir}/${pkgname}-${pkgver}/build" +  make DESTDIR="${pkgdir}" install || return 1 +  install -m755 -d "${pkgdir}/usr/include" +  cp -a ../src/include/* "${pkgdir}/usr/include/" || return 1 +  cp -a out/public-include/* "${pkgdir}/usr/include/" || return 1 + +  rm -rf "${pkgdir}/etc/yum" + +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 ../COPYING-OSL "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1 +} diff --git a/abs/not_built/core/libwmf/PKGBUILD b/abs/not_built/core/libwmf/PKGBUILD new file mode 100644 index 0000000..1206151 --- /dev/null +++ b/abs/not_built/core/libwmf/PKGBUILD @@ -0,0 +1,41 @@ +# $Id: PKGBUILD 87507 2010-08-15 06:45:18Z eric $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +# Contributor: FJ <joostef@gmail.com> + +pkgname=libwmf +pkgver=0.2.8.4 +pkgrel=8 +pkgdesc="A library for reading vector images in Microsoft's native Windows Metafile Format (WMF)" +arch=('i686' 'x86_64') +url="http://wvware.sourceforge.net/libwmf.html" +license=("LGPL") +depends=('libpng' 'libx11' 'freetype2' 'libjpeg' 'gsfonts' 'expat') +makedepends=('gtk2' 'libxt' 'pkg-config') +options=('!libtool' '!docs' '!emptydirs') +install=libwmf.install +source=(http://downloads.sourceforge.net/sourceforge/wvware/${pkgname}-${pkgver}.tar.gz +	libpng14.patch libwmf-0.2.8.4-useafterfree.patch) +md5sums=('d1177739bf1ceb07f57421f0cee191e0' '33d3c07a1be9f99fd88de220930c5550'\ +         '0f02c1cb8a87bf7158634503bf0537e2') +sha1sums=('822ab3bd0f5e8f39ad732f2774a8e9f18fc91e89' '15edb94eec7c9cea988e83660b334e56bf1fe897'\ +         'ea6d28880840e86c96f9079bfd591da54dcffa5c') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  patch -Np1 -i "${srcdir}/libpng14.patch" +  patch -Np1 -i "${srcdir}/libwmf-0.2.8.4-useafterfree.patch" +  ./configure --prefix=/usr \ +              --with-gsfontdir=/usr/share/fonts/Type1 \ +	      --with-fontdir=/usr/share/fonts/Type1 \ +	      --with-gsfontmap=/usr/share/ghostscript/8.15/lib/Fontmap.GS +  make +} + +package() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  make DESTDIR="${pkgdir}" install +  #Remove fonts, these are in gsfonts +  rm -rf "${pkgdir}/usr/share/fonts" +  #Remove static GTK loader, can't use it anyways +  rm -f "${pkgdir}"/usr/lib/gtk-2.0/*/loaders/io-wmf.a +} diff --git a/abs/not_built/core/libwmf/libpng14.patch b/abs/not_built/core/libwmf/libpng14.patch new file mode 100644 index 0000000..3d38c71 --- /dev/null +++ b/abs/not_built/core/libwmf/libpng14.patch @@ -0,0 +1,12 @@ +diff -Nur libwmf-0.2.8.4.orig/src/extra/gd/gd_png.c libwmf-0.2.8.4/src/extra/gd/gd_png.c +--- libwmf-0.2.8.4.orig/src/extra/gd/gd_png.c	2005-07-27 23:35:06.000000000 +0300 ++++ libwmf-0.2.8.4/src/extra/gd/gd_png.c	2010-01-17 01:33:58.000000000 +0200 +@@ -136,7 +136,7 @@ +   /* first do a quick check that the file really is a PNG image; could +    * have used slightly more general png_sig_cmp() function instead */ +   gdGetBuf (sig, 8, infile); +-  if (!png_check_sig (sig, 8)) ++  if (png_sig_cmp (sig, 0, 8)) +     return NULL;		/* bad signature */ +  + #ifndef PNG_SETJMP_NOT_SUPPORTED diff --git a/abs/not_built/core/libwmf/libwmf-0.2.8.4-useafterfree.patch b/abs/not_built/core/libwmf/libwmf-0.2.8.4-useafterfree.patch new file mode 100644 index 0000000..328c541 --- /dev/null +++ b/abs/not_built/core/libwmf/libwmf-0.2.8.4-useafterfree.patch @@ -0,0 +1,10 @@ +--- libwmf-0.2.8.4/src/extra/gd/gd_clip.c.CVE-2009-1364-im-clip-list	2009-04-24 04:06:44.000000000 -0400 ++++ libwmf-0.2.8.4/src/extra/gd/gd_clip.c	2009-04-24 04:08:30.000000000 -0400 +@@ -70,6 +70,7 @@ void gdClipSetAdd(gdImagePtr im,gdClipRe + 	{	more = gdRealloc (im->clip->list,(im->clip->max + 8) * sizeof (gdClipRectangle)); + 		if (more == 0) return; + 		im->clip->max += 8; ++                im->clip->list = more; + 	} + 	im->clip->list[im->clip->count] = (*rect); + 	im->clip->count++; diff --git a/abs/not_built/core/libwmf/libwmf.install b/abs/not_built/core/libwmf/libwmf.install new file mode 100644 index 0000000..9c99a90 --- /dev/null +++ b/abs/not_built/core/libwmf/libwmf.install @@ -0,0 +1,13 @@ +post_install() { +  if [ -x usr/bin/gdk-pixbuf-query-loaders ]; then +    gdk-pixbuf-query-loaders > etc/gtk-2.0/gdk-pixbuf.loaders +  fi +} + +post_upgrade() { +  post_install $1 +} + +post_remove() { +  post_install $1 +} diff --git a/abs/not_built/core/libx86/PKGBUILD b/abs/not_built/core/libx86/PKGBUILD new file mode 100644 index 0000000..a686b6b --- /dev/null +++ b/abs/not_built/core/libx86/PKGBUILD @@ -0,0 +1,38 @@ +# $Id: PKGBUILD 21250 2008-12-11 16:58:44Z thayer $ +# Contributor: Eric Belanger <eric@archlinux.org> +# Contributor: tardo <tardo@nagi-fanboi.net> +# Maintainer: Thayer Williams <thayer@archlinux.org> + +pkgname=libx86 +pkgver=1.1 +pkgrel=2 +pkgdesc="Provides an lrmi interface that works on x86, am64 and alpha" +arch=('i686' 'x86_64') +url="http://www.codon.org.uk/~mjg59/libx86/" +license=('custom') +depends=('glibc') +source=(http://www.codon.org.uk/~mjg59/libx86/downloads/libx86-$pkgver.tar.gz  +        libx86-ifmask.patch) +md5sums=('41bee1f8e22b82d82b5f7d7ba51abc2a' +         '573897186eb8670d8d97c64ea7614001') + +build() { +  cd $srcdir/$pkgname-$pkgver + +  # lrmi.c patch courtesy of Gentoo +  patch -Np0 -i $srcdir/libx86-ifmask.patch || return 1 + +  # compensate for x86_64 +  if [ "$CARCH" = "x86_64" ]; then +		make BACKEND=x86emu || return 1 +    else +	  make || return 1 +  fi +} +package() { +  cd $srcdir/$pkgname-$pkgver +  make DESTDIR=$pkgdir install || return 1 +  chmod 644 $pkgdir/usr/lib/libx86.a || return 1 + +  install -D -m 644 COPYRIGHT $pkgdir/usr/share/licenses/$pkgname/COPYRIGHT || return 1 +} diff --git a/abs/not_built/core/libx86/libx86-ifmask.patch b/abs/not_built/core/libx86/libx86-ifmask.patch new file mode 100644 index 0000000..c99eeb8 --- /dev/null +++ b/abs/not_built/core/libx86/libx86-ifmask.patch @@ -0,0 +1,21 @@ +--- lrmi.c.orig	2008-09-06 12:24:36.070136428 +0200 ++++ lrmi.c	2008-09-06 12:28:10.584287458 +0200 +@@ -55,6 +55,18 @@ OTHER DEALINGS IN THE SOFTWARE. + #include "x86-common.h" +  + #if defined(__linux__) ++#ifndef TF_MASK ++#define TF_MASK X86_EFLAGS_TF ++#endif ++#ifndef IF_MASK ++#define IF_MASK X86_EFLAGS_IF ++#endif ++#ifndef IOPL_MASK ++#define IOPL_MASK X86_EFLAGS_IOPL ++#endif ++#ifndef VIF_MASK ++#define VIF_MASK X86_EFLAGS_VIF ++#endif + #define DEFAULT_VM86_FLAGS 	(IF_MASK | IOPL_MASK) + #elif defined(__NetBSD__) || defined(__FreeBSD__) + #define DEFAULT_VM86_FLAGS  (PSL_I | PSL_IOPL) diff --git a/abs/not_built/core/libxfontcache/LICENSE b/abs/not_built/core/libxfontcache/LICENSE new file mode 100644 index 0000000..c2fdbbd --- /dev/null +++ b/abs/not_built/core/libxfontcache/LICENSE @@ -0,0 +1,99 @@ +* Copyright (c) 1998-1999 Shunsuke Akiyama <akiyama@jp.FreeBSD.org>. + * All rights reserved. + * Copyright (c) 1998-1999 X-TrueType Server Project, All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + + +# +#  Copyright 2005  Red Hat, Inc. +# +#  Permission to use, copy, modify, distribute, and sell this software and its +#  documentation for any purpose is hereby granted without fee, provided that +#  the above copyright notice appear in all copies and that both that +#  copyright notice and this permission notice appear in supporting +#  documentation, and that the name of Red Hat not be used in +#  advertising or publicity pertaining to distribution of the software without +#  specific, written prior permission.  Red Hat makes no +#  representations about the suitability of this software for any purpose.  It +#  is provided "as is" without express or implied warranty. +# +#  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +#  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +#  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +#  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +#  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +#  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +#  PERFORMANCE OF THIS SOFTWARE. + + +# +# Copyright 2005 Sun Microsystems, Inc.  All rights reserved. +# +# Permission to use, copy, modify, distribute, and sell this software and its +# documentation for any purpose is hereby granted without fee, provided that +# the above copyright notice appear in all copies and that both that +# copyright notice and this permission notice appear in supporting +# documentation. +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the copyright holders shall +# not be used in advertising or otherwise to promote the sale, use or +# other dealings in this Software without prior written authorization +# from the copyright holders. +# + + + +Copyright (C) 2003 The XFree86 Project, Inc.  All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +IN NO EVENT SHALL THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES +OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the XFree86 Project +shall not be used in advertising or otherwise to promote the sale, use +or other dealings in this Software without prior written authorization +from the XFree86 Project. + diff --git a/abs/not_built/core/libxfontcache/PKGBUILD b/abs/not_built/core/libxfontcache/PKGBUILD new file mode 100644 index 0000000..0f01a34 --- /dev/null +++ b/abs/not_built/core/libxfontcache/PKGBUILD @@ -0,0 +1,28 @@ +# $Id: PKGBUILD 55250 2009-10-12 16:05:23Z andyrtr $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=libxfontcache +pkgver=1.0.5 +pkgrel=2 +pkgdesc="X11 font cache library" +arch=('i686' 'x86_64') +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('libxext' 'fontcacheproto') +makedepends=('pkgconfig') +options=('!libtool') +source=(${url}/releases/individual/lib/libXfontcache-${pkgver}.tar.bz2 LICENSE) + +build() { +  cd ${srcdir}/libXfontcache-${pkgver} +  ./configure --prefix=/usr --sysconfdir=/etc --disable-static \ +              --build=${CHOST} --host=${CHOST} +  make || return 1 +} +package() { +  cd ${srcdir}/libXfontcache-${pkgver} +  make DESTDIR=${pkgdir} install || return 1 +  install -D -m644 ../LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE +} +md5sums=('bbd37768c87f63cf2eb845b2c0f56515' +         '9738fb66a1a69ce086c461d5bedc7d8f') diff --git a/abs/not_built/core/libxtrap/PKGBUILD b/abs/not_built/core/libxtrap/PKGBUILD new file mode 100644 index 0000000..37427a3 --- /dev/null +++ b/abs/not_built/core/libxtrap/PKGBUILD @@ -0,0 +1,27 @@ +# $Id: PKGBUILD 4456 2008-07-07 16:29:51Z jgc $ +#Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=libxtrap +pkgver=1.0.0 +pkgrel=3 +pkgdesc="X11 event trapping extension library" +arch=('i686' 'x86_64') +license=('custom') +url="http://xorg.freedesktop.org/" +depends=('libxext' 'libxt' 'trapproto') +makedepends=('pkgconfig') +options=(!libtool) +source=(${url}/releases/individual/lib/libXTrap-${pkgver}.tar.bz2) +md5sums=('1e2d966b5b2b89910e418bb0f78e10de') + +build() { +  cd ${srcdir}/libXTrap-${pkgver} +  ./configure --prefix=/usr || return 1 +  make || return 1 +} +package() { +  cd ${srcdir}/libXTrap-${pkgver} +  make DESTDIR=${pkgdir} install || return 1 +  install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname} +  install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1 +} diff --git a/abs/not_built/core/libxxf86misc/PKGBUILD b/abs/not_built/core/libxxf86misc/PKGBUILD new file mode 100644 index 0000000..729ca3b --- /dev/null +++ b/abs/not_built/core/libxxf86misc/PKGBUILD @@ -0,0 +1,28 @@ +# $Id: PKGBUILD 55245 2009-10-12 16:01:59Z andyrtr $ +#Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=libxxf86misc +pkgver=1.0.3 +pkgrel=1 +pkgdesc="X11 XFree86 miscellaneous extension library" +arch=('i686' 'x86_64') +url="http://xorg.freedesktop.org/" +license=('custom') +depends=(libxext xf86miscproto) +makedepends=(pkgconfig) +options=(!libtool) +source=(${url}/releases/individual/lib/libXxf86misc-${pkgver}.tar.bz2) + +build() { +  cd ${srcdir}/libXxf86misc-${pkgver} +  ./configure --prefix=/usr --mandir=/usr/share/man --disable-static \ +              --build=${CHOST} --host=${CHOST} +  make || return 1 +} +package() { +  cd ${srcdir}/libXxf86misc-${pkgver} +  make DESTDIR=${pkgdir} install || return 1 +  install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE +} + +md5sums=('6bc0bf78909fd71021c466c793d4385c') diff --git a/abs/not_built/core/linhes-live/PKGBUILD b/abs/not_built/core/linhes-live/PKGBUILD new file mode 100644 index 0000000..c86e3cc --- /dev/null +++ b/abs/not_built/core/linhes-live/PKGBUILD @@ -0,0 +1,32 @@ +# Maintainer: R. Dale Thomas <rdt[at]KnoppMyth[dot]net> +# 2008.09.25 +pkgname=linhes-live +pkgver=5.3.3 +pkgrel=25 + +pkgdesc="LinHes compulsory components for the Live System." +url="http://KnoppMyth.net" +depends=() +arch=( i586 i686 x86_64 ) +license=('GPL') + +build() { +    # setup the local environment: +    local rDir=bin  eDir=etc  lDir=lib  sDir=session-save  oDir=opt/$pkgname +    local srcDir=${startdir}/src   pkgDir=${startdir}/pkg +    local insDir=${pkgDir}/$oDir   proDir=${pkgDir}/${eDir}/profile.d + +    mkdir -p $pkgDir $insDir $proDir +    cp -dr ${startdir}/$eDir $pkgDir +    local pthDir= +    echo 'export PATH=${PATH}:'"/$oDir/$rDir" > ${proDir}/${pkgname}.sh +    cp -dr ${startdir}/$lDir $pkgDir +    cp -dr ${startdir}/$rDir $insDir +    [ -d ${startdir}/$sDir ] && cp -dr ${startdir}/$sDir $insDir +    chown -R root.root $pkgDir +    return 0 +} + +# End +#change hook1 to wait for usb cdroms +#add extra login to f_remountro for vmware/usb diff --git a/abs/not_built/core/linhes-live/bin/gen_fstab b/abs/not_built/core/linhes-live/bin/gen_fstab new file mode 100755 index 0000000..db36546 --- /dev/null +++ b/abs/not_built/core/linhes-live/bin/gen_fstab @@ -0,0 +1,122 @@ +#! /bin/sh +# +# gen_fstab  - make new fstab for larch live system based on detected devices +# +# Author: Michael Towers <gradgrind[at]online[dot]de> +# +# This file is part of the larch project. +# +#    larch is free software; you can redistribute it and/or modify +#    it under the terms of the GNU General Public License as published by +#    the Free Software Foundation; either version 2 of the License, or +#    (at your option) any later version. +# +#    larch is distributed in the hope that it will be useful, +#    but WITHOUT ANY WARRANTY; without even the implied warranty of +#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +#    GNU General Public License for more details. +# +#    You should have received a copy of the GNU General Public License +#    along with larch; if not, write to the Free Software Foundation, Inc., +#    51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA +# +#---------------------------------------------------------------------------- +# 2007.12.17 + +# Note that the results are, by default, not copied into place +# They end up here: +DEST="/tmp/fstab" +MNT="/tmp/mnt" + +# However, passing '-l' as command-line option will install them. +# The old fstab will then be backed up to fstab~. +LOAD="" +if [ "$1" = "-l" ]; then LOAD="-l"; fi + +if [ -n "$( df | grep " ${MNT}" )" ]; then +    echo "ERROR: Mounted filesystem at/within ${MNT}" +    exit 1 +fi +mkdir -p ${MNT} +rm -rf ${MNT}/* + +tmpfile="/tmp/fstab2" +: >${tmpfile} + +echo "# fstab generated by gen_fstab" >${DEST} +echo "#<file system>   <dir>         <type>      <options>    <dump> <pass>" >>${DEST} +echo >>${DEST} + +echo "none            /dev/pts      devpts      defaults        0     0" >>${DEST} +echo "none            /dev/shm      tmpfs       defaults        0     0" >>${DEST} +echo >>${DEST} + +# Get all other partitions +sfdisk -d | grep "^/dev/" | sed "s|\(.*\):.*Id=\(..\).*|\1 \2|" | \ +    while read dev id; do +        # Ignore if id is "Extended" or "LVM", these are not usable partitions +        if [ "${id}" = "5" -o "${id}" = "8e" ]; then continue; fi +        # See if swap +        if [ "${id}" = "82" ]; then +            printf "%-12s %-12s %-8s defaults,noatime 0     0\n" \ +                ${dev} swap swap >>${DEST} +            continue +        fi +        removable="" +        part=$( basename ${dev} ) +        if [ $( cat /sys/block/${part:0:3}/removable 2>/dev/null ) -ne 0 ]; then +            removable="_rmv" +        fi +        mountdir=${part}${removable} +        printf "%-12s %-12s %-8s user,noauto,noatime 0     0\n" \ +                ${dev} /mnt/${mountdir} auto >>${tmpfile} +        mkdir -p ${MNT}/${mountdir} +    done + +# LVM +for lvmd in $( ls /dev/mapper 2>/dev/null | grep -v control ); do +    printf "%-30s %-22s %-8s user,noauto,noatime 0     0\n" \ +           /dev/mapper/${lvmd} /mnt/${lvmd} auto >>${tmpfile} +    mkdir -p ${MNT}/${lvmd} +done + +echo >>${DEST} +cat ${tmpfile} >>${DEST} +rm ${tmpfile} +echo >>${DEST} + +# CD devices +for dev in $( cat /proc/sys/dev/cdrom/info 2>/dev/null | head -n 3 | \ +        tail -n 1 | cut -d ":" -f 2 ); do +    mountdir="${dev}_cd" +    mkdir ${MNT}/${mountdir} +    printf "%-12s %-12s %-8s user,noauto,exec,unhide 0     0\n" \ +            /dev/${dev} /mnt/${mountdir} auto >>${DEST} +done + +echo >>${DEST} +echo "# This would do for a floppy" >>${DEST} +echo "#/dev/fd0        /mnt/floppy    vfat,ext2 rw,user,noauto    0     0" >>${DEST} +echo "#    +   mkdir /mnt/floppy" >>${DEST} +echo >>${DEST} +echo "# E.g. for USB storage:" >>${DEST} +echo "#/dev/sdb1        /mnt/usb      auto      rw,user,noauto   0     0" >>${DEST} +echo "#    +   mkdir /mnt/usb" >>${DEST} + +if [ -n "${LOAD}" ]; then +    # test if the script is started by root user. If not, exit +    if [ $UID -ne 0 ]; then +        echo "Only root can run ${APP}"; exit 1 +    fi + +    cp -b ${DEST} /etc/fstab +    # Delete removeable mount points which are not currently mounted +    for m in $( ls /mnt | grep ^[hs]d ); do +        if [ -z "$( df | grep " /mnt/${m}$" )" ]; then +            rmdir /mnt/${m} +        fi +    done +    for m in $( ls ${MNT} ); do +        mkdir -p /mnt/${m} +    done +fi diff --git a/abs/not_built/core/linhes-live/bin/km b/abs/not_built/core/linhes-live/bin/km new file mode 100755 index 0000000..386d966 --- /dev/null +++ b/abs/not_built/core/linhes-live/bin/km @@ -0,0 +1,76 @@ +#!/bin/sh +# $Id: km,v 1.2 2005/12/13 04:14:53 judd Exp $ +# Modified by gradgrind to deal only with i386 keymaps +#     and BASEDIR changed +#  - also saves results to /etc/rc.conf + +# test if the script is started by root user. If not, exit +if [ $UID -ne 0 ]; then +    echo "This should be run as root"; exit 1 +fi + +ANSWER="/tmp/.km" +BASEDIR="/usr/share/kbd" + +domenu() +{ +	menutype=$1 ; shift +	text=$1     ; shift +	height=$1   ; shift +	width=$1    ; shift +	mheight=$1  ; shift +	 +	dialog --cancel-label "Skip" --$menutype "$text" $height $width $mheight $* +} + +if [ ! -d $BASEDIR/keymaps ]; then +	echo "Cannot load keymaps, as none were found in $BASEDIR/keymaps" >&2 +	exit 1 +else +	echo "Scanning for keymaps..." +	KEYMAPS= +	for t in qwerty qwertz azerty dvorak; do +	    for i in `find $BASEDIR/keymaps/i386/$t -follow -name "*.gz"`; do +		fn=`echo $i | sed "s|$BASEDIR/keymaps/i386/||"` +		KEYMAPS="$KEYMAPS $fn -" +	    done +	done +	domenu menu "Select A Keymap" 22 60 16 $KEYMAPS 2>$ANSWER +	keymap=`cat $ANSWER` +fi + +if [ ! -d $BASEDIR/consolefonts ]; then +	echo "Cannot load consolefonts, as none were found in $BASEDIR/consolefonts" >&2 +else +	echo "Scanning for fonts..." +	FONTS= +	for i in `find $BASEDIR/consolefonts -follow -name "*.gz"`; do +		fn=`echo $i | sed "s|$BASEDIR/consolefonts/||"` +		FONTS="$FONTS $fn -" +	done +	domenu menu "Select A Console Font" 22 60 16 $FONTS 2>$ANSWER +	font=`cat $ANSWER` +fi + +if [ "$keymap" ]; then +	echo "Loading keymap: $keymap" +	loadkeys -q $BASEDIR/keymaps/i386/$keymap +	sed -i "s|^KEYMAP=.*|KEYMAP=\"$( echo $keymap | \ +	       cut -d'.' -f1 )\"|" /etc/rc.conf +fi + +if [ "$font" ]; then +	echo "Loading font: $font" +	for i in `seq 1 4`; do +		if [ -d /dev/vc ]; then +			setfont $BASEDIR/consolefonts/$font -C /dev/vc/${i} +		else +			setfont $BASEDIR/consolefonts/$font -C /dev/tty${i} +		fi +	done +	sed -i "s|^CONSOLEFONT=.*|CONSOLEFONT=\"$( echo $font | \ +	       cut -d'.' -f1 )\"|" /etc/rc.conf +fi + +exit 0 + diff --git a/abs/not_built/core/linhes-live/etc/live-shutdown b/abs/not_built/core/linhes-live/etc/live-shutdown new file mode 100644 index 0000000..b6a8378 --- /dev/null +++ b/abs/not_built/core/linhes-live/etc/live-shutdown @@ -0,0 +1,90 @@ +# Functions used by rc.shutdown +# Modified versions for linhes live systems + +f_saveclock () +{ +    : +} + +f_swapoff () +{ +    ############################# Include session saving functions +#    . /opt/linhes-live/session-save/shutdown2 +#    if [ -f /tmp/checkse ]; then +#        . /tmp/checkse +#    else +#        checkse +#    fi + +    if [ -n "${saving}" ] && ! session_save; then +        echo +        echo "If you know what you are doing, you may be able to recover" +        echo "something from this unpleasant situation." +        echo +        echo "You may use the command line to investigate further ..." +        echo +        echo "When finished please enter 'exit', the shutdown process will" +        echo "then continue." +        sh -i +    fi + +    ############################# + +    stat_busy "Deactivating Swap" +    /sbin/swapoff -a +    stat_done +} + +f_remountro () +{ +    bootdev=`cat /.livesys/bootdevice` +    echo "Boot device was $bootdev" +    #bootdev=`basename $bootdev` +    for i in `ls  /dev/cd/*` +    do +        cdrom=`readlink -f $i` +        if [ x$cdrom = x$bootdev ] +        then +            ejectdev=$cdrom +	    break +        fi +         +    done +    lspci |grep -q VMware +    if [ !   $? = 0 ] +    then +        if [ -n "${ejectdev}" ] +        then +            echo "Ejecting CD $ejectdev" +            eject ${ejectdev} +            echo "========================================" +            echo "Tray will retract after 10 seconds" +            for timer in `seq -w 10 -1 0` +            do +                #echo -n  $timer '\x08' +                echo -ne   "\t"$timer '\010\010\010\010' +                sleep 1 +            done +            echo +            echo "========================================" +            eject -t ${ejectdev} +            echo +            echo "It's safe to switch the computer off now" +            #echo -ne "Press Enter to continue" +            #read junk +        else +            echo "Boot device is not a cdrom, no need to eject" +        fi +    else +        echo "VMWARE detected, not ejecting the CD" +    fi +} +#Preloads these commands so we can eject the CD. +# +seq --help >/dev/null 2>&1 +eject --help >/dev/null 2>&1 +halt --help >/dev/null 2>&1 +poweroff --help >/dev/null 2>&1 +reboot --help >/dev/null 2>&1 + +# End diff --git a/abs/not_built/core/linhes-live/etc/live-sysinit b/abs/not_built/core/linhes-live/etc/live-sysinit new file mode 100644 index 0000000..40edad9 --- /dev/null +++ b/abs/not_built/core/linhes-live/etc/live-sysinit @@ -0,0 +1,73 @@ +# Functions used by rc.sysinit +# Modified versions for linhes live systems + +f_header () +{ +    cR='\e[31m' cY='\e[1;33m'  cN='\e[0m'  cW='\e[1;37m' +    echo " " +    printsep +    printf "   ${cR}LinHes ${cY}Installation${cN}/${cY}Live${cW} CDROM${cN}. " +    printsep +    echo " " +} + +f_fscheck () +{ +    stat_busy "Initializing /etc/mtab" +    #/bin/mount -n -o remount,rw / + +    /bin/rm -f /etc/mtab* + +    # Make entries for aufs/unionfs, tmpfs and live medium in /etc/mtab +    grep "^aufs */ " /proc/mounts >>/etc/mtab +    grep "^unionfs */ " /proc/mounts >>/etc/mtab +    grep "^tmpfs */.livesys " /proc/mounts >>/etc/mtab +    if [ -d /.livesys/medium/live ]; then +        grep " /.livesys/medium " /proc/mounts >>/etc/mtab +    fi + +    f_mountlocal +    stat_done + +    if [ -z "$( cat /etc/fstab | grep "^#KEEP" )" ]; then +        stat_busy "Generating fresh /etc/fstab" +        /opt/linhes-live/bin/gen_fstab -l +        stat_done +    fi + +    # now mount all the local filesystems +    stat_busy "Mounting Local Filesystems" +    /bin/mount -a -t $NETFS +    stat_done +} + +f_swapon () +{ +    #+*** Copy session-save flag-file (if it exists) +    [ -f /live/nosave ] && cp /live/nosave /.livesys +    #-*** + +    #*** Conditional swap activation +    if [ -e /.livesys/swapon ]; then +        status "Activating Swap" /sbin/swapon -a +    fi +} +f_loadmodules() +{ +    CMDLINE=$(cat /proc/cmdline) +    echo $CMDLINE | grep -q modules +    if [ $? -eq 0 ] +    then +        TEMPVAR=${CMDLINE#* modules=} +        CMDMODULES=${TEMPVAR%% *} +        mymod=`echo $CMDMODULES|/bin/sed 's|-|_|g' |/bin/sed 's|,| |g'` +        stat_busy "Loading CMD module" +        for mod in $mymod +        do +              /sbin/modprobe $mod +        done +        stat_done +    fi + + +} diff --git a/abs/not_built/core/linhes-live/etc/loginroot b/abs/not_built/core/linhes-live/etc/loginroot new file mode 100755 index 0000000..e3153c6 --- /dev/null +++ b/abs/not_built/core/linhes-live/etc/loginroot @@ -0,0 +1,3 @@ +#! /bin/sh +login -f root +# End diff --git a/abs/not_built/core/linhes-live/etc/rc.shutdown-live b/abs/not_built/core/linhes-live/etc/rc.shutdown-live new file mode 100755 index 0000000..79eae47 --- /dev/null +++ b/abs/not_built/core/linhes-live/etc/rc.shutdown-live @@ -0,0 +1,168 @@ +#!/bin/bash +# +# /etc/rc.shutdown +# + +### +# Based on initscripts 2008.05-1 +### + +. /etc/rc.conf +. /etc/rc.d/functions + +############################################################### +### These functions have been separated out, so that they can be +### replaced in linhes live systems. + +f_saveclock () +{ +    stat_busy "Saving System Clock" +    if [ "$TIMEZONE" != "" -a -e "/usr/share/zoneinfo/$TIMEZONE" ]; then +        /bin/rm -f /etc/localtime +        /bin/cp "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime +    fi + +    HWCLOCK_PARAMS="--systohc" +    if [ "$HARDWARECLOCK" = "UTC" ]; then +        HWCLOCK_PARAMS="$HWCLOCK_PARAMS --utc" +    else +        HWCLOCK_PARAMS="$HWCLOCK_PARAMS --localtime" +    fi +    if [ "$USEDIRECTISA" = "yes" -o "$USEDIRECTISA" = "YES" ]; then +        HWCLOCK_PARAMS="$HWCLOCK_PARAMS --directisa" +    fi +    /sbin/hwclock $HWCLOCK_PARAMS +    stat_done +} + +f_swapoff () +{ +    stat_busy "Deactivating Swap" +    /sbin/swapoff -a +    stat_done +} + +f_remountro () +{ +    stat_busy "Remounting Root Filesystem Read-only" +    /bin/mount -n -o remount,ro / +    stat_done +} + +############################################################### + +### Override above functions if running linhes live system +[ -f /etc/live-shutdown ] && . /etc/live-shutdown + +# avoid staircase effect +/bin/stty onlcr + +echo " " +printhl "Initiating Shutdown..." +echo " " + +# avoid NIS hanging syslog-ng on shutdown by unsetting the domainname +if [ -x /bin/domainname ]; then +    /bin/domainname "" +fi + +if [ -x /etc/rc.local.shutdown ]; then +    /etc/rc.local.shutdown +fi + +if [ "$PREVLEVEL" = "3" -o "$PREVLEVEL" = "5" ]; then +    # Shutdown daemons +    let i=${#DAEMONS[@]} +    while [ $i -ge 0 ]; do +        if [ "${DAEMONS[$i]:0:1}" != '!' ]; then +            ck_daemon ${DAEMONS[$i]#@} || /etc/rc.d/${DAEMONS[$i]#@} stop +        fi +        let i=i-1 +    done +    # find any leftover daemons and shut them down in reverse order +    if [ -d /var/run/daemons ]; then +        for daemon in $(/bin/ls -1t /var/run/daemons); do +            /etc/rc.d/$daemon stop +        done +    fi +fi + +# Terminate all processes +stat_busy "Sending SIGTERM To Processes" +/sbin/killall5 -15 &> /dev/null +/bin/sleep 5 +stat_done + +stat_busy "Sending SIGKILL To Processes" +/sbin/killall5 -9 &> /dev/null +/bin/sleep 1 +stat_done + +stat_busy "Saving Random Seed" +/bin/dd if=/dev/urandom of=/var/run/random-seed count=1 bs=512 2> /dev/null +stat_done + +#F Save system time +f_saveclock + +# removing psmouse module to fix some reboot issues on newer laptops +/sbin/modprobe -r psmouse >/dev/null 2>&1 + +# Write to wtmp file before unmounting +/sbin/halt -w + +#F Deactivate swaps +f_swapoff + +stat_busy "Unmounting Filesystems" +/bin/umount -a -t noramfs,notmpfs,nosysfs,noproc +stat_done + +# Kill non-root encrypted partition mappings +if [ -f /etc/crypttab -a -n "$(/bin/grep -v ^# /etc/crypttab | /bin/grep -v ^$)" ]; then +    stat_busy "Deactivating encrypted volumes:" +    CS=/sbin/cryptsetup.static +    do_uncrypt() { +        if [ $# -ge 3 ]; then +            stat_append "${1}.." +            $CS remove $1 >/dev/null 2>&1 +            if [ $? -ne 0 ]; then +                stat_append "failed " +            else +                stat_append "ok " +            fi +        fi +    } +    while read line; do +        eval do_uncrypt "$line" +    done </etc/crypttab +    stat_done +fi + +if [ "$USELVM" = "yes" -o "$USELVM" = "YES" ]; then +    if [ -x /sbin/lvm -a -d /sys/block ]; then +        stat_busy "Deactivating LVM2 groups" +        /sbin/lvm vgchange --ignorelockingfailure -an >/dev/null 2>&1 +        stat_done +    fi +fi + +#F Remount / ro +f_remountro +#Eject the CD + +# Power off or reboot +if [ "$RUNLEVEL" = "0" ]; then +    printsep +    printhl "${C_H2}POWER OFF" +    /sbin/poweroff -d -f -h -i +else +    printsep +    printhl "${C_H2}REBOOTING" +    # if kexec is installed and a kernel is loaded, use it +    [ -x /sbin/kexec ] && /sbin/kexec -e > /dev/null 2>&1 +    /sbin/reboot -d -f -i +fi + +# vim: set ts=2 sw=2 noet: +# End diff --git a/abs/not_built/core/linhes-live/etc/rc.sysinit-live b/abs/not_built/core/linhes-live/etc/rc.sysinit-live new file mode 100755 index 0000000..afdc2ae --- /dev/null +++ b/abs/not_built/core/linhes-live/etc/rc.sysinit-live @@ -0,0 +1,469 @@ +#!/bin/bash +# +# /etc/rc.sysinit +# + +### +# Based on initscripts 2008.05-1 +### + +. /etc/rc.conf +. /etc/rc.d/functions + +############################################################### +### These functions have been separated out, so that they can be +### replaced in linhes live systems. + +f_header () +{ +    echo " " +    printhl "Arch Linux $C_OTHER(${C_H2}Core Dump$C_OTHER)\n" +    printhl "${C_H2}http://www.archlinux.org" +    printhl "Copyright 2002-2007 Judd Vinet" +    printhl "Copyright 2007-2008 Aaron Griffin" +    printhl "Distributed under the GNU General Public License (GPL)" +    printsep +} + +f_fscheck () +{ +    status "Mounting Root Read-only" /bin/mount -n -o remount,ro / + +    if [ -x /sbin/fsck ]; then +        stat_busy "Checking Filesystems" +        if /bin/grep -qw quiet /proc/cmdline; then +            /sbin/fsck -A -T -C -a -t $NETFS $FORCEFSCK >/dev/null 2>&1 +        else +            /sbin/fsck -A -T -C -a -t $NETFS $FORCEFSCK 2>/dev/null +        fi +        fsckret=$? +        if [ ${fsckret} -gt 1 ]; then +            stat_fail +            if [ $((${fsckret}&2)) -eq 2 ]; then +                echo +                echo "********************** REBOOT REQUIRED *********************" +                echo "*                                                          *" +                echo "* The system will be rebooted automatically in 15 seconds. *" +                echo "*                                                          *" +                echo "************************************************************" +                echo +                /bin/sleep 15 +            else +                echo +                echo "*****************  FILESYSTEM CHECK FAILED  ****************" +                echo "*                                                          *" +                echo "*  Please repair manually and reboot. Note that the root   *" +                echo "*  file system is currently mounted read-only. To remount  *" +                echo "*  it read-write type: mount -n -o remount,rw /            *" +                echo "*  When you exit the maintenance shell the system will     *" +                echo "*  reboot automatically.                                   *" +                echo "*                                                          *" +                echo "************************************************************" +                echo +                /sbin/sulogin -p +            fi +            echo "Automatic reboot in progress..." +            /bin/umount -a +            /bin/mount -n -o remount,ro / +            /sbin/reboot -f +            exit 0 +        fi +        stat_done +    fi + +    stat_busy "Mounting Local Filesystems" +    /bin/mount -n -o remount,rw / +    /bin/rm -f /etc/mtab* +    # make sure / gets written to /etc/mtab +    /bin/mount -o remount,rw / + +    f_mountlocal +    stat_done +} + +f_mountlocal () +{ +    # Write /proc, /sys and /dev to /etc/mtab +    if [ -e /proc/mounts ]; then +        /bin/grep -e "/proc " -e "/sys " -e "/dev " /proc/mounts >> /etc/mtab +    fi +    # now mount all the local filesystems +    /bin/mount -a -t $NETFS +} + +f_swapon () +{ +    status "Activating Swap" /sbin/swapon -a +} + +############################################################### + +### Override above functions if running linhes live system +[ -f /etc/live-sysinit ] && . /etc/live-sysinit + +#F Print header +f_header + +# mount /proc, /sys and our RAM /dev +/bin/mount -n -t ramfs none /dev +/bin/mount -n -t proc none /proc +/bin/mount -n -t sysfs none /sys + +# Create our default nodes that minilogd may need +/bin/mknod /dev/null c 1 3 +/bin/mknod /dev/zero c 1 5 +/bin/mknod /dev/console c 5 1 + +# More initial /dev setup that udev doesn't do +/bin/ln -snf /proc/self/fd /dev/fd +/bin/ln -snf /proc/self/fd/0 /dev/stdin +/bin/ln -snf /proc/self/fd/1 /dev/stdout +/bin/ln -snf /proc/self/fd/2 /dev/stderr +/bin/ln -snf /proc/kcore /dev/core +/bin/mkdir /dev/pts +/bin/mkdir /dev/shm + +# start up our mini logger until syslog takes over +/sbin/minilogd + +# anything more serious than KERN_WARNING goes to the console +# 'verbose' cmdline parameter enables more messages +if /bin/grep -q " verbose" /proc/cmdline; then +    /bin/dmesg -n 8 +else +    /bin/dmesg -n 3 +fi + +# enable rtc access +/sbin/modprobe rtc-cmos >/dev/null 2>&1 +RTC_MAJOR=$(/bin/grep -w rtc /proc/devices 2>/dev/null); RTC_MAJOR="${RTC_MAJOR%% *}" +if [ -n "$RTC_MAJOR" ]; then +    /bin/mkdir /dev/misc/ +    /bin/mknod /dev/misc/rtc0 c $RTC_MAJOR 0 +    /bin/ln -s /dev/misc/rtc0 /dev/rtc +fi + +HWCLOCK_PARAMS="--hctosys" +if [ "$HARDWARECLOCK" = "UTC" ]; then +    HWCLOCK_PARAMS="$HWCLOCK_PARAMS --utc" +else +    HWCLOCK_PARAMS="$HWCLOCK_PARAMS --localtime" +fi +if [ "$USEDIRECTISA" = "yes" -o "$USEDIRECTISA" = "YES" ]; then +    HWCLOCK_PARAMS="$HWCLOCK_PARAMS --directisa" +fi + +# Set clock early to fix some bugs with filesystem checks +# Clock is set again later to match rc.conf +if [ -f /etc/localtime ]; then +    /sbin/hwclock $HWCLOCK_PARAMS --noadjfile +fi + +echo > /proc/sys/kernel/hotplug + +if [ -x /sbin/udevadm -a -d /sys/block ]; then +    # We have udev and /sys appears to be mounted, use UDev +    #status "Starting UDev Daemon" /etc/start_udev init + +    stat_busy "Starting UDev Daemon" +    /sbin/udevd --daemon +    stat_done +else +    # Static /dev, our last resort +    status "Using static /dev filesystem" true +fi + +# Load modules from the MODULES array defined in rc.conf +if ! [ "$load_modules" = "off" ]; then +    if [ -f /proc/modules ]; then +############Added by jm to load modules from /proc/cmdline +	f_loadmodules +############## +        stat_busy "Loading Modules" +        for mod in "${MODULES[@]}"; do +            if [ "$mod" = "${mod#!}" ]; then +                /sbin/modprobe $mod +            fi +        done +        stat_done +    fi +    if [ -d /proc/acpi ]; then +        stat_busy "Loading standard ACPI modules" +        ACPI_MODULES="ac battery button fan processor thermal" +        k="$(echo $BLACKLIST ${MOD_BLACKLIST[@]} | /bin/sed 's|-|_|g')" +        j="$(echo ${MODULES[@]} | /bin/sed 's|-|_|g')" +        #add disabled MODULES (!) to blacklist - much requested feature +        for m in ${j}; do +                [ "$m" != "${m#!}" ] && k="${k} ${m#!}" +        done +        # add disablemodules= from commandline to blacklist +        k="${k} $(echo ${disablemodules} | /bin/sed 's|-|_|g' | /bin/sed 's|,| |g')" +        for n in ${ACPI_MODULES}; do +            if ! echo ${k} | /bin/grep "\<$n\>" 2>&1 >/dev/null; then +                /sbin/modprobe $n > /dev/null 2>&1 +            fi +        done +        stat_done +    fi +fi + +# run udev uevents +if /bin/pidof -o %PPID /sbin/udevd >/dev/null; then +    #status "Loading UDev uevents" /etc/start_udev uevents +    stat_busy "Loading UDev uevents" +    udevstart="$(/bin/date +%s%0N)" +    /sbin/udevadm trigger +    /sbin/udevadm settle +    stat_done +    udevend="$(/bin/date +%s%0N)" +    printhl "   UDev uevent processing time: $((($udevend-$udevstart)/1000000))ms" +fi + +# bring up the loopback interface +if [ -d /sys/class/net/lo ]; then +    stat_busy "Bringing up loopback interface" +    /sbin/ifconfig lo 127.0.0.1 up +    if [ $? -ne 0 ]; then +        stat_fail +    else +        stat_done +    fi +fi + +# If necessary, find md devices and manually assemble RAID arrays +if [ -f /etc/mdadm.conf -a "$(/bin/grep ^ARRAY /etc/mdadm.conf 2>/dev/null)" ]; then +    # udev won't create these md nodes, so we do it ourselves +    for dev in $(/bin/grep ^ARRAY /etc/mdadm.conf | /bin/awk '{print $2}'); do +        path=$(echo $dev | /bin/sed 's|/[^/]*$||') +        node=$(echo $dev | /bin/sed "s|^$path/||") +        minor=$(echo $node | /bin/sed 's|^[^0-9]*||') +        [ ! -e $path/$node ] && /bin/mknod $path/$node b 9 $minor +    done +    status "Activating RAID arrays" /sbin/mdadm --assemble --scan +fi + +if [ "$USELVM" = "yes" -o "$USELVM" = "YES" ]; then +    if [ -x /sbin/lvm -a -d /sys/block ]; then +        # Kernel 2.6.x, LVM2 groups +        /sbin/modprobe -q dm-mod 2>/dev/null +        stat_busy "Activating LVM2 groups" +        /sbin/lvm vgscan --ignorelockingfailure --mknodes >/dev/null +        /sbin/lvm vgchange --ignorelockingfailure -a y >/dev/null +        if [ $? -ne 0 ]; then +            stat_fail +        else +            stat_done +        fi +    fi +fi + +# Set up non-root encrypted partition mappings +if [ -f /etc/crypttab -a -n "$(/bin/grep -v ^# /etc/crypttab | /bin/grep -v ^$)" ]; then +    /sbin/modprobe -q dm-mod 2>/dev/null +    stat_busy "Unlocking encrypted volumes:" +    csfailed=0 +    CS=/sbin/cryptsetup.static +    do_crypt() { +        if [ $# -ge 3 ]; then +            cname="$1" +            csrc="$2" +            cpass="$3" +            shift 3 +            copts="$*" +            stat_append "${cname}.." +            # For some fun reason, the parameter ordering varies for +            # LUKS and non-LUKS devices.  Joy. +            if [ "${cpass}" = "SWAP" ]; then +                # This is DANGEROUS! The only possible safety check +                # is to not proceed in case we find a LUKS device +                # This may cause dataloss if it is not used carefully +                if $CS isLuks $csrc 2>/dev/null; then +                    false +                else +                    $CS -d /dev/urandom $copts create $cname $csrc >/dev/null +                    if [ $? -eq 0 ]; then +                        stat_append "creating swapspace.." +                        /sbin/mkswap -L $cname /dev/mapper/$cname >/dev/null +                    fi +                fi +            elif [ "${cpass}" = "ASK" ]; then +                printf "\nOpening '${cname}' volume:\n" + +                if $CS isLuks $csrc 2>/dev/null; then +                    $CS $copts luksOpen $csrc $cname < /dev/console +                else +                    $CS $copts create $cname $csrc < /dev/console +                fi +            elif [ "${cpass:0:1}" != "/" ]; then +                if $CS isLuks $csrc 2>/dev/null; then +                    echo "$cpass" | $CS $copts luksOpen $csrc $cname >/dev/null +                else +                    echo "$cpass" | $CS $copts create $cname $csrc >/dev/null +                fi +            else +                if $CS isLuks $csrc 2>/dev/null; then +                    $CS -d $cpass $copts luksOpen $csrc $cname >/dev/null +                else +                    $CS -d $cpass $copts create $cname $csrc >/dev/null +                fi +            fi +            if [ $? -ne 0 ]; then +                csfailed=1 +                stat_append "failed " +            else +                stat_append "ok " +            fi +        fi +    } +    while read line; do +        eval do_crypt "$line" +    done </etc/crypttab +    if [ $csfailed -eq 0 ]; then +        stat_done +    else +        stat_fail +    fi +    # Maybe someone has LVM on an encrypted block device +    if [ "$USELVM" = "yes" -o "$USELVM" = "YES" ]; then +        if [ -x /sbin/lvm -a -d /sys/block ]; then +            /sbin/lvm vgscan --ignorelockingfailure --mknodes >/dev/null +            /sbin/lvm vgchange --ignorelockingfailure -a y >/dev/null +        fi +    fi +fi + +FORCEFSCK= +[ -f /forcefsck ] && FORCEFSCK="-- -f" +NETFS="nonfs,nonfs4,nosmbfs,nocifs,nocodafs,noncpfs,nosysfs,noshfs,nofuse,nofuseblk" + +#F Check filesystems +f_fscheck + +#F Activate swaps +f_swapon + +stat_busy "Configuring System Clock" +if [ ! -f /var/lib/hwclock/adjtime ]; then +    echo "0.0 0 0.0" > /var/lib/hwclock/adjtime +fi +if [ "$TIMEZONE" != "" -a -e "/usr/share/zoneinfo/$TIMEZONE" ]; then +    /bin/rm -f /etc/localtime +    /bin/cp "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime +fi + +/sbin/hwclock $HWCLOCK_PARAMS +stat_done + +if [ -f /var/run/random-seed ]; then +    stat_busy "Initializing Random Seed" +    /bin/cat /var/run/random-seed >/dev/urandom +    stat_done +fi + +stat_busy "Removing Leftover Files" +/bin/rm -f /etc/nologin &>/dev/null +/bin/rm -f /etc/shutdownpid &>/dev/null +/bin/rm -f /var/lock/* &>/dev/null +/bin/rm -rf /tmp/* /tmp/.* &>/dev/null +/bin/rm -f /forcefsck &>/dev/null +(cd /var/run && /usr/bin/find . ! -type d -exec /bin/rm -f -- {} \; ) +: > /var/run/utmp +# Keep {x,k,g}dm happy with xorg +/bin/mkdir /tmp/.ICE-unix && /bin/chmod 1777 /tmp/.ICE-unix +/bin/mkdir /tmp/.X11-unix && /bin/chmod 1777 /tmp/.X11-unix +stat_done + +#status "Updating Shared Library Links" /sbin/ldconfig + +if [ "$HOSTNAME" != "" ]; then +    status "Setting Hostname: $HOSTNAME" /bin/hostname $HOSTNAME +fi + +# Set the NIS domain name, if necessary +[ -f /etc/conf.d/nisdomainname ] && . /etc/conf.d/nisdomainname +if [ "$NISDOMAINNAME" != "" ]; then +    status "Setting NIS Domain Name: $NISDOMAINNAME" /bin/nisdomainname $NISDOMAINNAME +fi + +status "Updating Module Dependencies" /sbin/depmod -A + +# Flush old locale settings +: >/etc/profile.d/locale.sh +/bin/chmod 755 /etc/profile.d/locale.sh +# Set user defined locale +[ -z "$LOCALE" ] && LOCALE="en_US" +stat_busy "Setting Locale: $LOCALE" +echo "export LANG=$LOCALE" >>/etc/profile.d/locale.sh +stat_done + +if echo "$LOCALE" | /bin/grep -qi utf ; then +    stat_busy "Setting Consoles to UTF-8 mode" +    # UTF-8 consoles are default since 2.6.24 kernel +    # this code is needed not only for older kernels, +    # but also when user has set vt.default_utf8=0 but LOCALE is *.UTF-8. +    /usr/bin/kbd_mode -u +    for i in $(/usr/bin/seq 0 63); do +        printf "\e%%G" > /dev/vc/${i} +    done +    # the $CONSOLE check helps us avoid this when running scripts from cron +    echo 'if [ "$CONSOLE" = "" -a "$TERM" = "linux" -a -t 1 ]; then printf "\e%%G"; fi' >>/etc/profile.d/locale.sh +    stat_done +    [ -n "$KEYMAP" ] && status "Loading Keyboard Map: $KEYMAP" /bin/loadkeys -q -u $KEYMAP +else +    stat_busy "Setting Consoles to legacy mode" +    # make non-UTF-8 consoles work on 2.6.24 and newer kernels +    /usr/bin/kbd_mode -a +    for i in $(/usr/bin/seq 0 63); do +        printf "\e%%@" > /dev/vc/${i} +    done +    # the $CONSOLE check helps us avoid this when running scripts from cron +    echo 'if [ "$CONSOLE" = "" -a "$TERM" = "linux" -a -t 1 ]; then printf "\e%%@"; fi' >>/etc/profile.d/locale.sh +    stat_done +    [ -n "$KEYMAP" ] && status "Loading Keyboard Map: $KEYMAP" /bin/loadkeys -q $KEYMAP +fi + +if [ -n "$CONSOLEFONT" ]; then +    stat_busy "Loading Console Font: $CONSOLEFONT" +    #CONSOLEMAP in UTF-8 shouldn't be used +    if [ -n "$CONSOLEMAP" ] && echo "$LOCALE" | /bin/grep -qi utf ; then +        CONSOLEMAP="" +    fi +    for i in $(/usr/bin/seq 0 63); do +        if [ -n "$CONSOLEMAP" ]; then +            /usr/bin/setfont -m $CONSOLEMAP $CONSOLEFONT -C /dev/vc/${i} >/dev/null 2>&1 +        else +            /usr/bin/setfont $CONSOLEFONT -C /dev/vc/${i} >/dev/null 2>&1 +        fi +    done +    if [ $? -ne 0 ]; then +        stat_fail +    else +        for i in $(/usr/bin/seq 0 63); do +            printf "\e(K" > /dev/vc/${i} +        done +        # the $CONSOLE check helps us avoid this when running scripts from cron +        echo 'if [ "$CONSOLE" = "" -a "$TERM" = "linux" -a -t 1 ]; then printf "\e(K"; fi' >>/etc/profile.d/locale.sh +        stat_done +    fi +fi + +# Adding persistent network/cdrom generated rules +if [ -f "/dev/.udev/tmp-rules--70-persistent-cd.rules" ]; then +    stat_busy "Adding persistent cdrom udev rules" +    /bin/cat /dev/.udev/tmp-rules--70-persistent-cd.rules >> /etc/udev/rules.d/70-persistent-cd.rules +    stat_done +fi +if [ -f "/dev/.udev/tmp-rules--70-persistent-net.rules" ]; then +    stat_busy "Adding persistent network udev rules" +    /bin/cat /dev/.udev/tmp-rules--70-persistent-net.rules >> /etc/udev/rules.d/70-persistent-net.rules +    stat_done +fi + +# Save our dmesg output from this boot +if [ -f /var/log/dmesg.log ]; then +    /bin/rm /var/log/dmesg.log +fi +/bin/dmesg > /var/log/dmesg.log + +# vim: set ts=2 noet: +# End diff --git a/abs/not_built/core/linhes-live/etc/ulogin b/abs/not_built/core/linhes-live/etc/ulogin new file mode 100755 index 0000000..085c431 --- /dev/null +++ b/abs/not_built/core/linhes-live/etc/ulogin @@ -0,0 +1,57 @@ +#!/bin/bash + +# ulogin  - A script for autologin of a selected user (and more) +#----------------------------------------------------------------- +# 2008.04.06 + +user=$( cat /tmp/newuser 2>/dev/null ) + +rm -f /tmp/newuser +rm -f /tmp/xlogout + +if [ -n "${user}" ]; then +    login -f ${user} +else +    # offer choice of user +    ulist="$( cat /etc/passwd | grep ':/home/.*sh$' )" +    echo -e "\nLogin a user or quit:" +    echo "   0 : root" +    echo "   1 : REBOOT" +    echo "   2 : HALT" + +    i=2 +    for entry in ${ulist}; do +        i=$(( ${i} + 1 )) +        user="$( echo ${entry} | cut -d':' -f1 )" +        users[${i}]=${user} +        printf "%4d : %s\n" ${i} ${user} +    done +    while true; do +        read -p "Enter a number from 0 to ${i} : " n +        if [ "${n}" = 0 ]; then +            login -f root +        elif [ "${n}" = 1 ]; then +            exec reboot +        elif [ "${n}" = 2 ]; then +            exec halt +        elif [ -n "$( echo "${n}" | grep "^[0-9]\+$" )" ] && \ +                [ -n "${users[${n}]}" ]; then +            login -f ${users[${n}]} +        else +            echo "  *** Invalid choice ..." +            continue +        fi +        break +    done +fi + +if grep "r" /tmp/xlogout &>/dev/null; then +    reboot +elif grep "h" /tmp/xlogout &>/dev/null; then +    halt +fi + +# This file is only needed for shutting down +rm -f /tmp/checkse + +# End diff --git a/abs/not_built/core/linhes-live/lib/initcpio/gen_larch_init b/abs/not_built/core/linhes-live/lib/initcpio/gen_larch_init new file mode 100755 index 0000000..d834e8f --- /dev/null +++ b/abs/not_built/core/linhes-live/lib/initcpio/gen_larch_init @@ -0,0 +1,12 @@ +#! /bin/bash + +# gen_larch_init +# +# Author: Michael Towers <gradgrind[at]online[dot]de> + +# Create an initramfs for a larch live system +#  $1  - kernel version + +# The cpio.gz image is generated in larch.img + +/sbin/mkinitcpio -c /lib/initcpio/mkinitcpio.conf -k $1 -g larch.img diff --git a/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch1 b/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch1 new file mode 100644 index 0000000..88ccc3e --- /dev/null +++ b/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch1 @@ -0,0 +1,125 @@ +# vim: set ft=sh: + +# larch1 -  live 'hook' for mkinitcpio: set up tmpfs and find boot device + +# Author: Michael Towers (gradgrind) <mt.42@web.de> +# +# This file is part of the larch project. +# +#    larch is free software; you can redistribute it and/or modify +#    it under the terms of the GNU General Public License as published by +#    the Free Software Foundation; either version 2 of the License, or +#    (at your option) any later version. +# +#    larch is distributed in the hope that it will be useful, +#    but WITHOUT ANY WARRANTY; without even the implied warranty of +#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +#    GNU General Public License for more details. +# +#    You should have received a copy of the GNU General Public License +#    along with larch; if not, write to the Free Software Foundation, Inc., +#    51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA +# +#---------------------------------------------------------------------------- +#2008.02.11 + +# Replacement for msg which includes leading and trailing spaces +msg_ () { [ "${quiet}" != "y" ] && echo "$@"; } + +# Try to mount a disk, partition or cdrom and look for the file +# 'larchboot' in the /larch directory. +# If LiveCD system found in the device, return 0, else return 1 +# and leave the device mounted. +# $1 = device name (e.g. "/dev/hda2") +# $2 = directory where devices will be mounted +# +test_live_data_dir () +{ +    /bin/mount -r -t iso9660 "$1" $2 >/dev/null 2>/dev/null || \ +    /bin/mount -r -t vfat -o noatime,nodiratime "$1" $2 >/dev/null 2>/dev/null || \ +    /bin/mount -r -t ext2 -o noatime,nodiratime "$1" $2 >/dev/null 2>/dev/null +    if [ $? -eq 0 ]; then +        if [ -f "$2/larch/larchboot" ]; then +            LDEV="$1" +            msg_ " ... found at $1" +            return 0 +        else +            /bin/umount $2 2>/dev/null +            msg_ " ... $1 mounted, but no 'larch/larchboot' found" +        fi +    else +        msg_ "  ... not $1" +    fi +    return 1 +} + +run_hook () +{ +    msg_ ":: Creating writeable filesystem (tmpfs)" +    /bin/mkdir "/tfs" +    # Boot option copy-to-ram (c2r) +    if [ "${c2r}" = "y" ]; then +        TFSSIZE="90%" +    else +        TFSSIZE="60%" +    fi +    /bin/mount -t tmpfs -o "size=${TFSSIZE}" tmpfs "/tfs" + +    # Directory for test mounts (and then for live CD) +    cdmount="/livecd" +    /bin/mkdir "${cdmount}" + +    # look for livecd data directory, first try ${root} +    LDEV="${root}" +    if [ "x${LDEV}" != "x" ]; then +        /bin/mount -r -t iso9660 "${LDEV}" "${cdmount}" >/dev/null 2>/dev/null || \ +        /bin/mount -r -t vfat -o noatime,nodiratime "${LDEV}" "${cdmount}" >/dev/null 2>/dev/null || \ +        /bin/mount -r -t ext2 -o noatime,nodiratime "${LDEV}" "${cdmount}" >/dev/null 2>/dev/null +        if [ $? -eq 0 ]; then +            if [ -d "${cdmount}/larch" ]; then +                msg_ ":: larch system at ${LDEV}" +            else +                /bin/umount "${cdmount}" 2>/dev/null +                echo "!! No larch system at ${LDEV}" +                LDEV="" +            fi +        else +            echo "!! Couldn't mount ${LDEV}" +            LDEV="" +        fi +    fi + +    # then try cdroms +    if [ "x${LDEV}" = "x" ]; then +        msg_ ":: Looking for boot device" +        cdroms=$( /bin/cat /proc/sys/dev/cdrom/info | { while read a b c; do +                if [ "${a}" = "drive" -a "${b}" = "name:" ]; then +                    echo "${c}" +                    break +                fi +            done +        } ) +        for i in ${cdroms}; do +            test_live_data_dir "/dev/${i}" "${cdmount}" +            if [ $? -eq 0 ]; then break; fi +        done +    fi + +    # test USB devices (and disks) repeatedly until timed out +    if [ "x${LDEV}" = "x" ]; then +        msg_ ":: Searching for usb (and disk) devices .." +        for i in 1 2 3 4 5; do +            msg_ " :wait ${i} :::" +            /bin/sleep ${i} +            for d in /dev/sd[a-z][0-9]*; do +                test_live_data_dir "${d}" "${cdmount}" +                if [ $? -eq 0 ]; then break 2; fi +            done +            msg_ ":: Searching for usb cdroms .." +            for d in /dev/sr[0-9]*; do +                test_live_data_dir "${d}" "${cdmount}" +                if [ $? -eq 0 ]; then break 2; fi +            done +        done +    fi +} diff --git a/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch2 b/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch2 new file mode 100644 index 0000000..74b4e64 --- /dev/null +++ b/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch2 @@ -0,0 +1,33 @@ +# larch2 -  live 'hook' for mkinitcpio: unionfs specific + +# Author: Michael Towers (gradgrind) <mt.42@web.de> +# +# This file is part of the larch project. +# +#    larch is free software; you can redistribute it and/or modify +#    it under the terms of the GNU General Public License as published by +#    the Free Software Foundation; either version 2 of the License, or +#    (at your option) any later version. +# +#    larch is distributed in the hope that it will be useful, +#    but WITHOUT ANY WARRANTY; without even the implied warranty of +#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +#    GNU General Public License for more details. +# +#    You should have received a copy of the GNU General Public License +#    along with larch; if not, write to the Free Software Foundation, Inc., +#    51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA +# +#---------------------------------------------------------------------------- +#2007.12.13 + +run_hook () +{ +    #!!! --- unionfs specific +    # Need unionfs module +    /bin/modprobe unionfs +    ovlmnt="ro" +    bropt="dirs=" +    sqfmnt="ro" +    utype="unionfs" +} diff --git a/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch2_aufs b/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch2_aufs new file mode 100644 index 0000000..ac8e40b --- /dev/null +++ b/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch2_aufs @@ -0,0 +1,33 @@ +# larch2_aufs -  live 'hook' for mkinitcpio: aufs specific + +# Author: Michael Towers (gradgrind) <mt.42@web.de> +# +# This file is part of the larch project. +# +#    larch is free software; you can redistribute it and/or modify +#    it under the terms of the GNU General Public License as published by +#    the Free Software Foundation; either version 2 of the License, or +#    (at your option) any later version. +# +#    larch is distributed in the hope that it will be useful, +#    but WITHOUT ANY WARRANTY; without even the implied warranty of +#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +#    GNU General Public License for more details. +# +#    You should have received a copy of the GNU General Public License +#    along with larch; if not, write to the Free Software Foundation, Inc., +#    51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA +# +#---------------------------------------------------------------------------- +# 2008.02.29 + +run_hook () +{ +   #!!! --- aufs specific +    # Need aufs module +    /bin/modprobe aufs +    ovlmnt="rr+wh" +    sqfmnt="rr" +    bropt="br:" +    utype="aufs" +} diff --git a/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch3 b/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch3 new file mode 100644 index 0000000..b301aa9 --- /dev/null +++ b/abs/not_built/core/linhes-live/lib/initcpio/hooks/larch3 @@ -0,0 +1,196 @@ +# larch3 -  live 'hook' for mkinitcpio: +#                 deal with c2r, +#                 mount base system, +#                 load overlay, +#                 set up unioned root filesystem. +#                 Also manages overlay merging. + +# Author: Michael Towers <gradgrind[at]online[dot]de> +# +# This file is part of the larch project. +# +#    larch is free software; you can redistribute it and/or modify +#    it under the terms of the GNU General Public License as published by +#    the Free Software Foundation; either version 2 of the License, or +#    (at your option) any later version. +# +#    larch is distributed in the hope that it will be useful, +#    but WITHOUT ANY WARRANTY; without even the implied warranty of +#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +#    GNU General Public License for more details. +# +#    You should have received a copy of the GNU General Public License +#    along with larch; if not, write to the Free Software Foundation, Inc., +#    51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA +# +#---------------------------------------------------------------------------- +# 2008.04.04 + +run_hook () +{ +    if [ "x${LDEV}" = "x" ]; then +        err "Sorry, couldn't find boot medium ..." +        break="y" +        return +    fi + +    /sbin/modprobe loop + +    # Path to compressed base system +    sysSqf=${cdmount}/system.sqf + +    ovlpath=${cdmount} + +    # A possibility to use alternative files: +    if [ -f ${cdmount}/larch/boot-init ]; then +        . ${cdmount}/larch/boot-init +    fi + +    # Path to compressed 'modifications' archive +    modsSqf=${ovlpath}/mods.sqf +    # Default overlay file and directory +    overlay=${ovlpath}/overlay.ovl + +    # Make union root +    /bin/mkdir /union + +    # Deal with new archives +    if [ -f ${overlay}_ ]; then +        /bin/mount -o remount,rw ${LDEV} ${cdmount} +        /bin/mv ${overlay} ${overlay}~ +        /bin/mv ${overlay}_ ${overlay} + +        if [ -f ${modsSqf}_ ]; then +            /bin/mv ${modsSqf} ${modsSqf}~ +            /bin/mv ${modsSqf}_ ${modsSqf} +        fi +        /bin/mount -o remount,ro ${LDEV} ${cdmount} +    fi + +    # Boot option copy-to-ram (c2r) +    if [ "${c2r}" = "y" ]; then +        msg_ ":: Copying base system to RAM, this will take a while ..." +        /bin/cat ${sysSqf} > /tfs/system.sqf +        if [ $? -ne 0 ]; then +            err "Sorry, not enough RAM" +            break="y" +            return +        fi +        sysSqf=/tfs/system.sqf + +        msg_ ":: Copying mods archive to RAM, this might take a while ..." +        /bin/cat ${modsSqf} > /tfs/mods.sqf +        if [ $? -ne 0 ]; then +            err "Sorry, not enough RAM" +            break="y" +            return +        fi +        modsSqf=/tfs/mods.sqf + +        # force use of swap (if available) +        :> /tfs/swapon + +    elif [ "${swap}" = "y" ]; then +        :> /tfs/swapon +    fi + +    msg_ ":: Mounting squashed images" +    /bin/mkdir /tfs/system +    #added sleep for 3 seconds, because well i don't know but it seems to fix things +    sleep 3 +    # The klibc mount command doesn't support '-o loop' +    /bin/losetup /dev/loop0 ${sysSqf} +    /bin/mount -r -t squashfs /dev/loop0 /tfs/system + +    # Make stuff in 'system' available by providing the loader and +    # library path +    ldli=$( cd /tfs/system; echo lib/ld-linux*.so.2 ) +    /bin/ln -s /tfs/system/${ldli} /${ldli} +    export LD_LIBRARY_PATH=/tfs/system/lib:/tfs/system/usr/lib + +    /bin/mkdir /tfs/mods +     +    # The klibc mount command doesn't support '-o loop' +    /bin/losetup /dev/loop1 ${modsSqf} +    /bin/mount -r -t squashfs /dev/loop1 /tfs/mods + +    # Unpack the overlay + +    msg_ ":: Initializing writable layer for union (overlay)" +    /tfs/system/usr/bin/lzop -d < ${overlay} | \ +            /tfs/system/bin/tar -C /tfs -xf - + +    # Copy the installation tidy-up script (for removing custom live-only stuff), +    # and any other files in 'larch/copy' directory +    if [ -d ${ovlpath}/larch/copy ]; then +        cd ${ovlpath}/larch/copy +        for f in *; do +            cat ${f} >/tfs/${f} +        done +    fi + +    msg_ ":: Setting up union file system" + +    layers="/tfs/overlay=rw:/tfs/mods=${ovlmnt}:/tfs/system=${sqfmnt}" +    /bin/mount -t ${utype} -o ${bropt}${layers} ${utype} /union + +    echo "${utype}" > /tfs/utype + +    # Minimal device nodes needed before udev does its work +    /bin/mkdir /union/dev +    /bin/mknod /union/dev/console c 5 1 +    /bin/mknod /union/dev/null c 1 3 +    /bin/mknod /union/dev/zero c 1 5 + +    # Make special directories +    /bin/mkdir -m 1777 /union/tmp +    /bin/mkdir /union/media +    /bin/mkdir /union/sys +    /bin/mkdir /union/proc + +    # Make the tmpfs stuff accessible within the union +    /bin/mkdir /union/.livesys +    /bin/mount -o bind /tfs /union/.livesys + +    /bin/mkdir /union/.livesys/medium + +    /bin/mount -o bind /tfs/system /union/.livesys/system +    /bin/mount -o bind /tfs/overlay /union/.livesys/overlay +    /bin/mount -o bind ${cdmount} /union/.livesys/medium + +    if [ "x${modsSqf}" != "x" ]; then +        /bin/mount -o move /tfs/mods /union/.livesys/mods +    fi + +    # Remember the boot device +    echo "${LDEV}" > /tfs/bootdevice + +    if [ "${c2r}" = "y" ]; then +        # Set flag to inform system of copy-to-ram +        :> /tfs/c2r + +        # Unmount boot device +        /bin/umount ${cdmount} +    fi + +    msg_ ":: End of live system set-up" + +    # Now some tweaks to alter 'init' actions from non-larch hooks, etc. +    # Override rootdelay from usb hook +    if [ "x${larchdelay}" = "x"  ]; then +        # To avoid spurious udevd pid numbers +        export rootdelay=1 +    else +        # Allow adjustment via boot option +        export rootdelay=${larchdelay} +    fi +    # root must be set to something or other, even though larch doesn't +    # need it ... +    export root="/dev/loop0" +} + +####### +# The actual root switch occurs later, when 'init' execs 'kinit'. +# I handle this by overwriting the 'kinit' binary with my own script. +# This will unmount dev, sys and proc and then exec run-init. +####### diff --git a/abs/not_built/core/linhes-live/lib/initcpio/install/larch1 b/abs/not_built/core/linhes-live/lib/initcpio/install/larch1 new file mode 100644 index 0000000..56baf48 --- /dev/null +++ b/abs/not_built/core/linhes-live/lib/initcpio/install/larch1 @@ -0,0 +1,15 @@ +install () +{ +    MODULES="vfat isofs ext2 ext3 nls_cp437" +    BINARIES="" +    FILES="" +    SCRIPT="larch1" +} + +help () +{ +cat<<HELPEOF +  This hook deals with booting a larch live CD. It is the first larch hook, +creating a tmpfs and seeking the boot medium. +HELPEOF +} diff --git a/abs/not_built/core/linhes-live/lib/initcpio/install/larch2 b/abs/not_built/core/linhes-live/lib/initcpio/install/larch2 new file mode 100644 index 0000000..a906227 --- /dev/null +++ b/abs/not_built/core/linhes-live/lib/initcpio/install/larch2 @@ -0,0 +1,15 @@ +install () +{ +    MODULES="unionfs" +    BINARIES="" +    FILES="" +    SCRIPT="larch2" +} + +help () +{ +cat<<HELPEOF +  This hook deals with booting a larch live CD. It handles selection of the +desired unioning file system, here unionfs. +HELPEOF +} diff --git a/abs/not_built/core/linhes-live/lib/initcpio/install/larch2_aufs b/abs/not_built/core/linhes-live/lib/initcpio/install/larch2_aufs new file mode 100644 index 0000000..0e19de9 --- /dev/null +++ b/abs/not_built/core/linhes-live/lib/initcpio/install/larch2_aufs @@ -0,0 +1,15 @@ +install () +{ +    MODULES="aufs" +    BINARIES="" +    FILES="" +    SCRIPT="larch2_aufs" +} + +help () +{ +cat<<HELPEOF +  This hook deals with booting a larch live CD. It handles selection of the +desired unioning file system, here aufs. +HELPEOF +} diff --git a/abs/not_built/core/linhes-live/lib/initcpio/install/larch3 b/abs/not_built/core/linhes-live/lib/initcpio/install/larch3 new file mode 100644 index 0000000..7dad03c --- /dev/null +++ b/abs/not_built/core/linhes-live/lib/initcpio/install/larch3 @@ -0,0 +1,18 @@ +install () +{ +    MODULES="squashfs loop reiserfs" +    BINARIES="" +    FILES="" +    SCRIPT="larch3" +#    add_file "/lib/initcpio/kinit" "/bin/kinit"  ##### This doesn't work, so: +    sed -i 's|.*/usr/lib/klibc/bin/kinit\.shared.*||' "${FILELIST}" +    sed -i 's|/usr/lib/klibc/bin/kinit|/lib/initcpio/kinit|' "${FILELIST}" +} + +help () +{ +cat<<HELPEOF +  This hook deals with booting a larch live CD. It is the last larch hook, +setting up the tmpfs root file system. +HELPEOF +} diff --git a/abs/not_built/core/linhes-live/lib/initcpio/kinit b/abs/not_built/core/linhes-live/lib/initcpio/kinit new file mode 100755 index 0000000..7c86f4b --- /dev/null +++ b/abs/not_built/core/linhes-live/lib/initcpio/kinit @@ -0,0 +1,6 @@ +#! /bin/sh + +umount /sys +umount /proc +umount /dev +exec run-init -c /dev/console /union /sbin/init ${CMDLINE} diff --git a/abs/not_built/core/linhes-live/lib/initcpio/mkinitcpio.conf b/abs/not_built/core/linhes-live/lib/initcpio/mkinitcpio.conf new file mode 100644 index 0000000..79cca21 --- /dev/null +++ b/abs/not_built/core/linhes-live/lib/initcpio/mkinitcpio.conf @@ -0,0 +1,54 @@ +# vim:set ft=sh +# MODULES +# The following modules are loaded before any boot hooks are +# run.  Advanced users may wish to specify all system modules +# in this array.  For instance: +#     MODULES="piix ide_disk reiserfs" +MODULES="" + +# BINARIES +# This setting includes, into the CPIO image, and additional +# binaries a given user may wish.  This is run first, so may +# be used to override the actual binaries used in a given hook. +# (Existing files are NOT overwritten is already added) +# BINARIES are dependancy parsed, so you may safely ignore libraries +#BINARIES="" + +# FILES +# This setting is similar to BINARIES above, however, files are added +# as-is and are not parsed in anyway.  This is useful for config files. +# Some users may wish to include modprobe.conf for custom module options, +# like so: +#    FILES="/etc/modprobe.conf" +FILES="" + +# HOOKS +# This is the most important setting in this file.  The HOOKS control the +# modules and scripts added to the image, and what happens at boot time. +# Order is important, and it is recommended that you do not change the +# order in which HOOKS are added.  Run 'mkinitcpio -H <hook name>' for +# help on a given hook. +# 'base' is _required_ unless you know precisely what you are doing. +# 'udev' is _required_ in order to automatically load modules +# 'modload' may be used in place of 'udev', but is not recommended +# 'filesystems' is _required_ unless you specify your fs modules in MODULES +# Examples: +#    This setup specifies all modules in the MODULES setting above. +#    No raid, lvm, or encrypted root is needed. +#    HOOKS="base" +# +#    This setup will autodetect all modules for your system and should +#    work as a sane default +#    HOOKS="base udev autodetect ide scsi sata filesystems" +# +#    This setup will generate a 'full' image which supports most systems. +#    No autodetection is done. +#    HOOKS="base udev ide scsi sata usb filesystems" +# +#    This setup assembles an ide raid array with an encrypted root FS. +#    Note: See 'mkinitcpio -H raid' for more information on raid devices. +#    HOOKS="base udev ide filesystems raid encrypt" +# +#    This setup loads an LVM volume group on a usb device. +#    HOOKS="base udev usb filesystems lvm" +HOOKS="base udev pata scsi sata usb larch1 larch2___aufs___ larch3" diff --git a/abs/not_built/core/linuxtv-dvb-apps/PKGBUILD b/abs/not_built/core/linuxtv-dvb-apps/PKGBUILD new file mode 100644 index 0000000..7dd5b29 --- /dev/null +++ b/abs/not_built/core/linuxtv-dvb-apps/PKGBUILD @@ -0,0 +1,37 @@ +# $Id$ +# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org> +# Contributor: Camille Moncelier <pix@devlife.org> + +pkgname=linuxtv-dvb-apps +pkgver=1.1.1 +pkgrel=4 +_hgrev=68d20621d93a +pkgdesc='Viewer programs for DVB cards' +arch=('i686' 'x86_64') +url='http://www.linuxtv.org/' +license=('GPL') +install=linuxtv-dvb-apps.install +#source=(http://www.linuxtv.org/download/dvb/$pkgname-$pkgver.tar.bz2) +source=("http://linuxtv.org/hg/dvb-apps/archive/${_hgrev}.tar.bz2") + +build() { +  cd dvb-apps-${_hgrev} + +  rm -rf include + +  make -C lib + +  make -C util +} + +package() { +  cd dvb-apps-${_hgrev} + +  make -C lib DESTDIR=${pkgdir} install + +  make -C util DESTDIR=${pkgdir} install + +  chmod 755 ${pkgdir}/usr/lib/*.so* +} + +md5sums=('6e4bc8e5b22609b212f968c7d88e90ab') diff --git a/abs/not_built/core/linuxtv-dvb-apps/linuxtv-dvb-apps.install b/abs/not_built/core/linuxtv-dvb-apps/linuxtv-dvb-apps.install new file mode 100644 index 0000000..a260be2 --- /dev/null +++ b/abs/not_built/core/linuxtv-dvb-apps/linuxtv-dvb-apps.install @@ -0,0 +1,8 @@ +# arg 1:  the new package version +# arg 2:  the old package version +post_upgrade() { +      echo ">>> Some initial-tuning-data files have been installed under" +      echo ">>> /usr/share/dvb-utils/scan/" +      echo ">>> you can use them to generate your channel.conf file" +} + diff --git a/abs/not_built/core/lshw/PKGBUILD b/abs/not_built/core/lshw/PKGBUILD new file mode 100644 index 0000000..6d76925 --- /dev/null +++ b/abs/not_built/core/lshw/PKGBUILD @@ -0,0 +1,34 @@ +# $Id: PKGBUILD 29087 2010-10-10 07:47:30Z spupykin $ +# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> +# Contributor: Stefano Zamprogno <stefano dot zamprogno at gmail dot com> +# Contributor: Chuck Yang <Chuck.Yang@gmail.com> + +pkgname=lshw +pkgver=B.02.15 +pkgrel=1 +pkgdesc="A small tool to provide detailed information on the hardware configuration of the machine." +url="http://ezix.org/project/wiki/HardwareLiSter" +license=('GPL') +arch=('i686' 'x86_64') +depends=('gcc-libs') +optdepends=('gtk2') +makedepends=('gcc') +source=(http://ezix.org/software/files/lshw-$pkgver.tar.gz +        abi_stdlib.diff) +md5sums=('970bd9eb05fa3ae139a24a417465c54c' +         '7adcdd7a2be2feba956a9832cf36abdf') + +build() { +  cd $srcdir/$pkgname-$pkgver + +#  patch -Np1 -i ../abi_stdlib.diff || return 1 + +  make || return 1 +  make gui || return 1 +} +package() { +  cd $srcdir/$pkgname-$pkgver +  make DESTDIR=$pkgdir/ install || return 1 +  make DESTDIR=$pkgdir/ install-gui || return 1 +} + diff --git a/abs/not_built/core/lshw/abi_stdlib.diff b/abs/not_built/core/lshw/abi_stdlib.diff new file mode 100644 index 0000000..ffe88d1 --- /dev/null +++ b/abs/not_built/core/lshw/abi_stdlib.diff @@ -0,0 +1,23 @@ +diff -wbBur lshw-B.02.14/src/core/abi.cc lshw-B.02.14.my//src/core/abi.cc +--- lshw-B.02.14/src/core/abi.cc	2009-02-12 22:53:09.000000000 +0000 ++++ lshw-B.02.14.my//src/core/abi.cc	2010-05-24 14:30:18.000000000 +0000 +@@ -10,6 +10,7 @@ + #include <unistd.h> + #include <stdlib.h> + #include <dirent.h> ++#include <stdlib.h> +  + __ID("@(#) $Id: mem.cc 1352 2006-05-27 23:54:13Z ezix $"); +  +diff -wbBur lshw-B.02.14/src/core/scsi.cc lshw-B.02.14.my//src/core/scsi.cc +--- lshw-B.02.14/src/core/scsi.cc	2009-02-12 22:53:09.000000000 +0000 ++++ lshw-B.02.14.my//src/core/scsi.cc	2010-05-24 14:32:13.000000000 +0000 +@@ -842,7 +842,7 @@ +  +           if (!controller) +           { +-            controller = node.addChild(hwNode::hwNode("scsi", hw::storage)); ++            controller = node.addChild(hwNode("scsi", hw::storage)); +             if (controller) +             { +               controller->setLogicalName(host_logicalname(number)); diff --git a/abs/not_built/core/lzop/PKGBUILD b/abs/not_built/core/lzop/PKGBUILD new file mode 100644 index 0000000..240422d --- /dev/null +++ b/abs/not_built/core/lzop/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 98428 2010-11-08 21:29:39Z andrea $ +# Maintainer: +# Contributor: Damir Perisa <damir.perisa@bluewin.ch> + +pkgname=lzop +pkgver=1.03 +pkgrel=1 +pkgdesc="File compressor using lzo lib" +arch=('i686' 'x86_64') +license=('GPL') +url="http://www.lzop.org/" +depends=('lzo2') +source=(http://www.lzop.org/download/${pkgname}-${pkgver}.tar.gz) +md5sums=('006c5e27fb78cdd14a628fdfa5aa1905') + +build() { +  cd ${srcdir}/${pkgname}-${pkgver} +  ./configure --prefix=/usr \ +    --mandir=/usr/share/man +  make +} + +package() { +  cd ${srcdir}/${pkgname}-${pkgver} +  make DESTDIR=${pkgdir} install +} diff --git a/abs/not_built/core/mailx/PKGBUILD b/abs/not_built/core/mailx/PKGBUILD new file mode 100644 index 0000000..0041d2a --- /dev/null +++ b/abs/not_built/core/mailx/PKGBUILD @@ -0,0 +1,24 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: judd <jvinet@zeroflux.org> +# Committer: Judd Vinet <jvinet@zeroflux.org> +pkgname=mailx +pkgver=8.1.1 +pkgrel=14 +pkgdesc="A commandline utility for sending email" +arch=(i686 x86_64) +url="http://www.opengroup.org/onlinepubs/007908799/xcu/mailx.html" +license=('BSD') +groups=('base') +depends=('glibc') +source=(ftp://ftp.archlinux.org/other/mailx/$pkgname-$pkgver-fixed.tar.gz \ +        mailx-$pkgver.patch mailx-gcc4.patch) +md5sums=('63cad526ac64b57bcba2c0daaa1f3048' '905cfa35b5131524bfec0c677d456bd3'\ +         '8716c7c7b3f5d348443230e2fe543bf6') + +build() { +  cd $startdir/src/$pkgname-$pkgver-fixed +  patch -Np1 -i ../mailx-$pkgver.patch || return 1 +  patch -Np0 -i ../mailx-gcc4.patch || return 1 +  make all || return 1 +  make DESTDIR=$startdir/pkg install +} diff --git a/abs/not_built/core/mailx/mailx-8.1.1.patch b/abs/not_built/core/mailx/mailx-8.1.1.patch new file mode 100644 index 0000000..2c0b777 --- /dev/null +++ b/abs/not_built/core/mailx/mailx-8.1.1.patch @@ -0,0 +1,32 @@ +diff -Naur mailx-8.1.1-fixed-orig/Makefile mailx-8.1.1-fixed/Makefile +--- mailx-8.1.1-fixed-orig/Makefile	Thu Mar 16 09:30:36 2000 ++++ mailx-8.1.1-fixed/Makefile	Wed Feb 27 12:50:09 2002 +@@ -7,18 +7,20 @@ + BINOWN = root + BINGRP = mail +  ++DESTDIR =  ++ + all: + 	gcc $(SRCS) -o $(PROG) +  + install: +-	mkdir -p /usr/share/misc +-	mkdir -p /usr/share/man/man1 +-	mkdir -p /etc +-	mkdir -p /usr/bin +-	install -o $(BINOWN) -g $(BINGRP) -m 2755 $(PROG) /usr/bin +-	install -o root -g root -m 644 mail.1 /usr/share/man/man1 ++	mkdir -p $(DESTDIR)/usr/share/misc ++	mkdir -p $(DESTDIR)/usr/man/man1 ++	mkdir -p $(DESTDIR)/etc ++	mkdir -p $(DESTDIR)/usr/bin ++	install -o $(BINOWN) -g $(BINGRP) -m 2755 $(PROG) $(DESTDIR)/usr/bin ++	install -o root -g root -m 644 mail.1 $(DESTDIR)/usr/man/man1 + 	cd misc; install -c -o ${BINOWN} -g ${BINGRP} \ +-	    -m 444 ${SFILES} /usr/share/misc ++	    -m 444 ${SFILES} $(DESTDIR)/usr/share/misc + 	cd misc; install -c -o root -g root \ +-	    -m 644 ${EFILES} /etc ++	    -m 644 ${EFILES} $(DESTDIR)/etc +  diff --git a/abs/not_built/core/mailx/mailx-gcc4.patch b/abs/not_built/core/mailx/mailx-gcc4.patch new file mode 100644 index 0000000..54740a2 --- /dev/null +++ b/abs/not_built/core/mailx/mailx-gcc4.patch @@ -0,0 +1,12 @@ +K. Piche:  Unofficial patch for mailx. + +--- dotlock.c.orig      2005-09-18 20:28:20.000000000 -0400 ++++ dotlock.c   2005-09-18 20:26:59.000000000 -0400 +@@ -47,6 +47,7 @@ + #include <errno.h> + #include <signal.h> + ++#include "def.h" + #include "extern.h" + + #ifndef O_SYNC diff --git a/abs/not_built/core/mcpp/PKGBUILD b/abs/not_built/core/mcpp/PKGBUILD new file mode 100644 index 0000000..57dae67 --- /dev/null +++ b/abs/not_built/core/mcpp/PKGBUILD @@ -0,0 +1,23 @@ +# $Id: PKGBUILD 22398 2008-12-26 17:32:45Z jgc $ +# Maintainer: Alexander Baldeck <alexander@archlinux.org> +# Contributor: Jan de Groot <jgc@archlinux.org> +pkgname=mcpp +pkgver=2.7.2 +pkgrel=1 +pkgdesc="Matsui's CPP implementation precisely conformed to standards" +arch=(i686 x86_64) +license=('custom') +url="http://mcpp.sourceforge.net" +source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz ) +depends=(glibc) +md5sums=('512de48c87ab023a69250edc7a0c7b05') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr || return 1 +  make || return 1 +  make DESTDIR="${pkgdir}" install || return 1 + +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  ln -sf ../doc/${pkgname}/LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/mcpp/mcpp-2.6.4-patch b/abs/not_built/core/mcpp/mcpp-2.6.4-patch new file mode 100644 index 0000000..bbdf09c --- /dev/null +++ b/abs/not_built/core/mcpp/mcpp-2.6.4-patch @@ -0,0 +1,22 @@ +*** src/support.c.orig	2007-05-18 21:31:17.000000000 +0900 +--- src/support.c	2007-09-17 22:11:27.000000000 +0900 +*************** +*** 1678,1686 **** +                      , NULL, (long) c, NULL); +          case '\t':                          /* Horizontal space     */ +          case ' ': +!             if (mcpp_mode == OLD_PREP) { +!                 if ((*(tp - 1) != ' ' && *(tp - 1) != COM_SEP)) +!                     *(tp - 1) = ' ';        /* Squeeze COM_SEP with spaces  */ +              } else { +                  if (*(tp - 1) != ' ') +                      *tp++ = ' ';            /* Squeeze white spaces */ +--- 1678,1685 ---- +                      , NULL, (long) c, NULL); +          case '\t':                          /* Horizontal space     */ +          case ' ': +!             if (mcpp_mode == OLD_PREP && (*(tp - 1) == COM_SEP)) { +!                 *(tp - 1) = ' ';            /* Squeeze COM_SEP with spaces  */ +              } else { +                  if (*(tp - 1) != ' ') +                      *tp++ = ' ';            /* Squeeze white spaces */ diff --git a/abs/not_built/core/mjpegtools/PKGBUILD b/abs/not_built/core/mjpegtools/PKGBUILD new file mode 100644 index 0000000..bf31ebf --- /dev/null +++ b/abs/not_built/core/mjpegtools/PKGBUILD @@ -0,0 +1,41 @@ +# $Id: PKGBUILD 84755 2010-07-04 03:32:01Z eric $ +# Contributor: Damir Perisa <damir.perisa@bluewin.ch> +# Mantainer: Roberto Carvajal <roberto@archlinux.org> + +pkgname=mjpegtools +pkgver=1.9.0 +pkgrel=12 +pkgdesc="Set of tools that can do recording of videos and playback, simple cut-and-paste editing and the MPEG compression of audio and video" +arch=(i686 x86_64) +license=('GPL') +url="http://mjpeg.sourceforge.net/" +depends=('libjpeg>=8' 'libpng>=1.4.0' 'sdl' 'gcc-libs' 'libdv' 'libjpeg6') +makedepends=('gtk2>=2.18.6') +optdepends=('gtk2: glav GUI') +options=('!makeflags' '!libtool') +install=mjpegtools.install +source=(http://downloads.sourceforge.net/sourceforge/mjpeg/${pkgname}-${pkgver}.tar.gz +        mjpegtools-1.9.0-glibc-2.10.patch +        png2yuv-fix-memleak.patch +        mjpegtools-1.9.0-jpeg-7.patch) +md5sums=('309a6fcf0900a010d6a9c1e91afc2f5c' 'b8ae66237d83be533db8eea166fd3357'\ +         '39e1def8fb0f7c58a217b22dc251a86a' 'ccc7562a3933877d3362da7cf4695ea0') +sha1sums=('1701233354c7ea86b5b7808c4dd5d03a71118e48' '3029f0e835e693b144298ed9f8143c9566be26f3'\ +         '8af5c3747756353bef56d03bafbdd086ff15c02c' '2bdb1b3b8591cede11d4a133a758e8ead35db4dd') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  sed -i -e '/ARCHFLAGS=/s:=.*:=:' configure +  patch -Np1 -i "$srcdir/mjpegtools-1.9.0-glibc-2.10.patch" +  patch -Np1 -i "${srcdir}/png2yuv-fix-memleak.patch" +  patch -Np0 -i "${srcdir}/mjpegtools-1.9.0-jpeg-7.patch" +  env CPPFLAGS="-I/opt/libjpeg6/include" LDFLAGS="-L/opt/libjpeg6/lib" +  ./configure --prefix=/usr --enable-largefile +  make +} + +package() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  make DESTDIR="${pkgdir}" install +  install -m644 mpeg2enc/mpeg2syntaxcodes.h "${pkgdir}/usr/include/mjpegtools/mpeg2enc/" +} diff --git a/abs/not_built/core/mjpegtools/__changelog b/abs/not_built/core/mjpegtools/__changelog new file mode 100644 index 0000000..aa74d17 --- /dev/null +++ b/abs/not_built/core/mjpegtools/__changelog @@ -0,0 +1,2 @@ +change to build against libjpeg6  + env CPPFLAGS="-I/opt/libjpeg6/include" LDFLAGS="-L/opt/libjpeg6/lib"   ./configure - diff --git a/abs/not_built/core/mjpegtools/mjpegtools-1.9.0-glibc-2.10.patch b/abs/not_built/core/mjpegtools/mjpegtools-1.9.0-glibc-2.10.patch new file mode 100644 index 0000000..e161560 --- /dev/null +++ b/abs/not_built/core/mjpegtools/mjpegtools-1.9.0-glibc-2.10.patch @@ -0,0 +1,11 @@ +--- mjpegtools-1.9.0/mplex/lpcmstrm_in.cpp.orig	2009-05-27 01:31:46.000000000 -0700 ++++ mjpegtools-1.9.0/mplex/lpcmstrm_in.cpp	2009-05-27 01:33:09.000000000 -0700 +@@ -53,7 +53,7 @@ +  + bool LPCMStream::Probe(IBitStream &bs ) + { +-    char *last_dot = strrchr( bs.StreamName(), '.' ); ++    const char *last_dot = strrchr( bs.StreamName(), '.' ); +     return  +         last_dot != NULL  +         && strcmp( last_dot+1, "lpcm") == 0; diff --git a/abs/not_built/core/mjpegtools/mjpegtools-1.9.0-jpeg-7.patch b/abs/not_built/core/mjpegtools/mjpegtools-1.9.0-jpeg-7.patch new file mode 100644 index 0000000..ec36731 --- /dev/null +++ b/abs/not_built/core/mjpegtools/mjpegtools-1.9.0-jpeg-7.patch @@ -0,0 +1,24 @@ +Fix segmentation fault with jpeg-7 and above where dinfo.do_fancy_upsampling isn't set by default to FALSE anymore. + +Patch by: Salah Coronya + +http://bugs.gentoo.org/show_bug.cgi?id=293919 + +--- lavtools/jpegutils.c ++++ lavtools/jpegutils.c +@@ -502,6 +502,7 @@ +  +    jpeg_read_header (&dinfo, TRUE); +    dinfo.raw_data_out = TRUE; ++   dinfo.do_fancy_upsampling = FALSE; +    dinfo.out_color_space = JCS_YCbCr; +    dinfo.dct_method = JDCT_IFAST; +    guarantee_huff_tables(&dinfo); +@@ -599,6 +600,7 @@ +       if (field > 0) { +          jpeg_read_header (&dinfo, TRUE); +          dinfo.raw_data_out = TRUE; ++         dinfo.do_fancy_upsampling = FALSE; +          dinfo.out_color_space = JCS_YCbCr; +          dinfo.dct_method = JDCT_IFAST; +          jpeg_start_decompress (&dinfo); diff --git a/abs/not_built/core/mjpegtools/mjpegtools.install b/abs/not_built/core/mjpegtools/mjpegtools.install new file mode 100644 index 0000000..1ef7d6f --- /dev/null +++ b/abs/not_built/core/mjpegtools/mjpegtools.install @@ -0,0 +1,16 @@ +infodir=/usr/share/info +file=mjpeg-howto.info + +post_install() { +  [ -x usr/bin/install-info ] || return 0 +  install-info $infodir/$file.gz $infodir/dir 2> /dev/null +} + +post_upgrade() { +  post_install $1 +} + +pre_remove() { +  [ -x usr/bin/install-info ] || return 0 +  install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null +} diff --git a/abs/not_built/core/mjpegtools/png2yuv-fix-memleak.patch b/abs/not_built/core/mjpegtools/png2yuv-fix-memleak.patch new file mode 100644 index 0000000..a6f03a4 --- /dev/null +++ b/abs/not_built/core/mjpegtools/png2yuv-fix-memleak.patch @@ -0,0 +1,10 @@ +--- mjpegtools-1.9.0/lavtools/png2yuv.c.orig	2010-01-17 14:26:24.000000000 +0100 ++++ mjpegtools-1.9.0/lavtools/png2yuv.c	2010-01-17 14:27:53.000000000 +0100 +@@ -407,6 +407,7 @@ +     return 2; +     } +  ++  png_destroy_read_struct(&png_ptr, &info_ptr, &end_info); +   fclose(pngfile); +  +   return 1; diff --git a/abs/not_built/core/mythstream/PKGBUILD b/abs/not_built/core/mythstream/PKGBUILD new file mode 100644 index 0000000..73fbf25 --- /dev/null +++ b/abs/not_built/core/mythstream/PKGBUILD @@ -0,0 +1,37 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Juergen Hoetzel <juergen@archlinux.org>  +# Contributor: kleptophobiac@gmail.com + +pkgname=mythstream +pkgver=0.18_3 +pkgrel=13 +pkgdesc="Unofficial MythTV plugin for Internet audio and video streams." +arch=('i686' 'x86_64') +url="http://home.kabelfoon.nl/~moongies/streamtuned.html" +license=('GPL') +depends=('mythtv' 'perl-xml-simple' 'fftw' 'fftw2' 'perl-xml-xql') +source=("http://home.kabelfoon.nl/~moongies/sw9vc4htz2/mythstream_mythtv-r21640.tar.gz" "mythstream.0.24.patch" "streams.res") +md5sums=('') +install=mythstream.install +groups=('mythtv-extras') +install=mythstream.install + +build() { +   cd $startdir/src/mythstream_mythtv-r21640 +   ln -s ../../../mythtv/stable-0.24/mythtv/src/mythtv/mythtv/libs/lib* . + +   patch -p1 < ../mythstream.0.24.patch || return 1 + +   export QTDIR=/usr/lib/qt +   export PATH=$QTDIR/bin:$PATH + +   qmake mythstream.pro +   make qmake || return 1 + +   make INSTALL_ROOT=$startdir/pkg install +   cp $srcdir/streams.res $pkgdir/usr/share/mythtv/mythstream +} + +md5sums=('ba354b83fefe6028c5379fb832a44b6a' +         '69804486cde663586283cf2a226f0ed4' +         'b7fb47a56b6809938f237632174faeb2') diff --git a/abs/not_built/core/mythstream/mythstream.0.24.patch b/abs/not_built/core/mythstream/mythstream.0.24.patch new file mode 100644 index 0000000..d518c97 --- /dev/null +++ b/abs/not_built/core/mythstream/mythstream.0.24.patch @@ -0,0 +1,529 @@ +diff -ruaN mythstream_mythtv-r21640.orig/libs/harvester.h mythstream_mythtv-r21640/libs/harvester.h +--- mythstream_mythtv-r21640.orig/libs/harvester.h	2009-08-30 21:46:35.000000000 +0000 ++++ mythstream_mythtv-r21640/libs/harvester.h	2011-02-25 01:50:53.000000000 +0000 +@@ -23,7 +23,7 @@ + #include <q3process.h> + #include <qthread.h> + #include <q3process.h> +-#include <qhttp.h> ++#include <QtNetwork/qhttp.h> + #include <q3dict.h> + #include <qmap.h> + //Added by qt3to4: +diff -ruaN mythstream_mythtv-r21640.orig/libs/player.xml mythstream_mythtv-r21640/libs/player.xml +--- mythstream_mythtv-r21640.orig/libs/player.xml	2009-08-31 20:16:28.000000000 +0000 ++++ mythstream_mythtv-r21640/libs/player.xml	2011-02-25 00:36:30.000000000 +0000 +@@ -341,11 +341,6 @@ +       </item> +  +       <item> +-          <name>-vo</name> +-          <value>xv,</value> +-      </item> +-   +-      <item> +           <name>-user-agent</name> +           <value>QuickTime/0</value> +       </item> +diff -ruaN mythstream_mythtv-r21640.orig/libs/streamconfig.cpp mythstream_mythtv-r21640/libs/streamconfig.cpp +--- mythstream_mythtv-r21640.orig/libs/streamconfig.cpp	2009-09-02 14:40:18.000000000 +0000 ++++ mythstream_mythtv-r21640/libs/streamconfig.cpp	2011-02-25 01:50:45.000000000 +0000 +@@ -46,7 +46,7 @@ +    + Window hierarchy +   StreamTunedConfig: main config window with "stream" and "storage" tabs  //StreamTuned only +-  gContext->GetMainWindow() // MythTV only ++  GetMythMainWindow() // MythTV only +     StreamConfig: stream configuration handler (stream tab) +       StorageGroup: StreamConfig goupBox with storage controls +       StreamEditGroup: StreamConfig groupBox with stream property edit boxes +diff -ruaN mythstream_mythtv-r21640.orig/libs/streams.res mythstream_mythtv-r21640/libs/streams.res +--- mythstream_mythtv-r21640.orig/libs/streams.res	1970-01-01 00:00:00.000000000 +0000 ++++ mythstream_mythtv-r21640/libs/streams.res	2011-02-25 01:51:06.000000000 +0000 +@@ -0,0 +1,281 @@ ++ ++ ++[item] ++Interaction ++Apple movie trailers ++whatever ++trailers ++*apple ++ ++[item] ++Interaction ++Browse Shoutcast genres ++http://www.shoutcast.com ++[emptystring] ++*shoutcast/menu ++ ++[item] ++Interaction ++Uitzending gemist - laatste uitzendingen (Dutch) ++http://www.uitzendinggemist.nl ++Uitzending gemist selectie ++omroep/menu ++ ++[item] ++Interaction ++World Wide Media Project ++[emptystring] ++[emptystring] ++*wwmp/menu ++ ++[item] ++Interaction ++tv-links - Monty Python's Flying Circus ++http://tv-links.co.uk/listings/1/2526 ++[emptystring] ++tvlinks/listing ++ ++[item] ++Interaction ++wwiTV list ++http://wwitv.com/television/tvbar.htm ++List of television stations ++wwitv/countries ++ ++[item] ++Podcast feeds ++Beercasting ++http://beercasting.com/rss.xml ++(podcast) ++podcast ++ ++[item] ++Podcast feeds ++Feed me weird things ++http://del.icio.us/rss/audio/feedmeweirdthings ++(podcast) http://del.icio.us/rss/audio/feedmeweirdthings ++rdfcast ++ ++[item] ++Podcast feeds ++SETI Institute ++http://podcast.seti.org/index.xml ++podcast ++podcast ++ ++[item] ++Radio ++BBC World Service ++http://www.bbc.co.uk/worldservice/meta/tx/nb/live_news_au_nb.ram ++International ++[emptystring] ++ ++[item] ++Radio ++DR R&B, Denmark ++http://www.dr.dk/netradio/Metafiler/ASX/DR_RogB_128.asx ++Copenhagen, Denmark ++[emptystring] ++ ++[item] ++Radio ++Energy Black, Switzerland ++http://broadcast.infomaniak.ch/energyblack-high.mp3.m3u ++Zurich, Switzerland ++[emptystring] ++ ++[item] ++Radio ++Fun Radio, belgium ++http://www.funradio.be/funradiobe-low.high.pls ++[emptystring] ++[emptystring] ++ ++[item] ++Radio ++Juventus Radio ++http://live.juventus.hu:8000/live.m3u ++Budapest, Hungary ++[emptystring] ++ ++[item] ++Radio ++Shoutcast Country ++http://www.shoutcast.com/directory/index.phtml?sgenre=Country&numresult=50 ++Country music stations ++shoutcast ++ ++[item] ++Radio ++Shoutcast Rock ++http://www.shoutcast.com/directory/index.phtml?sgenre=Rock&numresult=50 ++Shoutcast Rock stations ++shoutcast ++ ++[item] ++Radio ++The Voice, Norway ++http://213.158.233.199:6006/listen.pls ++Oslo, Norway ++[emptystring] ++ ++[item] ++Radio ++WGBH, Boston ++http://streams.wgbh.org/classical.pls ++Boston, Massachusetts ++[emptystring] ++ ++[item] ++Radio ++WholeWheatRadio stream ++http://64.62.252.134:2680/listen.pls ++[emptystring] ++[emptystring] ++ ++[item] ++TV ++Holland Doc ++mms://livemedia.omroep.nl/vprohollanddoc-bb ++Nederland 4 themakanaal ++[emptystring] ++ ++[item] ++TV ++NASA TV ++http://www.nasa.gov/ram/35037main_portal.ram ++[emptystring] ++[emptystring] ++ ++[item] ++TV ++NRK News TV ++mms://media00.nrk.no/mms2/nydi/AutoEnc/mn1840.wmv ++Norwegen ++[emptystring] ++ ++[item] ++TV ++National Nine News TV ++mms://broadband.netshow.ninemsn.com.au/broadband/news/story1.wmv ++Australia ++[emptystring] ++ ++[item] ++TV ++RBC TV ++http://tv.gldn.net:80/rbc ++Russia ++[emptystring] ++ ++[item] ++TV ++Tweede Kamer ++mms://213.75.12.78/TKStream3 ++Dutch Parliament ++[emptystring] ++ ++[item] ++TV ++Uitzending gemist RSS feed ++http://www.uitzendinggemist.nl/index.php/rss ++Laatste uitzendingen ++omroep/rss ++ ++[item] ++TV ++United Nations TV ++rtsp://a4.l878435134.c8784.g.lr.akamaistream.net/live/D/4/8784/v0001/reflector:35134 ++[emptystring] ++[emptystring] ++ ++[item] ++TV ++VPro 3Voor12 Central TV ++mms://livemedia.omroep.nl/vpro3voor12tvcentral-bb ++http://3voor12.vpro.nl ++[emptystring] ++ ++[item] ++TV ++VPro 3Voor12 on Stage TV ++mms://livemedia.omroep.nl/vpro3voor12tvonstage-bb ++[emptystring] ++[emptystring] ++ ++[item] ++TV ++YLE 24 News TV ++http://ra.yle.fi/ramgen/yle24/video/uusin_rk.rm ++Finland ++[emptystring] ++ ++[item] ++TV ++Yomiuri News TV ++http://www.yomiuri.co.jp/stream/vnews/vnews-w.asx ++Japan ++[emptystring] ++ ++[item] ++Video ++DailyMotion custom search ++http://www.dailymotion.com/rss/relevance/search/<:search term::funny:>/<:page::1:> ++Edit search term with virtual keyboard ++dailymotion/playall ++ ++[item] ++Video ++DailyMotion playlist demo: Alicia Keys Live ++http://www.dailymotion.com/rss/relevance/search/Alicia+Keys+live/1 ++Mark streams (M) and play ++dailymotion/playall ++ ++[item] ++Video ++Dailymotion download and play: VH1/1 ++http://www.dailymotion.com/rss/relevance/search/vh1/1 ++[emptystring] ++dailymotion/feed ++ ++[item] ++Video ++Dailymotion playlist demo: Amy Winehouse ++http://www.dailymotion.com/rss/relevance/search/Amy+Winehouse+live/1 ++Mark streams (M) and play ++dailymotion/playall ++ ++[item] ++Video ++YouTube top viewed today ++http://youtube.com/rss/global/top_viewed_today.rss ++Voor andere feeds zie youtube ++youtube/feed ++ ++[item] ++stream lists ++Icecast list ++http://dir.xiph.org/yp.xml ++Harvested with icecast.pl script ++icecast ++ ++[item] ++stream lists ++OperaCast list ++http://www.operacast.com/opstations.htm ++Stationlist from www.operacast.com ++operacast ++ ++[item] ++stream lists ++Operanut list (default parser) ++http://operanut.com/radio.htm ++Some dead streams ++[emptystring] ++ ++[item] ++stream lists ++Robins BBC parser ++ask the parser :) ++BBC parsing by Robin Gilks ++*bbc/robins_links +diff -ruaN mythstream_mythtv-r21640.orig/mythstream/main.cpp mythstream_mythtv-r21640/mythstream/main.cpp +--- mythstream_mythtv-r21640.orig/mythstream/main.cpp	2009-09-02 16:40:49.000000000 +0000 ++++ mythstream_mythtv-r21640/mythstream/main.cpp	2011-02-25 01:50:45.000000000 +0000 +@@ -57,12 +57,12 @@ +  +     if (sel == "stream_config") +     { +-       StreamConfig config(gContext->GetMainWindow(), "stream", streamStorage, repos); ++       StreamConfig config(GetMythMainWindow(), "stream", streamStorage, repos); +        config.exec(); +     } +     else if (sel == "storage_config") +     { +-       StorageConfig config(gContext->GetMainWindow(), "storage", streamStorage, repos); ++       StorageConfig config(GetMythMainWindow(), "storage", streamStorage, repos); +        config.exec(); +     } +  +@@ -149,7 +149,7 @@ + void runStream(void) + { +     GetMythUI()->AddCurrentLocation("mythstream"); +-    MythStream stream(gContext->GetMainWindow(), "stream"); ++    MythStream stream(GetMythMainWindow(), "stream"); +     stream.exec(); +     GetMythUI()->RemoveCurrentLocation( ); + } +diff -ruaN mythstream_mythtv-r21640.orig/mythstream/mythstream.cpp mythstream_mythtv-r21640/mythstream/mythstream.cpp +--- mythstream_mythtv-r21640.orig/mythstream/mythstream.cpp	2009-09-02 21:22:33.000000000 +0000 ++++ mythstream_mythtv-r21640/mythstream/mythstream.cpp	2011-02-25 01:50:45.000000000 +0000 +@@ -499,7 +499,7 @@ +       QString parameter; +       int res; +  +-      popBox = new MythPopupBox(gContext->GetMainWindow(), ""); ++      popBox = new MythPopupBox(GetMythMainWindow(), ""); +       popBox->addLabel(label); +  +       editBox = new MythLineEdit(popBox, ""); +@@ -545,7 +545,7 @@ +       QString parameter; +       int res; +        +-      popBox = new MythPopupBox(gContext->GetMainWindow(), ""); ++      popBox = new MythPopupBox(GetMythMainWindow(), ""); +       popBox->addLabel("                  Edit Stream Item                 "); +  +       MythLineEdit *folderBox = new MythLineEdit(popBox, ""); +@@ -1295,7 +1295,7 @@ +   bool handled; +   QStringList actions; +  +-  handled = gContext->GetMainWindow()->TranslateKeyPress("Stream", e, actions); ++  handled = GetMythMainWindow()->TranslateKeyPress("Stream", e, actions); +   handled = false; +    +   for (int i = 0; i < actions.size() && !handled; i++) +diff -ruaN mythstream_mythtv-r21640.orig/mythstream/mythstream.pro mythstream_mythtv-r21640/mythstream/mythstream.pro +--- mythstream_mythtv-r21640.orig/mythstream/mythstream.pro	2009-08-26 07:31:07.000000000 +0000 ++++ mythstream_mythtv-r21640/mythstream/mythstream.pro	2011-02-25 01:50:37.000000000 +0000 +@@ -1,3 +1,4 @@ ++include ( ../mythconfig.mak ) + include ( ../settings.pro ) +  + TEMPLATE = lib +diff -ruaN mythstream_mythtv-r21640.orig/parsers/youtube/vid.pl mythstream_mythtv-r21640/parsers/youtube/vid.pl +--- mythstream_mythtv-r21640.orig/parsers/youtube/vid.pl	2009-09-02 22:18:49.000000000 +0000 ++++ mythstream_mythtv-r21640/parsers/youtube/vid.pl	2011-02-25 01:51:16.000000000 +0000 +@@ -61,9 +61,11 @@ +  + my $a, $b; +  +-if ( ($a, $b) = $data =~ /swfArgs\s\=\s\{.*?"t":\s*"([^"]+)".+?"video_id":\s*"([^"]+)"/ ) ++if ( ($a, $b) = $data =~ /'SWF_ARGS'\s*\:\s*\{.*?"t":\s*"([^"]+)".+?"video_id":\s*"([^"]+)"/ ) + { +-      $url = "http://www.youtube.com/get_video?video_id=$b&t=$a"; ++      my $url = "http://www.youtube.com/get_video?video_id=$b&t=$a"; ++ ++      my $fmt_h264 = ($data =~ /'SWF_URL'\s*:\s*.*\.flash\.canPlayH264Videos()/); +  +       $item = $doc->createElement('item'); +       $root->appendChild($item); +@@ -73,6 +75,17 @@ +       $item->appendChild( newNode('descr', "") ); +       $item->appendChild( newNode('handler', "") ); +  ++      if ($fmt_h264) ++      { ++         $item = $doc->createElement('item'); ++         $root->appendChild($item); ++          ++         $item->appendChild( newNode('name', "play: $sname [H.264]") ); ++         $item->appendChild( newNode('url',  $url . '&fmt=18') ); ++         $item->appendChild( newNode('descr', "") ); ++         $item->appendChild( newNode('handler', "") ); ++      } ++ +       if (! ($playlist_enable == 1) ) +       { +          $item = $doc->createElement('item'); +@@ -82,6 +95,17 @@ +          $item->appendChild( newNode('url',  $url) ); +          $item->appendChild( newNode('descr', "") ); +          $item->appendChild( newNode('handler', "STREAM_DL") ); ++ ++         if ($fmt_h264) ++         { ++            $item = $doc->createElement('item'); ++            $root->appendChild($item); ++             ++            $item->appendChild( newNode('name', "download: $sname [H.264]") ); ++            $item->appendChild( newNode('url',  $url . '&fmt=18') ); ++            $item->appendChild( newNode('descr', "") ); ++            $item->appendChild( newNode('handler', "STREAM_DL") ); ++         } +       } + } +  +diff -ruaN mythstream_mythtv-r21640.orig/parsers/youtube/youvid.pl mythstream_mythtv-r21640/parsers/youtube/youvid.pl +--- mythstream_mythtv-r21640.orig/parsers/youtube/youvid.pl	2009-09-02 22:18:49.000000000 +0000 ++++ mythstream_mythtv-r21640/parsers/youtube/youvid.pl	2011-02-25 01:51:16.000000000 +0000 +@@ -65,10 +65,12 @@ +  + my $a, $b; +  +-if ( ($a, $b) = $data =~ /swfArgs\s\=\s\{.*?"t":\s*"([^"]+)".+?"video_id":\s*"([^"]+)"/ ) ++if ( ($a, $b) = $data =~ /'SWF_ARGS'\s*\:\s*\{.*?"t":\s*"([^"]+)".+?"video_id":\s*"([^"]+)"/ ) + { +       $url = "http://www.youtube.com/get_video?video_id=$b&t=$a"; +  ++      my $fmt_h264 = ($data =~ /'SWF_URL'\s*:\s*.*\.flash\.canPlayH264Videos()/); ++ +       $item = $doc->createElement('item'); +       $root->appendChild($item); +        +@@ -77,6 +79,17 @@ +       $item->appendChild( newNode('descr', "") ); +       $item->appendChild( newNode('handler', "") ); +  ++      if ($fmt_h264) ++      { ++         $item = $doc->createElement('item'); ++         $root->appendChild($item); ++          ++         $item->appendChild( newNode('name', "play: $sname [H.264]") ); ++         $item->appendChild( newNode('url',  $url . '&fmt=18') ); ++         $item->appendChild( newNode('descr', "") ); ++         $item->appendChild( newNode('handler', "") ); ++      } ++ +       $item = $doc->createElement('item'); +       $root->appendChild($item); +        +@@ -84,6 +97,17 @@ +       $item->appendChild( newNode('url',  $url) ); +       $item->appendChild( newNode('descr', "") ); +       $item->appendChild( newNode('handler', "STREAM_DL") ); ++ ++      if ($fmt_h264) ++      { ++         $item = $doc->createElement('item'); ++         $root->appendChild($item); ++          ++         $item->appendChild( newNode('name', "download: $sname [H.264]") ); ++         $item->appendChild( newNode('url',  $url . '&fmt=18') ); ++         $item->appendChild( newNode('descr', "") ); ++         $item->appendChild( newNode('handler', "STREAM_DL") ); ++      } + } +  + print $head->toString; +diff -ruaN mythstream_mythtv-r21640.orig/settings.pro mythstream_mythtv-r21640/settings.pro +--- mythstream_mythtv-r21640.orig/settings.pro	2009-09-02 22:07:04.000000000 +0000 ++++ mythstream_mythtv-r21640/settings.pro	2011-02-25 01:51:26.000000000 +0000 +@@ -14,15 +14,15 @@ +     RUNPREFIX = $$PREFIX + } +  +-INCLUDEPATH += $${PREFIX}/include +-INCLUDEPATH += $${PREFIX}/include/mythtv +-INCLUDEPATH += $${PREFIX}/include/mythtv/libmythdb +-INCLUDEPATH += $${PREFIX}/include/mythtv/libmythui +-INCLUDEPATH += $${PREFIX}/include/mythtv/libmyth ++INCLUDEPATH += $${SYSROOT}$${PREFIX}/include ++INCLUDEPATH += $${SYSROOT}$${PREFIX}/include/mythtv ++INCLUDEPATH += $${SYSROOT}$${PREFIX}/include/mythtv/libmythdb ++INCLUDEPATH += $${SYSROOT}$${PREFIX}/include/mythtv/libmythui ++INCLUDEPATH += $${SYSROOT}$${PREFIX}/include/mythtv/libmyth +  +-INCLUDEPATH += $${PREFIX}/include/qt4/Qt ++INCLUDEPATH += $${SYSROOT}$${PREFIX}/include/qt4/Qt +  +-#INCLUDEPATH *= /usr/local/include ++#INCLUDEPATH *= $${SYSROOT}/usr/local/include +  + DEFINES += _GNU_SOURCE + DEFINES += PREFIX=\\\"$${RUNPREFIX}\\\" +@@ -31,7 +31,3 @@ + QMAKE_LFLAGS -= -Wl,--no-undefined + #QMAKE_LFLAGS -= --no-undefined + QMAKE LFLAGS += -DQT_THREAD_SUPPORT +- +-release { +-  QMAKE_CXXFLAGS_RELEASE = -O2 -fomit-frame-pointer +-} diff --git a/abs/not_built/core/mythstream/mythstream.install b/abs/not_built/core/mythstream/mythstream.install new file mode 100644 index 0000000..3b87835 --- /dev/null +++ b/abs/not_built/core/mythstream/mythstream.install @@ -0,0 +1,23 @@ +# arg 1:  the new package version +post_install() { +  mv /usr/share/mythtv/themes/defaultmenu/is.xml /tmp +  grep -v -e /mythmenu /tmp/is.xml > /tmp/is.xml.tmp +  echo "<!--#MythStream-->" >> /tmp/is.xml.tmp +  echo "   <button>" >> /tmp/is.xml.tmp +  echo "     <type>STREAM</type>" >> /tmp/is.xml.tmp +  echo "     <text>MythStream</text>" >> /tmp/is.xml.tmp +  echo "     <action>PLUGIN mythstream</action>" >> /tmp/is.xml.tmp  +  echo "   </button>" >> /tmp/is.xml.tmp +  echo "<!--#MythStream-->" >> /tmp/is.xml.tmp +  echo "" >> /tmp/is.xml.tmp +  echo "</mythmenu>" >> /tmp/is.xml.tmp +  mv /tmp/is.xml.tmp /usr/share/mythtv/themes/defaultmenu/is.xml +} +post_remove() { +	mv /usr/share/mythtv/themes/defaultmenu/is.xml /tmp/is.xml.tmp +	sed -e '/\#MythStream/,/\#MythStream/d' < /tmp/is.xml.tmp > /usr/share/mythtv/themes/defaultmenu/is.xml +} + +op=$1 +shift +$op $* diff --git a/abs/not_built/core/mythstream/streams.res b/abs/not_built/core/mythstream/streams.res new file mode 100644 index 0000000..1e48084 --- /dev/null +++ b/abs/not_built/core/mythstream/streams.res @@ -0,0 +1,281 @@ + + +[item] +Interaction +Apple movie trailers +whatever +trailers +*apple + +[item] +Interaction +Browse Shoutcast genres +http://www.shoutcast.com +[emptystring] +*shoutcast/menu + +[item] +Interaction +Uitzending gemist - laatste uitzendingen (Dutch) +http://www.uitzendinggemist.nl +Uitzending gemist selectie +omroep/menu + +[item] +Interaction +World Wide Media Project +[emptystring] +[emptystring] +*wwmp/menu + +[item] +Interaction +tv-links - Monty Python's Flying Circus +http://tv-links.co.uk/listings/1/2526 +[emptystring] +tvlinks/listing + +[item] +Interaction +wwiTV list +http://wwitv.com/television/tvbar.htm +List of television stations +wwitv/countries + +[item] +Podcast feeds +Beercasting +http://beercasting.com/rss.xml +(podcast) +podcast + +[item] +Podcast feeds +Feed me weird things +http://del.icio.us/rss/audio/feedmeweirdthings +(podcast) http://del.icio.us/rss/audio/feedmeweirdthings +rdfcast + +[item] +Podcast feeds +SETI Institute +http://podcast.seti.org/index.xml +podcast +podcast + +[item] +Radio +BBC World Service +http://www.bbc.co.uk/worldservice/meta/tx/nb/live_news_au_nb.ram +International +[emptystring] + +[item] +Radio +DR R&B, Denmark +http://www.dr.dk/netradio/Metafiler/ASX/DR_RogB_128.asx +Copenhagen, Denmark +[emptystring] + +[item] +Radio +Energy Black, Switzerland +http://broadcast.infomaniak.ch/energyblack-high.mp3.m3u +Zurich, Switzerland +[emptystring] + +[item] +Radio +Fun Radio, belgium +http://www.funradio.be/funradiobe-low.high.pls +[emptystring] +[emptystring] + +[item] +Radio +Juventus Radio +http://live.juventus.hu:8000/live.m3u +Budapest, Hungary +[emptystring] + +[item] +Radio +Shoutcast Country +http://www.shoutcast.com/directory/index.phtml?sgenre=Country&numresult=50 +Country music stations +shoutcast + +[item] +Radio +Shoutcast Rock +http://www.shoutcast.com/directory/index.phtml?sgenre=Rock&numresult=50 +Shoutcast Rock stations +shoutcast + +[item] +Radio +The Voice, Norway +http://213.158.233.199:6006/listen.pls +Oslo, Norway +[emptystring] + +[item] +Radio +WGBH, Boston +http://streams.wgbh.org/classical.pls +Boston, Massachusetts +[emptystring] + +[item] +Radio +WholeWheatRadio stream +http://64.62.252.134:2680/listen.pls +[emptystring] +[emptystring] + +[item] +TV +Holland Doc +mms://livemedia.omroep.nl/vprohollanddoc-bb +Nederland 4 themakanaal +[emptystring] + +[item] +TV +NASA TV +http://www.nasa.gov/ram/35037main_portal.ram +[emptystring] +[emptystring] + +[item] +TV +NRK News TV +mms://media00.nrk.no/mms2/nydi/AutoEnc/mn1840.wmv +Norwegen +[emptystring] + +[item] +TV +National Nine News TV +mms://broadband.netshow.ninemsn.com.au/broadband/news/story1.wmv +Australia +[emptystring] + +[item] +TV +RBC TV +http://tv.gldn.net:80/rbc +Russia +[emptystring] + +[item] +TV +Tweede Kamer +mms://213.75.12.78/TKStream3 +Dutch Parliament +[emptystring] + +[item] +TV +Uitzending gemist RSS feed +http://www.uitzendinggemist.nl/index.php/rss +Laatste uitzendingen +omroep/rss + +[item] +TV +United Nations TV +rtsp://a4.l878435134.c8784.g.lr.akamaistream.net/live/D/4/8784/v0001/reflector:35134 +[emptystring] +[emptystring] + +[item] +TV +VPro 3Voor12 Central TV +mms://livemedia.omroep.nl/vpro3voor12tvcentral-bb +http://3voor12.vpro.nl +[emptystring] + +[item] +TV +VPro 3Voor12 on Stage TV +mms://livemedia.omroep.nl/vpro3voor12tvonstage-bb +[emptystring] +[emptystring] + +[item] +TV +YLE 24 News TV +http://ra.yle.fi/ramgen/yle24/video/uusin_rk.rm +Finland +[emptystring] + +[item] +TV +Yomiuri News TV +http://www.yomiuri.co.jp/stream/vnews/vnews-w.asx +Japan +[emptystring] + +[item] +Video +DailyMotion custom search +http://www.dailymotion.com/rss/relevance/search/<:search term::funny:>/<:page::1:> +Edit search term with virtual keyboard +dailymotion/playall + +[item] +Video +DailyMotion playlist demo: Alicia Keys Live +http://www.dailymotion.com/rss/relevance/search/Alicia+Keys+live/1 +Mark streams (M) and play +dailymotion/playall + +[item] +Video +Dailymotion download and play: VH1/1 +http://www.dailymotion.com/rss/relevance/search/vh1/1 +[emptystring] +dailymotion/feed + +[item] +Video +Dailymotion playlist demo: Amy Winehouse +http://www.dailymotion.com/rss/relevance/search/Amy+Winehouse+live/1 +Mark streams (M) and play +dailymotion/playall + +[item] +Video +YouTube top viewed today +http://youtube.com/rss/global/top_viewed_today.rss +Voor andere feeds zie youtube +youtube/feed + +[item] +stream lists +Icecast list +http://dir.xiph.org/yp.xml +Harvested with icecast.pl script +icecast + +[item] +stream lists +OperaCast list +http://www.operacast.com/opstations.htm +Stationlist from www.operacast.com +operacast + +[item] +stream lists +Operanut list (default parser) +http://operanut.com/radio.htm +Some dead streams +[emptystring] + +[item] +stream lists +Robins BBC parser +ask the parser :) +BBC parsing by Robin Gilks +*bbc/robins_links diff --git a/abs/not_built/core/mythtv/stable-0.24/morethemes/PKGBUILD b/abs/not_built/core/mythtv/stable-0.24/morethemes/PKGBUILD new file mode 100644 index 0000000..c6368bc --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/morethemes/PKGBUILD @@ -0,0 +1,66 @@ +pkgname=morethemes +pkgver=0.24 +pkgrel=6 +pkgdesc="Additional themes for MythTV" +url="http://www.mythtv.org" +license="GPL" +arch=('any') +depends=('mythtv') +groups=('mythtv-extras') +source=(#'ftp://ftp.knoppmyth.net/R6/sources/morethemes-0.23.tar.bz2' +        'ftp://miroku.no-ip.com/blue-abstract-wide.2010.09.16.tar.bz2' +        'http://elkin.de/mythtv/2010.09.08-blootube-ng.tar.bz2' +        'http://elkin.de/mythtv/2010.11.04-Willi.tar.lzma' +        'http://elkin.de/mythtv/2010.03.13-bando-blue.tar.bz2' +        'http://www.thepetersclan.com/files/TintedGlass-1.18.tbz2' +        'http://www.thepetersclan.com/files/Mod-Gray-OSD.tar.bz2' +        'http://www.thepetersclan.com/files/Bluebar-Hires-OSD.tar.bz2' +        'http://www.thepetersclan.com/files/BlueCurves-OSD.tar.bz2' +        'http://www.thepetersclan.com/files/SimplyBlue-OSD.tbz2' +        'http://www.thepetersclan.com/files/BlueCurves2-OSD.tbz2' +        'http://www.thepetersclan.com/files/BlueCurves-2.1-OSD.tbz2' +        'http://www.mythtv.org/themes/LCARS.tar.gz' +        'http://www.mythtv.org/themes/TransBlue.tar.gz' +        'http://www.westnet.com/~chris/Mythtv/Retro-wide.tar.gz' +        'retro-wide_video-ui.xml-filetypes.patch' +        'http://capnbry.net/~bmayland/fi/pvr150/SimpleGray-OSD-0.4.tar.bz2' +        'http://www.jobs-khakis-chicks.com/MythTV/IsthmusBlue-OSD.tar.gz' +        'http://static.castlesblog.com/public/Glass-OSD-V1.3.zip' +        'http://static.castlesblog.com/public/Minimal-OSD-V1.1.zip') + +build() { +    cd ${srcdir} +    mkdir -p ${pkgdir}/usr/share/mythtv/themes +     +    msg "Copying files..." +    for d in `ls -d */` +     do +      cp -a "${d}" ${pkgdir}/usr/share/mythtv/themes +    done + +   # Housekeeping +    rm -fr "${pkgdir}/usr/share/mythtv/themes/__MACOSX" || return 1 +   # Little fix +    cd ${pkgdir}/usr/share/mythtv/themes/Retro-wide || return 1 +    patch -p0 <${srcdir}/retro-wide_video-ui.xml-filetypes.patch || return 1 +} + +md5sums=('878605505599a0f49c44f3df9affe10f' +         '7c2a2b238b7d44e52b7a8a0361d395aa' +         '2890f3b991db805a88a48eb6c7048f91' +         'c6d90fb469bc30a94e32f76c82122dd3' +         '80d250bf87c8f72ee238a91c854c0a11' +         'c973d0779967034f7a5bc0043574d6f9' +         'fb32ddd900e54cff62a62a21025b2585' +         '79247cf87bbee10363bb214325b7f671' +         '67c501b80afdefeca623261634dafd9c' +         '7b2f2eca37f2d9598b00bce85a193bae' +         '9793dc85a486e1ad9d0c0b6684efd245' +         'a36bb7b2597a44128401b1aba9106122' +         '21d6f967631e45b7039b965a63755282' +         'bfc56ffe1c872989f7a1cb7ae20aea49' +         'e05bb3d77a11f97a1d547b2f5bc1ddf7' +         '09dd8679b56794f9850a2382b4e1ea62' +         'b6c187b233778abacce102fe609d4e09' +         'f8d4fd90f1e45512ea5237de59d5090d' +         '5646e1df6f593f7116cbdec656146266') diff --git a/abs/not_built/core/mythtv/stable-0.24/morethemes/retro-wide_video-ui.xml-filetypes.patch b/abs/not_built/core/mythtv/stable-0.24/morethemes/retro-wide_video-ui.xml-filetypes.patch new file mode 100644 index 0000000..c98487f --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/morethemes/retro-wide_video-ui.xml-filetypes.patch @@ -0,0 +1,22 @@ +--- video-ui.xml.orig	2010-07-04 06:21:18.000000000 +0000 ++++ video-ui.xml	2010-07-04 06:22:22.000000000 +0000 +@@ -967,14 +967,17 @@ +  +         <button name="done_button" from="basebutton"> +             <position>700,550</position> ++            <value>Done</value> +         </button> +  +         <button name="new_button" from="basebutton"> +-            <position>600,550</position> ++            <position>400,550</position> ++            <value>New</value> +         </button> +  +         <button name="delete_button" from="basebutton"> +-            <position>0,550</position> ++            <position>100,550</position> ++            <value>Delete</value> +         </button> +     </window> + diff --git a/abs/not_built/core/mythtv/stable-0.24/mythplugins/PKGBUILD b/abs/not_built/core/mythtv/stable-0.24/mythplugins/PKGBUILD new file mode 100644 index 0000000..760948f --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythplugins/PKGBUILD @@ -0,0 +1,129 @@ +# $Id: PKGBUILD 91281 2010-09-26 06:04:21Z remy $ +# Maintainer: Giovanni Scafora <giovanni@archlinux.org> + +pkgbase=mythplugins +pkgname=('mytharchive' +         'mythbrowser' +         'mythgallery' +         'mythgame' +         'mythmusic' +         'mythnetvision' +         'mythnews' +         'mythvideo' +         'mythweather' +         'mythzoneminder') +pkgver=0.24 +pkgrel=20 +arch=('i686' 'x86_64') +url="http://www.mythtv.org" +license=('GPL') +conflicts=('mythmovies') +makedepends=("mythtv>=${pkgver}" 'mplayer' 'fftw2' 'dvdauthor' 'libexif' +             'python-imaging' 'libcdaudio' 'taglib' 'perl-xml-simple' 'dcraw' +             'libvisual' 'perl-xml-xpath' 'perl-image-size' 'perl-json' +             'perl-class-inspector' 'perl-datetime-format-iso8601' +             'flac' 'libvorbis' 'python2' 'python-pycurl' 'python-oauth') +source=(ftp://ftp.knoppmyth.net/R6/sources/mythtv-0.24-fixes.tar.bz2 +        mythburn.py.patch) +_gitroot="https://github.com/MythTV/mythtv.git" +_gitname="mythtv" + +build() { +  cd "${srcdir}/${_gitname}" +  msg "Updating from GIT..." +  git pull +  msg "The local files are updated." +  find . -name '*.py' -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@'  +  cd ${srcdir}/${_gitname}/${pkgbase} +  ./configure --prefix=/usr \ +              --enable-all + +  qmake mythplugins.pro || return 1 +  make || return 1 +} + +package_mytharchive() { +  pkgdesc="MythTV plugin that lets you create DVDs from or archive your recorded shows" +  depends=("mythtv>=${pkgver}" 'libxmu' 'pil' 'dvdauthor' 'm2vrequantiser') +#  replaces=('mytharchive') +  cd "${srcdir}/${_gitname}/${pkgbase}/mytharchive" +  patch mythburn/scripts/mythburn.py < $srcdir/mythburn.py.patch || return 1 +  make INSTALL_ROOT="${pkgdir}" install || return 1 +} + +package_mythbrowser() { +  pkgdesc="Mini web browser for MythTV" +  depends=("mythtv>=${pkgver}") +#  replaces=('mythbrowser') +  cd "${srcdir}/${_gitname}/${pkgbase}/mythbrowser" +  make INSTALL_ROOT="${pkgdir}" install || return 1 +} + +package_mythgallery() { +  pkgdesc="Image gallery plugin for MythTV" +  depends=("mythtv>=${pkgver}" 'libexif') +#  replaces=('mythgallery') +  cd "${srcdir}/${_gitname}/${pkgbase}/mythgallery" +  make INSTALL_ROOT="${pkgdir}" install || return 1 +} + +package_mythgame() { +  pkgdesc="Game emulator module for MythTV" +  depends=("mythtv>=${pkgver}" 'zlib') +#  replaces=('mythgame') +  cd "${srcdir}/${_gitname}/${pkgbase}/mythgame" +  make INSTALL_ROOT="${pkgdir}" install || return 1 +} + +package_mythmusic() { +  pkgdesc="Music playing plugin for MythTV" +  depends=("mythtv>=${pkgver}" 'flac' 'libvorbis' 'libcdaudio' 'cdparanoia' 'taglib' 'libvisual-plugins' 'projectm') +#  replaces=('mythmusic') +  cd "${srcdir}/${_gitname}/${pkgbase}/mythmusic" +  make INSTALL_ROOT="${pkgdir}" install || return 1 +} + +package_mythnetvision() { +  pkgdesc="MythNetvision plugin for MythTV" +  depends=("mythtv>=${pkgver}" 'python-pycurl' 'python-oauth') +#  replaces=('mythnetvision') +  cd "${srcdir}/${_gitname}/${pkgbase}/mythnetvision" +  make INSTALL_ROOT="${pkgdir}" install || return 1 +} + +package_mythnews() { +  pkgdesc="News checking plugin for MythTV" +  depends=("mythtv>=${pkgver}") +#  replaces=('mythnews') +  cd "${srcdir}/${_gitname}/${pkgbase}/mythnews" +  make INSTALL_ROOT="${pkgdir}" install || return 1 +} + +package_mythvideo() { +  pkgdesc="Video playback and browsing plugin for MythTV" +  depends=("mythtv>=${pkgver}" 'mplayer' 'perl-xml-simple') +#  replaces=('mythvideo') +  cd "${srcdir}/${_gitname}/${pkgbase}/mythvideo" +  make INSTALL_ROOT="${pkgdir}" install || return 1 +} + +package_mythweather() { +  pkgdesc="Weather checking plugin for MythTV" +  depends=("mythtv>=${pkgver}" 'perl-xml-xpath' 'perl-image-size' +           'perl-class-inspector' 'perl-datetime-format-iso8601' +           'perl-date-manip' 'perl-json') +#  replaces=('mythweather') +  cd "${srcdir}/${_gitname}/${pkgbase}/mythweather" +  make INSTALL_ROOT="${pkgdir}" install || return 1 +} + +package_mythzoneminder() { +  pkgdesc="Allows for viewing of CCTV cameras through zoneminder" +  depends=("mythtv>=${pkgver}" zoneminder) +#  replaces=('mythzoneminder') +#  install=mythplugins-mythzoneminder.install +  cd "${srcdir}/${_gitname}/${pkgbase}/mythzoneminder" +  make INSTALL_ROOT="${pkgdir}" install || return 1 +} +md5sums=('91488a6b1b05d14c5c5c601908b699e5' +         'cc7e6887acda167fcc5336af33f29411') diff --git a/abs/not_built/core/mythtv/stable-0.24/mythplugins/mythburn.py.patch b/abs/not_built/core/mythtv/stable-0.24/mythplugins/mythburn.py.patch new file mode 100644 index 0000000..abac7df --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythplugins/mythburn.py.patch @@ -0,0 +1,303 @@ +--- mythburn.py.orig	2011-09-16 13:41:43.000000000 -0500 ++++ mythburn.py	2011-09-17 10:51:36.000000000 -0500 +@@ -38,7 +38,7 @@ + #****************************************************************************** +  + # version of script - change after each update +-VERSION="0.1.20101206-1" ++VERSION="0.1.20110821-1" +  + # keep all temporary files for debugging purposes + # set this to True before a first run through when testing +@@ -75,6 +75,7 @@ + from fcntl import ioctl + import CDROM + from shutil import copy ++from subprocess import Popen, PIPE +  + # media types (should match the enum in mytharchivewizard.h) + DVD_SL = 0 +@@ -606,7 +607,7 @@ + # of a video file from its stream info file +  + def getVideoParams(folder): +-    """Returns the video resolution, fps and aspect ratio for the video file from the streamindo.xml file""" ++    """Returns the video resolution, fps and aspect ratio for the video file from the streaminfo.xml file""" +  +     #open the XML containing information about this file +     infoDOM = xml.dom.minidom.parse(os.path.join(folder, 'streaminfo.xml')) +@@ -642,14 +643,14 @@ + # Gets the aspect ratio of a video file from its stream info file +  + def getAspectRatioOfVideo(index): +-    """Returns the aspect ratio of the video file (1.333, 1.778, etc)""" ++    """Returns the aspect ratio of the original video file (1.333, 1.778, etc)""" +  +     #open the XML containing information about this file +-    infoDOM = xml.dom.minidom.parse(os.path.join(getItemTempPath(index), 'streaminfo.xml')) ++    infoDOM = xml.dom.minidom.parse(os.path.join(getItemTempPath(index), 'streaminfo_orig.xml')) +  +     #error out if its the wrong XML +     if infoDOM.documentElement.tagName != "file": +-        fatalError("Stream info file doesn't look right (%s)" % os.path.join(getItemTempPath(index), 'streaminfo.xml')) ++        fatalError("Stream info file doesn't look right (%s)" % os.path.join(getItemTempPath(index), 'streaminfo_orig.xml')) +     video = infoDOM.getElementsByTagName("file")[0].getElementsByTagName("streams")[0].getElementsByTagName("video")[0] +     if video.attributes["aspectratio"].value != 'N/A': +         aspect_ratio = float(video.attributes["aspectratio"].value) +@@ -1762,6 +1763,37 @@ +  +  + ############################################################# ++# Finds the path of a video file from the local video path ++# or Storage Group ++ ++def getVideoPath(filename): ++     # connect ++    db = getDatabaseConnection() ++    # create a cursor ++    cursor = db.cursor() ++    # execute SQL statement ++    cursor.execute("""SELECT dirname  ++                      FROM storagegroup  ++                      WHERE groupname='Videos'""") ++    # get the resultset as a tuple ++    result = cursor.fetchall() ++    # make result a list and add local video path if exists ++    result = [videopath] + list(result) ++     ++    # iterate through result set ++    for sg in result: ++        if doesFileExist(os.path.join("".join(sg), filename)) == True: ++            filepath = "".join(sg) ++            write("Video Path: %s" % filepath) ++            return (filepath) ++            break ++ ++    db.close() ++    del db ++    del cursor ++ ++ ++############################################################# + # Pre-process a single video/recording file +  + def preProcessFile(file, folder, count): +@@ -1775,11 +1807,11 @@ +     #3. Extract a single frame from the video to use as a thumbnail and resolution check +     mediafile="" +  +-    if file.attributes["type"].value == "recording": ++    if file.attributes["type"].value=="recording": +         mediafile = file.attributes["filename"].value +-    elif file.attributes["type"].value == "video": +-        mediafile = os.path.join(videopath, file.attributes["filename"].value) +-    elif file.attributes["type"].value == "file": ++    elif file.attributes["type"].value=="video": ++        mediafile = os.path.join(getVideoPath(file.attributes["filename"].value), file.attributes["filename"].value) ++    elif file.attributes["type"].value=="file": +         mediafile = file.attributes["filename"].value +     else: +         fatalError("Unknown type of video file it must be 'recording', 'video' or 'file'.") +@@ -1935,9 +1967,39 @@ +  +     if result <> 0: +         fatalError("Failed while running mytharchivehelper to get stream information from %s" % filename) ++     ++    #open the XML containing information about this file ++    infoDOM = xml.dom.minidom.parse(xmlFilename) ++     ++    #error out if its the wrong XML ++    if infoDOM.documentElement.tagName != "file": ++        fatalError("This info file doesn't look right (%s)." % xmlFilename) ++     ++    file = infoDOM.getElementsByTagName("file")[0] ++    video = infoDOM.getElementsByTagName("file")[0].getElementsByTagName("streams")[0].getElementsByTagName("video")[0] ++     ++    #use ffmpeg to get display aspect ratio (DAR) of video ++    cmd = path_ffmpeg[0] + " -i " + quoteFilename(file.attributes["filename"].value) + " 2>&1" ++    aspect_ratio = Popen(cmd, shell=True, stdout=PIPE).stdout.read() ++    if "DAR" in aspect_ratio: ++        #clean DAR string ++        aspect_ratio = aspect_ratio.split("DAR ")[-1].split(",")[0] ++        aspect_ratio = ''.join([c for c in aspect_ratio if c in '1234567890:']).split(":") ++    else: ++        #calculate aspect from video size ++        aspect_ratio = getVideoSize(xmlFilename) ++ ++    #convert to decimal ++    aspect_ratio = float(aspect_ratio[0]) / float(aspect_ratio[1]) ++ ++    write("Video %s aspect ratio is: %s" % (filename, aspect_ratio)) ++ ++    #set aspect ratio ++    video.setAttribute("aspectratio",str(aspect_ratio)) ++     ++    WriteXMLToFile (infoDOM,xmlFilename) +  +     # print out the streaminfo.xml file to the log +-    infoDOM = xml.dom.minidom.parse(xmlFilename) +     write("streaminfo.xml :-\n" + infoDOM.toprettyxml("    ", ""), False) +  + ############################################################# +@@ -2322,7 +2384,7 @@ + ############################################################# + # Re-encodes a file to mpeg2 +  +-def encodeVideoToMPEG2(source, destvideofile, video, audio1, audio2, aspectratio, profile): ++def encodeVideoToMPEG2(source, destvideofile, video, folder, audio1, audio2, aspectratio, profile): +     """Encodes an unknown video source file eg. AVI to MPEG2 video and AC3 audio, use ffmpeg""" +  +     profileNode = findEncodingProfile(profile) +@@ -2347,6 +2409,18 @@ +             value = quoteFilename(destvideofile) +         if value == "%aspect": +             value = aspectratio ++        if value == "720x480" or value == "720x576": ++            #add padding to correct for aspects > than 1.9:1 ++            videores, fps, videoAR = getVideoParams(folder) ++            if float(videoAR) >= 1.9: ++                if videomode == "ntsc": ++                    videoheight = 480 ++                else: ++                    videoheight = 576 ++         ++                croppixels = videoheight - (720 / float(videoAR)) ++                write("CropPixels Total: %s" % croppixels) ++                value = "720x%d -vf pad=720:%d:0:%d:black" % (videoheight - croppixels, videoheight, croppixels / 2) +  +         # only re-encode the audio if it is not already in AC3 format +         if audio1[AUDIO_CODEC] == "AC3": +@@ -2383,12 +2457,12 @@ +         command += " -newaudio"  +  +     #make sure we get the correct stream(s) that we want +-    command += " -map 0:%d -map 0:%d " % (video[VIDEO_INDEX], audio1[AUDIO_INDEX]) ++    command += " -map 0:%d -map 0:%d" % (video[VIDEO_INDEX], audio1[AUDIO_INDEX]) +     if audio2[AUDIO_ID] != -1: +         command += "-map 0:%d" % (audio2[AUDIO_INDEX]) +  +     if passes == 1: +-        write(command) ++        write("Running ffmpeg: %s" % command) +         result = runCommand(command) +         if result!=0: +             fatalError("Failed while running ffmpeg to re-encode video.\n" +@@ -2399,7 +2473,7 @@ +  +         pass1 = string.replace(command, "%passno","1") +         pass1 = string.replace(pass1, "%passlogfile", passLog) +-        write("Pass 1 - " + pass1) ++        write("Running ffmpeg Pass 1: %s" % pass1) +         result = runCommand(pass1) +  +         if result!=0: +@@ -2411,7 +2485,7 @@ +  +         pass2 = string.replace(command, "%passno","2") +         pass2 = string.replace(pass2, "%passlogfile", passLog) +-        write("Pass 2 - " + pass2) ++        write("Running ffmpeg Pass 2: %s" % pass2) +         result = runCommand(pass2) +  +         if result!=0: +@@ -2443,10 +2517,6 @@ +     outaudiosamplerate = 48000 +     outaudiocodec = "ac3" +     deinterlace = 0 +-    croptop = 0 +-    cropright = 0 +-    cropbottom = 0 +-    cropleft = 0 +     qmin = 5 +     qmax = 31 +     qdiff = 31 +@@ -2470,14 +2540,6 @@ +             outvideores = value +         if name == "-deinterlace": +             deinterlace = 1 +-        if name == "-croptop": +-            croptop = value +-        if name == "-cropright": +-            cropright = value +-        if name == "-cropbottom": +-            cropbottom = value +-        if name == "-cropleft": +-           cropleft = value +         if name == "-qmin": +            qmin = value +         if name == "-qmax": +@@ -2526,7 +2588,6 @@ +     command += "-aspect %s -r %s " % (aspectratio, fps) +     if (deinterlace == 1): +         command += "-deinterlace " +-    command += "-croptop %s -cropright %s -cropbottom %s -cropleft %s " % (croptop, cropright, cropbottom, cropleft) +     command += "-s %s -b %s -vcodec mpeg2video " % (outvideores, outvideobitrate) +     command += "-qmin %s -qmax %s -qdiff %s " % (qmin, qmax, qdiff) +     command += "-ab %s -ar %s -acodec %s " % (outaudiobitrate, outaudiosamplerate, outaudiocodec) +@@ -2543,7 +2604,7 @@ +     if (not(doesFileExist(os.path.join(folder, "audout")) and doesFileExist(os.path.join(folder, "vidout")))): +         fatalError("Waited too long for mythtranscode to create the fifos - giving up!!") +  +-    write("Running ffmpeg") ++    write("Running ffmpeg: %s" % command) +     result = runCommand(command) +     if result != 0: +         os.kill(PID, signal.SIGKILL) +@@ -4724,7 +4785,7 @@ +     elif file.attributes["type"].value=="recording": +         mediafile = file.attributes["filename"].value +     elif file.attributes["type"].value=="video": +-        mediafile=os.path.join(videopath, file.attributes["filename"].value) ++        mediafile = os.path.join(getVideoPath(file.attributes["filename"].value), file.attributes["filename"].value) +     elif file.attributes["type"].value=="file": +         mediafile=file.attributes["filename"].value +     else: +@@ -4834,8 +4895,7 @@ +                 starttime = -1 +                 usecutlist = -1 +  +-            encodeNuvToMPEG2(chanid, starttime, mediafile, os.path.join(folder, "newfile2.mpg"), folder, +-                         profile, usecutlist) ++            encodeNuvToMPEG2(chanid, starttime, mediafile, os.path.join(folder, "newfile2.mpg"), folder, profile, usecutlist) +             mediafile = os.path.join(folder, 'newfile2.mpg') +         else: +             #we need to re-encode the file, make sure we get the right video/audio streams +@@ -4861,8 +4921,7 @@ +                 profile = defaultEncodingProfile +  +             #do the re-encode  +-            encodeVideoToMPEG2(mediafile, os.path.join(folder, "newfile2.mpg"), video, +-                            audio1, audio2, aspectratio, profile) ++            encodeVideoToMPEG2(mediafile, os.path.join(folder, "newfile2.mpg"), video, folder, audio1, audio2, aspectratio, profile) +             mediafile = os.path.join(folder, 'newfile2.mpg') +  +             #remove the old mediafile that was run through mythtranscode +@@ -4936,7 +4995,7 @@ +     elif file.attributes["type"].value=="recording": +         mediafile = file.attributes["filename"].value +     elif file.attributes["type"].value=="video": +-        mediafile=os.path.join(videopath, file.attributes["filename"].value) ++        mediafile = os.path.join(getVideoPath(file.attributes["filename"].value), file.attributes["filename"].value) +     elif file.attributes["type"].value=="file": +         mediafile=file.attributes["filename"].value +     else: +@@ -4988,8 +5047,7 @@ +                 starttime = -1 +                 usecutlist = -1 +  +-            encodeNuvToMPEG2(chanid, starttime, mediafile, os.path.join(folder, "newfile2.mpg"), folder, +-                         profile, usecutlist) ++            encodeNuvToMPEG2(chanid, starttime, mediafile, os.path.join(folder, "newfile2.mpg"), folder, profile, usecutlist) +             mediafile = os.path.join(folder, 'newfile2.mpg') +         else: +             #we need to re-encode the file, make sure we get the right video/audio streams +@@ -5015,8 +5073,7 @@ +                 profile = defaultEncodingProfile +  +             #do the re-encode  +-            encodeVideoToMPEG2(mediafile, os.path.join(folder, "newfile2.mpg"), video, +-                            audio1, audio2, aspectratio, profile) ++            encodeVideoToMPEG2(mediafile, os.path.join(folder, "newfile2.mpg"), video, folder, audio1, audio2, aspectratio, profile) +             mediafile = os.path.join(folder, 'newfile2.mpg') +  +     #remove an intermediate file diff --git a/abs/not_built/core/mythtv/stable-0.24/mythplugins/mythplugins-mythzoneminder.install b/abs/not_built/core/mythtv/stable-0.24/mythplugins/mythplugins-mythzoneminder.install new file mode 100644 index 0000000..142212b --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythplugins/mythplugins-mythzoneminder.install @@ -0,0 +1,3 @@ +post_install() { +  echo "If you want to use this plugin, install zoneminder from AUR." +} diff --git a/abs/not_built/core/mythtv/stable-0.24/mythsmolt/PKGBUILD b/abs/not_built/core/mythtv/stable-0.24/mythsmolt/PKGBUILD new file mode 100644 index 0000000..c145741 --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythsmolt/PKGBUILD @@ -0,0 +1,23 @@ +pkgname=mythsmolt +pkgver=0.24 +pkgrel=9 +pkgdesc="mythsmolt, a hardware profileing tool" +arch=('i686' 'x86_64') +url="http://www.mythvantage.com" +license=('GPL') +depends=("mythtv>=${pkgver}" urlgrabber python-simplejson python-pycurl) +#source=("http://jmeyer.us/download/mythsmolt.tar.gz" 'smolt_init_login.sh' 'mythsmolt.patch') +source=("http://jmeyer.us/download/mythsmolt.tar.gz" 'smolt_init_login.sh' ) + +groups=('mythtv-extras') + +build() { +   cd $startdir/src/mythsmolt +#   patch -p1 < ../mythsmolt.patch || return 1 +   ./configure.sh +   make || return 1 +   make INSTALL_ROOT=$startdir/pkg install +   install -D -m 755 $srcdir/smolt_init_login.sh $pkgdir/etc/profile.d/smolt_init_login.sh +} +md5sums=('17d740c348301ab47ac557ad7402115b' +         '57a3416d90e59abbd5062436583c17e1') diff --git a/abs/not_built/core/mythtv/stable-0.24/mythsmolt/mythsmolt.patch b/abs/not_built/core/mythtv/stable-0.24/mythsmolt/mythsmolt.patch new file mode 100644 index 0000000..4767865 --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythsmolt/mythsmolt.patch @@ -0,0 +1,8 @@ +diff -ruaN mythsmolt.orig/settings.pro mythsmolt/settings.pro +--- mythsmolt.orig/settings.pro	2010-01-06 15:49:59.000000000 +0000 ++++ mythsmolt/settings.pro	2010-05-28 03:30:59.000000000 +0000 +@@ -1,3 +1,3 @@ +  +-LIBVERSION = 0.24 ++LIBVERSION = 0.24 +  diff --git a/abs/not_built/core/mythtv/stable-0.24/mythsmolt/smolt_init_login.sh b/abs/not_built/core/mythtv/stable-0.24/mythsmolt/smolt_init_login.sh new file mode 100644 index 0000000..0b76305 --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythsmolt/smolt_init_login.sh @@ -0,0 +1,39 @@ +if [ $UID = 0  -o  $UID = 1000 ] +then +    INIT=`ps -p 1 -o comm=` +    if [ x$INIT = xrunit ] +    then +        if [[ -f /home/mythtv/.configure  &&  $- = *i* ]] +        then +            if  [ ! -z "$PS1" ] +            then +                if  [ $0 = "-bash" ] +                then +                    if [ ! -e /home/mythtv/.mythtv/MythSmolt/hw-uuid ] +                    then +                        echo "" +                        echo "####################################################" +                        echo "It appears you have not yet run smolt" +                        echo "Please take the time to submit your hardware profile" +                        echo "" +                        echo "press any key to continue:" +                        echo "####################################################" +                        read a +                        mkdir -p /home/mythtv/.mythtv/MythSmolt +                        chown -R mythtv:users /home/mythtv/.mythtv/MythSmolt + +                        if [ $UID = 0 ] +                        then +                            su   mythtv -c "/usr/share/mythtv/mythsmolt/scripts/sendProfile.py" &&   su mythtv -c "touch  /home/mythtv/.mythtv/MythSmolt/hw-uuid" +                        else +                            /usr/share/mythtv/mythsmolt/scripts/sendProfile.py &&  touch  /home/mythtv/.mythtv/MythSmolt/hw-uuid +                        fi +                    fi +                fi +            fi +        fi +    fi +fi + + + diff --git a/abs/not_built/core/mythtv/stable-0.24/myththemes/PKGBUILD b/abs/not_built/core/mythtv/stable-0.24/myththemes/PKGBUILD new file mode 100644 index 0000000..96fa147 --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/myththemes/PKGBUILD @@ -0,0 +1,38 @@ +# $Id: PKGBUILD 86938 2010-08-06 21:53:33Z ibiru $ +# Maintainer: Giovanni Scafora <giovanni@archlinux.org> +# Contributor: Juergen Hoetzel <juergen@archlinux.org>  +# Contributor: kleptophobiac@gmail.com + +pkgname=myththemes +pkgver=0.24 +pkgrel=9 +pkgdesc="Themes for MythTV" +arch=('any') +url="http://www.mythtv.org/" +license=('GPL') +depends=("mythtv>=${pkgver}") +source=('ftp://ftp.knoppmyth.net/R6/sources/myththemes-0.24-fixes.tar.bz2' `echo ${patches[@]:0}`) +_gitroot="https://github.com/MythTV/myththemes.git" +_gitname="${pkgname}" +build() { +	cd $srcdir/myththemes +	git pull +        rm -fr Mythbuntu +        # apply patches +        echo "--------------------------applying patches----------------------------------------------------" +        for i in `echo ${patchs[@]:0} ` +        do +                echo applying $i +                echo "-----------------------------" +                patch -Np0  -i ${startdir}/src/$i  || return 1 +        done +        echo "--------------------------done applying patches-----------------------------------------------" + +  cd "${srcdir}/${pkgname}" +  ./configure --prefix=/usr || return 1 +} +package() { +  cd "${srcdir}/${pkgname}" +  make INSTALL_ROOT="${pkgdir}" install || return 1 +} +md5sums=('a5c9475a6d29c313cd9ae77566ee277a') diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/PKGBUILD b/abs/not_built/core/mythtv/stable-0.24/mythtv/PKGBUILD new file mode 100755 index 0000000..e9d9a12 --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/PKGBUILD @@ -0,0 +1,109 @@ +# $Id: PKGBUILD 91139 2010-09-23 10:45:09Z remy $ +# Maintainer: Giovanni Scafora <giovanni@archlinux.org> +# Contributor: Juergen Hoetzel <juergen@archlinux.org> +# Contributor: <kleptophobiac@gmail.com> +# Contributor: dorphell <dorphell@archlinux.org> + +pkgname=mythtv +pkgver=0.24 +pkgrel=30 +pkgdesc="A Homebrew PVR project" +arch=('i686' 'x86_64') +url="http://www.mythtv.org/" +license=('GPL') +depends=('mysql-clients' 'qt' 'lame' 'lirc-utils' 'ffmpeg-svn' 'libxvmc' +         'fribidi' 'perl-soap-lite' 'perl-date-manip' 'perl-xml-sax' +         'perl-math-round' 'perl-net-upnp' 'perl-dbd-mysql' 'perl-time-hires' +         'libavc1394' 'wget' 'libiec61883' 'mysql-python' 'python-lxml'  +         'mesa' 'libxinerama' 'libxrandr' 'faad2' 'libvdpau' 'libcrystalhd-git') +makedepends=('yasm' 'libgl' 'git' 'rsync') +replaces=() +groups=('pvr') +#backup=(/usr/share/mythtv/is.xml) +#options=(!strip) +#MAKEFLAGS="-j6" +install='mythtv.install' +patchs=('smolt_jump.patch' 'git_version.patch') +optdepends=('xmltv: to download tv listings') +#replaces=('mythtv-contrib') +#conflicts=('mythtv-contrib') +source=(ftp://ftp.knoppmyth.net/R6/sources/mythtv-0.24-fixes.tar.bz2 +	'mythbackend' 'myth.sh' `echo ${patchs[@]:0}` 'mythbackend.lr' 'mythfrontend.lr' 'pretty' +	'http://www.ronfrazier.net/mythtv/0.24/downloads/ceton_ver008.patch') +_gitroot="https://github.com/MythTV/mythtv.git" +_gitname="${pkgname}" +build() { + +           cd "${srcdir}/${pkgname}"/mythtv +           msg "Updating from GIT..." +	   #git checkout -b 0.24-fixes origin/fixes/0.24 +           git pull +	   msg "The local files are updated." +        # apply patches +        echo "--------------------------applying patches----------------------------------------------------" +        for i in `echo ${patchs[@]:0} ` +        do +                echo applying $i +                echo "-----------------------------" +                patch -Np0  -i ${startdir}/src/$i  || return 1 +        done +	echo Applying patch for Ceton InfinTV4 +	patch -p2 < ${startdir}/src//ceton_ver008.patch +        echo "--------------------------done applying patches-----------------------------------------------" + +        sed -i -e "s/\`(svnversion \$\${SVNTREEDIR} 2>\/dev\/null) || echo Unknown\`/$pkgver/" version.pro +        find bindings/python contrib -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@' + +  ARCH=${CARCH/_/-} +  ./configure --prefix=/usr --cpu=${ARCH} \ +              --disable-audio-jack \ +              --disable-audio-pulse \ +              --disable-altivec \ +              --disable-distcc \ +              --disable-ccache \ +              --enable-vdpau \ +              --enable-crystalhd \ +              --dvb-path=/usr/include \ +              --enable-opengl-vsync \ +              --with-bindings=perl,python --python=python2 || return 1 + +  make all || return 1 +} + +package() { +  cd "${srcdir}/${pkgname}"/mythtv +  # basic install +  make INSTALL_ROOT="${pkgdir}" install +  # install contrib files +  rsync -arp --exclude .svn --delete-excluded contrib ${pkgdir}/usr/share/mythtv/ || return 1 +  # install database structure +  rsync -arp --exclude .svn --delete-excluded database ${pkgdir}/usr/share/mythtv/ || return 1 +  # install docs +  rsync -arp --exclude .svn --delete-excluded docs ${pkgdir}/usr/share/mythtv/ || return 1 + +  # patch the xml LinHES style +  cp -r ${startdir}/menu-xml/*.xml ${pkgdir}/usr/share/mythtv/themes/defaultmenu/ +#  mv ${pkgdir}/usr/share/mythtv/themes/defaultmenu/is.xml ${pkgdir}/usr/share/mythtv/ +  cd ${pkgdir}/usr/share/mythtv +  patch -p0 < ${startdir}/menu-xml/mainmenu.xml.patch || return 1 +  patch -p0 < ${startdir}/menu-xml/optical_menu.xml.patch || return 1 +  patch -p0 < ${startdir}/menu-xml/library.xml.patch || return 1 +  patch -p0 < ${startdir}/menu-xml/util_menu.xml.patch || return 1 + +  # make log dir +  mkdir -p ${pkgdir}/var/log/mythtv +  chown 1000.1000 ${pkgdir}/var/log/mythtv +  mkdir -p ${pkgdir}/etc/logrotate.d +  cp ${srcdir}/*.lr ${pkgdir}/etc/logrotate.d +  mkdir -p ${pkgdir}/etc/cron.hourly/ +  install -m0755 ${srcdir}/pretty ${pkgdir}/etc/cron.hourly/ +} +md5sums=('91488a6b1b05d14c5c5c601908b699e5' +         '7ef6de58240e7aad389a0b13d91b1cf6' +         '2babd4b8e146a7538d18dcd55695b0be' +         'a837de9ccc201994320071e48952b17d' +         'd048fd37d5061c853b5712d5f187b25d' +         'f735805a80b0d1180dee01f9df1b7004' +         'f407d6af23e74a49540755420f84fa58' +         '5469d9921b726db750b991c87d226158' +         '8837b2305030a2326b22f4330968e29a') diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/__changelog b/abs/not_built/core/mythtv/stable-0.24/mythtv/__changelog new file mode 100644 index 0000000..940f84b --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/__changelog @@ -0,0 +1 @@ +update to 0.24-fixes diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/git_version.patch b/abs/not_built/core/mythtv/stable-0.24/mythtv/git_version.patch new file mode 100644 index 0000000..1cdfaa9 --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/git_version.patch @@ -0,0 +1,12 @@ +diff -ruaN mythtv.orig/mythtv/version.sh mythtv/mythtv/version.sh +--- version.sh	2010-12-29 22:27:10.000000000 +0000 ++++ version.sh	2010-12-29 23:36:19.000000000 +0000 +@@ -22,7 +22,7 @@ +  + cd ${GITTREEDIR} +  +-SOURCE_VERSION=$(git describe --dirty || git describe || echo Unknown) ++SOURCE_VERSION=$(git describe | cut -d- -f 3 || echo Unknown) +  + case "${SOURCE_VERSION}" in +     exported|Unknown) diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/HOST_SETTINGS.xml b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/HOST_SETTINGS.xml new file mode 100644 index 0000000..ac52497 --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/HOST_SETTINGS.xml @@ -0,0 +1,94 @@ +<mythmenu name="HOST_SETTINGS"> + +   <button> +      <type>MV_NETWORK_SETUP_MENU</type> +      <text>Network Settings</text> +      <action>EXEC  mythinstall -s network </action> +   </button> + +   <button> +      <type>MV_NETWORK_SETUP_MENU</type> +      <text>DDNS Settings</text> +      <action>EXEC  mythinstall -s ddns </action> +   </button> +   <button> +      <type>MV_SYSTEM_SETUP_MENU</type> +      <text>System Type</text> +      <action>EXEC  mythinstall -s hostype </action> +   </button> + +   <button> +      <type>MV_SCREENSAVER_SETUP_MENU</type> +      <text>Screensaver Settings</text> +      <action>EXEC  mythinstall -s screensaver </action> +   </button> + +   <button> +      <type>MV_IR_SETUP_MENU</type> +      <text>Remotes</text> +       <action>EXEC  mythinstall -s ir </action> +   </button> + +   <button> +      <type>MV_MISC_SETUP_MENU</type> +      <text>Miscellanous Settings</text> +      <action>EXEC  mythinstall -s misc </action> +   </button> + +   <button> +      <type>MV_SOFTWARE_MENU</type> +      <text>Software</text> +      <action>EXEC  mythinstall -s  plugins </action> +   </button> + +   <button> +      <type>MV_SHUTDOWN_SETUP_MENU</type> +      <text>Shutdown Settings</text> +      <action>EXEC  mythinstall -s sleep </action> +   </button> + +   <button> +      <type>MV_ADVANCED_X_SETUP_MENU</type> +      <text>Display Settings</text> +      <action>EXEC  mythinstall -s advancedX</action> +   </button> + +   <button> +      <type>MV_ADVANCED_SETUP_MENU</type> +      <text>Advanced Settings</text> +      <action>EXEC  mythinstall -s advanced</action> +   </button> + +   <button> +      <type>MV_AUDIO_SETUP_MENU</type> +      <text>Audio Settings</text> +       <action>EXEC  mythinstall -s sound </action> +   </button> + +   <button> +      <type>MV_ACCESS_SETUP_MENU</type> +      <text>Access Control</text> +      <action>EXEC  mythinstall -s accesscontrol </action> +   </button> + +   <button> +      <type>MV_USER_SETUP_MENU</type> +      <text>User Accounts</text> +      <action>EXEC  mythinstall -s user </action> +   </button> + +   <button> +      <type>MV_WEBACCESS_SETUP_MENU</type> +      <text>Web Security</text> +      <action>EXEC  mythinstall -s webuser </action> +   </button> + +   <!-- +   <button> +      <type>SETUP_MENU</type> +      <text>Settings Profile Manager</text> +      <action>EXEC  mythinstall -t </action> +   </button> +   --> + +</mythmenu> diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/is.xml b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/is.xml new file mode 100644 index 0000000..88b7e6b --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/is.xml @@ -0,0 +1,3 @@ +<mythmenu name="Internet Steams"> + +</mythmenu> diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/library.xml.patch b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/library.xml.patch new file mode 100644 index 0000000..be06e34 --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/library.xml.patch @@ -0,0 +1,12 @@ +--- themes/defaultmenu/library.xml.orig	2010-11-06 00:39:51.000000000 +0000 ++++ themes/defaultmenu/library.xml	2010-11-06 00:44:54.000000000 +0000 +@@ -44,8 +44,7 @@ +         <type>STREAM</type> +         <text>Play Online Streams</text> +         <description></description> +-        <action>PLUGIN mythstream</action> +-        <depends>mythstream</depends> ++        <action>MENU is.xml</action> +     </button> +  +     <button> diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/linhes.xml b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/linhes.xml new file mode 100644 index 0000000..01b6ffa --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/linhes.xml @@ -0,0 +1,59 @@ +<mythmenu name="LinHES"> + +    <button> +        <type>SETUP_GENERAL</type> +        <text>MythTV Configuration</text> +        <text lang="IT">Impostazioni</text> +        <text lang="ES">Configuración</text> +        <text lang="DE">Zubehör / Konfiguration</text> +        <text lang="DA">Tilbehør/Indstillinger</text> +        <text lang="IS">Uppsetning</text> +        <text lang="NL">Configuratie</text> +        <text lang="PT">UtensÃlios</text> +        <text lang="SV">Verktyg / Inställningar</text> +        <text lang="JA">è¨å®~Z</text> +        <text lang="FI">Oheis/Asetukset</text> +        <text lang="ZH_TW">å·¥å~E·/è¨å®~Z</text> +        <text lang="SL">Nastavitve</text> +        <text lang="ET">Utiliidid / sätted</text> +        <text lang="RU">УÑ~BилиÑ~BÑ~K / Ð~]аÑ~AÑ~BÑ~@ойки</text> +        <text lang="AR">تضبÙ~Jطات</text> +        <text lang="PL">NarzÄ~Ydzia / ustawienia</text> +        <text lang="HE">×¢×~Vר×~Y×~] / ×~T×~R×~Sר×~Uת</text> +        <text lang="HU">Eszközök / BeállÃtások</text> +        <alttext lang="DE">Verschiedenes</alttext> +        <alttext lang="SV">Inställningar</alttext> +        <alttext lang="ET">Sätted</alttext> +        <alttext lang="RU">Ð~]аÑ~AÑ~BÑ~@ойки</alttext> +        <alttext lang="AR">تضبÙ~Jطات</alttext> +        <description>Configure MythTV and plugins</description> +        <description lang="DE">MythTV und Plugins konfigurieren</description> +        <action>MENU util_menu.xml</action> +    </button> + +   <button> +     <type>LINHES_SETUP</type> +     <text>LinHES Configuration</text> +     <action>MENU HOST_SETTINGS.xml</action> +   </button> + +   <button> +     <type>BACKUP</type> +     <text>Backup LinHES</text> +     <action>MENU mythbackup.xml</action> +   </button> + +   <button> +     <type>RESTORE</type> +     <text>Restore LinHES</text> +     <action>MENU mythrestore.xml</action> +   </button> + +<!--#Check for updates--> +   <button> +     <type>UPGRADE</type> +     <text>Update LinHES</text> +     <action>MENU update.xml</action> +   </button> +<!--#Check for updates--> +</mythmenu> diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/mainmenu.xml.patch b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/mainmenu.xml.patch new file mode 100644 index 0000000..0491803 --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/mainmenu.xml.patch @@ -0,0 +1,37 @@ +--- themes/defaultmenu/mainmenu.xml.orig	2010-11-08 22:30:08.000000000 +0000 ++++ themes/defaultmenu/mainmenu.xml	2010-11-08 22:35:51.000000000 +0000 +@@ -2,6 +2,13 @@ + <mythmenu name="MAIN"> +  +     <button> ++        <type>TV_WATCH_TV</type> ++        <text>Watch TV</text> ++        <description>Watch live television</description> ++        <action>TV_WATCH_LIVE</action> ++    </button> ++ ++    <button> +         <type>MENU_MEDIA_LIBRARY</type> +         <text>Media Library</text> +         <action>MENU library.xml</action> +@@ -31,17 +38,10 @@ +     </button> +  +     <button> +-        <type>TV_WATCH_TV</type> +-        <text>Watch TV</text> +-        <description>Watch live television</description> +-        <action>TV_WATCH_LIVE</action> +-    </button> +- +-    <button> +         <type>MENU_UTILITIES_SETUP</type> +-        <text>Utilities / Setup</text> +-        <description>Configure MythTV and plugins</description> +-        <action>MENU util_menu.xml</action> ++        <text>Service Menu</text> ++        <description>Configure your system</description> ++        <action>MENU linhes.xml</action> +     </button> +  + </mythmenu> diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/mythbackup.xml b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/mythbackup.xml new file mode 100644 index 0000000..5914b33 --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/mythbackup.xml @@ -0,0 +1,20 @@ +<mythmenu name="LinHES"> + +   <button> +     <type>BACKUP</type> +     <text>Do you wish to backup?</text> +     <action>NONE</action> +   </button> + +   <button> +     <type>BACKUP</type> +     <text>Yes</text> +     <action>EXEC sudo /usr/LH/bin/mythbackup</action> +   </button> +    +   <button> +     <type>BACKUP</type> +     <text>No</text> +     <action>UPMENU</action> +   </button> +</mythmenu> diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/mythrestore.xml b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/mythrestore.xml new file mode 100644 index 0000000..8f5c285 --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/mythrestore.xml @@ -0,0 +1,20 @@ +<mythmenu name="LinHES"> + +   <button> +     <type>RESTORE</type> +     <text>Do you wish to restore?</text> +     <action>NONE</action> +   </button> + +   <button> +     <type>RESTORE</type> +     <text>Yes</text> +     <action>EXEC sudo /usr/LH/bin/mythrestore</action> +   </button> +    +   <button> +     <type>BACKUP</type> +     <text>No</text> +     <action>UPMENU</action> +   </button> +</mythmenu> diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/optical_menu.xml.patch b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/optical_menu.xml.patch new file mode 100644 index 0000000..143424f --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/optical_menu.xml.patch @@ -0,0 +1,16 @@ +--- themes/defaultmenu/optical_menu.xml.orig	2010-11-06 00:39:43.000000000 +0000 ++++ themes/defaultmenu/optical_menu.xml	2010-11-06 00:42:59.000000000 +0000 +@@ -26,6 +26,13 @@ +     </button> +  +     <button> ++        <type>DVD_RIP</type> ++        <text>Import video files from DVD</text> ++       <description>Import video files from a data DVD</description> ++        <action>EXEC /usr/LH/bin/importfiles.sh</action> ++    </button> ++ ++    <button> +         <type>MUSIC_RIP</type> +         <text>Import CD</text> +         <description>Import music from an audio CD</description> diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/original/create_patch.sh b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/original/create_patch.sh new file mode 100755 index 0000000..34d8b8c --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/original/create_patch.sh @@ -0,0 +1,5 @@ +#!/bin/bash +for i in *.xml +do +	diff -u $i.orig $i > ../$i.patch +done diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/setup.xml b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/setup.xml new file mode 100644 index 0000000..f56bb6f --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/setup.xml @@ -0,0 +1,111 @@ +<mythmenu name="MAIN"> + +   <button> +     <type>SETUP_GENERAL</type> +     <text>1. General</text> +     <text lang="IT">1. Generale</text> +     <text lang="PT">1. Geral</text> +     <text lang="SV">1. Generellt</text> +     <text lang="JA">1. 一般</text> +     <text lang="DE">1. Allgemeines</text> +     <text lang="FI">1. Yleiset</text> +     <text lang="FR">1. Général</text> +     <text lang="SI">1. SploÅ¡no</text> +     <text lang="ET">1. Üldine</text> +     <text lang="NB">1 Generelt</text> +     <text lang="DK">1. Generelt</text> +     <text lang="ES">1. General</text> +     <text lang="CZ">1. Obecný</text> +     <text lang="RU">1. Общие</text> +     <action>GENERAL</action> +   </button> + +   <button> +     <type>SETUP_CAPTURE_CARDS</type> +     <text>2. Capture cards</text> +     <text lang="IT">2. Schede di Acquisizione</text> +     <text lang="PT">2. Placas de Captura</text> +     <text lang="SV">2. TV-kort</text> +     <text lang="JA">2. ã‚ャプãƒãƒ£ã‚«ãƒ¼ãƒ‰</text> +     <text lang="DE">2. TV-Karten</text> +     <text lang="FI">2. TV-kortit</text> +     <text lang="FR">2. Cartes d'acquisition</text> +     <text lang="SI">2. Kartice za zajem</text> +     <text lang="ET">2. TV-kaardid</text> +     <text lang="NB">2 TV-kort</text> +     <text lang="DK">2. TV-kort</text> +     <text lang="ES">2. Capturadoras</text> +     <text lang="CZ">2. Zachytávacà karty</text> +     <text lang="RU">2. Карты захвата</text> +     <action>CAPTURE CARDS</action> +   </button> + +   <button> +     <type>SETUP_VIDEO_SOURCES</type> +     <text>3. Video sources</text> +     <text lang="IT">3. Fonte Video</text> +     <text lang="PT">3. Fontes de VÃdeo</text> +     <text lang="SV">3. Videokällor</text> +     <text lang="JA">3. ビデオソース</text> +     <text lang="DE">3. Videoquellen</text> +     <text lang="FI">3. Kuvanlähteet</text> +     <text lang="FR">3. Sources vidéo</text> +     <text lang="SI">3. Video viri</text> +     <text lang="ET">3. Videosisendid</text> +     <text lang="NB">3 Videokilder</text> +     <text lang="DK">3. Videokilder</text> +     <text lang="ES">3. Fuentes de VÃdeo</text> +     <text lang="CZ">3. Zdroje obrazu</text> +     <text lang="RU">3. Видео иÑточники</text> +     <action>VIDEO SOURCES</action> +   </button> + +   <button> +     <type>SETUP_INPUT_CONNECTIONS</type> +     <text>4. Input connections</text> +     <text lang="IT">4. Connessioni di Ingresso</text> +     <text lang="PT">4. Ligações de Entrada</text> +     <text lang="SV">4. Anslutningar</text> +     <text lang="JA">4. 入力ã¨ã‚½ãƒ¼ã‚¹ã®æŽ¥ç¶š</text> +     <text lang="DE">4. Verknüpfungen</text> +     <text lang="FI">4. Sisääntuloasetukset</text> +     <text lang="FR">4. Entrées Vidéos</text> +     <text lang="SI">4. Vhodne povezave</text> +     <text lang="ET">4. Sisendite ühendused</text> +     <text lang="NB">4 Inndata</text> +     <text lang="DK">4. Indgange</text> +     <text lang="ES">4. Conexiones</text> +     <text lang="CZ">4. PÅ™ipojenà vstupů</text> +     <text lang="RU">4. Соединение входов</text> +     <action>CARD INPUTS</action> +   </button> + +   <button> +     <type>SETUP_CHANNEL_EDITOR</type> +     <text>5. Channel Editor</text> +     <text lang="IT">5. Modifica Canali</text> +     <text lang="SV">5. Kanaleditor</text> +     <text lang="JA">5. ãƒãƒ£ãƒ³ãƒãƒ«è¨å®š</text> +     <text lang="DE">5. Sender bearbeiten</text> +     <text lang="FI">5. Kanavanviritys</text> +     <text lang="FR">5. Editeur de chaînes</text> +     <text lang="SI">5. Urejanje kanalov</text> +     <text lang="ET">5. Kanaliredaktor</text> +     <text lang="NB">5 Kanalredigerer</text> +     <text lang="DK">5. Kanal opsætning</text> +     <text lang="ES">5. Editor Canales</text> +     <text lang="CZ">5. Editor kanálů</text> +     <text lang="RU">5. Редактор каналов</text> +     <action>CHANNEL EDITOR</action> +   </button> + +   <button> +     <type>SETUP_STORAGE_GROUPS</type> +     <text>6. Storage Directories</text> +     <text lang="IT">6. Cartelle</text> +     <text lang="FI">Tallennusryhmät</text> +     <text lang="SV">Lagringsgrupper</text> +     <action>STORAGE GROUPS</action> +   </button> + +</mythmenu> diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/siriusmenu.xml b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/siriusmenu.xml new file mode 100644 index 0000000..e317b36 --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/siriusmenu.xml @@ -0,0 +1,419 @@ +<mythmenu name="SIRIUS"> +   <button> +      <type>MUSIC</type> +      <text>Sirius Hits 1</text> +      <action>EXEC /usr/bin/cliSipie siriushits1</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>StarLite</text> +      <action>EXEC /usr/bin/cliSipie starlite</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Sirius Love</text> +      <action>EXEC /usr/bin/cliSipie siriuslove</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Movin EZ</text> +      <action>EXEC /usr/bin/cliSipie movineasy</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Sirius Gold</text> +      <action>EXEC /usr/bin/cliSipie siriusgold</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>'60s Vibrations</text> +      <action>EXEC /usr/bin/cliSipie 60svibrations</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Totally '70s</text> +      <action>EXEC /usr/bin/cliSipie totally70s</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Big '80s</text> +      <action>EXEC /usr/bin/cliSipie big80s</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>ThePulse</text> +      <action>EXEC /usr/bin/cliSipie thepulse</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Bridge</text> +      <action>EXEC /usr/bin/cliSipie thebridge</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>BBC Radio 1</text> +      <action>EXEC /usr/bin/cliSipie bbcradio1</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Super Shuffle</text> +      <action>EXEC /usr/bin/cliSipie supershuffle</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Elvis Radio</text> +      <action>EXEC /usr/bin/cliSipie elvisradio</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Classic Vinyl</text> +      <action>EXEC /usr/bin/cliSipie classicvinyl</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Classic Rewind</text> +      <action>EXEC /usr/bin/cliSipie classicrewind</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>TheVault</text> +      <action>EXEC /usr/bin/cliSipie thevault</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Jam_ON</text> +      <action>EXEC /usr/bin/cliSipie jamon</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Spectrum</text> +      <action>EXEC /usr/bin/cliSipie thespectrum</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>BuzzSaw</text> +      <action>EXEC /usr/bin/cliSipie buzzsaw</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Octane</text> +      <action>EXEC /usr/bin/cliSipie octane</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Alt Nation</text> +      <action>EXEC /usr/bin/cliSipie altnation</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>1st Wave</text> +      <action>EXEC /usr/bin/cliSipie firstwave</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Hair Nation</text> +      <action>EXEC /usr/bin/cliSipie hairnation</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>'90s Alternative</text> +      <action>EXEC /usr/bin/cliSipie 90salternative</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Garage</text> +      <action>EXEC /usr/bin/cliSipie undergroundgarage</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Left of Center</text> +      <action>EXEC /usr/bin/cliSipie leftofcenter</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Hard Attack</text> +      <action>EXEC /usr/bin/cliSipie hardattack</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Faction</text> +      <action>EXEC /usr/bin/cliSipie faction</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Punk</text> +      <action>EXEC /usr/bin/cliSipie punk</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>The Coffee House</text> +      <action>EXEC /usr/bin/cliSipie coffeehouse</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Margaritaville</text> +      <action>EXEC /usr/bin/cliSipie radiomargaritaville</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Sirius Disorder</text> +      <action>EXEC /usr/bin/cliSipie siriusdisorder</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Reggae</text> +      <action>EXEC /usr/bin/cliSipie reggaerhythms</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Area 33</text> +      <action>EXEC /usr/bin/cliSipie area33</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Boombox</text> +      <action>EXEC /usr/bin/cliSipie boombox</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Chill</text> +      <action>EXEC /usr/bin/cliSipie chill</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>The Beat</text> +      <action>EXEC /usr/bin/cliSipie thebeat</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Strobe</text> +      <action>EXEC /usr/bin/cliSipie thestrobe</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Hip-Hop Nation</text> +      <action>EXEC /usr/bin/cliSipie hiphopnation</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>BackSpin</text> +      <action>EXEC /usr/bin/cliSipie backspin</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Shade 45</text> +      <action>EXEC /usr/bin/cliSipie shade45</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Hot Jamz</text> +      <action>EXEC /usr/bin/cliSipie hotjamz</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Heart  & Soul</text> +      <action>EXEC /usr/bin/cliSipie heartandsoul</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>SoulTown</text> +      <action>EXEC /usr/bin/cliSipie soultown</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>New Country</text> +      <action>EXEC /usr/bin/cliSipie newcountry</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Prime Country</text> +      <action>EXEC /usr/bin/cliSipie primecountry</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Roadhouse</text> +      <action>EXEC /usr/bin/cliSipie theroadhouse</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Outlaw Country</text> +      <action>EXEC /usr/bin/cliSipie outlawcountry</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Bluegrass</text> +      <action>EXEC /usr/bin/cliSipie bluegrass</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Spirit</text> +      <action>EXEC /usr/bin/cliSipie spirit</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Praise</text> +      <action>EXEC /usr/bin/cliSipie praise</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Planet Jazz</text> +      <action>EXEC /usr/bin/cliSipie planetjazz</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>JazzCafe</text> +      <action>EXEC /usr/bin/cliSipie jazzcafe</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>PureJazz</text> +      <action>EXEC /usr/bin/cliSipie purejazz</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Spa 73</text> +      <action>EXEC /usr/bin/cliSipie spa73</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Blues</text> +      <action>EXEC /usr/bin/cliSipie siriusblues</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Siriusly Sinatra</text> +      <action>EXEC /usr/bin/cliSipie siriuslysinatra</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Broadway's Best</text> +      <action>EXEC /usr/bin/cliSipie broadwaysbest</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Symphony Hall</text> +      <action>EXEC /usr/bin/cliSipie symphonyhall</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Met Opera Radio</text> +      <action>EXEC /usr/bin/cliSipie metropolitanopera</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Sirius Pops</text> +      <action>EXEC /usr/bin/cliSipie siriuspops</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Universo Latino</text> +      <action>EXEC /usr/bin/cliSipie universolatino</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Rumbon</text> +      <action>EXEC /usr/bin/cliSipie rumbon</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Martha Stewart</text> +      <action>EXEC /usr/bin/cliSipie marthastewartlivingradio</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Sirius Stars</text> +      <action>EXEC /usr/bin/cliSipie siriusstars</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>OutQ Gay Radio</text> +      <action>EXEC /usr/bin/cliSipie siriusoutq</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Patriot</text> +      <action>EXEC /usr/bin/cliSipie siriuspatriot</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Left</text> +      <action>EXEC /usr/bin/cliSipie siriusleft</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>CNN</text> +      <action>EXEC /usr/bin/cliSipie cnn</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>wrn</text> +      <action>EXEC /usr/bin/cliSipie wrn</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Blue Collar Comedy</text> +      <action>EXEC /usr/bin/cliSipie bluecollarcomedy</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Raw Dog Comedy</text> +      <action>EXEC /usr/bin/cliSipie rawdog</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Laugh Break Comedy</text> +      <action>EXEC /usr/bin/cliSipie laughbreak</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>thefoxxhole</text> +      <action>EXEC /usr/bin/cliSipie thefoxxhole</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>lime</text> +      <action>EXEC /usr/bin/cliSipie lime</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Kids Stuff</text> +      <action>EXEC /usr/bin/cliSipie kidsstuff</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Catholic Channel</text> +      <action>EXEC /usr/bin/cliSipie thecatholicchannel</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>EWTN</text> +      <action>EXEC /usr/bin/cliSipie ewtnglobal</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>christiantalk</text> +      <action>EXEC /usr/bin/cliSipie christiantalk</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Sirius NFL Radio</text> +      <action>EXEC /usr/bin/cliSipie siriusnflradio</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Maxim Radio</text> +      <action>EXEC /usr/bin/cliSipie maximradio</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Cosmo Radio</text> +      <action>EXEC /usr/bin/cliSipie cosmopolitanradio</action> +   </button> +   <button> +     <type>TV_DELETE</type> +     <text>Stop Listening</text> +     <action>EXEC /usr/bin/sipie_kill</action> +  </button> + +</mythmenu> + diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/update.xml b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/update.xml new file mode 100644 index 0000000..d2ac3fe --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/update.xml @@ -0,0 +1,9 @@ +<mythmenu name="LinHES"> + +   <button> +     <type>UPGRADE</type> +     <text>Check for Updates</text> +     <action>EXEC sudo /usr/LH/bin/linhes_update.sh</action> +   </button> + +</mythmenu> diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/update2.xml b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/update2.xml new file mode 100644 index 0000000..64388cb --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/update2.xml @@ -0,0 +1,20 @@ +<mythmenu name="LinHES"> + +   <button> +     <type>UPGRADE</type> +     <text>Install Updates</text> +     <action>EXEC sudo /usr/LH/bin/linhes_update2.sh install</action> +   </button> + +   <button> +     <type>UPGRADE</type> +     <text>Cancel Updates</text> +     <action>EXEC sudo /usr/LH/bin/linhes_update2.sh</action> +   </button> + +   <button> +     <type>UPGRADE</type> +     <text>View Updates</text> +     <action>MENU update3.xml</action> +   </button> +</mythmenu> diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/util_menu.xml.patch b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/util_menu.xml.patch new file mode 100644 index 0000000..82d303e --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/util_menu.xml.patch @@ -0,0 +1,16 @@ +--- themes/defaultmenu/util_menu.xml.orig	2010-11-06 00:40:01.000000000 +0000 ++++ themes/defaultmenu/util_menu.xml	2010-11-06 00:45:42.000000000 +0000 +@@ -17,6 +17,13 @@ +     </button> +  +     <button> ++        <type>VIDEO_SCREENSHOOTER</type> ++        <text>Thumbnail Generator</text> ++        <description>Generate thumbnail images for videos</description> ++        <action>EXEC /usr/LH/bin/shootscreens-mythtv.sh</action> ++    </button> ++ ++    <button> +         <type>SETUP_MENU</type> +         <text>Setup</text> +         <description>Configure MythTV and plugins</description> diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/xmmenu.xml b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/xmmenu.xml new file mode 100644 index 0000000..6b26d11 --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/menu-xml/xmmenu.xml @@ -0,0 +1,574 @@ +<!-- Current as of April 25, 2007 --> +<mythmenu name="XM"> + +	<button> +		<type>MUSIC</type> +		<text>The '40s</text> +		<action>EXEC /usr/bin/xamp kill 4</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The '50s</text> +		<action>EXEC /usr/bin/xamp kill 5</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The '60s</text> +		<action>EXEC /usr/bin/xamp kill 6</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The '70s</text> +		<action>EXEC /usr/bin/xamp kill 7</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The '80s</text> +		<action>EXEC /usr/bin/xamp kill 8</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The '90s</text> +		<action>EXEC /usr/bin/xamp kill 9</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>America</text> +		<action>EXEC /usr/bin/xamp kill 10</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>X Country</text> +		<action>EXEC /usr/bin/xamp kill 12</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Willie's Place</text> +		<action>EXEC /usr/bin/xamp kill 13</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Bluegrass Junction</text> +		<action>EXEC /usr/bin/xamp kill 14</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Village</text> +		<action>EXEC /usr/bin/xamp kill 15</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Highway 16</text> +		<action>EXEC /usr/bin/xamp kill 16</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>US Country</text> +		<action>EXEC /usr/bin/xamp kill 17</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>20 on 20</text> +		<action>EXEC /usr/bin/xamp kill 20</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Heart</text> +		<action>EXEC /usr/bin/xamp kill 23</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Blend</text> +		<action>EXEC /usr/bin/xamp kill 25</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Flight 26</text> +		<action>EXEC /usr/bin/xamp kill 26</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Cinemagic</text> +		<action>EXEC /usr/bin/xamp kill 27</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>On Broadway</text> +		<action>EXEC /usr/bin/xamp kill 28</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>U-Pop</text> +		<action>EXEC /usr/bin/xamp kill 29</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>XM Hitlist</text> +		<action>EXEC /usr/bin/xamp kill 30</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Torch</text> +		<action>EXEC /usr/bin/xamp kill 31</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Message</text> +		<action>EXEC /usr/bin/xamp kill 32</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Spirit</text> +		<action>EXEC /usr/bin/xamp kill 33</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>enLighten</text> +		<action>EXEC /usr/bin/xamp kill 34</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Deep Tracks</text> +		<action>EXEC /usr/bin/xamp kill 40</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Boneyard</text> +		<action>EXEC /usr/bin/xamp kill 41</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>XM Liquid Metal</text> +		<action>EXEC /usr/bin/xamp kill 42</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>XMU</text> +		<action>EXEC /usr/bin/xamp kill 43</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Fred</text> +		<action>EXEC /usr/bin/xamp kill 44</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>XM Cafe</text> +		<action>EXEC /usr/bin/xamp kill 45</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Top Tracks</text> +		<action>EXEC /usr/bin/xamp kill 46</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Ethel</text> +		<action>EXEC /usr/bin/xamp kill 47</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Squizz</text> +		<action>EXEC /usr/bin/xamp kill 48</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Big Tracks</text> +		<action>EXEC /usr/bin/xamp kill 49</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Loft</text> +		<action>EXEC /usr/bin/xamp kill 50</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>XM Music Lab</text> +		<action>EXEC /usr/bin/xamp kill 51</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Verge</text> +		<action>EXEC /usr/bin/xamp kill 52</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Fungus</text> +		<action>EXEC /usr/bin/xamp kill 53</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Lucy</text> +		<action>EXEC /usr/bin/xamp kill 54</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Soul Street</text> +		<action>EXEC /usr/bin/xamp kill 60</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Flow</text> +		<action>EXEC /usr/bin/xamp kill 61</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Suite 62</text> +		<action>EXEC /usr/bin/xamp kill 62</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Groove</text> +		<action>EXEC /usr/bin/xamp kill 64</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Rhyme</text> +		<action>EXEC /usr/bin/xamp kill 65</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>RAW</text> +		<action>EXEC /usr/bin/xamp kill 66</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The City</text> +		<action>EXEC /usr/bin/xamp kill 67</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Heat</text> +		<action>EXEC /usr/bin/xamp kill 68</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Real Jazz</text> +		<action>EXEC /usr/bin/xamp kill 70</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Watercolors</text> +		<action>EXEC /usr/bin/xamp kill 71</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Beyond Jazz</text> +		<action>EXEC /usr/bin/xamp kill 72</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>High Standards</text> +		<action>EXEC /usr/bin/xamp kill 73</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Bluesville</text> +		<action>EXEC /usr/bin/xamp kill 74</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Hear Music</text> +		<action>EXEC /usr/bin/xamp kill 75</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Fine Tuning</text> +		<action>EXEC /usr/bin/xamp kill 76</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Audio Visions</text> +		<action>EXEC /usr/bin/xamp kill 77</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Escape</text> +		<action>EXEC /usr/bin/xamp kill 78</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>On The Rocks</text> +		<action>EXEC /usr/bin/xamp kill 79</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Move</text> +		<action>EXEC /usr/bin/xamp kill 80</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>BPM</text> +		<action>EXEC /usr/bin/xamp kill 81</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The System</text> +		<action>EXEC /usr/bin/xamp kill 82</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Chrome</text> +		<action>EXEC /usr/bin/xamp kill 83</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>XM-Chill</text> +		<action>EXEC /usr/bin/xamp kill 84</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Fuego</text> +		<action>EXEC /usr/bin/xamp kill 90</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Viva</text> +		<action>EXEC /usr/bin/xamp kill 91</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Aguila</text> +		<action>EXEC /usr/bin/xamp kill 92</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Caliente</text> +		<action>EXEC /usr/bin/xamp kill 94</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Luna</text> +		<action>EXEC /usr/bin/xamp kill 95</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Air Musique</text> +		<action>EXEC /usr/bin/xamp kill 100</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Joint</text> +		<action>EXEC /usr/bin/xamp kill 101</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Sur La Route</text> +		<action>EXEC /usr/bin/xamp kill 102</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>World Zone</text> +		<action>EXEC /usr/bin/xamp kill 103</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Ngoma</text> +		<action>EXEC /usr/bin/xamp kill 104</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>XM Classics</text> +		<action>EXEC /usr/bin/xamp kill 110</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Vox</text> +		<action>EXEC /usr/bin/xamp kill 112</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>XM Pops</text> +		<action>EXEC /usr/bin/xamp kill 113</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>XM Kids</text> +		<action>EXEC /usr/bin/xamp kill 116</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Bob Edwards Show</text> +		<action>EXEC /usr/bin/xamp kill 133</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>XM Comedy</text> +		<action>EXEC /usr/bin/xamp kill 150</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Laugh USA</text> +		<action>EXEC /usr/bin/xamp kill 151</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Special X</text> +		<action>EXEC /usr/bin/xamp kill 154</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Agenda</text> +		<action>EXEC /usr/bin/xamp kill 134</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Oprah and Friends</text> +		<action>EXEC /usr/bin/xamp kill 156</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Virus</text> +		<action>EXEC /usr/bin/xamp kill 202</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>1 Hit Wonders</text> +		<action>EXEC /usr/bin/xamp kill 300</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Metalcore</text> +		<action>EXEC /usr/bin/xamp kill 301</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>New Indie First</text> +		<action>EXEC /usr/bin/xamp kill 302</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Late Night Mix</text> +		<action>EXEC /usr/bin/xamp kill 303</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Sessions@AOL</text> +		<action>EXEC /usr/bin/xamp kill 304</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Shuffle</text> +		<action>EXEC /usr/bin/xamp kill 305</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>New Rock First</text> +		<action>EXEC /usr/bin/xamp kill 306</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>New Country First</text> +		<action>EXEC /usr/bin/xamp kill 307</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>New Hip Hop First</text> +		<action>EXEC /usr/bin/xamp kill 308</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>New Pop First</text> +		<action>EXEC /usr/bin/xamp kill 309</action> +	</button> + +	<button> +		<type>TV_DELETE</type> +		<text>Stop Listening</text> +		<action>EXEC /usr/bin/xamp kill</action> +	</button> + +</mythmenu> diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/myth.sh b/abs/not_built/core/mythtv/stable-0.24/mythtv/myth.sh new file mode 100755 index 0000000..fb7122c --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/myth.sh @@ -0,0 +1,4 @@ +export PATH=$PATH:/usr/local/bin +# set core file size to 0 +ulimit -c 0 +export MALLOC_CHECK_=0
\ No newline at end of file diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/mythbackend b/abs/not_built/core/mythtv/stable-0.24/mythtv/mythbackend new file mode 100755 index 0000000..93773a2 --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/mythbackend @@ -0,0 +1,38 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/bin/mythbackend` +case "$1" in +  start) +    stat_busy "Starting MythTV Backend" +    [ ! -e /var/run/mysqld.pid ] && echo -n "mysqld not started" && stat_fail && exit +    [ -z "$PID" ] && /usr/bin/mythbackend -d -l /var/log/mythbackend.log -v important  +    if [ $? -gt 0 ]; then +      stat_fail +    else +      echo $PID > /var/run/mythbackend.pid +      add_daemon mythbackend +      stat_done +    fi +    ;; +  stop) +    stat_busy "Stopping MythTV Backend" +    [ ! -z "$PID" ]  && kill $PID &>/dev/null +    if [ $? -gt 0 ]; then +      stat_fail +    else +      rm_daemon mythbackend +      stat_done +    fi +    ;; +  restart) +    $0 stop +    sleep 1s  +    $0 start +    ;; +  *) +    echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/mythbackend.lr b/abs/not_built/core/mythtv/stable-0.24/mythtv/mythbackend.lr new file mode 100644 index 0000000..4f218bc --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/mythbackend.lr @@ -0,0 +1,9 @@ +/var/log/mythtv/mythbackend.log { +	copytruncate +	daily +	size 10M +	missingok +	rotate 7 +	compress +	notifempty +} diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/mythbackend.sh b/abs/not_built/core/mythtv/stable-0.24/mythtv/mythbackend.sh new file mode 100755 index 0000000..e7a7b70 --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/mythbackend.sh @@ -0,0 +1,117 @@ +#!/bin/bash +# +#	/etc/rc.d/init.d/mythbackend +# +# Starts the mythbackend as a daemon +# +# chkconfig: 345 90 10 +# description: Starts the mythbackend process as a daemon after the XWindows \ +#              system is started, in runlevel 5. This allows scheduled \ +#              recordings to occur without manual intervention. +# processname: mythbackend + +# Copyright (c) by Michael Thomson <linux at m-thomson dot net> +# With thanks to Stu Tomlinson <stu at nosnilmot dot com> +# +#  This program is free software; you can redistribute it and/or modify +#  it under the terms of the GNU General Public License as published by +#  the Free Software Foundation; either version 2 of the License, or +#  (at your option) any later version. +# +#  This program is distributed in the hope that it will be useful, +#  but WITHOUT ANY WARRANTY; without even the implied warranty of +#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +#  GNU General Public License for more details. +# +#  You should have received a copy of the GNU General Public License +#  along with this program; if not, write to the Free Software +#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA + +# Default values to use if none are supplied in the config file. +# User who should start the mythbackend processes +MBE_USER="root" +# Directory holding the mythbackend binary +MBE_LOCATION="/usr/local/bin/" +# Name of mythbackend binary +MBE_PROG="mythbackend" +# Full path to mythbackend log file +MBE_LOGFILE="/var/log/mythtv/mythbackend.log" + +# Source function library. +. /etc/init.d/functions + +# Source config file if available +if [ -f "/etc/sysconfig/mythbackend" ]; then +  . /etc/sysconfig/mythbackend +fi + +test -x ${MBE_LOCATION}${MBE_PROG} || exit 0 + +RETVAL=0 + +# +#	See how we were called. +# + +start() { +	# Check if mythbackend is already running +	if [ ! -f /var/lock/subsys/${MBE_PROG} ]; then +	    echo -n "Starting ${MBE_PROG}: " +	    # /usr/local/bin/mythbackend -d -l /some/log/file +	    #daemon --user ${MBE_USER} ${MBE_LOCATION}${MBE_PROG} -d -l ${MBE_LOGFILE} +	    ${MBE_LOCATION}${MBE_PROG} -d -l ${MBE_LOGFILE} +	    RETVAL=$? +	    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/${MBE_PROG} +	    echo +	fi +	return $RETVAL +} + +stop() { +	echo -n "Stopping ${MBE_PROG}: " +	killproc ${MBE_LOCATION}${MBE_PROG} +	RETVAL=$? +	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/${MBE_PROG} +	echo +        return $RETVAL +} + + +restart() { +	stop +	start +}	 + +reload() { +	restart +}	 + +status_at() { + 	status ${MBE_LOCATION}${MBE_PROG} +} + +case "$1" in +start) +	start +	;; +stop) +	stop +	;; +reload|restart) +	restart +	;; +condrestart) +	if [ -f /var/lock/subsys/${MBE_PROG} ]; then +	    restart +	fi +	;; +status) +	status_at +	;; +*) +	echo "Usage: $0 {start|stop|restart|condrestart|status}" +	exit 1 +esac + +exit $? +exit $RETVAL diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/mythfrontend.lr b/abs/not_built/core/mythtv/stable-0.24/mythtv/mythfrontend.lr new file mode 100644 index 0000000..1580533 --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/mythfrontend.lr @@ -0,0 +1,9 @@ +/var/log/mythtv/mythfrontend.log { +	copytruncate +	daily +	size 10M +	missingok +	rotate 7 +	compress +	notifempty +} diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/mythtv.install b/abs/not_built/core/mythtv/stable-0.24/mythtv/mythtv.install new file mode 100755 index 0000000..3f2e304 --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/mythtv.install @@ -0,0 +1,63 @@ +# arg 1:  the new package version +post_install() { +	if [ ! -d /var/log/mythtv ] +	then +		mkdir -p /var/log/mythv +		chown -R mythtv /var/log/mythtv +		echo "---" > /var/log/mythtv/mythbackend.log +		chown mythtv /var/log/mythtv/mythbackend.log +	fi +	ln -s /usr/share/mythtv/themes/defaultmenu/is.xml /usr/share/mythtv/is.xml +} + +pre_upgrade() { +	if [ ! -L /usr/share/mythtv/is.xml ] +	then +		mv /usr/share/mythtv/is.xml /usr/share/mythtv/is.xml.pre +	else +		mv /usr/share/mythtv/themes/defaultmenu/is.xml /usr/share/mythtv/themes/defaultmenu/is.xml.pre +	fi +} + +post_upgrade() { +	if [ ! -d /var/log/mythtv ] +	then +		mkdir -p /var/log/mythv +		chown -R mythtv /var/log/mythtv +	fi +	if [ -e /usr/share/mythtv/is.xml.pre ] +	then +		rm -fr /usr/share/mythtv/themes/defaultmenu/is.xml +		mv /usr/share/mythtv/is.xml.pre /usr/share/mythtv/themes/defaultmenu/is.xml +		ln -s /usr/share/mythtv/themes/defaultmenu/is.xml /usr/share/mythtv/is.xml +	else +		mv /usr/share/mythtv/themes/defaultmenu/is.xml.pre /usr/share/mythtv/themes/defaultmenu/is.xml +	fi +	pacxmbc=`pacman -Q xbmc` +    if [ -z "$pacxbmc" ] +	then +		mv /usr/share/mythtv/themes/defaultmenu/library.xml /tmp +		grep -v -e /mythmenu /tmp/library.xml > /tmp/library.xml.tmp +		echo "<!--#XBMC-->" >> /tmp/library.xml.tmp +		echo "   <button>" >> /tmp/library.xml.tmp +		echo "     <type>MENU_XBMC</type>" >> /tmp/library.xml.tmp +		echo "     <text>Launch XBMC</text>" >> /tmp/library.xml.tmp +		echo "     <action>EXEC /usr/bin/xbmc</action>" >> /tmp/library.xml.tmp  +		echo "   </button>" >> /tmp/library.xml.tmp +		echo "<!--#XBMC-->" >> /tmp/library.xml.tmp +		echo "" >> /tmp/library.xml.tmp +		echo "</mythmenu>" >> /tmp/library.xml.tmp +		mv /tmp/library.xml.tmp /usr/share/mythtv/themes/defaultmenu/library.xml +	fi +} + + +# arg 1:  the old package version +post_remove() { +	/bin/true + +} + +op=$1 +shift +$op $* diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/pretty b/abs/not_built/core/mythtv/stable-0.24/mythtv/pretty new file mode 100755 index 0000000..7e0ab21 --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/pretty @@ -0,0 +1,9 @@ +#!/bin/bash +if [ -f /usr/share/mythtv/contrib/user_jobs/mythlink.pl ] +then +        su - mythtv -c "perl /usr/share/mythtv/contrib/user_jobs/mythlink.pl --link /myth/pretty" +elif [ -f /usr/share/mythtv/contrib/user_jobs/mythrename.pl ] +then +        su - mythtv -c "perl /usr/share/mythtv/contrib/user_jobs/mythrename.pl --link /myth/pretty" +fi + diff --git a/abs/not_built/core/mythtv/stable-0.24/mythtv/smolt_jump.patch b/abs/not_built/core/mythtv/stable-0.24/mythtv/smolt_jump.patch new file mode 100644 index 0000000..76f884c --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythtv/smolt_jump.patch @@ -0,0 +1,10 @@ +--- programs/mythfrontend/networkcontrol.cpp.orig	2010-11-08 23:07:04.000000000 +0000 ++++ programs/mythfrontend/networkcontrol.cpp	2010-11-08 23:08:06.000000000 +0000 +@@ -88,6 +88,7 @@ +     jumpMap["zoneminderliveview"]    = "ZoneMinder Live View"; +     jumpMap["zoneminderevents"]      = "ZoneMinder Events"; +     jumpMap["snapshot"]              = "ScreenShot"; ++    jumpMap["mythsmolt"]             = "MythSmolt"; +  +     jumpMap["channelrecpriority"]    = "Channel Recording Priorities"; +     jumpMap["viewscheduled"]         = "Manage Recordings / Fix Conflicts"; diff --git a/abs/not_built/core/mythtv/stable-0.24/mythweb/PKGBUILD b/abs/not_built/core/mythtv/stable-0.24/mythweb/PKGBUILD new file mode 100644 index 0000000..cab8fbd --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythweb/PKGBUILD @@ -0,0 +1,46 @@ +pkgname=mythweb +pkgver=0.24 +pkgrel=16 +pkgdesc="Web interface for MythTV's backend" +url="http://www.mythtv.org" +license="GPL" +arch=('i686' 'x86_64') + +depends=('mythtv>=0.24' 'lighttpd' 'php' 'local-website') +groups=('mythtv-extras') + +patches=() +source=('ftp://ftp.knoppmyth.net/R6/sources/mythweb-0.24-fixes.tar.bz2' `echo ${patches[@]:0}`) + +DOCROOT=/data/srv/httpd/htdocs/mythweb +_gitroot="https://github.com/mythtv/mythweb.git" +_gitname="${pkgname}" +build() { + +	cd $startdir/src/mythweb +	git pull + +	echo "--------------------------applying patches----------------------------------------------------" +	for i in `echo ${patches[@]:0} ` +	do +		echo applying $i +		echo "-----------------------------" +		patch -Np0  -i ${srcdir}/$i  || return 1 +	done +	echo "--------------------------done applying patches-----------------------------------------------" +	 +	[ "$CARCH" = "i686"   ] && ARCH="i686" +	[ "$CARCH" = "x86_64" ] && ARCH="x86-64" + +	mkdir -p $startdir/pkg/$DOCROOT/{image_cache,php_sessions,data} +        rsync -arp --exclude .git --delete-excluded  $startdir/src/mythweb/* $startdir/pkg/$DOCROOT +	rm $startdir/pkg/$DOCROOT/README +	chown -R http:http $startdir/pkg/$DOCROOT +	chmod g+rw $pkgdir/$DOCROOT/{image_cache,php_sessions,data} + +        # mythweb modules_path fix for 0.24 +        # http://code.mythtv.org/trac/ticket/9255 +        cd ${pkgdir}/${DOCROOT} +        ln -s modules modules_path +} +md5sums=('45703fa3899c4ee84d1b087bfcc6654e') diff --git a/abs/not_built/core/mythtv/stable-0.24/mythweb/mythweb.php.patch b/abs/not_built/core/mythtv/stable-0.24/mythweb/mythweb.php.patch new file mode 100644 index 0000000..4525e68 --- /dev/null +++ b/abs/not_built/core/mythtv/stable-0.24/mythweb/mythweb.php.patch @@ -0,0 +1,11 @@ +--- mythweb.php.orig	2011-02-01 03:33:56.000000000 +0000 ++++ mythweb.php	2011-02-01 03:34:20.000000000 +0000 +@@ -30,7 +30,7 @@ +     if (Modules::getModule($Path[0])) { +     // Add the current module directory to our search path, so modules can +     // define includes, etc. +-        ini_set('include_path', ini_get('include_path').':'.modules_path.'/'.$Path[0]); ++        ini_set('include_path', ini_get('include_path').':'.modules.'/'.$Path[0]); +     // Load the module handler +         require_once 'handler.php'; +     } diff --git a/abs/not_built/core/mythtv/trunk/morethemes/PKGBUILD b/abs/not_built/core/mythtv/trunk/morethemes/PKGBUILD new file mode 100644 index 0000000..c8f892e --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/morethemes/PKGBUILD @@ -0,0 +1,54 @@ +pkgname=morethemes-svn +pkgver=23790 +pkgrel=1 +pkgdesc="Additional themes for MythTV" +url="http://www.mythtv.org" +license="GPL" +arch=('i686' 'x86_64') + +depends=('mythtv-svn') +conflicts=('morethemes') +groups=('mythtv-extras-svn') + +patches=() +source=(`echo ${patches[@]:0}`) + +_svntrunk=http://cvs.mythtv.org/svn/trunk/themes +_svnmod=themes + + +build() { + +	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod +	svn revert -R $_svnmod + +	cd $startdir/src/$_svnmod + +	echo "--------------------------applying patches----------------------------------------------------" +	for i in `echo ${patches[@]:0} ` +	do +		echo applying $i +		echo "-----------------------------" +		patch -Np0  -i ${startdir}/src/$i  || return 1 +	done +	echo "--------------------------done applying patches-----------------------------------------------" +	 +	[ "$CARCH" = "i686"   ] && ARCH="i686" +	[ "$CARCH" = "x86_64" ] && ARCH="x86-64" + +	# clean up +	make distclean + +	# configure +#	./configure --prefix=/usr || return 1 +       ./configure --prefix=/usr + +	# build and install +	. /etc/profile +#	make || return 1 +#	make INSTALL_ROOT=$startdir/pkg install || return 1 +        make +	make INSTALL_ROOT=$startdir/pkg install +	return 0 +#### THIS PKGBUILD IS HACKED TO BUILD WITH ZERO CONTENT RIGHT NOW #### +} diff --git a/abs/not_built/core/mythtv/trunk/mytharchive/PKGBUILD b/abs/not_built/core/mythtv/trunk/mytharchive/PKGBUILD new file mode 100644 index 0000000..20e9904 --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mytharchive/PKGBUILD @@ -0,0 +1,51 @@ +pkgname=mytharchive-svn +pkgver=23790 +pkgrel=1 +pkgdesc="MythTV plugin that lets you create DVDs from or archive your recorded shows." +url="http://www.mythtv.org" +license="GPL" +arch=('i686' 'x86_64') + +depends=('mythtv-svn' 'libxmu' 'mysql-python' 'pil' 'dvdauthor' 'mjpegtools' 'transcode') +conflicts=('mytharchive') +groups=('mythtv-extras-svn') + +patches=() +source=(`echo ${patches[@]:0}`) + +_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins +_svnmod=mythplugins + + +build() { + +	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod +	svn revert -R $_svnmod + +	cd $startdir/src/$_svnmod + +	echo "--------------------------applying patches----------------------------------------------------" +	for i in `echo ${patches[@]:0} ` +	do +		echo applying $i +		echo "-----------------------------" +		patch -Np0  -i ${startdir}/src/$i  || return 1 +	done +	echo "--------------------------done applying patches-----------------------------------------------" +	 +	[ "$CARCH" = "i686"   ] && ARCH="i686" +	[ "$CARCH" = "x86_64" ] && ARCH="x86-64" + +	# clean up +	make distclean + +	# configure +	./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \ +	--enable-mytharchive || return 1 + +	# build and install +	. /etc/profile +	make || return 1 +	make INSTALL_ROOT=$startdir/pkg install || return 1 + +} diff --git a/abs/not_built/core/mythtv/trunk/mythbrowser/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythbrowser/PKGBUILD new file mode 100644 index 0000000..fdcefe0 --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythbrowser/PKGBUILD @@ -0,0 +1,51 @@ +pkgname=mythbrowser-svn +pkgver=23790 +pkgrel=1 +pkgdesc="Mini web browser for MythTV" +url="http://www.mythtv.org" +license="GPL" +arch=('i686' 'x86_64') + +depends=('mythtv-svn' 'wget') +conflicts=('mythbrowser') +groups=('mythtv-extras-svn') + +patches=() +source=(`echo ${patches[@]:0}`) + +_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins +_svnmod=mythplugins + + +build() { + +	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod +	svn revert -R $_svnmod + +	cd $startdir/src/$_svnmod + +	echo "--------------------------applying patches----------------------------------------------------" +	for i in `echo ${patches[@]:0} ` +	do +		echo applying $i +		echo "-----------------------------" +		patch -Np0  -i ${startdir}/src/$i  || return 1 +	done +	echo "--------------------------done applying patches-----------------------------------------------" +	 +	[ "$CARCH" = "i686"   ] && ARCH="i686" +	[ "$CARCH" = "x86_64" ] && ARCH="x86-64" + +	# clean up +	make distclean + +	# configure +	./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \ +	--enable-mythbrowser || return 1 + +	# build and install +	. /etc/profile +	make || return 1 +	make INSTALL_ROOT=$startdir/pkg install || return 1 + +} diff --git a/abs/not_built/core/mythtv/trunk/mythgallery/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythgallery/PKGBUILD new file mode 100644 index 0000000..6415b96 --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythgallery/PKGBUILD @@ -0,0 +1,51 @@ +pkgname=mythgallery-svn +pkgver=23790 +pkgrel=1 +pkgdesc="Image gallery plugin for MythTV" +url="http://www.mythtv.org" +license="GPL" +arch=('i686' 'x86_64') + +depends=('mythtv-svn' 'libexif' 'libtiff') +conflicts=('mythgallery') +groups=('mythtv-extras-svn') + +patches=() +source=(`echo ${patches[@]:0}`) + +_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins +_svnmod=mythplugins + + +build() { + +	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod +	svn revert -R $_svnmod + +	cd $startdir/src/$_svnmod + +	echo "--------------------------applying patches----------------------------------------------------" +	for i in `echo ${patches[@]:0} ` +	do +		echo applying $i +		echo "-----------------------------" +		patch -Np0  -i ${startdir}/src/$i  || return 1 +	done +	echo "--------------------------done applying patches-----------------------------------------------" +	 +	[ "$CARCH" = "i686"   ] && ARCH="i686" +	[ "$CARCH" = "x86_64" ] && ARCH="x86-64" + +	# clean up +	make distclean + +	# configure +	./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \ +	--enable-mythgallery || return 1 + +	# build and install +	. /etc/profile +	make || return 1 +	make INSTALL_ROOT=$startdir/pkg install || return 1 + +} diff --git a/abs/not_built/core/mythtv/trunk/mythgame/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythgame/PKGBUILD new file mode 100644 index 0000000..e7d09ab --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythgame/PKGBUILD @@ -0,0 +1,51 @@ +pkgname=mythgame-svn +pkgver=23790 +pkgrel=1 +pkgdesc="Emulation plugin for MythTV" +url="http://www.mythtv.org" +license="GPL" +arch=('i686' 'x86_64') + +depends=('mythtv-svn' 'zlib') +conflicts=('mythgame') +groups=('mythtv-extras-svn') + +patches=() +source=(`echo ${patches[@]:0}`) + +_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins +_svnmod=mythplugins + + +build() { + +	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod +	svn revert -R $_svnmod + +	cd $startdir/src/$_svnmod + +	echo "--------------------------applying patches----------------------------------------------------" +	for i in `echo ${patches[@]:0} ` +	do +		echo applying $i +		echo "-----------------------------" +		patch -Np0  -i ${startdir}/src/$i  || return 1 +	done +	echo "--------------------------done applying patches-----------------------------------------------" +	 +	[ "$CARCH" = "i686"   ] && ARCH="i686" +	[ "$CARCH" = "x86_64" ] && ARCH="x86-64" + +	# clean up +	make distclean + +	# configure +	./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \ +	--enable-mythgame || return 1 + +	# build and install +	. /etc/profile +	make || return 1 +	make INSTALL_ROOT=$startdir/pkg install || return 1 + +} diff --git a/abs/not_built/core/mythtv/trunk/mythmovies/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythmovies/PKGBUILD new file mode 100644 index 0000000..f05180c --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythmovies/PKGBUILD @@ -0,0 +1,51 @@ +pkgname=mythmovies-svn +pkgver=23790 +pkgrel=1 +pkgdesc="Displays information about movies playing in the area." +url="http://www.mythtv.org" +license="GPL" +arch=('i686' 'x86_64') + +depends=('mythtv-svn') +conflicts=('mythmovies') +groups=('mythtv-extras-svn') + +patches=() +source=(`echo ${patches[@]:0}`) + +_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins +_svnmod=mythplugins + + +build() { + +	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod +	svn revert -R $_svnmod + +	cd $startdir/src/$_svnmod + +	echo "--------------------------applying patches----------------------------------------------------" +	for i in `echo ${patches[@]:0} ` +	do +		echo applying $i +		echo "-----------------------------" +		patch -Np0  -i ${startdir}/src/$i  || return 1 +	done +	echo "--------------------------done applying patches-----------------------------------------------" +	 +	[ "$CARCH" = "i686"   ] && ARCH="i686" +	[ "$CARCH" = "x86_64" ] && ARCH="x86-64" + +	# clean up +	make distclean + +	# configure +	./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \ +	--enable-mythmovies || return 1 + +	# build and install +	. /etc/profile +	make || return 1 +	make INSTALL_ROOT=$startdir/pkg install || return 1 + +} diff --git a/abs/not_built/core/mythtv/trunk/mythmusic/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythmusic/PKGBUILD new file mode 100644 index 0000000..3d9f5ce --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythmusic/PKGBUILD @@ -0,0 +1,54 @@ +pkgname=mythmusic-svn +pkgver=23790 +pkgrel=1 +pkgdesc="Music playing plugin for MythTV" +url="http://www.mythtv.org" +license="GPL" +arch=('i686' 'x86_64') + +depends=('mythtv-svn' 'libid3tag' 'libmad' 'libvorbis' 'flac>=1.1.4' 'libcdaudio' \ +         'cdparanoia' 'fftw2' 'sdl' 'faad2>=2.6.1' 'lame' 'taglib' \ +         'libvisual-plugins' 'libvisual-projectm') +conflicts=('mythmusic') +groups=('mythtv-extras-svn') + +patches=() +source=(`echo ${patches[@]:0}`) + +_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins +_svnmod=mythplugins + + +build() { + +	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod +	svn revert -R $_svnmod + +	cd $startdir/src/$_svnmod + +	echo "--------------------------applying patches----------------------------------------------------" +	for i in `echo ${patches[@]:0} ` +	do +		echo applying $i +		echo "-----------------------------" +		patch -Np0  -i ${startdir}/src/$i  || return 1 +	done +	echo "--------------------------done applying patches-----------------------------------------------" +	 +	[ "$CARCH" = "i686"   ] && ARCH="i686" +	[ "$CARCH" = "x86_64" ] && ARCH="x86-64" + +	# clean up +	make distclean + +	# configure +	./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \ +	--enable-mythmusic --enable-libvisual --enable-fftw --enable-sdl \ +	--enable-aac || return 1 + +	# build and install +	. /etc/profile +	make || return 1 +	make INSTALL_ROOT=$startdir/pkg install || return 1 + +} diff --git a/abs/not_built/core/mythtv/trunk/mythnetvision/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythnetvision/PKGBUILD new file mode 100644 index 0000000..c820ac5 --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythnetvision/PKGBUILD @@ -0,0 +1,51 @@ +pkgname=mythnetvision-svn +pkgver=23790 +pkgrel=1 +pkgdesc="Internet video plugin for MythTV" +url="http://www.mythtv.org" +license="GPL" +arch=('i686' 'x86_64') + +depends=('mythtv-svn' 'python-pycurl' 'flashplugin') +conflicts=('mythnetvision') +groups=('mythtv-extras-svn') + +patches=() +source=(`echo ${patches[@]:0}`) + +_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins +_svnmod=mythplugins + + +build() { + +	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod +	svn revert -R $_svnmod + +	cd $startdir/src/$_svnmod + +	echo "--------------------------applying patches----------------------------------------------------" +	for i in `echo ${patches[@]:0} ` +	do +		echo applying $i +		echo "-----------------------------" +		patch -Np0  -i ${startdir}/src/$i  || return 1 +	done +	echo "--------------------------done applying patches-----------------------------------------------" +	 +	[ "$CARCH" = "i686"   ] && ARCH="i686" +	[ "$CARCH" = "x86_64" ] && ARCH="x86-64" + +	# clean up +	make distclean + +	# configure +	./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \ +	--enable-mythnetvision || return 1 + +	# build and install +	. /etc/profile +	make || return 1 +	make INSTALL_ROOT=$startdir/pkg install || return 1 + +} diff --git a/abs/not_built/core/mythtv/trunk/mythnews/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythnews/PKGBUILD new file mode 100644 index 0000000..630325c --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythnews/PKGBUILD @@ -0,0 +1,51 @@ +pkgname=mythnews-svn +pkgver=23790 +pkgrel=1 +pkgdesc="News checking plugin for MythTV" +url="http://www.mythtv.org" +license="GPL" +arch=('i686' 'x86_64') + +depends=('mythtv-svn') +conflicts=('mythnews') +groups=('mythtv-extras-svn') + +patches=() +source=(`echo ${patches[@]:0}`) + +_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins +_svnmod=mythplugins + + +build() { + +	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod +	svn revert -R $_svnmod + +	cd $startdir/src/$_svnmod + +	echo "--------------------------applying patches----------------------------------------------------" +	for i in `echo ${patches[@]:0} ` +	do +		echo applying $i +		echo "-----------------------------" +		patch -Np0  -i ${startdir}/src/$i  || return 1 +	done +	echo "--------------------------done applying patches-----------------------------------------------" +	 +	[ "$CARCH" = "i686"   ] && ARCH="i686" +	[ "$CARCH" = "x86_64" ] && ARCH="x86-64" + +	# clean up +	make distclean + +	# configure +	./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \ +	--enable-mythnews || return 1 + +	# build and install +	. /etc/profile +	make || return 1 +	make INSTALL_ROOT=$startdir/pkg install || return 1 + +} diff --git a/abs/not_built/core/mythtv/trunk/myththemes/PKGBUILD b/abs/not_built/core/mythtv/trunk/myththemes/PKGBUILD new file mode 100755 index 0000000..9e10ba2 --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/myththemes/PKGBUILD @@ -0,0 +1,50 @@ +pkgname=myththemes-svn +pkgver=23790 +pkgrel=1 +pkgdesc="Themes for MythTV" +url="http://www.mythtv.org" +license="GPL" +arch=('i686' 'x86_64') + +depends=('mythtv-svn') +conflicts=('myththemes') +groups=('mythtv-extras-svn') + +patches=() +source=(`echo ${patches[@]:0}`) + +_svntrunk=http://cvs.mythtv.org/svn/trunk/myththemes +_svnmod=myththemes + + +build() { + +	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod +	svn revert -R $_svnmod + +	cd $startdir/src/$_svnmod + +	echo "--------------------------applying patches----------------------------------------------------" +	for i in `echo ${patches[@]:0} ` +	do +		echo applying $i +		echo "-----------------------------" +		patch -Np0  -i ${startdir}/src/$i  || return 1 +	done +	echo "--------------------------done applying patches-----------------------------------------------" +	 +	[ "$CARCH" = "i686"   ] && ARCH="i686" +	[ "$CARCH" = "x86_64" ] && ARCH="x86-64" + +	# clean up +	make distclean + +	# configure +	./configure --prefix=/usr || return 1 + +	# build and install +	. /etc/profile +	make || return 1 +	make INSTALL_ROOT=$startdir/pkg install || return 1 + +} diff --git a/abs/not_built/core/mythtv/trunk/mythtv/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythtv/PKGBUILD new file mode 100755 index 0000000..65b12db --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/PKGBUILD @@ -0,0 +1,97 @@ +pkgname=mythtv-svn +pkgver=23790 +pkgrel=1 +pkgdesc="A personal video recorder for Linux" +url="http://www.mythtv.org" +license="GPL" +depends=('bash' 'mysql-clients>=5.0' 'qt' 'lame' 'lirc-utils' 'ffmpeg' \ +        'faad2' 'libxv' 'libxvmc' 'libavc1394' 'libdc1394' 'libiec61883' \ +	'perl-net-upnp' 'libvdpau') +makedepends=('libgl' 'subversion') +conflicts=('mythtv') +replaces=() +groups=('pvr') +#backup=() +#options=(!strip) +#MAKEFLAGS="-j6" +install='mythtv.install' + +patchs=() +#patchs=('smolt_jump.patch') +source=('mythbackend' 'myth.sh' `echo ${patchs[@]:0}` 'mythbackend.lr' 'mythfrontend.lr' 'pretty') +arch=('i686' 'x86_64') +#md5sums=() + +_svntrunk=http://cvs.mythtv.org/svn/trunk/mythtv +_svnmod=mythtv + +build() { + +	# get clean copy from SVN repo +	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod +	svn revert -R $_svnmod + +	cd $startdir/src/mythtv + +	# apply patches +	echo "--------------------------applying patches----------------------------------------------------" +	for i in `echo ${patchs[@]:0} ` +	do +		echo applying $i +		echo "-----------------------------" +		patch -Np0  -i ${startdir}/src/$i  || return 1 +	done +	echo "--------------------------done applying patches-----------------------------------------------" + +	sed -i -e "s/\`(svnversion \$\${SVNTREEDIR} 2>\/dev\/null) || echo Unknown\`/$pkgver/" version.pro + +	[ "$CARCH" = "i686"   ] && ARCH="i686" +	[ "$CARCH" = "x86_64" ] && ARCH="x86-64" + +	# clean up from last build +	make distclean + +	# configure +	./configure --prefix=/usr --arch=${ARCH} \ +	--enable-vdpau --enable-xvmc --enable-xvmc-pro \ +	--enable-opengl-vsync --enable-libfaad --enable-dvb --enable-firewire \ +	--compile-type=release --with-bindings=perl,python \ +	--enable-audio-alsa --disable-audio-jack --disable-audio-pulseoutput || return 1 + +	# build and install +	. /etc/profile +	make || return 1 +	make INSTALL_ROOT=$startdir/pkg install || return 1 +     +	# install db schema, scripts and docs +	install -m0644 database/mc.sql $startdir/pkg/usr/share/mythtv/ || return 1 +	install -D -m0755 ../mythbackend $startdir/pkg/etc/rc.d/mythbackend || return 1 +#	cp -r docs $startdir/pkg/usr/share/mythtv/ || return 1 +    rsync -arp --exclude .svn --delete-excluded  docs $startdir/pkg/usr/share/mythtv/ || return 1 + +	# install contrib +    rsync -arp --exclude .svn --delete-excluded  contrib $startdir/pkg/usr/share/mythtv/ || return 1 +	#cp -r contrib $startdir/pkg/usr/share/mythtv/ || return 1 + +	# patch the xml LinHES style +	cp -r $startdir/menu-xml/*.xml $startdir/pkg/usr/share/mythtv/themes/defaultmenu/ +	cd $startdir/pkg/usr/share/mythtv/themes/defaultmenu +	patch -p0 < $startdir/menu-xml/mainmenu.xml.patch || return 1 +	patch -p0 < $startdir/menu-xml/optical_menu.xml.patch || return 1 +	patch -p0 < $startdir/menu-xml/library.xml.patch || return 1 +	patch -p0 < $startdir/menu-xml/util_menu.xml.patch || return 1 + +	# make log dir +	mkdir -p $startdir/pkg/var/log/mythtv +	chown 1000.1000 $startdir/pkg/var/log/mythtv +	mkdir -p $startdir/pkg/etc/logrotate.d +	cp $startdir/src/*.lr $startdir/pkg/etc/logrotate.d +	mkdir -p $startdir/pkg/etc/cron.hourly/ +	install -m0755 $startdir/src/pretty $startdir/pkg/etc/cron.hourly/ +} + +md5sums=('7ef6de58240e7aad389a0b13d91b1cf6' +         '2babd4b8e146a7538d18dcd55695b0be' +         'f735805a80b0d1180dee01f9df1b7004' +         'f407d6af23e74a49540755420f84fa58' +         'ca547c201e3dd4bf3882bebf7c648652') diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/HOST_SETTINGS.xml b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/HOST_SETTINGS.xml new file mode 100644 index 0000000..ac52497 --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/HOST_SETTINGS.xml @@ -0,0 +1,94 @@ +<mythmenu name="HOST_SETTINGS"> + +   <button> +      <type>MV_NETWORK_SETUP_MENU</type> +      <text>Network Settings</text> +      <action>EXEC  mythinstall -s network </action> +   </button> + +   <button> +      <type>MV_NETWORK_SETUP_MENU</type> +      <text>DDNS Settings</text> +      <action>EXEC  mythinstall -s ddns </action> +   </button> +   <button> +      <type>MV_SYSTEM_SETUP_MENU</type> +      <text>System Type</text> +      <action>EXEC  mythinstall -s hostype </action> +   </button> + +   <button> +      <type>MV_SCREENSAVER_SETUP_MENU</type> +      <text>Screensaver Settings</text> +      <action>EXEC  mythinstall -s screensaver </action> +   </button> + +   <button> +      <type>MV_IR_SETUP_MENU</type> +      <text>Remotes</text> +       <action>EXEC  mythinstall -s ir </action> +   </button> + +   <button> +      <type>MV_MISC_SETUP_MENU</type> +      <text>Miscellanous Settings</text> +      <action>EXEC  mythinstall -s misc </action> +   </button> + +   <button> +      <type>MV_SOFTWARE_MENU</type> +      <text>Software</text> +      <action>EXEC  mythinstall -s  plugins </action> +   </button> + +   <button> +      <type>MV_SHUTDOWN_SETUP_MENU</type> +      <text>Shutdown Settings</text> +      <action>EXEC  mythinstall -s sleep </action> +   </button> + +   <button> +      <type>MV_ADVANCED_X_SETUP_MENU</type> +      <text>Display Settings</text> +      <action>EXEC  mythinstall -s advancedX</action> +   </button> + +   <button> +      <type>MV_ADVANCED_SETUP_MENU</type> +      <text>Advanced Settings</text> +      <action>EXEC  mythinstall -s advanced</action> +   </button> + +   <button> +      <type>MV_AUDIO_SETUP_MENU</type> +      <text>Audio Settings</text> +       <action>EXEC  mythinstall -s sound </action> +   </button> + +   <button> +      <type>MV_ACCESS_SETUP_MENU</type> +      <text>Access Control</text> +      <action>EXEC  mythinstall -s accesscontrol </action> +   </button> + +   <button> +      <type>MV_USER_SETUP_MENU</type> +      <text>User Accounts</text> +      <action>EXEC  mythinstall -s user </action> +   </button> + +   <button> +      <type>MV_WEBACCESS_SETUP_MENU</type> +      <text>Web Security</text> +      <action>EXEC  mythinstall -s webuser </action> +   </button> + +   <!-- +   <button> +      <type>SETUP_MENU</type> +      <text>Settings Profile Manager</text> +      <action>EXEC  mythinstall -t </action> +   </button> +   --> + +</mythmenu> diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/is.xml b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/is.xml new file mode 100644 index 0000000..88b7e6b --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/is.xml @@ -0,0 +1,3 @@ +<mythmenu name="Internet Steams"> + +</mythmenu> diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/library.xml.patch b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/library.xml.patch new file mode 100644 index 0000000..81ea604 --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/library.xml.patch @@ -0,0 +1,12 @@ +--- library.xml.orig	2009-10-16 12:45:44.000000000 +0000 ++++ library.xml	2009-10-16 17:21:44.000000000 +0000 +@@ -123,8 +123,7 @@ +         <text lang="HU">Online folyam lejátszása</text> +         <description></description> +         <description lang="DE"></description> +-        <action>PLUGIN mythstream</action> +-        <depends>mythstream</depends> ++        <action>MENU is.xml</action> +     </button> +  +     <button> diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/linhes.xml b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/linhes.xml new file mode 100644 index 0000000..ebc848b --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/linhes.xml @@ -0,0 +1,59 @@ +<mythmenu name="LinHES"> + +    <button> +        <type>SETUP_GENERAL</type> +        <text>MythTV Configuration</text> +        <text lang="IT">Impostazioni</text> +        <text lang="ES">Configuración</text> +        <text lang="DE">Zubehör / Konfiguration</text> +        <text lang="DA">Tilbehør/Indstillinger</text> +        <text lang="IS">Uppsetning</text> +        <text lang="NL">Configuratie</text> +        <text lang="PT">UtensÃlios</text> +        <text lang="SV">Verktyg / Inställningar</text> +        <text lang="JA">è¨å®~Z</text> +        <text lang="FI">Oheis/Asetukset</text> +        <text lang="ZH_TW">å·¥å~E·/è¨å®~Z</text> +        <text lang="SL">Nastavitve</text> +        <text lang="ET">Utiliidid / sätted</text> +        <text lang="RU">УÑ~BилиÑ~BÑ~K / Ð~]аÑ~AÑ~BÑ~@ойки</text> +        <text lang="AR">تضبÙ~Jطات</text> +        <text lang="PL">NarzÄ~Ydzia / ustawienia</text> +        <text lang="HE">×¢×~Vר×~Y×~] / ×~T×~R×~Sר×~Uת</text> +        <text lang="HU">Eszközök / BeállÃtások</text> +        <alttext lang="DE">Verschiedenes</alttext> +        <alttext lang="SV">Inställningar</alttext> +        <alttext lang="ET">Sätted</alttext> +        <alttext lang="RU">Ð~]аÑ~AÑ~BÑ~@ойки</alttext> +        <alttext lang="AR">تضبÙ~Jطات</alttext> +        <description>Configure MythTV and plugins</description> +        <description lang="DE">MythTV und Plugins konfigurieren</description> +        <action>MENU util_menu.xml</action> +    </button> + +   <button> +     <type>LINHES_SETUP</type> +     <text>LinHES Configuration</text> +     <action>MENU HOST_SETTINGS.xml</action> +   </button> + +   <button> +     <type>BACKUP</type> +     <text>Backup LinHES</text> +     <action>MENU mythbackup.xml</action> +   </button> + +   <button> +     <type>RESTORE</type> +     <text>Restore LinHES</text> +     <action>MENU mythrestore.xml</action> +   </button> + +<!--#Check for updates--> +   <button> +     <type>UPGRADE</type> +     <text>Upgrade LinHES</text> +     <action>MENU update.xml</action> +   </button> +<!--#Check for updates--> +</mythmenu> diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/mainmenu.xml.patch b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/mainmenu.xml.patch new file mode 100644 index 0000000..74ace7b --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/mainmenu.xml.patch @@ -0,0 +1,38 @@ +--- mainmenu.xml.orig	2010-03-24 13:11:27.223119163 -0400 ++++ mainmenu.xml	2010-03-24 14:18:33.922746799 -0400 +@@ -151,32 +151,9 @@ +  +     <button> +         <type>MENU_UTILITIES_SETUP</type> +-        <text>Utilities / Setup</text> +-        <text lang="IT">Impostazioni</text> +-        <text lang="ES">Configuración</text> +-        <text lang="DE">Zubehör / Konfiguration</text> +-        <text lang="IS">Uppsetning</text> +-        <text lang="NL">Configuratie</text> +-        <text lang="PT">UtensÃlios</text> +-        <text lang="SV">Verktyg / Inställningar</text> +-        <text lang="JA">è¨å®š</text> +-        <text lang="FI">Oheis/Asetukset</text> +-        <text lang="ZH_TW">工具/è¨å®š</text> +-        <text lang="SL">Nastavitve</text> +-        <text lang="ET">Utiliidid / sätted</text> +-        <text lang="RU">Утилиты / ÐаÑтройки</text> +-        <text lang="AR">تضبيطات</text> +-        <text lang="PL">NarzÄ™dzia / ustawienia</text> +-        <text lang="HE">×¢×–×¨×™× / הגדרות</text> +-        <text lang="HU">Eszközök / BeállÃtások</text> +-        <alttext lang="DE">Verschiedenes</alttext> +-        <alttext lang="SV">Inställningar</alttext> +-        <alttext lang="ET">Sätted</alttext> +-        <alttext lang="RU">ÐаÑтройки</alttext> +-        <alttext lang="AR">تضبيطات</alttext> +-        <description>Configure MythTV and plugins</description> +-        <description lang="DE">MythTV und Plugins konfigurieren</description> +-        <action>MENU util_menu.xml</action> ++        <text>Service Menu</text> ++        <description>LinHES Service Menu</description> ++        <action>MENU linhes.xml</action> +     </button> +  +     <!-- <button> diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/mythbackup.xml b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/mythbackup.xml new file mode 100644 index 0000000..5914b33 --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/mythbackup.xml @@ -0,0 +1,20 @@ +<mythmenu name="LinHES"> + +   <button> +     <type>BACKUP</type> +     <text>Do you wish to backup?</text> +     <action>NONE</action> +   </button> + +   <button> +     <type>BACKUP</type> +     <text>Yes</text> +     <action>EXEC sudo /usr/LH/bin/mythbackup</action> +   </button> +    +   <button> +     <type>BACKUP</type> +     <text>No</text> +     <action>UPMENU</action> +   </button> +</mythmenu> diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/mythrestore.xml b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/mythrestore.xml new file mode 100644 index 0000000..8f5c285 --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/mythrestore.xml @@ -0,0 +1,20 @@ +<mythmenu name="LinHES"> + +   <button> +     <type>RESTORE</type> +     <text>Do you wish to restore?</text> +     <action>NONE</action> +   </button> + +   <button> +     <type>RESTORE</type> +     <text>Yes</text> +     <action>EXEC sudo /usr/LH/bin/mythrestore</action> +   </button> +    +   <button> +     <type>BACKUP</type> +     <text>No</text> +     <action>UPMENU</action> +   </button> +</mythmenu> diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/optical_menu.xml.patch b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/optical_menu.xml.patch new file mode 100644 index 0000000..b4b1411 --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/optical_menu.xml.patch @@ -0,0 +1,16 @@ +--- optical_menu.xml.orig	2009-03-23 20:05:43.000000000 +0000 ++++ optical_menu.xml	2009-03-23 20:10:02.000000000 +0000 +@@ -134,6 +134,13 @@ +     </button> +  +     <button> ++        <type>DVD_RIP</type> ++        <text>Import video files from DVD</text> ++	<description>Import video files from a data DVD</description> ++        <action>EXEC /usr/LH/bin/importfiles.sh</action> ++    </button> ++ ++    <button> +         <type>EJECT</type> +         <text>Eject media</text> +         <text lang="IT">Espelli Media</text> diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/original/create_patch.sh b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/original/create_patch.sh new file mode 100755 index 0000000..34d8b8c --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/original/create_patch.sh @@ -0,0 +1,5 @@ +#!/bin/bash +for i in *.xml +do +	diff -u $i.orig $i > ../$i.patch +done diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/setup.xml b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/setup.xml new file mode 100644 index 0000000..f56bb6f --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/setup.xml @@ -0,0 +1,111 @@ +<mythmenu name="MAIN"> + +   <button> +     <type>SETUP_GENERAL</type> +     <text>1. General</text> +     <text lang="IT">1. Generale</text> +     <text lang="PT">1. Geral</text> +     <text lang="SV">1. Generellt</text> +     <text lang="JA">1. 一般</text> +     <text lang="DE">1. Allgemeines</text> +     <text lang="FI">1. Yleiset</text> +     <text lang="FR">1. Général</text> +     <text lang="SI">1. SploÅ¡no</text> +     <text lang="ET">1. Üldine</text> +     <text lang="NB">1 Generelt</text> +     <text lang="DK">1. Generelt</text> +     <text lang="ES">1. General</text> +     <text lang="CZ">1. Obecný</text> +     <text lang="RU">1. Общие</text> +     <action>GENERAL</action> +   </button> + +   <button> +     <type>SETUP_CAPTURE_CARDS</type> +     <text>2. Capture cards</text> +     <text lang="IT">2. Schede di Acquisizione</text> +     <text lang="PT">2. Placas de Captura</text> +     <text lang="SV">2. TV-kort</text> +     <text lang="JA">2. ã‚ャプãƒãƒ£ã‚«ãƒ¼ãƒ‰</text> +     <text lang="DE">2. TV-Karten</text> +     <text lang="FI">2. TV-kortit</text> +     <text lang="FR">2. Cartes d'acquisition</text> +     <text lang="SI">2. Kartice za zajem</text> +     <text lang="ET">2. TV-kaardid</text> +     <text lang="NB">2 TV-kort</text> +     <text lang="DK">2. TV-kort</text> +     <text lang="ES">2. Capturadoras</text> +     <text lang="CZ">2. Zachytávacà karty</text> +     <text lang="RU">2. Карты захвата</text> +     <action>CAPTURE CARDS</action> +   </button> + +   <button> +     <type>SETUP_VIDEO_SOURCES</type> +     <text>3. Video sources</text> +     <text lang="IT">3. Fonte Video</text> +     <text lang="PT">3. Fontes de VÃdeo</text> +     <text lang="SV">3. Videokällor</text> +     <text lang="JA">3. ビデオソース</text> +     <text lang="DE">3. Videoquellen</text> +     <text lang="FI">3. Kuvanlähteet</text> +     <text lang="FR">3. Sources vidéo</text> +     <text lang="SI">3. Video viri</text> +     <text lang="ET">3. Videosisendid</text> +     <text lang="NB">3 Videokilder</text> +     <text lang="DK">3. Videokilder</text> +     <text lang="ES">3. Fuentes de VÃdeo</text> +     <text lang="CZ">3. Zdroje obrazu</text> +     <text lang="RU">3. Видео иÑточники</text> +     <action>VIDEO SOURCES</action> +   </button> + +   <button> +     <type>SETUP_INPUT_CONNECTIONS</type> +     <text>4. Input connections</text> +     <text lang="IT">4. Connessioni di Ingresso</text> +     <text lang="PT">4. Ligações de Entrada</text> +     <text lang="SV">4. Anslutningar</text> +     <text lang="JA">4. 入力ã¨ã‚½ãƒ¼ã‚¹ã®æŽ¥ç¶š</text> +     <text lang="DE">4. Verknüpfungen</text> +     <text lang="FI">4. Sisääntuloasetukset</text> +     <text lang="FR">4. Entrées Vidéos</text> +     <text lang="SI">4. Vhodne povezave</text> +     <text lang="ET">4. Sisendite ühendused</text> +     <text lang="NB">4 Inndata</text> +     <text lang="DK">4. Indgange</text> +     <text lang="ES">4. Conexiones</text> +     <text lang="CZ">4. PÅ™ipojenà vstupů</text> +     <text lang="RU">4. Соединение входов</text> +     <action>CARD INPUTS</action> +   </button> + +   <button> +     <type>SETUP_CHANNEL_EDITOR</type> +     <text>5. Channel Editor</text> +     <text lang="IT">5. Modifica Canali</text> +     <text lang="SV">5. Kanaleditor</text> +     <text lang="JA">5. ãƒãƒ£ãƒ³ãƒãƒ«è¨å®š</text> +     <text lang="DE">5. Sender bearbeiten</text> +     <text lang="FI">5. Kanavanviritys</text> +     <text lang="FR">5. Editeur de chaînes</text> +     <text lang="SI">5. Urejanje kanalov</text> +     <text lang="ET">5. Kanaliredaktor</text> +     <text lang="NB">5 Kanalredigerer</text> +     <text lang="DK">5. Kanal opsætning</text> +     <text lang="ES">5. Editor Canales</text> +     <text lang="CZ">5. Editor kanálů</text> +     <text lang="RU">5. Редактор каналов</text> +     <action>CHANNEL EDITOR</action> +   </button> + +   <button> +     <type>SETUP_STORAGE_GROUPS</type> +     <text>6. Storage Directories</text> +     <text lang="IT">6. Cartelle</text> +     <text lang="FI">Tallennusryhmät</text> +     <text lang="SV">Lagringsgrupper</text> +     <action>STORAGE GROUPS</action> +   </button> + +</mythmenu> diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/siriusmenu.xml b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/siriusmenu.xml new file mode 100644 index 0000000..e317b36 --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/siriusmenu.xml @@ -0,0 +1,419 @@ +<mythmenu name="SIRIUS"> +   <button> +      <type>MUSIC</type> +      <text>Sirius Hits 1</text> +      <action>EXEC /usr/bin/cliSipie siriushits1</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>StarLite</text> +      <action>EXEC /usr/bin/cliSipie starlite</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Sirius Love</text> +      <action>EXEC /usr/bin/cliSipie siriuslove</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Movin EZ</text> +      <action>EXEC /usr/bin/cliSipie movineasy</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Sirius Gold</text> +      <action>EXEC /usr/bin/cliSipie siriusgold</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>'60s Vibrations</text> +      <action>EXEC /usr/bin/cliSipie 60svibrations</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Totally '70s</text> +      <action>EXEC /usr/bin/cliSipie totally70s</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Big '80s</text> +      <action>EXEC /usr/bin/cliSipie big80s</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>ThePulse</text> +      <action>EXEC /usr/bin/cliSipie thepulse</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Bridge</text> +      <action>EXEC /usr/bin/cliSipie thebridge</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>BBC Radio 1</text> +      <action>EXEC /usr/bin/cliSipie bbcradio1</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Super Shuffle</text> +      <action>EXEC /usr/bin/cliSipie supershuffle</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Elvis Radio</text> +      <action>EXEC /usr/bin/cliSipie elvisradio</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Classic Vinyl</text> +      <action>EXEC /usr/bin/cliSipie classicvinyl</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Classic Rewind</text> +      <action>EXEC /usr/bin/cliSipie classicrewind</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>TheVault</text> +      <action>EXEC /usr/bin/cliSipie thevault</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Jam_ON</text> +      <action>EXEC /usr/bin/cliSipie jamon</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Spectrum</text> +      <action>EXEC /usr/bin/cliSipie thespectrum</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>BuzzSaw</text> +      <action>EXEC /usr/bin/cliSipie buzzsaw</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Octane</text> +      <action>EXEC /usr/bin/cliSipie octane</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Alt Nation</text> +      <action>EXEC /usr/bin/cliSipie altnation</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>1st Wave</text> +      <action>EXEC /usr/bin/cliSipie firstwave</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Hair Nation</text> +      <action>EXEC /usr/bin/cliSipie hairnation</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>'90s Alternative</text> +      <action>EXEC /usr/bin/cliSipie 90salternative</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Garage</text> +      <action>EXEC /usr/bin/cliSipie undergroundgarage</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Left of Center</text> +      <action>EXEC /usr/bin/cliSipie leftofcenter</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Hard Attack</text> +      <action>EXEC /usr/bin/cliSipie hardattack</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Faction</text> +      <action>EXEC /usr/bin/cliSipie faction</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Punk</text> +      <action>EXEC /usr/bin/cliSipie punk</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>The Coffee House</text> +      <action>EXEC /usr/bin/cliSipie coffeehouse</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Margaritaville</text> +      <action>EXEC /usr/bin/cliSipie radiomargaritaville</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Sirius Disorder</text> +      <action>EXEC /usr/bin/cliSipie siriusdisorder</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Reggae</text> +      <action>EXEC /usr/bin/cliSipie reggaerhythms</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Area 33</text> +      <action>EXEC /usr/bin/cliSipie area33</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Boombox</text> +      <action>EXEC /usr/bin/cliSipie boombox</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Chill</text> +      <action>EXEC /usr/bin/cliSipie chill</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>The Beat</text> +      <action>EXEC /usr/bin/cliSipie thebeat</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Strobe</text> +      <action>EXEC /usr/bin/cliSipie thestrobe</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Hip-Hop Nation</text> +      <action>EXEC /usr/bin/cliSipie hiphopnation</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>BackSpin</text> +      <action>EXEC /usr/bin/cliSipie backspin</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Shade 45</text> +      <action>EXEC /usr/bin/cliSipie shade45</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Hot Jamz</text> +      <action>EXEC /usr/bin/cliSipie hotjamz</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Heart  & Soul</text> +      <action>EXEC /usr/bin/cliSipie heartandsoul</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>SoulTown</text> +      <action>EXEC /usr/bin/cliSipie soultown</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>New Country</text> +      <action>EXEC /usr/bin/cliSipie newcountry</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Prime Country</text> +      <action>EXEC /usr/bin/cliSipie primecountry</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Roadhouse</text> +      <action>EXEC /usr/bin/cliSipie theroadhouse</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Outlaw Country</text> +      <action>EXEC /usr/bin/cliSipie outlawcountry</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Bluegrass</text> +      <action>EXEC /usr/bin/cliSipie bluegrass</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Spirit</text> +      <action>EXEC /usr/bin/cliSipie spirit</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Praise</text> +      <action>EXEC /usr/bin/cliSipie praise</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Planet Jazz</text> +      <action>EXEC /usr/bin/cliSipie planetjazz</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>JazzCafe</text> +      <action>EXEC /usr/bin/cliSipie jazzcafe</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>PureJazz</text> +      <action>EXEC /usr/bin/cliSipie purejazz</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Spa 73</text> +      <action>EXEC /usr/bin/cliSipie spa73</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Blues</text> +      <action>EXEC /usr/bin/cliSipie siriusblues</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Siriusly Sinatra</text> +      <action>EXEC /usr/bin/cliSipie siriuslysinatra</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Broadway's Best</text> +      <action>EXEC /usr/bin/cliSipie broadwaysbest</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Symphony Hall</text> +      <action>EXEC /usr/bin/cliSipie symphonyhall</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Met Opera Radio</text> +      <action>EXEC /usr/bin/cliSipie metropolitanopera</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Sirius Pops</text> +      <action>EXEC /usr/bin/cliSipie siriuspops</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Universo Latino</text> +      <action>EXEC /usr/bin/cliSipie universolatino</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Rumbon</text> +      <action>EXEC /usr/bin/cliSipie rumbon</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Martha Stewart</text> +      <action>EXEC /usr/bin/cliSipie marthastewartlivingradio</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Sirius Stars</text> +      <action>EXEC /usr/bin/cliSipie siriusstars</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>OutQ Gay Radio</text> +      <action>EXEC /usr/bin/cliSipie siriusoutq</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Patriot</text> +      <action>EXEC /usr/bin/cliSipie siriuspatriot</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Left</text> +      <action>EXEC /usr/bin/cliSipie siriusleft</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>CNN</text> +      <action>EXEC /usr/bin/cliSipie cnn</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>wrn</text> +      <action>EXEC /usr/bin/cliSipie wrn</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Blue Collar Comedy</text> +      <action>EXEC /usr/bin/cliSipie bluecollarcomedy</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Raw Dog Comedy</text> +      <action>EXEC /usr/bin/cliSipie rawdog</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Laugh Break Comedy</text> +      <action>EXEC /usr/bin/cliSipie laughbreak</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>thefoxxhole</text> +      <action>EXEC /usr/bin/cliSipie thefoxxhole</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>lime</text> +      <action>EXEC /usr/bin/cliSipie lime</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Kids Stuff</text> +      <action>EXEC /usr/bin/cliSipie kidsstuff</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Catholic Channel</text> +      <action>EXEC /usr/bin/cliSipie thecatholicchannel</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>EWTN</text> +      <action>EXEC /usr/bin/cliSipie ewtnglobal</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>christiantalk</text> +      <action>EXEC /usr/bin/cliSipie christiantalk</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Sirius NFL Radio</text> +      <action>EXEC /usr/bin/cliSipie siriusnflradio</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Maxim Radio</text> +      <action>EXEC /usr/bin/cliSipie maximradio</action> +   </button> +   <button> +      <type>MUSIC</type> +      <text>Cosmo Radio</text> +      <action>EXEC /usr/bin/cliSipie cosmopolitanradio</action> +   </button> +   <button> +     <type>TV_DELETE</type> +     <text>Stop Listening</text> +     <action>EXEC /usr/bin/sipie_kill</action> +  </button> + +</mythmenu> + diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/update.xml b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/update.xml new file mode 100644 index 0000000..5b28833 --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/update.xml @@ -0,0 +1,20 @@ +<mythmenu name="LinHES"> + +   <button> +     <type>UPGRADE</type> +     <text>Check for updates?</text> +     <action>NONE</action> +   </button> + +   <button> +     <type>UPGRADE</type> +     <text>Yes</text> +     <action>EXEC sudo /usr/LH/bin/linhes_update.sh</action> +   </button> +    +   <button> +     <type>UPGRADE</type> +     <text>No</text> +     <action>UPMENU</action> +   </button> +</mythmenu> diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/update2.xml b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/update2.xml new file mode 100644 index 0000000..2ab82ea --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/update2.xml @@ -0,0 +1,26 @@ +<mythmenu name="LinHES"> + +   <button> +     <type>UPGRADE</type> +     <text>Perform updates?</text> +     <action>NONE</action> +   </button> + +   <button> +     <type>UPGRADE</type> +     <text>Yes</text> +     <action>EXEC sudo /usr/LH/bin/linhes_update2.sh</action> +   </button> +    +   <button> +     <type>UPGRADE</type> +     <text>No</text> +     <action>UPMENU</action> +   </button> + +   <button> +     <type>UPGRADE</type> +     <text>View files to be upgraded.</text> +     <action>EXEC sudo /usr/LH/bin/linhes_update3.sh</action> +   </button> +</mythmenu> diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/util_menu.xml.patch b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/util_menu.xml.patch new file mode 100644 index 0000000..3a1072a --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/util_menu.xml.patch @@ -0,0 +1,16 @@ +--- util_menu.xml.orig	2009-03-23 18:43:18.000000000 +0000 ++++ util_menu.xml	2009-03-23 20:16:56.000000000 +0000 +@@ -56,6 +56,13 @@ +     </button> +  +     <button> ++        <type>VIDEO_SCREENSHOOTER</type> ++        <text>Thumbnail Generator</text> ++        <description>Generate thumbnail images for videos</description> ++        <action>EXEC /usr/LH/bin/shootscreens-mythtv.sh</action> ++    </button> ++ ++    <button> +         <type>SETUP_KEYS</type> +         <text>Edit Keys</text> +         <text lang="IT">Modifica Tasti</text> diff --git a/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/xmmenu.xml b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/xmmenu.xml new file mode 100644 index 0000000..6b26d11 --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/menu-xml/xmmenu.xml @@ -0,0 +1,574 @@ +<!-- Current as of April 25, 2007 --> +<mythmenu name="XM"> + +	<button> +		<type>MUSIC</type> +		<text>The '40s</text> +		<action>EXEC /usr/bin/xamp kill 4</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The '50s</text> +		<action>EXEC /usr/bin/xamp kill 5</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The '60s</text> +		<action>EXEC /usr/bin/xamp kill 6</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The '70s</text> +		<action>EXEC /usr/bin/xamp kill 7</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The '80s</text> +		<action>EXEC /usr/bin/xamp kill 8</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The '90s</text> +		<action>EXEC /usr/bin/xamp kill 9</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>America</text> +		<action>EXEC /usr/bin/xamp kill 10</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>X Country</text> +		<action>EXEC /usr/bin/xamp kill 12</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Willie's Place</text> +		<action>EXEC /usr/bin/xamp kill 13</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Bluegrass Junction</text> +		<action>EXEC /usr/bin/xamp kill 14</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Village</text> +		<action>EXEC /usr/bin/xamp kill 15</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Highway 16</text> +		<action>EXEC /usr/bin/xamp kill 16</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>US Country</text> +		<action>EXEC /usr/bin/xamp kill 17</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>20 on 20</text> +		<action>EXEC /usr/bin/xamp kill 20</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Heart</text> +		<action>EXEC /usr/bin/xamp kill 23</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Blend</text> +		<action>EXEC /usr/bin/xamp kill 25</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Flight 26</text> +		<action>EXEC /usr/bin/xamp kill 26</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Cinemagic</text> +		<action>EXEC /usr/bin/xamp kill 27</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>On Broadway</text> +		<action>EXEC /usr/bin/xamp kill 28</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>U-Pop</text> +		<action>EXEC /usr/bin/xamp kill 29</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>XM Hitlist</text> +		<action>EXEC /usr/bin/xamp kill 30</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Torch</text> +		<action>EXEC /usr/bin/xamp kill 31</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Message</text> +		<action>EXEC /usr/bin/xamp kill 32</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Spirit</text> +		<action>EXEC /usr/bin/xamp kill 33</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>enLighten</text> +		<action>EXEC /usr/bin/xamp kill 34</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Deep Tracks</text> +		<action>EXEC /usr/bin/xamp kill 40</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Boneyard</text> +		<action>EXEC /usr/bin/xamp kill 41</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>XM Liquid Metal</text> +		<action>EXEC /usr/bin/xamp kill 42</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>XMU</text> +		<action>EXEC /usr/bin/xamp kill 43</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Fred</text> +		<action>EXEC /usr/bin/xamp kill 44</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>XM Cafe</text> +		<action>EXEC /usr/bin/xamp kill 45</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Top Tracks</text> +		<action>EXEC /usr/bin/xamp kill 46</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Ethel</text> +		<action>EXEC /usr/bin/xamp kill 47</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Squizz</text> +		<action>EXEC /usr/bin/xamp kill 48</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Big Tracks</text> +		<action>EXEC /usr/bin/xamp kill 49</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Loft</text> +		<action>EXEC /usr/bin/xamp kill 50</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>XM Music Lab</text> +		<action>EXEC /usr/bin/xamp kill 51</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Verge</text> +		<action>EXEC /usr/bin/xamp kill 52</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Fungus</text> +		<action>EXEC /usr/bin/xamp kill 53</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Lucy</text> +		<action>EXEC /usr/bin/xamp kill 54</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Soul Street</text> +		<action>EXEC /usr/bin/xamp kill 60</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Flow</text> +		<action>EXEC /usr/bin/xamp kill 61</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Suite 62</text> +		<action>EXEC /usr/bin/xamp kill 62</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Groove</text> +		<action>EXEC /usr/bin/xamp kill 64</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Rhyme</text> +		<action>EXEC /usr/bin/xamp kill 65</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>RAW</text> +		<action>EXEC /usr/bin/xamp kill 66</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The City</text> +		<action>EXEC /usr/bin/xamp kill 67</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Heat</text> +		<action>EXEC /usr/bin/xamp kill 68</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Real Jazz</text> +		<action>EXEC /usr/bin/xamp kill 70</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Watercolors</text> +		<action>EXEC /usr/bin/xamp kill 71</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Beyond Jazz</text> +		<action>EXEC /usr/bin/xamp kill 72</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>High Standards</text> +		<action>EXEC /usr/bin/xamp kill 73</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Bluesville</text> +		<action>EXEC /usr/bin/xamp kill 74</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Hear Music</text> +		<action>EXEC /usr/bin/xamp kill 75</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Fine Tuning</text> +		<action>EXEC /usr/bin/xamp kill 76</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Audio Visions</text> +		<action>EXEC /usr/bin/xamp kill 77</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Escape</text> +		<action>EXEC /usr/bin/xamp kill 78</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>On The Rocks</text> +		<action>EXEC /usr/bin/xamp kill 79</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Move</text> +		<action>EXEC /usr/bin/xamp kill 80</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>BPM</text> +		<action>EXEC /usr/bin/xamp kill 81</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The System</text> +		<action>EXEC /usr/bin/xamp kill 82</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Chrome</text> +		<action>EXEC /usr/bin/xamp kill 83</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>XM-Chill</text> +		<action>EXEC /usr/bin/xamp kill 84</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Fuego</text> +		<action>EXEC /usr/bin/xamp kill 90</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Viva</text> +		<action>EXEC /usr/bin/xamp kill 91</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Aguila</text> +		<action>EXEC /usr/bin/xamp kill 92</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Caliente</text> +		<action>EXEC /usr/bin/xamp kill 94</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Luna</text> +		<action>EXEC /usr/bin/xamp kill 95</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Air Musique</text> +		<action>EXEC /usr/bin/xamp kill 100</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Joint</text> +		<action>EXEC /usr/bin/xamp kill 101</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Sur La Route</text> +		<action>EXEC /usr/bin/xamp kill 102</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>World Zone</text> +		<action>EXEC /usr/bin/xamp kill 103</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Ngoma</text> +		<action>EXEC /usr/bin/xamp kill 104</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>XM Classics</text> +		<action>EXEC /usr/bin/xamp kill 110</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Vox</text> +		<action>EXEC /usr/bin/xamp kill 112</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>XM Pops</text> +		<action>EXEC /usr/bin/xamp kill 113</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>XM Kids</text> +		<action>EXEC /usr/bin/xamp kill 116</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Bob Edwards Show</text> +		<action>EXEC /usr/bin/xamp kill 133</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>XM Comedy</text> +		<action>EXEC /usr/bin/xamp kill 150</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Laugh USA</text> +		<action>EXEC /usr/bin/xamp kill 151</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Special X</text> +		<action>EXEC /usr/bin/xamp kill 154</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Agenda</text> +		<action>EXEC /usr/bin/xamp kill 134</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Oprah and Friends</text> +		<action>EXEC /usr/bin/xamp kill 156</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>The Virus</text> +		<action>EXEC /usr/bin/xamp kill 202</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>1 Hit Wonders</text> +		<action>EXEC /usr/bin/xamp kill 300</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Metalcore</text> +		<action>EXEC /usr/bin/xamp kill 301</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>New Indie First</text> +		<action>EXEC /usr/bin/xamp kill 302</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Late Night Mix</text> +		<action>EXEC /usr/bin/xamp kill 303</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Sessions@AOL</text> +		<action>EXEC /usr/bin/xamp kill 304</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>Shuffle</text> +		<action>EXEC /usr/bin/xamp kill 305</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>New Rock First</text> +		<action>EXEC /usr/bin/xamp kill 306</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>New Country First</text> +		<action>EXEC /usr/bin/xamp kill 307</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>New Hip Hop First</text> +		<action>EXEC /usr/bin/xamp kill 308</action> +	</button> + +	<button> +		<type>MUSIC</type> +		<text>New Pop First</text> +		<action>EXEC /usr/bin/xamp kill 309</action> +	</button> + +	<button> +		<type>TV_DELETE</type> +		<text>Stop Listening</text> +		<action>EXEC /usr/bin/xamp kill</action> +	</button> + +</mythmenu> diff --git a/abs/not_built/core/mythtv/trunk/mythtv/myth.sh b/abs/not_built/core/mythtv/trunk/mythtv/myth.sh new file mode 100755 index 0000000..fb7122c --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/myth.sh @@ -0,0 +1,4 @@ +export PATH=$PATH:/usr/local/bin +# set core file size to 0 +ulimit -c 0 +export MALLOC_CHECK_=0
\ No newline at end of file diff --git a/abs/not_built/core/mythtv/trunk/mythtv/mythbackend b/abs/not_built/core/mythtv/trunk/mythtv/mythbackend new file mode 100755 index 0000000..93773a2 --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/mythbackend @@ -0,0 +1,38 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/bin/mythbackend` +case "$1" in +  start) +    stat_busy "Starting MythTV Backend" +    [ ! -e /var/run/mysqld.pid ] && echo -n "mysqld not started" && stat_fail && exit +    [ -z "$PID" ] && /usr/bin/mythbackend -d -l /var/log/mythbackend.log -v important  +    if [ $? -gt 0 ]; then +      stat_fail +    else +      echo $PID > /var/run/mythbackend.pid +      add_daemon mythbackend +      stat_done +    fi +    ;; +  stop) +    stat_busy "Stopping MythTV Backend" +    [ ! -z "$PID" ]  && kill $PID &>/dev/null +    if [ $? -gt 0 ]; then +      stat_fail +    else +      rm_daemon mythbackend +      stat_done +    fi +    ;; +  restart) +    $0 stop +    sleep 1s  +    $0 start +    ;; +  *) +    echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/abs/not_built/core/mythtv/trunk/mythtv/mythbackend.lr b/abs/not_built/core/mythtv/trunk/mythtv/mythbackend.lr new file mode 100644 index 0000000..4f218bc --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/mythbackend.lr @@ -0,0 +1,9 @@ +/var/log/mythtv/mythbackend.log { +	copytruncate +	daily +	size 10M +	missingok +	rotate 7 +	compress +	notifempty +} diff --git a/abs/not_built/core/mythtv/trunk/mythtv/mythbackend.sh b/abs/not_built/core/mythtv/trunk/mythtv/mythbackend.sh new file mode 100755 index 0000000..e7a7b70 --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/mythbackend.sh @@ -0,0 +1,117 @@ +#!/bin/bash +# +#	/etc/rc.d/init.d/mythbackend +# +# Starts the mythbackend as a daemon +# +# chkconfig: 345 90 10 +# description: Starts the mythbackend process as a daemon after the XWindows \ +#              system is started, in runlevel 5. This allows scheduled \ +#              recordings to occur without manual intervention. +# processname: mythbackend + +# Copyright (c) by Michael Thomson <linux at m-thomson dot net> +# With thanks to Stu Tomlinson <stu at nosnilmot dot com> +# +#  This program is free software; you can redistribute it and/or modify +#  it under the terms of the GNU General Public License as published by +#  the Free Software Foundation; either version 2 of the License, or +#  (at your option) any later version. +# +#  This program is distributed in the hope that it will be useful, +#  but WITHOUT ANY WARRANTY; without even the implied warranty of +#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +#  GNU General Public License for more details. +# +#  You should have received a copy of the GNU General Public License +#  along with this program; if not, write to the Free Software +#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA + +# Default values to use if none are supplied in the config file. +# User who should start the mythbackend processes +MBE_USER="root" +# Directory holding the mythbackend binary +MBE_LOCATION="/usr/local/bin/" +# Name of mythbackend binary +MBE_PROG="mythbackend" +# Full path to mythbackend log file +MBE_LOGFILE="/var/log/mythtv/mythbackend.log" + +# Source function library. +. /etc/init.d/functions + +# Source config file if available +if [ -f "/etc/sysconfig/mythbackend" ]; then +  . /etc/sysconfig/mythbackend +fi + +test -x ${MBE_LOCATION}${MBE_PROG} || exit 0 + +RETVAL=0 + +# +#	See how we were called. +# + +start() { +	# Check if mythbackend is already running +	if [ ! -f /var/lock/subsys/${MBE_PROG} ]; then +	    echo -n "Starting ${MBE_PROG}: " +	    # /usr/local/bin/mythbackend -d -l /some/log/file +	    #daemon --user ${MBE_USER} ${MBE_LOCATION}${MBE_PROG} -d -l ${MBE_LOGFILE} +	    ${MBE_LOCATION}${MBE_PROG} -d -l ${MBE_LOGFILE} +	    RETVAL=$? +	    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/${MBE_PROG} +	    echo +	fi +	return $RETVAL +} + +stop() { +	echo -n "Stopping ${MBE_PROG}: " +	killproc ${MBE_LOCATION}${MBE_PROG} +	RETVAL=$? +	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/${MBE_PROG} +	echo +        return $RETVAL +} + + +restart() { +	stop +	start +}	 + +reload() { +	restart +}	 + +status_at() { + 	status ${MBE_LOCATION}${MBE_PROG} +} + +case "$1" in +start) +	start +	;; +stop) +	stop +	;; +reload|restart) +	restart +	;; +condrestart) +	if [ -f /var/lock/subsys/${MBE_PROG} ]; then +	    restart +	fi +	;; +status) +	status_at +	;; +*) +	echo "Usage: $0 {start|stop|restart|condrestart|status}" +	exit 1 +esac + +exit $? +exit $RETVAL diff --git a/abs/not_built/core/mythtv/trunk/mythtv/mythfrontend.lr b/abs/not_built/core/mythtv/trunk/mythtv/mythfrontend.lr new file mode 100644 index 0000000..1580533 --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/mythfrontend.lr @@ -0,0 +1,9 @@ +/var/log/mythtv/mythfrontend.log { +	copytruncate +	daily +	size 10M +	missingok +	rotate 7 +	compress +	notifempty +} diff --git a/abs/not_built/core/mythtv/trunk/mythtv/mythtv.install b/abs/not_built/core/mythtv/trunk/mythtv/mythtv.install new file mode 100755 index 0000000..87507a5 --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/mythtv.install @@ -0,0 +1,30 @@ +# arg 1:  the new package version +post_install() { +	if [ ! -d /var/log/mythtv ] +	then +		mkdir -p /var/log/mythv +		chown -R mythtv /var/log/mythtv +		echo "---" > /var/log/mythtv/mythbackend.log +		chown mythtv /var/log/mythtv/mythbackend.log + +	fi +} + +post_upgrade() { +	if [ ! -d /var/log/mythtv ] +	then +		mkdir -p /var/log/mythv +		chown -R mythtv /var/log/mythtv +	fi +} + + +# arg 1:  the old package version +post_remove() { +	/bin/true + +} + +op=$1 +shift +$op $* diff --git a/abs/not_built/core/mythtv/trunk/mythtv/pretty b/abs/not_built/core/mythtv/trunk/mythtv/pretty new file mode 100755 index 0000000..7e0ab21 --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/pretty @@ -0,0 +1,9 @@ +#!/bin/bash +if [ -f /usr/share/mythtv/contrib/user_jobs/mythlink.pl ] +then +        su - mythtv -c "perl /usr/share/mythtv/contrib/user_jobs/mythlink.pl --link /myth/pretty" +elif [ -f /usr/share/mythtv/contrib/user_jobs/mythrename.pl ] +then +        su - mythtv -c "perl /usr/share/mythtv/contrib/user_jobs/mythrename.pl --link /myth/pretty" +fi + diff --git a/abs/not_built/core/mythtv/trunk/mythtv/smolt_jump.patch b/abs/not_built/core/mythtv/trunk/mythtv/smolt_jump.patch new file mode 100644 index 0000000..0fc452a --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythtv/smolt_jump.patch @@ -0,0 +1,30 @@ +Index: programs/mythfrontend/networkcontrol.cpp +=================================================================== +--- programs/mythfrontend/networkcontrol.cpp	(revision 19291) ++++ programs/mythfrontend/networkcontrol.cpp	(working copy) +@@ -83,6 +83,7 @@ +     jumpMap["zoneminderliveview"]    = "ZoneMinder Live View"; +     jumpMap["zoneminderevents"]      = "ZoneMinder Events"; +     jumpMap["snapshot"]              = "ScreenShot"; ++    jumpMap["mythsmolt"]             = "MythSmolt"; +  +     // These jump point names match the (lowercased) locations from gContext +     jumpMap["channelrecpriority"]    = "Channel Recording Priorities"; +@@ -191,7 +192,7 @@ +     pthread_create(&command_thread, NULL, CommandThread, this); +  +     gContext->addListener(this); +-     ++ +     connect(this, SIGNAL(newConnection()), this, SLOT(newConnection())); + } +  +@@ -307,7 +308,7 @@ +         cs = new QTextStream(s); +         cs->setCodec("UTF-8"); +     } +-     ++ +     if (client) +     { +         closedOldConn = true; diff --git a/abs/not_built/core/mythtv/trunk/mythvideo/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythvideo/PKGBUILD new file mode 100644 index 0000000..951a427 --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythvideo/PKGBUILD @@ -0,0 +1,51 @@ +pkgname=mythvideo-svn +pkgver=23790 +pkgrel=1 +pkgdesc="Video playback and browsing plugin for MythTV" +url="http://www.mythtv.org" +license="GPL" +arch=('i686' 'x86_64') + +depends=('mythtv-svn' 'mplayer' 'perlxml' 'perl-libwww' 'perl-uri' 'perl-xml-simple' 'ffmpeg') +conflicts=('mythvideo') +groups=('mythtv-extras-svn') + +patches=() +source=(`echo ${patches[@]:0}`) + +_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins +_svnmod=mythplugins + + +build() { + +	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod +	svn revert -R $_svnmod + +	cd $startdir/src/$_svnmod + +	echo "--------------------------applying patches----------------------------------------------------" +	for i in `echo ${patches[@]:0} ` +	do +		echo applying $i +		echo "-----------------------------" +		patch -Np0  -i ${startdir}/src/$i  || return 1 +	done +	echo "--------------------------done applying patches-----------------------------------------------" +	 +	[ "$CARCH" = "i686"   ] && ARCH="i686" +	[ "$CARCH" = "x86_64" ] && ARCH="x86-64" + +	# clean up +	make distclean + +	# configure +	./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \ +	--enable-mythvideo || return 1 + +	# build and install +	. /etc/profile +	make || return 1 +	make INSTALL_ROOT=$startdir/pkg install || return 1 + +} diff --git a/abs/not_built/core/mythtv/trunk/mythweather/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythweather/PKGBUILD new file mode 100644 index 0000000..1bc8430 --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythweather/PKGBUILD @@ -0,0 +1,51 @@ +pkgname=mythweather-svn +pkgver=23790 +pkgrel=1 +pkgdesc="Weather checking plugin for MythTV" +url="http://www.mythtv.org" +license="GPL" +arch=('i686' 'x86_64') + +depends=('mythtv-svn' 'wget') +conflicts=('mythweather') +groups=('mythtv-extras-svn') + +patches=() +source=(`echo ${patches[@]:0}`) + +_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins +_svnmod=mythplugins + + +build() { + +	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod +	svn revert -R $_svnmod + +	cd $startdir/src/$_svnmod + +	echo "--------------------------applying patches----------------------------------------------------" +	for i in `echo ${patches[@]:0} ` +	do +		echo applying $i +		echo "-----------------------------" +		patch -Np0  -i ${startdir}/src/$i  || return 1 +	done +	echo "--------------------------done applying patches-----------------------------------------------" +	 +	[ "$CARCH" = "i686"   ] && ARCH="i686" +	[ "$CARCH" = "x86_64" ] && ARCH="x86-64" + +	# clean up +	make distclean + +	# configure +	./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \ +	--enable-mythweather || return 1 + +	# build and install +	. /etc/profile +	make || return 1 +	make INSTALL_ROOT=$startdir/pkg install || return 1 + +} diff --git a/abs/not_built/core/mythtv/trunk/mythweb/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythweb/PKGBUILD new file mode 100644 index 0000000..dedfcf5 --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythweb/PKGBUILD @@ -0,0 +1,50 @@ +pkgname=mythweb-svn +pkgver=23790 +pkgrel=1 +pkgdesc="Web interface for MythTV's backend" +url="http://www.mythtv.org" +license="GPL" +arch=('i686' 'x86_64') + +depends=('mythtv-svn' 'lighttpd' 'php' 'local-website') +conflicts=('mythweb') +groups=('mythtv-extras-svn') +install=mythweb.install + +patches=() +source=(`echo ${patches[@]:0}`) + +_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins +_svnmod=mythplugins + +DOCROOT=/data/srv/httpd/htdocs/mythweb + +build() { + +	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod +	svn revert -R $_svnmod + +	cd $startdir/src/$_svnmod + +	echo "--------------------------applying patches----------------------------------------------------" +	for i in `echo ${patches[@]:0} ` +	do +		echo applying $i +		echo "-----------------------------" +		patch -Np0  -i ${startdir}/src/$i  || return 1 +	done +	echo "--------------------------done applying patches-----------------------------------------------" +	 +	[ "$CARCH" = "i686"   ] && ARCH="i686" +	[ "$CARCH" = "x86_64" ] && ARCH="x86-64" + +	mkdir -p $startdir/pkg/$DOCROOT/{image_cache,php_sessions} + +#	cp -r $startdir/src/mythplugins/mythweb/* $startdir/pkg/$DOCROOT +#   cp $startdir/src/mythplugins-$pkgver/mythweb/data/.htaccess $startdir/pkg/$DOCROOT +    rsync -arp --exclude .svn --delete-excluded   $startdir/src/mythplugins/mythweb/* $startdir/pkg/$DOCROOT +	rm $startdir/pkg/$DOCROOT/README +	chown -R http:users $startdir/pkg/$DOCROOT +	chmod g+rw $startdir/pkg/$DOCROOT/{image_cache,php_sessions,data} + +} diff --git a/abs/not_built/core/mythtv/trunk/mythweb/mythweb.install b/abs/not_built/core/mythtv/trunk/mythweb/mythweb.install new file mode 100644 index 0000000..470cbd1 --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythweb/mythweb.install @@ -0,0 +1,10 @@ +post_install() { +	echo "You must create a symlink from /home/httpd/html/mythweb/video_dir" +	echo "to your MythTV recordings directory. Don't forget to change the" +	echo "permissions so that the webserver can read those files and create" +	echo "thumbnails."   +} + +op=$1 +shift +$op $* diff --git a/abs/not_built/core/mythtv/trunk/mythzoneminder/PKGBUILD b/abs/not_built/core/mythtv/trunk/mythzoneminder/PKGBUILD new file mode 100644 index 0000000..038007b --- /dev/null +++ b/abs/not_built/core/mythtv/trunk/mythzoneminder/PKGBUILD @@ -0,0 +1,51 @@ +pkgname=mythzoneminder-svn +pkgver=23790 +pkgrel=1 +pkgdesc="Integrates ZoneMinder into MythTV" +url="http://www.mythtv.org" +license="GPL" +arch=('i686' 'x86_64') + +depends=('mythtv-svn' 'zoneminder=1.23.3') +conflicts=('mythzoneminder') +groups=('mythtv-extras-svn') + +patches=() +source=(`echo ${patches[@]:0}`) + +_svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins +_svnmod=mythplugins + + +build() { + +	svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod +	svn revert -R $_svnmod + +	cd $startdir/src/$_svnmod + +	echo "--------------------------applying patches----------------------------------------------------" +	for i in `echo ${patches[@]:0} ` +	do +		echo applying $i +		echo "-----------------------------" +		patch -Np0  -i ${startdir}/src/$i  || return 1 +	done +	echo "--------------------------done applying patches-----------------------------------------------" +	 +	[ "$CARCH" = "i686"   ] && ARCH="i686" +	[ "$CARCH" = "x86_64" ] && ARCH="x86-64" + +	# clean up +	make distclean + +	# configure +	./configure --prefix=/usr --cpu=${ARCH} --disable-all --enable-opengl \ +	--enable-mythzoneminder || return 1 + +	# build and install +	. /etc/profile +	make || return 1 +	make INSTALL_ROOT=$startdir/pkg install || return 1 + +} diff --git a/abs/not_built/core/ndiswrapper-utils/PKGBUILD b/abs/not_built/core/ndiswrapper-utils/PKGBUILD new file mode 100644 index 0000000..17126fb --- /dev/null +++ b/abs/not_built/core/ndiswrapper-utils/PKGBUILD @@ -0,0 +1,27 @@ +#$Id: PKGBUILD 77959 2010-04-19 07:17:40Z allan $ +#Maintainer: Tobias Powalowski <tpowa@archlinux.org> + +pkgname=ndiswrapper-utils +pkgver=1.56 +pkgrel=2 +pkgdesc="Binaries for ndiswrapper module" +arch=('i686' 'x86_64') +license=('GPL') +url="http://ndiswrapper.sourceforge.net" +depends=('wireless_tools' 'glibc' 'perl') +replaces=('ndiswrapper-bin') +conflicts=('ndiswrapper-bin') +source=(http://downloads.sourceforge.net/ndiswrapper/ndiswrapper-$pkgver.tar.gz) +md5sums=('1431f7ed5f8e92e752d330bbb3aed333') + +build() +{ +  cd $srcdir/ndiswrapper-$pkgver/utils +  make || return 1 +} + +package() { +  cd $srcdir/ndiswrapper-$pkgver/utils +  make DESTDIR=$pkgdir install +} + diff --git a/abs/not_built/core/ndiswrapper/PKGBUILD b/abs/not_built/core/ndiswrapper/PKGBUILD new file mode 100644 index 0000000..9bc90fd --- /dev/null +++ b/abs/not_built/core/ndiswrapper/PKGBUILD @@ -0,0 +1,42 @@ +#$Id: PKGBUILD 105330 2011-01-07 20:49:19Z tpowa $ +#Maintainer: Tobias Powalowski <tpowa@archlinux.org> + +pkgname=ndiswrapper +_kernver=2.6.39-LinHES +pkgver=1.56 +pkgrel=8 +pkgdesc="Module for NDIS (Windows Network Drivers) drivers supplied by vendors. For stock arch 2.6 kernel." +license=('GPL') +arch=(i686 x86_64) +url="http://ndiswrapper.sourceforge.net" +install="ndiswrapper.install" +depends=("ndiswrapper-utils=$pkgver" 'kernel26>=2.6.39' 'kernel26<2.6.40') +makedepends=('kernel26-headers>=2.6.39' 'kernel26-headers<2.6.40') +source=(http://downloads.sourceforge.net/sourceforge/ndiswrapper/ndiswrapper-$pkgver.tar.gz +        kernel-2.6.35.patch +        kernel-2.6.36.patch +	ndiswrapper_kernel-2.6.38.patch) +build() +{ +  cd $srcdir/ndiswrapper-$pkgver/driver +  patch -Np2 -i $startdir/kernel-2.6.35.patch +  patch -Np2 -i $startdir/kernel-2.6.36.patch +  patch -Np2 -i $startdir/ndiswrapper_kernel-2.6.38.patch +  make KVERS=$_kernver +  make DESTDIR=$pkgdir KVERS=$_kernver install +  rm $pkgdir/lib/modules/$_kernver/modules.* #wtf? + +  sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/*.install +  # move it to correct kernel directory +  mkdir -p $pkgdir/lib/modules/$_kernver/kernel/drivers/net/wireless/ndiswrapper +  mv $pkgdir/lib/modules/$_kernver/misc/* $pkgdir/lib/modules/$_kernver/kernel/drivers/net/wireless/ndiswrapper/ +  rm -r $pkgdir/lib/modules/$_kernver/misc/ +} + +md5sums=('1431f7ed5f8e92e752d330bbb3aed333' +         '0a03d613b1fd545a75c5dd1a7c2aaec4' +         'cc16ed13449f17e90865df688b180b2c') +md5sums=('1431f7ed5f8e92e752d330bbb3aed333' +         '0a03d613b1fd545a75c5dd1a7c2aaec4' +         'cc16ed13449f17e90865df688b180b2c' +         '2499a87276ae0c8ce39bea6ef942d926') diff --git a/abs/not_built/core/ndiswrapper/kernel-2.6.35.patch b/abs/not_built/core/ndiswrapper/kernel-2.6.35.patch new file mode 100644 index 0000000..1cfdab2 --- /dev/null +++ b/abs/not_built/core/ndiswrapper/kernel-2.6.35.patch @@ -0,0 +1,98 @@ +diff -uNr ndiswrapper-1.56.old/driver/usb.c ndiswrapper-1.56/driver/usb.c +--- ndiswrapper-1.56.old/driver/usb.c	2010-02-10 18:09:32.000000000 -0800 ++++ ndiswrapper-1.56/driver/usb.c	2010-07-25 02:29:25.442145846 -0700 +@@ -191,9 +191,15 @@ + 	if (wrap_urb->flags & WRAP_URB_COPY_BUFFER) { + 		USBTRACE("freeing DMA buffer for URB: %p %p", + 			 urb, urb->transfer_buffer); ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 35) + 		usb_buffer_free(IRP_WRAP_DEVICE(irp)->usb.udev, ++                                urb->transfer_buffer_length, ++                                urb->transfer_buffer, urb->transfer_dma); ++#else ++		usb_free_coherent(IRP_WRAP_DEVICE(irp)->usb.udev, + 				urb->transfer_buffer_length, + 				urb->transfer_buffer, urb->transfer_dma); ++#endif + 	} + 	if (urb->setup_packet) + 		kfree(urb->setup_packet); +@@ -303,9 +309,16 @@ + 			       || PageHighMem(virt_to_page(buf)) + #endif + 		    )) { ++ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 35) + 		urb->transfer_buffer = +-			usb_buffer_alloc(wd->usb.udev, buf_len, alloc_flags, ++                        usb_buffer_alloc(wd->usb.udev, buf_len, alloc_flags, ++                                         &urb->transfer_dma); ++#else ++		urb->transfer_buffer = ++			usb_alloc_coherent(wd->usb.udev, buf_len, alloc_flags, + 					 &urb->transfer_dma); ++#endif + 		if (!urb->transfer_buffer) { + 			WARNING("couldn't allocate dma buf"); + 			IoAcquireCancelSpinLock(&irp->cancel_irql); +diff -uNr ndiswrapper-1.56.old/driver/wrapndis.c ndiswrapper-1.56/driver/wrapndis.c +--- ndiswrapper-1.56.old/driver/wrapndis.c	2010-02-10 18:09:32.000000000 -0800 ++++ ndiswrapper-1.56/driver/wrapndis.c	2010-07-25 02:06:13.184631757 -0700 +@@ -936,6 +936,10 @@ + 	EXIT2(return); + } +  ++#ifndef netdev_mc_count ++#define netdev_mc_count(net_dev) net_dev->mc_count ++#endif ++ + static void set_multicast_list(struct ndis_device *wnd) + { + 	struct net_device *net_dev; +@@ -950,20 +954,26 @@ + 		packet_filter |= NDIS_PACKET_TYPE_PROMISCUOUS | + 			NDIS_PACKET_TYPE_ALL_LOCAL; + 	} else if (net_dev->flags & IFF_ALLMULTI || +-		   net_dev->mc_count > wnd->multicast_size) { ++		   netdev_mc_count(net_dev) > wnd->multicast_size) { + 		packet_filter |= NDIS_PACKET_TYPE_ALL_MULTICAST; + 		TRACE2("0x%08x", packet_filter); +-	} else if (net_dev->mc_count > 0) { ++	} else if (netdev_mc_count(net_dev) > 0) { + 		int i, size; + 		char *buf; ++#ifndef netdev_for_each_mc_addr + 		struct dev_mc_list *mclist; +-		size = min(wnd->multicast_size, net_dev->mc_count); +-		TRACE2("%d, %d", wnd->multicast_size, net_dev->mc_count); ++#else ++		struct netdev_hw_addr *mclist; ++#endif ++ ++		size = min(wnd->multicast_size, netdev_mc_count(net_dev)); ++		TRACE2("%d, %d", wnd->multicast_size, netdev_mc_count(net_dev)); + 		buf = kmalloc(size * ETH_ALEN, GFP_KERNEL); + 		if (!buf) { + 			WARNING("couldn't allocate memory"); + 			EXIT2(return); + 		} ++#ifndef netdev_for_each_mc_addr + 		mclist = net_dev->mc_list; + 		for (i = 0; i < size && mclist; mclist = mclist->next) { + 			if (mclist->dmi_addrlen != ETH_ALEN) +@@ -972,6 +982,15 @@ + 			TRACE2(MACSTRSEP, MAC2STR(mclist->dmi_addr)); + 			i++; + 		} ++#else ++		i = 0; ++		netdev_for_each_mc_addr(mclist, net_dev){ ++                        memcpy(buf + i++ * ETH_ALEN, ++                               mclist->addr, ETH_ALEN); ++                        TRACE2(MACSTRSEP, MAC2STR(mclist->addr)); ++ ++		} ++#endif + 		res = mp_set(wnd, OID_802_3_MULTICAST_LIST, buf, i * ETH_ALEN); + 		if (res == NDIS_STATUS_SUCCESS && i > 0) + 			packet_filter |= NDIS_PACKET_TYPE_MULTICAST; diff --git a/abs/not_built/core/ndiswrapper/kernel-2.6.36.patch b/abs/not_built/core/ndiswrapper/kernel-2.6.36.patch new file mode 100644 index 0000000..63de303 --- /dev/null +++ b/abs/not_built/core/ndiswrapper/kernel-2.6.36.patch @@ -0,0 +1,27 @@ +--- ndiswrapper-1.56.orig/driver/loader.c	2010-02-11 03:09:32.000000000 +0100 ++++ ndiswrapper-1.56/driver/loader.c	2010-10-24 01:38:13.000000000 +0200 +@@ -750,13 +750,13 @@ + } +  + /* called with loader_mutex is down */ +-static int wrapper_ioctl(struct inode *inode, struct file *file, ++static long wrapper_unlocked_ioctl(struct file *file, + 			 unsigned int cmd, unsigned long arg) + { + 	struct load_driver *load_driver; + 	struct load_device load_device; + 	struct load_driver_file load_bin_file; +-	int ret; ++	long ret; + 	void __user *addr = (void __user *)arg; +  + 	ENTER1("cmd: %u", cmd); +@@ -831,7 +831,7 @@ +  + static struct file_operations wrapper_fops = { + 	.owner          = THIS_MODULE, +-	.ioctl		= wrapper_ioctl, ++	.unlocked_ioctl	= wrapper_unlocked_ioctl, + 	.release	= wrapper_ioctl_release, + }; +  diff --git a/abs/not_built/core/ndiswrapper/ndiswrapper.install b/abs/not_built/core/ndiswrapper/ndiswrapper.install new file mode 100644 index 0000000..a45a459 --- /dev/null +++ b/abs/not_built/core/ndiswrapper/ndiswrapper.install @@ -0,0 +1,23 @@ +# arg 1:  the new package version +post_install() +{ +  ndiswrapper -m +  KERNEL_VERSION='2.6.39-LinHES' +  depmod -ae $KERNEL_VERSION > /dev/null 2>&1  +} + +# arg 1:  the new package version +# arg 2:  the old package version +post_upgrade() +{ +  ndiswrapper -m +  KERNEL_VERSION='2.6.39-LinHES' +  depmod -ae $KERNEL_VERSION > /dev/null 2>&1  +} + +# arg 1:  the old package version +post_remove() +{ +  KERNEL_VERSION='2.6.39-LinHES' +  depmod -ae $KERNEL_VERSION > /dev/null 2>&1 +} diff --git a/abs/not_built/core/ndiswrapper/ndiswrapper_kernel-2.6.38.patch b/abs/not_built/core/ndiswrapper/ndiswrapper_kernel-2.6.38.patch new file mode 100644 index 0000000..15c4f42 --- /dev/null +++ b/abs/not_built/core/ndiswrapper/ndiswrapper_kernel-2.6.38.patch @@ -0,0 +1,24 @@ +--- ndiswrapper-1.56.old/driver/wrapndis.c   (revision 2728) ++++ ndiswrapper-1.56/driver/wrapndis.c   (revision 2729) +@@ -13,16 +13,16 @@ +  * +  */ + ++#include <linux/inetdevice.h> ++#include <linux/ip.h> ++#include <linux/tcp.h> ++#include <linux/udp.h> ++#include <linux/in.h> + #include "ndis.h" + #include "iw_ndis.h" + #include "pnp.h" + #include "loader.h" + #include "wrapndis.h" +-#include <linux/inetdevice.h> +-#include <linux/ip.h> +-#include <linux/tcp.h> +-#include <linux/udp.h> +-#include <linux/in.h> + #include "wrapper.h" + + /* Functions callable from the NDIS driver */ diff --git a/abs/not_built/core/netcfg/PKGBUILD b/abs/not_built/core/netcfg/PKGBUILD new file mode 100644 index 0000000..7e7ea7b --- /dev/null +++ b/abs/not_built/core/netcfg/PKGBUILD @@ -0,0 +1,27 @@ +# $Id: PKGBUILD 126281 2011-06-04 04:21:49Z eric $ +# Maintainer: James Rayner <james@archlinux.org> + +pkgname=netcfg +pkgver=2.5.5 +pkgrel=1 +pkgdesc="Network configuration and profile scripts" +url="http://archlinux.org" +license=("BSD") +backup=(etc/iftab) +depends=(wireless_tools coreutils "wpa_supplicant>=0.6.8" net-tools "dhcpcd>=4.0" "iproute2") +optdepends=('dialog: Required for menu based profile selector' +            'wpa_actiond: Required for automatic wireless connection with rc.d/net-auto-wireless' +            'ifplugd: Required for automatic wired connection with rc.d/net-auto-wired') +source=(ftp://ftp.archlinux.org/other/netcfg/netcfg-${pkgver}.tar.gz) +arch=(any) +md5sums=('6e98bae291eb206d92f9a92bbab8fe80') + +package() { +  cd "$srcdir/netcfg-${pkgver}" + +  make DESTDIR="$pkgdir" install +  install -D -m644 LICENSE "$pkgdir/usr/share/licenses/netcfg/LICENSE" +  ln -s /usr/lib/network/connections/wireless "$pkgdir/usr/lib/network/connections/wireless-dbus" +  ln -s /usr/bin/netcfg2 "$pkgdir/usr/bin/netcfg" +} + diff --git a/abs/not_built/core/netkit-telnet-ssl/PKGBUILD b/abs/not_built/core/netkit-telnet-ssl/PKGBUILD new file mode 100644 index 0000000..37fb577 --- /dev/null +++ b/abs/not_built/core/netkit-telnet-ssl/PKGBUILD @@ -0,0 +1,33 @@ +# Maintainer: <alexandre.becoulet@free.fr> +# Contributor: <netbug@ftp.uk.linux.org> +# Contributor: Fluke <fluke.l at gmail.com> +pkgname=netkit-telnet-ssl +pkgver=0.17.24+0.1 +pkgrel=2 +pkgdesc="telnet client and server with ssl enabled" +arch=('i686' 'x86_64') +license=('BSD') +url=("http://www.hcs.harvard.edu/~dholland/computers/netkit.html") +source=(http://ftp.de.debian.org/debian/pool/main/n/${pkgname}/${pkgname}_${pkgver}.orig.tar.gz +	netkit-telnet-ssl-0.17.24+0.1_arch.diff +	telnet.xinetd) +depends=('glibc' 'openssl' 'ncurses') +replaces=('netkit-telnet') +md5sums=('43a402139ed6b86434fdb83256feaad8' +	'd51bf898269a79a2de77d1134516c209' +	'ca38af6f1346ae90b2cb1e160858b453') +install=netkit-telnet-ssl.install + +build() { +        cd ${srcdir}/${pkgname}-${pkgver}.orig +        patch -p1 < ../netkit-telnet-ssl-0.17.24+0.1_arch.diff +        ./configure --prefix=/usr --installroot=${pkgdir} +        make || return 1 +} +package() { +        cd ${srcdir}/${pkgname}-${pkgver}.orig +        mkdir -p ${pkgdir}/usr/{bin,sbin,man/man1,man/man5,man/man8} ${pkgdir}/etc/xinetd.d + +        make install || return 1 +        install -m644 ${srcdir}/telnet.xinetd ${pkgdir}/etc/xinetd.d/telnet-ssl +} diff --git a/abs/not_built/core/netkit-telnet-ssl/netkit-telnet-ssl-0.17.24+0.1_arch.diff b/abs/not_built/core/netkit-telnet-ssl/netkit-telnet-ssl-0.17.24+0.1_arch.diff new file mode 100644 index 0000000..17b3c3c --- /dev/null +++ b/abs/not_built/core/netkit-telnet-ssl/netkit-telnet-ssl-0.17.24+0.1_arch.diff @@ -0,0 +1,2591 @@ +Only in netkit-telnet-ssl-0.17.24+0.1: debian +diff -ur netkit-telnet-ssl-0.17.24+0.1/libtelnet/auth.c netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/auth.c +--- netkit-telnet-ssl-0.17.24+0.1/libtelnet/auth.c	2004-05-27 11:47:25.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/auth.c	2010-05-11 13:44:40.190322666 +0200 +@@ -37,6 +37,9 @@ +  */ +  + #ifndef lint ++#ifdef __GNUC__ ++__attribute__ ((unused)) ++#endif	/* __GNUC__ */ + static char sccsid[] = "@(#)auth.c	5.2 (Berkeley) 3/22/91"; + #endif /* not lint */ +  +@@ -83,8 +86,11 @@ +  + #define	typemask(x)		(1<<((x)-1)) +  ++int auth_onoff(const char *type, int on); ++ ++ + int auth_debug_mode = 0; +-static 	char	*Name = "Noname"; ++static 	const char *Name = "Noname"; + static	int	Server = 0; + static	Authenticator	*authenticated = 0; + static	int	authenticating = 0; +@@ -170,7 +176,7 @@ +  + 	void + auth_init(name, server) +-	char *name; ++	const char *name; + 	int server; + { + 	Authenticator *ap = authenticators; +@@ -241,7 +247,7 @@ +  + 	int + auth_onoff(type, on) +-	char *type; ++	const char *type; + 	int on; + { + 	int i, mask = -1; +@@ -335,7 +341,7 @@ + 		} + 		*e++ = IAC; + 		*e++ = SE; +-		writenet(str_request, e - str_request); ++		writenet((char *) str_request, e - str_request); + 		printsub('>', &str_request[2], e - str_request - 2); + 	} + } +@@ -424,7 +430,7 @@ + 		} + 		auth_send_data += 2; + 	} +-	writenet(str_none, sizeof(str_none)); ++	writenet((char *) str_none, sizeof(str_none)); + 	printsub('>', &str_none[2], sizeof(str_none) - 2); + 	if (auth_debug_mode) + 		printf(">>>%s: Sent failure message\r\n", Name); +@@ -456,7 +462,7 @@ + 		return; + 	} +  +-	if (ap = findauthenticator(data[0], data[1])) { ++	if ((ap = findauthenticator(data[0], data[1]))) { + 		if (ap->is) + 			(*ap->is)(ap, data+2, cnt-2); + 	} else if (auth_debug_mode) +@@ -474,7 +480,7 @@ + 	if (cnt < 2) + 		return; +  +-	if (ap = findauthenticator(data[0], data[1])) { ++	if ((ap = findauthenticator(data[0], data[1]))) { + 		if (ap->reply) + 			(*ap->reply)(ap, data+2, cnt-2); + 	} else if (auth_debug_mode) +@@ -487,7 +493,7 @@ + 	unsigned char *data; + 	int cnt; + { +-	Authenticator *ap; ++  /*	Authenticator *ap; */ + 	unsigned char savename[256]; +  + 	if (cnt < 1) { +@@ -505,7 +511,7 @@ + 	savename[cnt] = '\0';	/* Null terminate */ + 	if (auth_debug_mode) + 		printf(">>>%s: Got NAME [%s]\r\n", Name, savename); +-	auth_encrypt_user(savename); ++	auth_encrypt_user((char *)savename); + } +  + 	int +@@ -526,7 +532,7 @@ + 	} + 	*e++ = IAC; + 	*e++ = SE; +-	writenet(str_request, e - str_request); ++	writenet((char *) str_request, e - str_request); + 	printsub('>', &str_request[2], e - &str_request[2]); + 	return(1); + } +@@ -542,6 +548,9 @@ + } +  + 	/* ARGSUSED */ ++#ifdef __GNUC__ ++__attribute__ ((used)) ++#endif	/* __GNUC__ */ + 	static void + auth_intr(sig) + 	int sig; +diff -ur netkit-telnet-ssl-0.17.24+0.1/libtelnet/auth-proto.h netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/auth-proto.h +--- netkit-telnet-ssl-0.17.24+0.1/libtelnet/auth-proto.h	2004-05-27 11:47:25.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/auth-proto.h	2010-05-11 13:44:40.183654321 +0200 +@@ -68,7 +68,7 @@ + #if	defined(AUTHENTICATE) + Authenticator *findauthenticator P((int, int)); +  +-void auth_init P((char *, int)); ++void auth_init P((const char *, int)); + int auth_cmd P((int, char **)); + void auth_request P((void)); + void auth_send P((unsigned char *, int)); +@@ -123,7 +123,9 @@ + int auth_ssl_status P((Authenticator *, char *, int)); + void auth_ssl_printsub P((unsigned char *, int, unsigned char *, int)); + #endif /* USE_SSL */ +-  ++ ++extern void printsub P((char, unsigned char *, int)); ++extern int writenet P((char *, int)); + #endif + #ifdef __cplusplus + } +diff -ur netkit-telnet-ssl-0.17.24+0.1/libtelnet/Makefile netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/Makefile +--- netkit-telnet-ssl-0.17.24+0.1/libtelnet/Makefile	2004-05-27 11:47:25.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/Makefile	2010-05-11 13:45:28.073664102 +0200 +@@ -15,5 +15,8 @@ + 		ranlib lib${LIB}.a; \ + 	fi; +  ++install: ++	@echo "nothing to be installed from libtelnet" ++ + clean: + 	rm -f *.o lib${LIB}.a +diff -ur netkit-telnet-ssl-0.17.24+0.1/libtelnet/misc.c netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/misc.c +--- netkit-telnet-ssl-0.17.24+0.1/libtelnet/misc.c	2004-05-27 11:47:26.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/misc.c	2010-05-11 13:44:40.190322666 +0200 +@@ -32,6 +32,9 @@ +  */ +  + #ifndef lint ++#ifdef __GNUC__ ++__attribute__ ((unused)) ++#endif	/* __GNUC__ */ + static char sccsid[] = "@(#)misc.c	5.1 (Berkeley) 2/28/91"; + #endif /* not lint */ +  +@@ -54,7 +57,12 @@ +  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +  */ +  ++#include <stdio.h> ++#include <stdlib.h> ++ + #include "misc.h" ++#include "auth.h" ++#include "auth-proto.h" +  + char *RemoteHostName; + char *LocalHostName; +@@ -65,7 +73,7 @@ + auth_encrypt_init(local, remote, name, server) + 	char *local; + 	char *remote; +-	char *name; ++	const char *name; + 	int server; + { + 	RemoteHostName = remote; +diff -ur netkit-telnet-ssl-0.17.24+0.1/libtelnet/misc-proto.h netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/misc-proto.h +--- netkit-telnet-ssl-0.17.24+0.1/libtelnet/misc-proto.h	2004-05-27 11:47:26.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/misc-proto.h	2010-05-11 13:44:40.190322666 +0200 +@@ -68,7 +68,7 @@ + extern "C" { + #endif +  +-void auth_encrypt_init P((char *, char *, char *, int)); ++void auth_encrypt_init P((char *, char *, const char *, int)); + void auth_encrypt_connect P((int)); + void auth_encrypt_user P((const char *name)); + void printd P((unsigned char *, int)); +diff -ur netkit-telnet-ssl-0.17.24+0.1/libtelnet/sslapp.h netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/sslapp.h +--- netkit-telnet-ssl-0.17.24+0.1/libtelnet/sslapp.h	2004-05-27 11:47:26.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/sslapp.h	2010-05-11 13:44:40.200330208 +0200 +@@ -45,6 +45,7 @@ + #include "x509.h" + #include "ssl.h" + #define OLDPROTO NOPROTO ++#undef NOPROTO + #define NOPROTO + #include "err.h" + #undef NOPROTO +@@ -72,7 +73,7 @@ + /* we hide all the initialisation code in a separate file now */ + extern int do_ssleay_init(int server); +  +-extern int display_connect_details(SSL *ssl_con, int verbose); ++extern void display_connect_details(SSL *ssl_con, int verbose); + extern int server_verify_callback(); + extern int client_verify_callback(); +  +diff -ur netkit-telnet-ssl-0.17.24+0.1/libtelnet/ssl.c netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/ssl.c +--- netkit-telnet-ssl-0.17.24+0.1/libtelnet/ssl.c	2004-05-27 11:47:26.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/libtelnet/ssl.c	2010-05-11 13:44:40.200330208 +0200 +@@ -47,6 +47,9 @@ + #include <string.h> + #endif +  ++#include <unistd.h> ++#include <openssl/err.h> ++ + #include "auth.h" + #include "misc.h" +  +@@ -91,11 +94,12 @@ + #define VERIFY_ROOT_OK VERIFY_OK + #endif +  ++extern int netflush(void); ++ + extern int auth_debug_mode; +-static auth_ssl_valid = 0; ++static int auth_ssl_valid = 0; + static char *auth_ssl_name = 0;    /* this holds the oneline name */ +  +-extern BIO *bio_err; + extern int ssl_only_flag; + extern int ssl_debug_flag; + extern int ssl_active_flag; +@@ -120,6 +124,9 @@ +  + BIO *bio_err=NULL; +  ++int auth_failed=0; ++ ++ + /* compile this set to 1 to negotiate SSL but not actually start it */ + static int ssl_dummy_flag=0; +  +@@ -135,7 +142,7 @@ +  * telnet connect if we are talking straight ssl with no telnet +  * protocol --tjh +  */ +-int ++void + display_connect_details(ssl_con,verbose) + SSL *ssl_con; + int verbose; +@@ -152,7 +159,7 @@ + 	/* grab the full list of ciphers */ + 	i=0; + 	buf[0]='\0'; +-	while((p=SSL_get_cipher_list(ssl_con,i++))!=NULL) { ++	while((p=(char *)SSL_get_cipher_list(ssl_con,i++))!=NULL) { + 	  if (i>0) + 	    strcat(buf,":"); + 	  strcat(buf,p); +@@ -230,7 +237,7 @@ +         *p++ = SE; + 	if (str_data[3] == TELQUAL_IS) + 		printsub('>', &str_data[2], p - (&str_data[2])); +-        return(writenet(str_data, p - str_data)); ++        return(writenet((char *) str_data, p - str_data)); + } +  + int auth_ssl_init(ap, server) +@@ -280,7 +287,7 @@ + unsigned char *data; + int cnt; + { +-	int valid; ++  /*	int valid; */ +  + 	if (cnt-- < 1) + 		return; +@@ -364,7 +371,7 @@ + unsigned char *data; + int cnt; + { +-	int i; ++  /*	int i; */ + 	int status; +  + 	if (cnt-- < 1) +@@ -389,16 +396,13 @@ + 		    SSL_set_verify(ssl_con,ssl_verify_flag, + 		    				client_verify_callback); + 		    if ((status = SSL_connect(ssl_con)) <= 0) { +-			fprintf(stderr,"[SSL - FAILED (%d)]\r\n", status); +-			fflush(stderr); +- +-			perror("telnet: Unable to ssl_connect to remote host"); ++			auth_finished(0,AUTH_REJECT); +  ++			fprintf(stderr,"[SSL - FAILED (%d)]\r\n", status); ++			fprintf(stderr,"telnet: Unable to ssl_connect to remote host\n"); + 			ERR_print_errors(bio_err); +- +-			/* don't know what I "should" be doing here ... */ +- +-			auth_finished(0,AUTH_REJECT); ++			fflush(stderr); ++			auth_failed=1; + 			return; + 		    } else { +  +@@ -452,7 +456,7 @@ + 	 */ + 	if (ssl_certsok_flag) { + 	    user_fp = fopen("/etc/ssl.users", "r"); +-	    if (!auth_ssl_name || !user_fp) { ++	    if (!auth_ssl_name || !user_fp || !UserNameRequested) { + 	        /* If we haven't received a certificate, then don't  + 		 * return AUTH_VALID.  + 		 */ +@@ -486,7 +490,7 @@ + 			cp = strchr(n, ','); + 			if (cp) + 			    *cp++ = '\0'; +-			if (!UserNameRequested ||  ++			if (UserNameRequested && + 			            !strcmp(UserNameRequested, n)) { + 			    strcpy(name, n); + 			    fclose(user_fp); +@@ -543,7 +547,7 @@ + 	default: + 		sprintf(lbuf, " %d (unknown)", data[3]); + 		strncpy((char *)buf, lbuf, buflen); +-	common2: ++/*	common2: */ + 		BUMP(buf, buflen); + 		for (i = 4; i < cnt; i++) { + 			sprintf(lbuf, " %d", data[i]); +@@ -568,7 +572,7 @@ + #endif /* SSLEAY8 */ + { +     static char *saved_subject=NULL; +-    X509 *peer; ++    /*    X509 *peer; */ +     char *subject, *issuer; + #ifdef SSLEAY8 +     int depth,error; +@@ -715,8 +719,8 @@ + int depth, error; + #endif /* SSLEAY8 */ + { +-    X509 *peer; +-    char *subject, *issuer; ++  /*    X509 *peer; */ ++    char *subject, *issuer, *cnsubj; + #ifdef SSLEAY8 +     int depth,error; +     char *xs; +@@ -727,13 +731,13 @@ +  + #endif /* SSLEAY8 */ +  +-#ifdef LOCAL_DEBUG +-    fprintf(stderr,"ssl:client_verify_callback:depth=%d ok=%d err=%d-%s\n", +-    	depth,ok,error,X509_cert_verify_error_string(error)); +-    fflush(stderr); +-#endif /* LOCAL_DEBUG */ ++    if(ssl_debug_flag && !ok) { ++      fprintf(stderr,"ssl:client_verify_callback:depth=%d ok=%d err=%d-%s\n", ++	      depth,ok,error,X509_verify_cert_error_string(error)); ++      fflush(stderr); ++    } +  +-    subject=issuer=NULL; ++    subject=issuer=cnsubj=NULL; +  +     /* first thing is to have a meaningful name for the current +      * certificate that is being verified ... and if we cannot +@@ -761,60 +765,77 @@ + 	fflush(stderr); +     } +  +-    /* if the server is using a self signed certificate then  +-     * we need to decide if that is good enough for us to  +-     * accept ...  +-     */ +-    if (error==VERIFY_ERR_DEPTH_ZERO_SELF_SIGNED_CERT) { +-	if (ssl_cert_required) { +-	    /* make 100% sure that in secure more we drop the  +-	     * connection if the server does not have a  +-	     * real certificate! +-	     */ +-	    fprintf(stderr,"SSL: rejecting connection - server has a self-signed certificate\n"); +-	    fflush(stderr); +- +-            /* sometimes it is really handy to be able to debug things +-	     * and still get a connection! +-	     */ +-	    if (ssl_debug_flag) { +-		fprintf(stderr,"SSL: debug -> ignoring cert required!\n"); +-		fflush(stderr); +-		ok=1; +-	    } else { +-		ok=0; +-	    } +-	    goto return_time; +-	} else { +-	    ok=1; +-	    goto return_time; +-	} ++    /* verify commonName matches hostname */ ++    if(ssl_cert_required && depth == 0) { ++      char *cn,*p;	 ++	   ++      cnsubj=strdup(subject); ++      if(cnsubj == NULL) { ++	fprintf(stderr,"SSL: Out of memory.\n"); ++	ok=0; ++	goto return_time; ++      } ++      cn=strstr(cnsubj,"/CN="); ++      if(cn == NULL) { ++	fprintf(stderr,"SSL: Cannot extract CN from certificate subject.\n"); ++	ok=0; ++	goto return_time; ++      } ++      cn+=4; /* skip /CN= */ ++      p=strchr(cn,'/'); ++      if(p != NULL) { ++	*p='\0'; ++      } ++      if(strcasecmp(cn,RemoteHostName) != 0) { ++	fprintf(stderr,"SSL: Certificate CN (%s) does not match hostname (%s)\n", ++		cn,RemoteHostName); ++	ok=0; ++	goto return_time; ++      } +     } +  +-    /* if we have any form of error in secure mode we reject the connection */ +-    if (! ((error==VERIFY_OK)||(error==VERIFY_ROOT_OK)) ) { +-	if (ssl_cert_required) { +-	    fprintf(stderr,"SSL: rejecting connection - "); +-	    if (error==VERIFY_ERR_UNABLE_TO_GET_ISSUER) { +-		fprintf(stderr,"unknown issuer: %s\n",issuer); +-	    } else { +-		ERR_print_errors(bio_err); +-	    } +-	    fflush(stderr); +-	    ok=0; +-	    goto return_time; +-	} else { +-	    /* be nice and display a lot more meaningful stuff  +-	     * so that we know which issuer is unknown no matter +-	     * what the callers options are ... +-	     */ +-	    if (error==VERIFY_ERR_UNABLE_TO_GET_ISSUER) { +-		fprintf(stderr,"SSL: unknown issuer: %s\n",issuer); +-		fflush(stderr); +-	    } +-	} ++    if((error==VERIFY_OK) || (error==VERIFY_ROOT_OK)) { ++      goto return_time; +     } +  ++    switch(error) { ++    case VERIFY_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: ++      fprintf(stderr,"SSL: Server has a self-signed certificate\n"); ++    case VERIFY_ERR_UNABLE_TO_GET_ISSUER: ++      fprintf(stderr,"SSL: unknown issuer: %s\n",issuer); ++      break; ++    case X509_V_ERR_CERT_NOT_YET_VALID: ++      fprintf(stderr,"SSL: Certificate not yet valid\n"); ++      BIO_printf(bio_err,"notBefore="); ++      ASN1_TIME_print(bio_err,X509_get_notBefore(ctx->current_cert)); ++      BIO_printf(bio_err,"\n"); ++      break; ++    case X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: ++      fprintf(stderr,"SSL: Error in certificate notBefore field\n"); ++      BIO_printf(bio_err,"notBefore="); ++      ASN1_TIME_print(bio_err,X509_get_notBefore(ctx->current_cert)); ++      BIO_printf(bio_err,"\n"); ++      break; ++    case X509_V_ERR_CERT_HAS_EXPIRED: ++      fprintf(stderr,"SSL: Certificate has expired\n"); ++      BIO_printf(bio_err,"notAfter="); ++      ASN1_TIME_print(bio_err,X509_get_notAfter(ctx->current_cert)); ++      BIO_printf(bio_err,"\n"); ++      break; ++    case X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: ++      fprintf(stderr,"SSL: Error in certificate notAfter field\n"); ++      BIO_printf(bio_err,"notAfter="); ++      ASN1_TIME_print(bio_err,X509_get_notAfter(ctx->current_cert)); ++      BIO_printf(bio_err,"\n"); ++      break; ++    default: ++      fprintf(stderr,"SSL: %s (%d)\n", X509_verify_cert_error_string(error),error); ++      break; ++    } ++ ++    /* If we are here there was an error */ ++    ok=0; ++     + return_time: ; +  +     /* clean up things */ +@@ -822,7 +843,20 @@ + 	free(subject); +     if (issuer!=NULL) + 	free(issuer); +- ++    if (cnsubj!=NULL) ++	free(cnsubj); ++    if(!ok && ssl_cert_required) { ++      if(ssl_debug_flag) { ++	fprintf(stderr,"SSL: debug -> ignoring cert required!\n"); ++	ok=1; ++      } ++      else { ++	fprintf(stderr,"SSL: Rejecting connection\n"); ++	ok=0; ++      } ++    } ++    fflush(stderr); ++       +     return ok; + } +  +diff -ur netkit-telnet-ssl-0.17.24+0.1/Makefile netkit-telnet-ssl-0.17.24+0.1.orig/Makefile +--- netkit-telnet-ssl-0.17.24+0.1/Makefile	2004-05-27 11:47:25.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/Makefile	2010-05-11 14:19:36.673445641 +0200 +@@ -1,7 +1,7 @@ + # You can do "make SUB=blah" to make only a few, or edit here, or both + # You can also run make directly in the subdirs you want. +  +-SUB =   telnet telnetd telnetlogin ++SUB =   libtelnet telnet telnetd +  + %.build: + 	(cd $(patsubst %.build, %, $@) && $(MAKE)) +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/authenc.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/authenc.cc +--- netkit-telnet-ssl-0.17.24+0.1/telnet/authenc.cc	2000-07-23 05:24:53.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/authenc.cc	2010-05-11 13:44:40.056990450 +0200 +@@ -35,7 +35,7 @@ +  * From: @(#)authenc.c	5.1 (Berkeley) 3/1/91 +  */ + char au_rcsid[] =  +-  "$Id: authenc.cc,v 1.6 2000/07/23 03:24:53 dholland Exp $"; ++  "$Id: authenc.cc,v 1.1 2004-10-14 13:19:53 ianb Exp $"; +  + #if	defined(ENCRYPT) || defined(AUTHENTICATE) + #include <sys/types.h> +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/commands.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/commands.cc +--- netkit-telnet-ssl-0.17.24+0.1/telnet/commands.cc	2004-05-27 11:47:26.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/commands.cc	2010-05-11 13:44:40.060322107 +0200 +@@ -35,7 +35,7 @@ +  * From: @(#)commands.c	5.5 (Berkeley) 3/22/91 +  */ + char cmd_rcsid[] =  +-  "$Id: commands.cc,v 1.34 2000/07/23 04:16:24 dholland Exp $"; ++  "$Id: commands.cc,v 1.13 2007-10-04 21:38:18 ianb Exp $"; +  + #include <string.h> +  +@@ -653,6 +653,21 @@ +     return 1; + } +  ++#ifdef AUTHENTICATE ++ ++static int tog_autologin(int) { ++  if(autologin == 0) { ++    autologin=1; ++    env_export("USER"); ++  } ++  else { ++    autologin=0; ++    env_unexport("USER"); ++  }	 ++  return 1; ++} ++ ++#endif /* AUTHENTICATE */ +  + static int netdata;		/* Print out network data flow */ + static int prettydump;	/* Print "netdata" output in user readable format */ +@@ -682,13 +697,13 @@ +  + #if	defined(AUTHENTICATE) +     { "autologin", "automatic sending of login and/or authentication info", +-      NULL, &autologin, ++      tog_autologin, NULL, +       "send login name and/or authentication information" }, +     { "authdebug", "Toggle authentication debugging", +       auth_togdebug, NULL, +       "print authentication debugging information" }, + #endif +-#if 0 ++#ifdef ENCRYPT +     { "autoencrypt", "automatic encryption of data stream", +       EncryptAutoEnc, NULL, +       "automatically encrypt output" }, +@@ -701,7 +716,7 @@ +     { "encdebug", "Toggle encryption debugging", +       EncryptDebug, NULL, +       "print encryption debugging information" }, +-#endif ++#endif /* ENCRYPT */ +  +     { "skiprc", "don't read the telnetrc files", +       NULL, &skiprc, +@@ -750,7 +765,7 @@ +       NULL, &showoptions, +       "show option processing" }, +  +-    { "termdata", "(debugging) toggle printing of hexadecimal terminal data", ++    { "termdata", "toggle printing of hexadecimal terminal data (debugging)", +       NULL, &termdata, +       "print hexadecimal representation of terminal traffic" }, +  +@@ -1357,9 +1372,9 @@ + 	    else + 		shellname++; + 	    if (argc > 1) +-		execl(shellp, shellname, "-c", &saveline[1], 0); ++		execl(shellp, shellname, "-c", &saveline[1], (char *) NULL); + 	    else +-		execl(shellp, shellname, 0); ++		execl(shellp, shellname, (char *) NULL); + 	    perror("Execl"); + 	    _exit(1); + 	} +@@ -1510,10 +1525,10 @@ +  + #if	defined(AUTHENTICATE) + struct authlist { +-	char	*name; +-	char	*help; +-	int	(*handler)(const char *, const char *); +-	int	narg; ++    const char	*name; ++    const char	*help; ++    int	(*handler)(const char *, const char *); ++    int	narg; + }; +  + static int auth_help (const char *, const char *); +@@ -1833,8 +1848,22 @@ + 	if (*portp == '-') { + 	    portp++; + 	    telnetport = 1; +-	} else ++	} else { + 	    telnetport = 0; ++	    if (*portp >='0' && *portp<='9') { ++	       char *end; ++	       long int p; ++ ++	       p=strtol(portp, &end, 10); ++	       if (ERANGE==errno && (LONG_MIN==p || LONG_MAX==p)) { ++	          fprintf(stderr, "telnet: port %s overflows\n", portp); ++		  return 0; ++	       } else if (p<=0 || p>=65536) { ++	          fprintf(stderr, "telnet: port %s out of range\n", portp); ++		  return 0; ++	       } ++	    } ++	} +     } +     else { + 	portp = "telnet"; +@@ -1860,7 +1889,7 @@ + 	if (res < 0) + 	    return 0; +     } +-         ++ +     /* Resolve both the host and service simultaneously. */ +     res = getaddrinfo(resolv_hostp, portp, &hints, &hostaddr); +     if (res == EAI_NONAME) { +@@ -1902,6 +1931,16 @@ + 		    NI_NUMERICHOST | NI_NUMERICSERV); +  + 	printf("Trying %s...\n", name); ++ ++	if (tmpaddr->ai_canonname == 0) { ++	  hostname = new char[strlen(hostp)+1]; ++	  strcpy(hostname, hostp); ++	} ++	else { ++	  hostname = new char[strlen(tmpaddr->ai_canonname)+1]; ++	  strcpy(hostname, tmpaddr->ai_canonname); ++	} ++ + 	x = nlink.connect(debug, tmpaddr, srp, srlen, tos); + 	if (!x) + 	    goto err; +@@ -1909,18 +1948,18 @@ + 	    goto nextaddr; +  + 	connected++; ++ ++#ifdef USE_SSL ++	if (ssl_secure_flag || (strcmp(hostp, "localhost") != 0)) { ++	  /* autologin = 1; */ ++	  use_authentication=1; ++	} ++#endif /* USE_SSL */ ++ + #if	defined(AUTHENTICATE) + 	auth_encrypt_connect(connected); + #endif +     } while (connected == 0); +-    if (tmpaddr->ai_canonname == 0) { +-	hostname = new char[strlen(hostp)+1]; +-	strcpy(hostname, hostp); +-    } +-    else { +-	hostname = new char[strlen(tmpaddr->ai_canonname)+1]; +-	strcpy(hostname, tmpaddr->ai_canonname); +-    } +  +     cmdrc(hostp, hostname, portp); +     freeaddrinfo(hostaddr); +@@ -1966,6 +2005,9 @@ + #if	defined(AUTHENTICATE) + 	authhelp[] =	"turn on (off) authentication ('auth ?' for more)", + #endif ++#if	defined(USE_SSL) ++	startsslhelp[] = "switch to telnet-over-ssl (use 'auth' for ssl-over-telnet)", ++#endif + 	zhelp[] =	"suspend telnet", + /*	shellhelp[] =	"invoke a subshell", */ + 	envhelp[] =	"change environment variables ('environ ?' for more)", +@@ -1981,6 +2023,34 @@ +     return 0; + } +  ++#if defined(USE_SSL) ++static int startssl_cmd(void) ++{ ++	if(ssl_con == NULL) ++	{ ++		fprintf(stderr,"telnet: Internal error - ssl_con not initialised.\n"); ++		return 1; ++	} ++ ++	if(ssl_active_flag) ++	{ ++		fprintf(stderr,"telnet: SSL already in use.\n"); ++		return 1; ++	} ++   ++	if (SSL_connect(ssl_con) < 1) ++	{ ++		ERR_print_errors_fp(stderr); ++		fflush(stderr); ++	} else { ++		display_connect_details(ssl_con,ssl_debug_flag); ++		ssl_active_flag=1; ++		ssl_only_flag=1; ++	} ++	return 1; ++} ++#endif /* USE_SSL */ ++ + static int slc_mode_import_0(void) { +     slc_mode_import(0); +     return 1; +@@ -2028,6 +2098,10 @@ + #endif +     // BIND("encrypt", encrypthelp, encrypt_cmd); +  ++#if	defined(USE_SSL) ++	BIND("startssl", startsslhelp, startssl_cmd); ++#endif ++ +     BIND("z", zhelp, suspend); +  + #if defined(TN3270)   /* why?! */ +@@ -2233,22 +2307,18 @@ + } +  + void cmdrc(const char *m1, const char *m2, const char *port) { +-    static char *rcname = 0; +-    static char rcbuf[128]; ++    char *rcname = NULL; +  +     if (skiprc) return; +  +     readrc(m1, m2, port, "/etc/telnetrc"); +-    if (rcname == 0) { +-	rcname = getenv("HOME"); +-	if (rcname) +-	    strcpy(rcbuf, rcname); +-	else +-	    rcbuf[0] = '\0'; +-	strcat(rcbuf, "/.telnetrc"); +-	rcname = rcbuf; +-    } ++    if (asprintf (&rcname, "%s/.telnetrc", getenv ("HOME")) == -1) ++      { ++        perror ("asprintf"); ++        return; ++      } +     readrc(m1, m2, port, rcname); ++    free (rcname); + } +  + #if defined(IP_OPTIONS) && defined(HAS_IPPROTO_IP) +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/defines.h netkit-telnet-ssl-0.17.24+0.1.orig/telnet/defines.h +--- netkit-telnet-ssl-0.17.24+0.1/telnet/defines.h	2004-05-27 11:47:01.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/defines.h	2010-05-11 13:44:40.063654881 +0200 +@@ -31,7 +31,7 @@ +  * SUCH DAMAGE. +  * +  *	from: @(#)defines.h	5.1 (Berkeley) 9/14/90 +- *	$Id: defines.h,v 1.5 1996/08/04 23:44:43 dholland Exp $ ++ *	$Id: defines.h,v 1.1 2004-10-14 13:19:53 ianb Exp $ +  */ +  + #define ENV_VAR NEW_ENV_VAR +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/externs.h netkit-telnet-ssl-0.17.24+0.1.orig/telnet/externs.h +--- netkit-telnet-ssl-0.17.24+0.1/telnet/externs.h	2004-05-27 11:47:26.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/externs.h	2010-05-11 13:44:40.063654881 +0200 +@@ -31,7 +31,7 @@ +  * SUCH DAMAGE. +  * +  *	from: @(#)externs.h	5.3 (Berkeley) 3/22/91 +- *	$Id: externs.h,v 1.20 1999/08/19 09:34:15 dholland Exp $ ++ *	$Id: externs.h,v 1.2 2004-11-17 15:28:51 ianb Exp $ +  */ +  + #ifndef	BSD +@@ -57,6 +57,7 @@ + #define	SUBBUFSIZE	256 +  + extern int autologin;		/* Autologin enabled */ ++extern int use_authentication;		/* use SSL authentication */ + extern int skiprc;		/* Don't process the ~/.telnetrc file */ + extern int eight;		/* use eight bit mode (binary in and/or out) */ + extern int binary;		/* use binary option (in and/or out) */ +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/fdset.h netkit-telnet-ssl-0.17.24+0.1.orig/telnet/fdset.h +--- netkit-telnet-ssl-0.17.24+0.1/telnet/fdset.h	1996-07-16 07:17:22.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/fdset.h	2010-05-11 13:44:40.063654881 +0200 +@@ -31,7 +31,7 @@ +  * SUCH DAMAGE. +  * +  *	from: @(#)fdset.h	5.1 (Berkeley) 9/14/90 +- *	$Id: fdset.h,v 1.1 1996/07/16 05:17:22 dholland Exp $ ++ *	$Id: fdset.h,v 1.1 2004-10-14 13:19:53 ianb Exp $ +  */ +  + /* +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/general.h netkit-telnet-ssl-0.17.24+0.1.orig/telnet/general.h +--- netkit-telnet-ssl-0.17.24+0.1/telnet/general.h	1996-07-16 07:17:22.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/general.h	2010-05-11 13:44:40.063654881 +0200 +@@ -31,7 +31,7 @@ +  * SUCH DAMAGE. +  * +  *	from: @(#)general.h	5.2 (Berkeley) 3/1/91 +- *	$Id: general.h,v 1.1 1996/07/16 05:17:22 dholland Exp $ ++ *	$Id: general.h,v 1.1 2004-10-14 13:19:53 ianb Exp $ +  */ +  + /* +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/genget.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/genget.cc +--- netkit-telnet-ssl-0.17.24+0.1/telnet/genget.cc	1996-07-26 11:54:09.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/genget.cc	2010-05-11 13:44:40.063654881 +0200 +@@ -35,7 +35,7 @@ +  * From: @(#)genget.c	5.1 (Berkeley) 2/28/91 +  */ + char gg_rcsid[] =  +-  "$Id: genget.cc,v 1.3 1996/07/26 09:54:09 dholland Exp $"; ++  "$Id: genget.cc,v 1.1 2004-10-14 13:19:53 ianb Exp $"; +  + #include <string.h> + #include <ctype.h> +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/glue.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/glue.cc +--- netkit-telnet-ssl-0.17.24+0.1/telnet/glue.cc	2004-05-27 11:47:26.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/glue.cc	2010-05-11 13:44:40.083654043 +0200 +@@ -11,8 +11,9 @@ +   printsub_h(direction, pointer, length); + } +  +-extern "C" void writenet(const char *str, int len) { ++extern "C" int writenet(const char *str, int len) { +   netoring.write(str, len); ++  return 1; + } +  + extern "C" int telnet_spin() { +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/main.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/main.cc +--- netkit-telnet-ssl-0.17.24+0.1/telnet/main.cc	2004-05-27 11:47:26.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/main.cc	2010-05-11 13:44:40.066988214 +0200 +@@ -39,7 +39,7 @@ +  * From: @(#)main.c	5.4 (Berkeley) 3/22/91 +  */ + char main_rcsid[] =  +-  "$Id: main.cc,v 1.14 1999/08/01 05:06:37 dholland Exp $"; ++  "$Id: main.cc,v 1.6 2004-11-22 20:26:37 ianb Exp $"; +  + #include "../version.h" +  +@@ -86,16 +86,27 @@ +  *       -X <atype> disable specified auth type +  */  + void usage(void) { +-    fprintf(stderr, "Usage: %s %s%s%s%s\n", ++    fprintf(stderr, "Usage: %s %s%s%s%s%s\n", + 	    prompt, ++#ifdef	AUTHENTICATE ++	    "[-4] [-6] [-8] [-E] [-K] [-L] [-X atype] [-a] [-d] [-e char]", ++	    "\n\t[-l user] [-n tracefile] [ -b addr ]", ++#else + 	    "[-4] [-6] [-8] [-E] [-L] [-a] [-d] [-e char] [-l user]", + 	    "\n\t[-n tracefile] [ -b addr ]", ++#endif + #ifdef TN3270 + 	    "\n\t" + 	    "[-noasynch] [-noasynctty] [-noasyncnet] [-r] [-t transcom]\n\t", + #else + 	    " [-r] ", + #endif ++#ifdef USE_SSL ++        /* might as well output something useful here ... */ ++	"\n\t[-z ssl] [-z secure] [-z debug] [-z verify=int]\n\t[-z cert=file] [-z key=file]\n\t", ++#else /* !USE_SSL */ ++        "", ++#endif /* USE_SSL */ + 	    "[host-name [port]]" + 	); + 	exit(1); +@@ -135,8 +146,73 @@ + 	autologin = -1; +  + 	while ((ch = getopt(argc, argv, +-			    "4678EKLS:X:ab:de:k:l:n:rt:x")) != EOF) { ++			    "4678EKLS:X:ab:de:k:l:n:rt:xz:")) != EOF) { + 		switch(ch) { ++#ifdef USE_SSL ++                case 'z': ++		        {  ++			char *origopt; ++ ++			origopt=strdup(optarg); ++			optarg=strtok(origopt,","); ++ ++			while(optarg!=NULL) { ++ ++		        if (strcmp(optarg, "debug") == 0 ) { ++			    ssl_debug_flag=1; ++			} else if (strcmp(optarg, "authdebug") == 0 ) { ++			    auth_debug_mode=1; ++			} else if (strcmp(optarg, "ssl") == 0 ) { ++			    ssl_only_flag=1; ++			} else if ( (strcmp(optarg, "!ssl") == 0) || ++		             (strcmp(optarg, "nossl") == 0) ) { ++			    /* we may want to switch SSL negotiation off ++			     * for testing or other reasons  ++			     */ ++			    ssl_disabled_flag=1; ++			} else if (strcmp(optarg, "certrequired") == 0 ) { ++			    ssl_cert_required=1; ++			} else if (strcmp(optarg, "secure") == 0 ) { ++			    ssl_secure_flag=1; ++			} else if (strcmp(optarg, "verbose") == 0 ) { ++			    ssl_verbose_flag=1; ++			} else if (strncmp(optarg, "verify=",  ++			                        strlen("verify=")) == 0 ) { ++			    ssl_verify_flag=atoi(optarg+strlen("verify=")); ++			} else if (strncmp(optarg, "cert=",  ++			                        strlen("cert=")) == 0 ) { ++			    ssl_cert_file= optarg + strlen("cert="); ++			} else if (strncmp(optarg, "key=",  ++			                        strlen("key=")) == 0 ) { ++			    ssl_key_file= optarg + strlen("key="); ++			} else if (strncmp(optarg,"cipher=", ++			                strlen("cipher="))==0) { ++			    ssl_cipher_list=optarg+strlen("cipher="); ++			} else { ++			    /* report when we are given rubbish so that ++			     * if the user makes a mistake they have to ++			     * correct it! ++			     */ ++			    fprintf(stderr,"Unknown SSL option %s\n",optarg); ++			    fflush(stderr); ++			    exit(1); ++			} ++ ++			/* get the next one ... */ ++                        optarg=strtok(NULL,","); ++ ++			} ++ ++			/* ++			if (origopt!=NULL) ++			    free(origopt); ++			*/ ++ ++			} ++ ++			break; ++#endif /* USE_SSL */ ++ + 		case '4': + 			family = AF_INET; + 			break; +@@ -257,14 +333,25 @@ + 		autologin = (rlogin == _POSIX_VDISABLE) ? 0 : 1; +  + #ifdef USE_SSL ++	if((ssl_cert_file != NULL) || (ssl_key_file != NULL)) { ++	  autologin = 1; ++	} ++ +         if (ssl_secure_flag||ssl_cert_required) { + 	    /* in secure mode we *must* switch on the base level + 	     * verify checking otherwise we cannot abort connections + 	     * at the right place! + 	     */ + 	    if (ssl_verify_flag == 0) +-		ssl_verify_flag = 1; ++		ssl_verify_flag = SSL_VERIFY_PEER;; + 	} ++ ++	/* client mode ignores SSL_VERIFY_FAIL_IF_NO_PEER_CERT, ++	   so simulate it using certrequired */ ++	if(ssl_verify_flag & SSL_VERIFY_FAIL_IF_NO_PEER_CERT) { ++	  ssl_cert_required=1; ++	} ++	 + #endif /* USE_SSL */ +  + 	argc -= optind; +@@ -289,11 +376,6 @@ + 			*argp++ = family == AF_INET ? "-4" : "-6"; + 		} + 		*argp++ = argv[0];		/* host */ +-#ifdef USE_SSL +-		if (strcmp(argv[0], "localhost") != 0) { +-		  autologin = 1; +-		} +-#endif /* USE_SSL */ + 		if (argc > 1) + 			*argp++ = argv[1];	/* port */ + 		*argp = 0; +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/Makefile netkit-telnet-ssl-0.17.24+0.1.orig/telnet/Makefile +--- netkit-telnet-ssl-0.17.24+0.1/telnet/Makefile	2004-05-27 11:47:26.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/Makefile	2010-05-11 13:44:40.056990450 +0200 +@@ -6,15 +6,18 @@ + #CXXFLAGS:=$(patsubst -O2, -g, $(CXXFLAGS)) +  + # -DAUTHENTICATE +-CXXFLAGS += -DUSE_TERMIO -DKLUDGELINEMODE +-LIBS = $(LIBTERMCAP) ++CXXFLAGS += -DUSE_TERMIO -DKLUDGELINEMODE -DAUTHENTICATE -DUSE_SSL \ ++	-I/usr/include/openssl -I../ ++LIBTELNET = ../libtelnet/libtelnet.a  ++LIBS += $(LIBTERMCAP) $(LIBTELNET) -lssl -lcrypto +  + SRCS = commands.cc main.cc network.cc ring.cc sys_bsd.cc telnet.cc \ +-	terminal.cc tn3270.cc utilities.cc genget.cc environ.cc netlink.cc ++	terminal.cc tn3270.cc utilities.cc genget.cc environ.cc netlink.cc \ ++	glue.cc glue2.cc +  + OBJS = $(patsubst %.cc, %.o, $(SRCS)) +  +-telnet: $(OBJS) ++telnet: $(OBJS) $(LIBTELNET) + 	$(CXX) $(LDFLAGS) $^ $(LIBS) -o $@ +  + include depend.mk +@@ -22,7 +25,7 @@ + 	$(CXX) $(CXXFLAGS) -MM $(SRCS) >depend.mk +  + install: telnet +-	install -s -m$(BINMODE) telnet $(INSTALLROOT)$(BINDIR)/telnet-ssl ++	install -m$(BINMODE) telnet $(INSTALLROOT)$(BINDIR)/telnet-ssl + 	install -m$(MANMODE) telnet.1 $(INSTALLROOT)$(MANDIR)/man1/telnet-ssl.1 +  + clean: +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/netlink.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/netlink.cc +--- netkit-telnet-ssl-0.17.24+0.1/telnet/netlink.cc	2004-05-27 11:47:26.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/netlink.cc	2010-05-11 13:44:40.066988214 +0200 +@@ -12,12 +12,27 @@ + #include "proto.h" + #include "ring.h" + #include <libtelnet/sslapp.h> ++#include <libtelnet/misc-proto.h> +  + /* In Linux, this is an enum */ + #if defined(__linux__) || defined(IPPROTO_IP) + #define HAS_IPPROTO_IP + #endif +  ++/* code from Peter 'Luna' Runestig <peter@runestig.com> */ ++static int select_read(int rfd) ++/* timeout = 20 seconds */ ++{ ++    fd_set rfds; ++    struct timeval tv; ++ ++    FD_ZERO(&rfds); ++    FD_SET(rfd, &rfds); ++    tv.tv_sec = 20; ++    tv.tv_usec = 0; ++    return select(rfd + 1, &rfds, NULL, NULL, &tv); ++} ++ + netlink nlink; +  + class netchannel : public ringbuf::source { +@@ -26,12 +41,23 @@ + 	int net = nlink.getfd(); + 	int l; + #ifdef USE_SSL +-	if (ssl_active_flag) +-	  l = SSL_read(ssl_con, buf, maxlen); +-	else ++	if (ssl_active_flag) { ++	    do { ++		l = SSL_read(ssl_con, buf, maxlen); ++		/* ++		 * SSL_ERROR_WANT_READ may occur if an SSL/TLS rehandshake occurs. ++		 * This means that data was available at the socket, but all was ++		 * consumed by SSL itself, so we select (w/20s timeout)  and retry. ++		 */ ++	    } while (l<0 && ++		     (SSL_ERROR_WANT_READ == SSL_get_error(ssl_con, l)) && ++		     (select_read(net) > 0)); ++        } else + #endif /* USE_SSL */ +-	l = recv(net, buf, maxlen, 0); +-	if (l<0 && errno == EWOULDBLOCK) l = 0; ++        { ++  	    l = recv(net, buf, maxlen, 0); ++	    if (l<0 && errno == EWOULDBLOCK) l = 0; ++        } + 	return l; +     } + }; +@@ -70,11 +96,11 @@ +  +  + netlink::netlink() { net = -1; } +-netlink::~netlink() { ::close(net); } ++netlink::~netlink() { if (net >= 0) ::close(net); } +  +  + int netlink::setdebug(int debug) { +-    if (net > 0 && ++    if (net >= 0 && + 	(setsockopt(net, SOL_SOCKET, SO_DEBUG, &debug, sizeof(debug))) < 0) { + 	perror("setsockopt (SO_DEBUG)"); +     } +@@ -95,7 +121,8 @@ + 	ssl_active_flag=0; +     } + #endif /* USE_SSL */ +-    ::close(net); ++    if (net >= 0) ++       ::close(net); +     net = -1; + } +  +@@ -142,7 +169,8 @@ + { +     int on=1; +     int res; +- ++    extern char *hostname; ++     +     res = socket(addr->ai_family); +     if (res < 2) + 	return res; +@@ -192,10 +220,24 @@ + 	/* bind in the network descriptor */ +     	SSL_set_fd(ssl_con,net); +  ++#if defined(AUTHENTICATE) ++	/* moved from telnet() so client_verify_callback knows RemoteHostName -ianb */ ++	{ ++	  static char local_host[256] = { 0 }; ++	  int len = sizeof(local_host); ++ ++	  if (!local_host[0]) { ++	    gethostname(local_host, len);        /* WAS &len!!! */ ++	    local_host[sizeof(local_host)-1] = 0; ++	  } ++	  auth_encrypt_init(local_host, hostname, "TELNET", 0); ++	} ++#endif ++ + 	/* if we are doing raw SSL then start it now ... */ + 	if (ssl_only_flag) { + 	    if (!SSL_connect(ssl_con)) { +-		static char errbuf[1024]; ++	      /* static char errbuf[1024]; */ +  + 		ERR_print_errors_fp(stderr); + 		perror("SSL_connect"); +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/network.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/network.cc +--- netkit-telnet-ssl-0.17.24+0.1/telnet/network.cc	2004-05-27 11:47:01.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/network.cc	2010-05-11 13:44:40.066988214 +0200 +@@ -35,7 +35,7 @@ +  * From: @(#)network.c	5.2 (Berkeley) 3/1/91 +  */ + char net_rcsid[] =  +-  "$Id: network.cc,v 1.15 1996/08/13 08:09:58 dholland Exp $"; ++  "$Id: network.cc,v 1.1 2004-10-14 13:19:53 ianb Exp $"; +  + #include <sys/types.h> + #include <sys/socket.h> +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/proto.h netkit-telnet-ssl-0.17.24+0.1.orig/telnet/proto.h +--- netkit-telnet-ssl-0.17.24+0.1/telnet/proto.h	2004-05-27 11:47:26.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/proto.h	2010-05-11 13:44:40.070321269 +0200 +@@ -10,9 +10,11 @@ + int TerminalSpecialChars(int); + void TerminalSpeeds(long *ispeed, long *ospeed); + int TerminalWindowSize(long *rows, long *cols); ++#if 0 + void auth_encrypt_user(char *); + void auth_name(unsigned char *, int); + void auth_printsub(unsigned char *, int, unsigned char *, int); ++#endif + void cmdrc(const char *, const char *, const char *); + void env_init(void); + int getconnmode(void); +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/ring.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/ring.cc +--- netkit-telnet-ssl-0.17.24+0.1/telnet/ring.cc	2004-05-27 11:47:01.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/ring.cc	2010-05-11 13:44:40.070321269 +0200 +@@ -35,7 +35,7 @@ +  * From: @(#)ring.c	5.2 (Berkeley) 3/1/91 +  */ + char ring_rcsid[] = +-  "$Id: ring.cc,v 1.23 2000/07/23 03:25:09 dholland Exp $"; ++  "$Id: ring.cc,v 1.1 2004-10-14 13:19:53 ianb Exp $"; +  + /* +  * This defines a structure for a ring buffer.  +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/ring.h netkit-telnet-ssl-0.17.24+0.1.orig/telnet/ring.h +--- netkit-telnet-ssl-0.17.24+0.1/telnet/ring.h	2004-05-27 11:47:01.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/ring.h	2010-05-11 13:44:40.070321269 +0200 +@@ -31,7 +31,7 @@ +  * SUCH DAMAGE. +  * +  *	from: @(#)ring.h	5.2 (Berkeley) 3/1/91 +- *	$Id: ring.h,v 1.13 1996/08/13 08:43:28 dholland Exp $ ++ *	$Id: ring.h,v 1.1 2004-10-14 13:19:53 ianb Exp $ +  */ +  + class datasink { +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/sys_bsd.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/sys_bsd.cc +--- netkit-telnet-ssl-0.17.24+0.1/telnet/sys_bsd.cc	2004-05-27 11:47:26.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/sys_bsd.cc	2010-05-11 13:44:40.070321269 +0200 +@@ -35,7 +35,7 @@ +  * From: @(#)sys_bsd.c	5.2 (Berkeley) 3/1/91 +  */ + char bsd_rcsid[] =  +-  "$Id: sys_bsd.cc,v 1.24 1999/09/28 16:29:24 dholland Exp $"; ++  "$Id: sys_bsd.cc,v 1.1 2004-10-14 13:19:53 ianb Exp $"; +  + /* +  * The following routines try to encapsulate what is system dependent +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/telnet.1 netkit-telnet-ssl-0.17.24+0.1.orig/telnet/telnet.1 +--- netkit-telnet-ssl-0.17.24+0.1/telnet/telnet.1	2004-05-27 11:47:26.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/telnet.1	2010-05-11 13:44:40.073654603 +0200 +@@ -30,7 +30,7 @@ + .\" SUCH DAMAGE. + .\" + .\"	from: @(#)telnet.1	6.16 (Berkeley) 7/27/91 +-.\"	$Id: telnet.1,v 1.15 2000/07/30 23:57:08 dholland Exp $ ++.\"	$Id: telnet.1,v 1.5 2006-09-24 00:48:31 ianb Exp $ + .\" + .Dd August 15, 1999 + .Dt TELNET 1 +@@ -42,12 +42,14 @@ + protocol + .Sh SYNOPSIS + .Nm telnet +-.Op Fl 468ELadr ++.Op Fl 468EKLadr + .Op Fl S Ar tos ++.Op Fl X Ar authtype + .Op Fl b Ar address + .Op Fl e Ar escapechar + .Op Fl l Ar user + .Op Fl n Ar tracefile ++.Op Fl z Ar option + .Oo + .Ar host + .Op Ar port +@@ -152,44 +154,47 @@ + command below. + .It Fl z Ar option + Set SSL (Secure Socket Layer) parameters. The default is to negotiate +-via telnet protocoll if SSL is availlable at server side and then to ++via telnet protocol if SSL is available at server side and then to + switch it on. In this mode you can connect to both conventional and +-SSL enhanced telnetd's. ++SSL enhanced telnetd's. If the connection is made to localhost and  ++.Ic -z secure ++is not set, then ++SSL is not enabled. + .Pp + The SSL parameters are: + .Bl -tag -width Fl +-.It Ic Ar debug ++.It Ic debug + Send SSL related debugging information to stderr. +-.It Ic Ar authdebug ++.It Ic authdebug + Enable authentication debugging. +-.It Ic Ar ssl ++.It Ic ssl + Negotiate SSL at first, then use telnet protocol. In this mode you can + connect to any server supporting directly SSL like Apache-SSL. Use + .Ic telnet -z ssl ssl3.netscape.com https + for example. telnet protocol negotiation goes encrypted. +-.It Ic Ar nossl, Ar !ssl +-switch of SSL negotiation +-.It Ic Ar certrequired +-client certificate is mandatory +-.It Ic Ar secure ++.It Ic nossl, Ic !ssl ++switch off SSL negotiation ++.It Ic certrequired ++server certificate is mandatory ++.It Ic secure + Don't switch back to unencrypted mode (no SSL) if SSL is not available. +-.It Ic Ar verbose ++.It Ic verbose + Be verbose about certificates etc. +-.It Ic Ar verify=int ++.It Ic verify= Ns Ar int + .\" TODO + Set the SSL verify flags (SSL_VERIFY_* in  + .Ar ssl/ssl.h + ). + .\" TODO +-.It Ic Ar cert=cert_file ++.It Ic cert= Ns Ar cert_file + .\" TODO + Use the certificate(s) in + .Ar cert_file . +-.It Ic Ar key=key_file ++.It Ic key= Ns Ar key_file + .\" TODO + Use the key(s) in + .Ar key_file . +-.It Ic Ar cipher=ciph_list ++.It Ic cipher= Ns Ar ciph_list + .\" TODO + Set the preferred ciphers to + .Ar ciph_list . +@@ -319,10 +324,6 @@ + List the current status of the various types of + authentication. + .El +-.Pp +-Note that the current version of  +-.Nm telnet +-does not support authentication. + .It Ic close + Close the connection to the remote host, if any, and return to command + mode. +@@ -332,49 +333,49 @@ + and + .Ic toggle + values (see below). +-.It Ic encrypt Ar argument ... +-The encrypt command controls the +-.Dv TELNET ENCRYPT +-protocol option. If  +-.Nm telnet +-was compiled without encryption, the +-.Ic encrypt +-command will not be supported.  +-.Pp +-Valid arguments are as follows: +-.Bl -tag -width Ar +-.It Ic disable Ar type Ic [input|output] +-Disable the specified type of encryption.  If you do not specify input +-or output, encryption of both is disabled.  To obtain a list of +-available types, use ``encrypt disable \&?''. +-.It Ic enable Ar type Ic [input|output] +-Enable the specified type of encryption.  If you do not specify input +-or output, encryption of both is enabled.  To obtain a list of +-available types, use ``encrypt enable \&?''. +-.It Ic input +-This is the same as ``encrypt start input''. +-.It Ic -input +-This is the same as ``encrypt stop input''. +-.It Ic output +-This is the same as ``encrypt start output''. +-.It Ic -output +-This is the same as ``encrypt stop output''. +-.It Ic start Ic [input|output] +-Attempt to begin encrypting.  If you do not specify input or output,  +-encryption of both input and output is started.  +-.It Ic status +-Display the current status of the encryption module. +-.It Ic stop Ic [input|output] +-Stop encrypting.  If you do not specify input or output, encryption of +-both is stopped. +-.It Ic type Ar type +-Sets the default type of encryption to be used with later ``encrypt start'' +-or ``encrypt stop'' commands. +-.El +-.Pp +-Note that the current version of  +-.Nm telnet +-does not support encryption. ++.\" .It Ic encrypt Ar argument ... ++.\" The encrypt command controls the ++.\" .Dv TELNET ENCRYPT ++.\" protocol option. If  ++.\" .Nm telnet ++.\" was compiled without encryption, the ++.\" .Ic encrypt ++.\" command will not be supported.  ++.\" .Pp ++.\" Valid arguments are as follows: ++.\" .Bl -tag -width Ar ++.\" .It Ic disable Ar type Ic [input|output] ++.\" Disable the specified type of encryption.  If you do not specify input ++.\" or output, encryption of both is disabled.  To obtain a list of ++.\" available types, use ``encrypt disable \&?''. ++.\" .It Ic enable Ar type Ic [input|output] ++.\" Enable the specified type of encryption.  If you do not specify input ++.\" or output, encryption of both is enabled.  To obtain a list of ++.\" available types, use ``encrypt enable \&?''. ++.\" .It Ic input ++.\" This is the same as ``encrypt start input''. ++.\" .It Ic -input ++.\" This is the same as ``encrypt stop input''. ++.\" .It Ic output ++.\" This is the same as ``encrypt start output''. ++.\" .It Ic -output ++.\" This is the same as ``encrypt stop output''. ++.\" .It Ic start Ic [input|output] ++.\" Attempt to begin encrypting.  If you do not specify input or output,  ++.\" encryption of both input and output is started.  ++.\" .It Ic status ++.\" Display the current status of the encryption module. ++.\" .It Ic stop Ic [input|output] ++.\" Stop encrypting.  If you do not specify input or output, encryption of ++.\" both is stopped. ++.\" .It Ic type Ar type ++.\" Sets the default type of encryption to be used with later ``encrypt start'' ++.\" or ``encrypt stop'' commands. ++.\" .El ++.\" .Pp ++.\" Note that the current version of  ++.\" .Nm telnet ++.\" does not support encryption. + .It Ic environ Ar arguments...  + The + .Ic environ +@@ -1017,6 +1018,16 @@ + .Ic slc + command. + .El ++.It Ic startssl ++Attempt to negotiate telnet-over-SSL (as with the ++.Ic -z ssl ++option). This is useful when connecting to non-telnetds such ++as imapd (with the ++.Ic STARTTLS ++command). To control SSL when connecting to a SSL-enabled ++telnetd, use the ++.Ic auth ++command instead. + .It Ic status + Show the current status of + .Nm telnet . +@@ -1079,17 +1090,17 @@ + .Dv FALSE + (see + .Xr stty  1  ) . +-.It Ic autodecrypt +-When the +-.Dv TELNET ENCRYPT +-option is negotiated, by +-default the actual encryption (decryption) of the data +-stream does not start automatically.  The autoencrypt +-(autodecrypt) command states that encryption of the +-output (input) stream should be enabled as soon as +-possible. +-.Pp +-Note that this flag exists only if encryption support is enabled. ++.\" .It Ic autodecrypt ++.\" When the ++.\" .Dv TELNET ENCRYPT ++.\" option is negotiated, by ++.\" default the actual encryption (decryption) of the data ++.\" stream does not start automatically.  The autoencrypt ++.\" (autodecrypt) command states that encryption of the ++.\" output (input) stream should be enabled as soon as ++.\" possible. ++.\" .Pp ++.\" Note that this flag exists only if encryption support is enabled. + .It Ic autologin + If the remote side supports the + .Dv TELNET AUTHENTICATION +@@ -1174,9 +1185,9 @@ + .Ic super user ) . + The initial value for this toggle is + .Dv FALSE . +-.It Ic encdebug +-Turns on debugging information for the encryption code. +-Note that this flag only exists if encryption support is available. ++.\" .It Ic encdebug ++.\" Turns on debugging information for the encryption code. ++.\" Note that this flag only exists if encryption support is available. + .It Ic localchars + If this is + .Dv TRUE , +@@ -1221,8 +1232,9 @@ + is sent as + .Ic abort  , + and +-.Ic eof and +-.B suspend ++.Ic eof ++and ++.Ic suspend + are sent as + .Ic eof and + .Ic susp , +@@ -1263,16 +1275,16 @@ + Toggles the display of all terminal data (in hexadecimal format). + The initial value for this toggle is + .Dv FALSE . +-.It Ic verbose_encrypt +-When the +-.Ic verbose_encrypt +-toggle is +-.Dv TRUE , +-.Tn TELNET +-prints out a message each time encryption is enabled or +-disabled.  The initial value for this toggle is +-.Dv FALSE. +-This flag only exists if encryption support is available. ++.\" .It Ic verbose_encrypt ++.\" When the ++.\" .Ic verbose_encrypt ++.\" toggle is ++.\" .Dv TRUE , ++.\" .Tn TELNET ++.\" prints out a message each time encryption is enabled or ++.\" disabled.  The initial value for this toggle is ++.\" .Dv FALSE. ++.\" This flag only exists if encryption support is available. + .It Ic \&? + Displays the legal + .Ic toggle +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/telnet.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/telnet.cc +--- netkit-telnet-ssl-0.17.24+0.1/telnet/telnet.cc	2004-05-27 11:47:26.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/telnet.cc	2010-05-11 13:44:40.076987936 +0200 +@@ -47,7 +47,7 @@ +  * From: @(#)telnet.c	5.53 (Berkeley) 3/22/91 +  */ + char telnet_rcsid[] =  +-"$Id: telnet.cc,v 1.36 2000/07/23 03:24:53 dholland Exp $"; ++"$Id: telnet.cc,v 1.8 2005-04-14 15:26:27 ianb Exp $"; +  + #include <string.h> + #include <sys/types.h> +@@ -107,6 +107,7 @@ +   eight = 3, +   binary = 0, +   autologin = 0,	/* Autologin anyone? */ ++  use_authentication = 0, +   skiprc = 0, +   connected, +   showoptions, +@@ -495,7 +496,8 @@ + 	break; + #if	defined(AUTHENTICATE) +       case TELOPT_AUTHENTICATION: +-	if (autologin) ++	/* if (autologin) */ ++	if (use_authentication) + 	  new_state_ok = 1; + 	break; + #endif +@@ -722,6 +724,7 @@ +  */ +  + static void suboption(void) { ++  extern int auth_failed; +   printsub('<', subbuffer, SB_LEN()+2); +   switch (SB_GET()) { +   case TELOPT_TTYPE: +@@ -845,7 +848,8 @@ +      + #if	defined(AUTHENTICATE) +   case TELOPT_AUTHENTICATION: { +-    if (!autologin) ++    /* if (!autologin) */ ++    if (!use_authentication) +       break; +     if (SB_EOF()) +       return; +@@ -864,6 +868,10 @@ +       if (my_want_state_is_wont(TELOPT_AUTHENTICATION)) + 	return; +       auth_reply(subpointer, SB_LEN()); ++      if(auth_failed) { ++	/* auth rejected, quit */ ++	quit(); ++      } +       break; +     case TELQUAL_NAME: +       if (my_want_state_is_dont(TELOPT_AUTHENTICATION)) +@@ -1140,6 +1148,7 @@ +  +  + unsigned char slc_reply[128]; ++unsigned char const * const slc_reply_eom = &slc_reply[sizeof(slc_reply)]; + unsigned char *slc_replyp; +  + void slc_start_reply(void) { +@@ -1151,6 +1160,14 @@ + } +  + void slc_add_reply(int func, int flags, int value) { ++  /* A sequence of up to 6 bytes my be written for this member of the SLC ++   * suboption list by this function.  The end of negotiation command, ++   * which is written by slc_end_reply(), will require 2 additional ++   * bytes.  Do not proceed unless there is sufficient space for these ++   * items. ++   */ ++  if (&slc_replyp[6+2] > slc_reply_eom) ++    return; +   if ((*slc_replyp++ = func) == IAC) +     *slc_replyp++ = IAC; +   if ((*slc_replyp++ = flags) == IAC) +@@ -1819,25 +1836,19 @@ +  */ + void telnet(const char *user) { +   sys_telnet_init(); +-   +-#if defined(AUTHENTICATE) +-  { +-    static char local_host[256] = { 0 }; +-    int len = sizeof(local_host); +-     +-    if (!local_host[0]) { +-      gethostname(local_host, len);        /* WAS &len!!! */ +-      local_host[sizeof(local_host)-1] = 0; +-    } +-    auth_encrypt_init(local_host, hostname, "TELNET", 0); +-    auth_encrypt_user(user); +-  } ++     ++#ifdef AUTHENTICATE ++  auth_encrypt_user(user); + #endif +-   ++ + #if !defined(TN3270) +   if (telnetport) { ++ ++    send_will(TELOPT_ENVIRON, 1); ++ + #if	defined(AUTHENTICATE) +-    if (autologin) ++    /* if (autologin) */ ++    if (use_authentication) +       send_will(TELOPT_AUTHENTICATION, 1); + #endif +     send_do(TELOPT_SGA, 1); +@@ -1846,7 +1857,6 @@ +     send_will(TELOPT_TSPEED, 1); +     send_will(TELOPT_LFLOW, 1); +     send_will(TELOPT_LINEMODE, 1); +-    send_will(TELOPT_ENVIRON, 1); +     send_do(TELOPT_STATUS, 1); +     if (env_getvalue("DISPLAY", 0)) +       send_will(TELOPT_XDISPLOC, 1); +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/terminal.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/terminal.cc +--- netkit-telnet-ssl-0.17.24+0.1/telnet/terminal.cc	2004-05-27 11:47:01.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/terminal.cc	2010-05-11 13:44:40.080321548 +0200 +@@ -35,7 +35,7 @@ +  * From: @(#)terminal.c	5.3 (Berkeley) 3/22/91 +  */ + char terminal_rcsid[] =  +-  "$Id: terminal.cc,v 1.25 1999/12/12 19:48:05 dholland Exp $"; ++  "$Id: terminal.cc,v 1.1 2004-10-14 13:19:53 ianb Exp $"; +  + #include <arpa/telnet.h> + #include <sys/types.h> +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/tn3270.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/tn3270.cc +--- netkit-telnet-ssl-0.17.24+0.1/telnet/tn3270.cc	1996-08-13 11:08:34.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/tn3270.cc	2010-05-11 13:44:40.080321548 +0200 +@@ -35,7 +35,7 @@ +  * From: @(#)tn3270.c	5.2 (Berkeley) 3/1/91 +  */ + char tn3270_rcsid[] =  +-  "$Id: tn3270.cc,v 1.9 1996/08/13 09:08:34 dholland Exp $"; ++  "$Id: tn3270.cc,v 1.1 2004-10-14 13:19:53 ianb Exp $"; +  + #include <sys/types.h> + #include <arpa/telnet.h> +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/types.h netkit-telnet-ssl-0.17.24+0.1.orig/telnet/types.h +--- netkit-telnet-ssl-0.17.24+0.1/telnet/types.h	1996-07-27 02:45:54.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/types.h	2010-05-11 13:44:40.083654043 +0200 +@@ -31,7 +31,7 @@ +  * SUCH DAMAGE. +  * +  *	from: @(#)types.h	5.1 (Berkeley) 9/14/90 +- *	$Id: types.h,v 1.2 1996/07/27 00:45:54 dholland Exp $ ++ *	$Id: types.h,v 1.1 2004-10-14 13:19:53 ianb Exp $ +  */ +  + typedef struct { +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnet/utilities.cc netkit-telnet-ssl-0.17.24+0.1.orig/telnet/utilities.cc +--- netkit-telnet-ssl-0.17.24+0.1/telnet/utilities.cc	2004-05-27 11:47:27.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnet/utilities.cc	2010-05-11 13:44:40.083654043 +0200 +@@ -35,7 +35,7 @@ +  * From: @(#)utilities.c	5.3 (Berkeley) 3/22/91 +  */ + char util_rcsid[] =  +-  "$Id: utilities.cc,v 1.19 1999/12/12 15:33:40 dholland Exp $"; ++  "$Id: utilities.cc,v 1.1 2004-10-14 13:19:53 ianb Exp $"; +  + #define	TELOPTS + #define	TELCMDS +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/authenc.c netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/authenc.c +--- netkit-telnet-ssl-0.17.24+0.1/telnetd/authenc.c	2004-05-27 11:47:01.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/authenc.c	2010-05-11 13:44:40.086987376 +0200 +@@ -23,7 +23,7 @@ +  * From: @(#)authenc.c	5.1 (Berkeley) 3/1/91 +  */ + char authenc_rcsid[] = +-  "$Id: authenc.c,v 1.5 1999/12/12 14:59:44 dholland Exp $"; ++  "$Id: authenc.c,v 1.1 2004-10-14 13:19:53 ianb Exp $"; +  + #if	defined(ENCRYPT) || defined(AUTHENTICATE) + #include "telnetd.h" +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/defs.h netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/defs.h +--- netkit-telnet-ssl-0.17.24+0.1/telnetd/defs.h	2004-05-27 11:47:01.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/defs.h	2010-05-11 13:44:40.086987376 +0200 +@@ -31,7 +31,7 @@ +  * SUCH DAMAGE. +  * +  *	from: @(#)defs.h	5.10 (Berkeley) 3/1/91 +- *	$Id: defs.h,v 1.7 1999/08/02 03:14:03 dholland Exp $ ++ *	$Id: defs.h,v 1.1 2004-10-14 13:19:53 ianb Exp $ +  */ +  + /* +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/ext.h netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/ext.h +--- netkit-telnet-ssl-0.17.24+0.1/telnetd/ext.h	2004-05-27 11:47:27.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/ext.h	2010-05-11 13:44:40.086987376 +0200 +@@ -31,7 +31,7 @@ +  * SUCH DAMAGE. +  * +  *	from: @(#)ext.h	5.7 (Berkeley) 3/1/91 +- *	$Id: ext.h,v 1.9 1999/12/12 14:59:44 dholland Exp $ ++ *	$Id: ext.h,v 1.2 2004-11-21 12:53:12 ianb Exp $ +  */ +  + /* +@@ -113,7 +113,7 @@ + void interrupt(void); + void localstat(void); + void netclear(void); +-void netflush(void); ++int netflush(void); + size_t netbuflen(int); + void sendurg(const char *, size_t); +  +@@ -183,7 +183,8 @@ + void tty_tspeed(int); + void willoption(int); + void wontoption(int); +-#define writenet(b, l) fwrite(b, 1, l, netfile) ++int writenet(char *, int); ++/*#define writenet(b, l) fwrite(b, 1, l, netfile)*/ + void netopen(void); +  + #if defined(ENCRYPT) +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/getent.c netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/getent.c +--- netkit-telnet-ssl-0.17.24+0.1/telnetd/getent.c	1996-08-15 08:23:28.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/getent.c	2010-05-11 13:44:40.086987376 +0200 +@@ -35,7 +35,7 @@ +  * From: @(#)getent.c	5.1 (Berkeley) 2/28/91 +  */ + char ge_rcsid[] =  +-  "$Id: getent.c,v 1.3 1996/08/15 06:23:28 dholland Exp $"; ++  "$Id: getent.c,v 1.1 2004-10-14 13:19:53 ianb Exp $"; +  + /* +  * Copyright (c) 1991 Regents of the University of California. +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/global.c netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/global.c +--- netkit-telnet-ssl-0.17.24+0.1/telnetd/global.c	2004-05-27 11:47:01.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/global.c	2010-05-11 13:44:40.090341661 +0200 +@@ -35,7 +35,7 @@ +  * From: @(#)global.c	5.2 (Berkeley) 6/1/90 +  */ + char global_rcsid[] =  +-  "$Id: global.c,v 1.4 1999/12/12 14:59:44 dholland Exp $"; ++  "$Id: global.c,v 1.1 2004-10-14 13:19:53 ianb Exp $"; +  + /* +  * Allocate global variables.   +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/issue.net.5 netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/issue.net.5 +--- netkit-telnet-ssl-0.17.24+0.1/telnetd/issue.net.5	2004-05-27 11:47:01.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/issue.net.5	2010-05-11 13:44:40.090341661 +0200 +@@ -15,26 +15,26 @@ + .Pa /etc/issue.net + is a text file which contains a message or system identification to be + printed before the login prompt of a telnet session. It may contain +-various `%-char' sequences. The following sequences are supported by ++various `%\&\-char' sequences. The following sequences are supported by + .Ic telnetd : + .Bl -tag -offset indent -compact -width "abcde" +-.It %t ++.It %\&t + - show the current tty +-.It %h ++.It %\&h + - show the system node name (FQDN) +-.It %D ++.It %\&D + - show the name of the NIS domain +-.It %d ++.It %\&d + - show the current time and date +-.It %s ++.It %\&s + - show the name of the operating system +-.It %m ++.It %\&m + - show the machine (hardware) type +-.It %r ++.It %\&r + - show the operating system release +-.It %v ++.It %\&v + - show the operating system version +-.It %% ++.It %\&% + - display a single '%' character + .El + .Sh FILES +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/Makefile netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/Makefile +--- netkit-telnet-ssl-0.17.24+0.1/telnetd/Makefile	2004-05-27 11:47:27.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/Makefile	2010-05-11 14:12:59.493485309 +0200 +@@ -9,9 +9,11 @@ + # take out -DPARANOID_TTYS. +  + CFLAGS += '-DISSUE_FILE="/etc/issue.net"' -DPARANOID_TTYS \ +-	   -DNO_REVOKE -DKLUDGELINEMODE -DDIAGNOSTICS \ +-	   -DLOGIN_WRAPPER=\"/usr/lib/telnetlogin\" +-# LIBS += $(LIBTERMCAP) ++	   -DNO_REVOKE -DKLUDGELINEMODE -DDIAGNOSTICS -DAUTHENTICATE \ ++	   -DLOGIN_WRAPPER=\"/usr/lib/telnetlogin\" \ ++	   -DUSE_SSL -I/usr/include/openssl -I.. ++LIBTELNET = ../libtelnet/libtelnet.a  ++LIBS += $(LIBTERMCAP) $(LIBTELNET) -lssl -lcrypto +  + OBJS = telnetd.o state.o termstat.o slc.o sys_term.o utility.o \ + 	global.o setproctitle.o +@@ -28,10 +30,10 @@ + telnetd.o: ../version.h +  + install: telnetd +-	install -s -m$(DAEMONMODE) telnetd $(INSTALLROOT)$(SBINDIR)/in.telnetd +-	install -m$(MANMODE) issue.net.5 $(INSTALLROOT)$(MANDIR)/man5/ +-	install -m$(MANMODE) telnetd.8 $(INSTALLROOT)$(MANDIR)/man8/in.telnetd.8 +-	ln -sf in.telnetd.8 $(INSTALLROOT)$(MANDIR)/man8/telnetd.8 ++	install -m$(DAEMONMODE) telnetd $(INSTALLROOT)$(SBINDIR)/in.telnetd-ssl ++#	install -m$(MANMODE) issue.net.5 $(INSTALLROOT)$(MANDIR)/man5/ ++	install -m$(MANMODE) telnetd.8 $(INSTALLROOT)$(MANDIR)/man8/in.telnetd-ssl.8 ++	ln -sf in.telnetd-ssl.8 $(INSTALLROOT)$(MANDIR)/man8/telnetd-ssl.8 +  + clean: + 	rm -f *.o telnetd  +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/pathnames.h netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/pathnames.h +--- netkit-telnet-ssl-0.17.24+0.1/telnetd/pathnames.h	1996-08-30 00:31:24.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/pathnames.h	2010-05-11 13:44:40.090341661 +0200 +@@ -31,7 +31,7 @@ +  * SUCH DAMAGE. +  * +  *	from: @(#)pathnames.h	5.5 (Berkeley) 6/28/90 +- *	$Id: pathnames.h,v 1.3 1996/08/29 22:31:24 dholland Exp $ ++ *	$Id: pathnames.h,v 1.1 2004-10-14 13:19:53 ianb Exp $ +  */ +  + #include <paths.h> +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/setproctitle.3 netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/setproctitle.3 +--- netkit-telnet-ssl-0.17.24+0.1/telnetd/setproctitle.3	2000-07-31 01:57:09.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/setproctitle.3	2010-05-11 13:44:40.090341661 +0200 +@@ -1,5 +1,5 @@ + .\"	OpenBSD: setproctitle.3,v 1.4 1996/10/08 01:20:08 michaels Exp  +-.\"     $Id: setproctitle.3,v 1.13 2000/07/30 23:57:09 dholland Exp $ ++.\"     $Id: setproctitle.3,v 1.1 2004-10-14 13:19:53 ianb Exp $ + .\" + .\" Copyright (c) 1994, 1995 Christopher G. Demetriou + .\" All rights reserved. +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/setproctitle.c netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/setproctitle.c +--- netkit-telnet-ssl-0.17.24+0.1/telnetd/setproctitle.c	2004-05-27 11:47:01.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/setproctitle.c	2010-05-11 13:44:40.090341661 +0200 +@@ -39,7 +39,7 @@ +  * From: @(#)conf.c	8.243 (Berkeley) 11/20/95 +  */ + char setproctitle_rcsid[] = +-  "$Id: setproctitle.c,v 1.3 1999/12/10 23:06:39 bryce Exp $"; ++  "$Id: setproctitle.c,v 1.1 2004-10-14 13:19:53 ianb Exp $"; +  + #include <stdlib.h> + #include <string.h> +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/slc.c netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/slc.c +--- netkit-telnet-ssl-0.17.24+0.1/telnetd/slc.c	1999-12-12 15:59:44.000000000 +0100 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/slc.c	2010-05-11 13:44:40.096989611 +0200 +@@ -35,7 +35,7 @@ +  * From: @(#)slc.c	5.7 (Berkeley) 3/1/91 +  */ + char slc_rcsid[] =  +-  "$Id: slc.c,v 1.5 1999/12/12 14:59:44 dholland Exp $"; ++  "$Id: slc.c,v 1.1 2004-10-14 13:19:53 ianb Exp $"; +  + #include "telnetd.h" +  +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/state.c netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/state.c +--- netkit-telnet-ssl-0.17.24+0.1/telnetd/state.c	2004-05-27 11:47:27.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/state.c	2010-05-11 13:44:40.100321827 +0200 +@@ -35,11 +35,12 @@ +  * From: @(#)state.c	5.10 (Berkeley) 3/22/91 +  */ + char state_rcsid[] =  +-  "$Id: state.c,v 1.12 1999/12/12 19:41:44 dholland Exp $"; ++  "$Id: state.c,v 1.5 2005-07-07 21:53:00 ianb Exp $"; +  + #include "telnetd.h" + #if	defined(AUTHENTICATE) + #include <libtelnet/auth.h> ++extern char *UserNameRequested; + #endif +  + int not42 = 1; +@@ -1161,7 +1162,7 @@ +  +     case TELOPT_ENVIRON: { + 	register int c; +-	register char *cp, *varp, *valp; ++	register unsigned char *cp, *varp, *valp; +  + 	if (SB_EOF()) + 		return; +@@ -1177,25 +1178,41 @@ + 	if (SB_EOF()) + 		return; +  +-	cp = varp = (char *)subpointer; ++	cp = varp = (unsigned char *)subpointer; + 	valp = 0; +  + 	while (!SB_EOF()) { + 	    switch (c = SB_GET()) { + 	    case ENV_VALUE: + 		*cp = '\0'; +-		cp = valp = (char *)subpointer; ++		cp = valp = (unsigned char *)subpointer; + 		break; + 		 + 	    case ENV_VAR: + 		*cp = '\0'; +-		if (envvarok(varp)) { +-		    if (valp) +-			(void)setenv(varp, valp, 1); +-		    else +-			unsetenv(varp); ++		if (envvarok((char *)varp)) { ++		  if (valp) { ++		    (void)setenv((char *)varp, (char *)valp, 1); ++#ifdef AUTHENTICATE ++		    if (strcmp((char *)varp,"USER") == 0) { ++		      if (UserNameRequested) ++			free(UserNameRequested); ++		      UserNameRequested=strdup((char *)valp); ++		    } ++#endif /* AUTHENTICATE */ ++		  } ++		  else { ++		    unsetenv((char *)varp); ++#ifdef AUTHENTICATE ++		    if (strcmp((char *)varp,"USER") == 0) { ++		      if (UserNameRequested) ++			free(UserNameRequested); ++		      UserNameRequested=NULL; ++		    } ++#endif /* AUTHENTICATE */ ++		  } + 		} +-		cp = varp = (char *)subpointer; ++		cp = varp = (unsigned char *)subpointer; + 		valp = 0; + 		break; + 		 +@@ -1211,11 +1228,27 @@ + 	    } + 	} + 	*cp = '\0'; +-	if (envvarok(varp)) { +-	    if (valp) +-		(void)setenv(varp, valp, 1); +-	    else +-		unsetenv(varp); ++	if (envvarok((char *)varp)) { ++	  if (valp) { ++	    (void)setenv((char *)varp, (char *)valp, 1); ++#ifdef AUTHENTICATE ++	    if (strcmp((char *)varp,"USER") == 0) { ++	      if (UserNameRequested) ++		free(UserNameRequested); ++	      UserNameRequested=strdup((char *)valp); ++	    } ++#endif /* AUTHENTICATE */ ++	  } ++	  else { ++	    unsetenv((char *)varp); ++#ifdef AUTHENTICATE ++	    if (strcmp((char *)varp,"USER") == 0) { ++	      if (UserNameRequested) ++		free(UserNameRequested); ++	      UserNameRequested=NULL; ++	    } ++#endif /* AUTHENTICATE */ ++	  } + 	} + 	break; +     }  /* end of case TELOPT_ENVIRON */ +@@ -1367,7 +1400,7 @@ +     ADD(IAC); +     ADD(SE); +  +-    writenet(statusbuf, ncp - statusbuf); ++    writenet((char *)statusbuf, ncp - statusbuf); +     netflush();	/* Send it on its way */ +  +     DIAG(TD_OPTIONS, {printsub('>', statusbuf, ncp - statusbuf); netflush();}); +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/sys_term.c netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/sys_term.c +--- netkit-telnet-ssl-0.17.24+0.1/telnetd/sys_term.c	2004-05-27 11:47:27.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/sys_term.c	2010-05-11 13:44:40.106987377 +0200 +@@ -35,7 +35,7 @@ +  * From: @(#)sys_term.c	5.16 (Berkeley) 3/22/91 +  */ + char st_rcsid[] =  +-  "$Id: sys_term.c,v 1.17 1999/12/17 14:28:47 dholland Exp $"; ++  "$Id: sys_term.c,v 1.1 2004-10-14 13:19:53 ianb Exp $"; +  + #include <utmp.h> +  +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/telnetd.8 netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/telnetd.8 +--- netkit-telnet-ssl-0.17.24+0.1/telnetd/telnetd.8	2004-05-27 11:47:27.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/telnetd.8	2010-05-11 13:44:40.106987377 +0200 +@@ -30,7 +30,7 @@ + .\" SUCH DAMAGE. + .\" + .\"	from: @(#)telnetd.8	6.8 (Berkeley) 4/20/91 +-.\"	$Id: telnetd.8,v 1.18 2000/07/30 23:57:10 dholland Exp $ ++.\"	$Id: telnetd.8,v 1.5 2006-09-24 00:48:31 ianb Exp $ + .\" + .Dd December 29, 1996 + .Dt TELNETD 8 +@@ -42,7 +42,7 @@ + protocol server + .Sh SYNOPSIS + .Nm /usr/sbin/in.telnetd +-.Op Fl hns ++.Op Fl hnNs + .Op Fl a Ar authmode + .Op Fl D Ar debugmode + .Op Fl L Ar loginprg +@@ -50,6 +50,7 @@ + .Op Fl X Ar authtype + .Op Fl edebug + .Op Fl debug Ar port ++.Op Fl z Ar sslopt + .Sh DESCRIPTION + The + .Nm telnetd +@@ -175,6 +176,9 @@ + if the client is still there, so that idle connections + from machines that have crashed or can no longer + be reached may be cleaned up. ++.It Fl N ++Disable reverse DNS lookups and use the numeric IP address in logs ++and REMOTEHOST environment variable. + .It Fl s + This option is only enabled if + .Nm telnetd +@@ -219,12 +223,16 @@ + only accepts connections from SSL enhanced telnet with option  + .Ic -z ssl + .It Ic nossl, !ssl +-switch of SSL negotiation ++switch off SSL negotiation + .It Ic certsok + Look username up in /etc/ssl.users. The format of this file is lines + of this form:  + .Ar user1,user2:/C=US/..... +-where user1 and user2 are usernames. If client certificate is valid, ++where user1 and user2 are usernames and /C=US/... is the subject name of ++the certificate. Use  ++.Ar openssl x509 -subject -noout ++to extract the subject name. ++If client certificate is valid, + authenticate without password. + .It Ic certrequired + client certificate is mandatory +@@ -451,7 +459,6 @@ + is compiled with support for data encryption, and + indicates a willingness to decrypt + the data stream. +-.Xr issue.net 5 ) . + .El + .Sh FILES + .Pa /etc/services , +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/telnetd.c netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/telnetd.c +--- netkit-telnet-ssl-0.17.24+0.1/telnetd/telnetd.c	2004-05-27 11:47:27.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/telnetd.c	2010-05-11 13:44:40.113654043 +0200 +@@ -39,7 +39,7 @@ +  * From: @(#)telnetd.c	5.48 (Berkeley) 3/1/91 +  */ + char telnetd_rcsid[] =  +-  "$Id: telnetd.c,v 1.24 2000/04/12 21:36:12 dholland Exp $"; ++  "$Id: telnetd.c,v 1.7 2006-06-16 13:29:00 ianb Exp $"; +  + #include "../version.h" +  +@@ -90,6 +90,7 @@ +  + int debug = 0; + int keepalive = 1; ++int numeric_hosts = 0; + #ifdef LOGIN_WRAPPER + char *loginprg = LOGIN_WRAPPER; + #else +@@ -222,13 +223,12 @@ + 	 * certificate that we will be running with as we cannot + 	 * be sure of the cwd when we are launched + 	 */ +-	sprintf(cert_filepath,"%s/%s",X509_get_default_cert_dir(), +-	        "telnetd.pem"); ++	strcpy(cert_filepath, "/etc/telnetd-ssl/telnetd.pem"); + 	ssl_cert_file=cert_filepath; + 	ssl_key_file=NULL; + #endif /* USE_SSL */ +  +-	while ((ch = getopt(argc, argv, "d:a:e:lhnr:I:D:B:sS:a:X:L:z:")) != EOF) { ++	while ((ch = getopt(argc, argv, "d:a:e:lhnNr:I:D:B:sS:a:X:L:z:")) != EOF) { + 		switch(ch) { +  + #ifdef USE_SSL +@@ -389,6 +389,10 @@ + 			keepalive = 0; + 			break; +  ++		case 'N': ++		  numeric_hosts = 1; ++		  break; ++ + #ifdef	SecurID + 		case 's': + 			/* SecurID required */ +@@ -427,7 +431,7 @@ +  + #ifdef USE_SSL +  +-        if (ssl_secure_flag || ssl_cert_required) { ++        if (ssl_secure_flag || ssl_cert_required || ssl_certsok_flag) { + 	    /* in secure mode we *must* switch on the base level + 	     * verify checking otherwise we cannot abort connections + 	     * at the right place! +@@ -520,9 +524,9 @@ + 	        sprintf(errbuf,"SSL_accept error %s\n", + 		    ERR_error_string(ERR_get_error(),NULL)); +  +-		syslog(LOG_WARNING, errbuf); ++		syslog(LOG_WARNING, "%s", errbuf); +  +-		BIO_printf(bio_err,errbuf); ++		BIO_printf(bio_err,"%s",errbuf); +  + 		/* go to sleep to make sure we are noticed */ + 		sleep(10); +@@ -571,6 +575,11 @@ + #ifdef	AUTHENTICATE + 	fprintf(stderr, " [-X auth-type]"); + #endif ++#ifdef USE_SSL ++        /* might as well output something useful here ... */ ++	fprintf(stderr, "\n\t [-z ssl] [-z secure] [-z debug] [-z verify=int]\n\t"); ++	fprintf(stderr, " [-z cert=file] [-z key=file]\n\t"); ++#endif /* USE_SSL */ + 	fprintf(stderr, "\n"); + 	exit(1); + } +@@ -596,6 +605,18 @@ +     /* +      * Handle the Authentication option before we do anything else. +      */ ++    send_do(TELOPT_ENVIRON, 1); ++    while (his_will_wont_is_changing(TELOPT_ENVIRON)) { ++	ttloop(); ++    } ++ ++    if (his_state_is_will(TELOPT_ENVIRON)) { ++      netoprintf("%c%c%c%c%c%c",  ++		 IAC, SB, TELOPT_ENVIRON, TELQUAL_SEND, IAC, SE); ++	while (sequenceIs(environsubopt, baseline)) ++	    ttloop(); ++    } ++ +     send_do(TELOPT_AUTHENTICATION, 1); +     while (his_will_wont_is_changing(TELOPT_AUTHENTICATION)) + 	ttloop(); +@@ -654,7 +675,6 @@ +     send_do(TELOPT_TTYPE, 1); +     send_do(TELOPT_TSPEED, 1); +     send_do(TELOPT_XDISPLOC, 1); +-    send_do(TELOPT_ENVIRON, 1); +     while ( + #if	defined(ENCRYPT) + 	   his_do_dont_is_changing(TELOPT_ENCRYPT) || +@@ -698,10 +718,6 @@ + 	while (sequenceIs(xdisplocsubopt, baseline)) + 	    ttloop(); +     } +-    if (his_state_is_will(TELOPT_ENVIRON)) { +-	while (sequenceIs(environsubopt, baseline)) +-	    ttloop(); +-    } +     if (his_state_is_will(TELOPT_TTYPE)) { + 	char first[256], last[256]; +  +@@ -852,7 +868,7 @@ + static void + doit(struct sockaddr *who, socklen_t who_len) + { +-	const char *host; ++	char *host; + 	int level; + 	char user_name[256]; + 	int i; +@@ -867,7 +883,8 @@ +  + 	/* get name of connected client */ + 	if (getnameinfo(who, who_len, remote_host_name, +-			sizeof(remote_host_name), 0, 0, 0)) { ++			sizeof(remote_host_name), 0, 0,  ++			numeric_hosts ? NI_NUMERICHOST : 0)) { + 		syslog(LOG_ERR, "doit: getnameinfo: %m"); + 		*remote_host_name = 0; +         } +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/telnetd.h netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/telnetd.h +--- netkit-telnet-ssl-0.17.24+0.1/telnetd/telnetd.h	1999-03-27 08:46:21.000000000 +0100 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/telnetd.h	2010-05-11 13:44:40.113654043 +0200 +@@ -31,7 +31,7 @@ +  * SUCH DAMAGE. +  * +  *	from: @(#)telnetd.h	5.3 (Berkeley) 3/1/91 +- *	$Id: telnetd.h,v 1.2 1999/03/27 07:46:21 dholland Exp $ ++ *	$Id: telnetd.h,v 1.1 2004-10-14 13:19:53 ianb Exp $ +  */ +  +  +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/termstat.c netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/termstat.c +--- netkit-telnet-ssl-0.17.24+0.1/telnetd/termstat.c	1999-12-12 15:59:45.000000000 +0100 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/termstat.c	2010-05-11 13:44:40.113654043 +0200 +@@ -35,7 +35,7 @@ +  * From: @(#)termstat.c	5.10 (Berkeley) 3/22/91 +  */ + char termstat_rcsid[] =  +-  "$Id: termstat.c,v 1.6 1999/12/12 14:59:45 dholland Exp $"; ++  "$Id: termstat.c,v 1.1 2004-10-14 13:19:53 ianb Exp $"; +  + #include "telnetd.h" +  +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetd/utility.c netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/utility.c +--- netkit-telnet-ssl-0.17.24+0.1/telnetd/utility.c	2004-05-27 11:47:27.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetd/utility.c	2010-05-11 13:45:21.990318196 +0200 +@@ -35,7 +35,7 @@ +  * From: @(#)utility.c	5.8 (Berkeley) 3/22/91 +  */ + char util_rcsid[] =  +-  "$Id: utility.c,v 1.11 1999/12/12 14:59:45 dholland Exp $"; ++  "$Id: utility.c,v 1.8 2006-09-24 00:48:31 ianb Exp $"; +  + #define PRINTOPTIONS +  +@@ -49,6 +49,15 @@ +  + #include "telnetd.h" +  ++/* patched by fluke.l at gmail.com , im not sure it's gonna work or not  */ ++typedef struct { ++	int (*read) (void *, char *, int); ++	int (*write) (void *, char const *, int); ++	fpos_t (*seek) (void *, fpos_t, int); ++	int (*close) (void *); ++} cookie_io_functions_t; ++/* end patch */ ++ + struct buflist { + 	struct buflist *next; + 	char *buf; +@@ -86,6 +95,11 @@ +     DIAG(TD_REPORT, netoprintf("td: ttloop\r\n");); + 		      +     netflush(); ++#ifdef USE_SSL ++    if (ssl_active_flag) ++	ncc = SSL_read(ssl_con, netibuf, sizeof netibuf); ++    else ++#endif /* USE_SSL */ +     ncc = read(net, netibuf, sizeof(netibuf)); +     if (ncc < 0) { + 	syslog(LOG_INFO, "ttloop: read: %m\n"); +@@ -216,7 +230,7 @@ + 	} +  + out: +-	return next ? next + (current - end) : current; ++	return (const char *) (next ? (next + (current - end)) : current ); + }  /* end of nextitem */ +  +  +@@ -243,6 +257,29 @@ + 	doclear--; + }  /* end of netclear */ +  ++#ifdef USE_SSL ++static int ++SSL_writev(SSL *ssl_con,const struct iovec *vector,int num) ++{ ++	const struct iovec *v = vector; ++ ++	int ret; ++	int len = 0; ++ ++	while (num > 0) { ++		ret = SSL_write(ssl_con, v->iov_base, v->iov_len); ++		if (ret < 0) ++			return ret; ++		if (ret != v->iov_len) ++			syslog(LOG_NOTICE, "SSL_writev: short write\n"); ++		num -= v->iov_len; ++		len += ret; ++		v++; ++	} ++	return len; ++} ++#endif /* USE_SSL */ ++ + static void + netwritebuf(void) + { +@@ -253,6 +290,9 @@ + 	size_t len; + 	int ltrailing = trailing; +  ++	if (!listlen) ++		return; ++ + 	vector = malloc(listlen * sizeof(struct iovec)); + 	if (!vector) { + 		return; +@@ -265,6 +305,11 @@ + 		if (lp == urg) { + 			len = v - vector; + 			if (!len) { ++#ifdef USE_SSL ++			        if (ssl_active_flag) ++				  n = SSL_write(ssl_con, lp->buf, 1);	 ++				else ++#endif /* USE_SSL */ + 				n = send(net, lp->buf, 1, MSG_OOB); + 				if (n > 0) { + 					urg = 0; +@@ -282,15 +327,25 @@ + 	vector->iov_base = (char *)vector->iov_base + skip; + 	vector->iov_len -= skip; +  +-	n = writev(net, vector, len); ++	if(vector->iov_len == 0 ) { ++	  n=0; ++	} else { ++ ++#ifdef USE_SSL ++	  if (ssl_active_flag) ++		n = SSL_writev(ssl_con, vector, len);	/* normal write */ ++	  else	 ++#endif /* USE_SSL */ ++		n = writev(net, vector, len); +  + epi: +-	free(vector); ++	  free(vector); +  +-	if (n < 0) { ++	  if (n < 0) { + 		if (errno != EWOULDBLOCK && errno != EINTR) +-			cleanup(0); ++		  cleanup(0); + 		return; ++	  } + 	} +  + 	len = n + skip; +@@ -315,6 +370,10 @@ + 		} + 	} +  ++	if(ltrailing && (len==0)) { ++		ltrailing=trailing=0; ++	} ++ + 	skip = len; + } +  +@@ -323,16 +382,22 @@ +  *             Send as much data as possible to the network, +  *     handling requests for urgent data. +  */ +-void ++int + netflush(void) + { + 	if (fflush(netfile)) { + 		/* out of memory? */ + 		cleanup(0); ++		return 0; + 	} +-	if (listlen) { +-		netwritebuf(); +-	} ++	netwritebuf(); ++	return 1; ++} ++ ++int ++writenet(char *b , int l) ++{ ++  return(fwrite(b, 1, l, netfile)); + } +  +  +@@ -983,7 +1048,7 @@ + 			((pointer[3] & AUTH_HOW_MASK) == AUTH_HOW_MUTUAL) ? + 			"MUTUAL" : "ONE-WAY"); +  +-		auth_printsub(&pointer[1], length - 1, buf, sizeof(buf)); ++		auth_printsub(&pointer[1], length - 1, (unsigned char *) buf, sizeof(buf)); + 		netoprintf("%s", buf); + 		break; +  +@@ -1191,7 +1256,15 @@ + 		size_t l; + 		size_t m = tail->len; +  +-		p = nextitem(tail->buf, tail->buf + tail->len, buf, end); ++		if((tail->buf == NULL) || (tail->len==0)) ++		{ ++			p = nextitem((unsigned char *) buf, (unsigned char *) end,0,0); ++		} ++		else ++		{ ++			p = nextitem((unsigned char *) tail->buf, (unsigned char *) (tail->buf + tail->len), ++						 (unsigned char *) buf, (unsigned char *) end); ++		} + 		ltrailing = !p; + 		if (ltrailing) { + 			p = end; +@@ -1245,7 +1318,7 @@ + 		const char *p; + 		size_t l; +  +-		p = nextitem(buf, end, 0, 0); ++		p = nextitem((unsigned char *) buf, (unsigned char *) end, 0, 0); + 		ltrailing = !p; + 		if (ltrailing) { + 			p = end; +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetlogin/Makefile netkit-telnet-ssl-0.17.24+0.1.orig/telnetlogin/Makefile +--- netkit-telnet-ssl-0.17.24+0.1/telnetlogin/Makefile	2000-04-13 03:07:22.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetlogin/Makefile	2010-05-11 13:46:19.023660189 +0200 +@@ -11,7 +11,7 @@ + $(OBJS): ../version.h +  + install: telnetlogin +-	install -s -m4750 -oroot -gtelnetd telnetlogin $(INSTALLROOT)$(SBINDIR) ++	install -m$(BINMODE) telnetlogin $(INSTALLROOT)$(SBINDIR) + 	install -m$(MANMODE) telnetlogin.8 $(INSTALLROOT)$(MANDIR)/man8 +  + clean: +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetlogin/telnetlogin.8 netkit-telnet-ssl-0.17.24+0.1.orig/telnetlogin/telnetlogin.8 +--- netkit-telnet-ssl-0.17.24+0.1/telnetlogin/telnetlogin.8	2004-05-27 11:47:02.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetlogin/telnetlogin.8	2010-05-11 13:44:40.123659071 +0200 +@@ -28,7 +28,7 @@ + .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + .\" SUCH DAMAGE. + .\" +-.\"	$Id: telnetlogin.8,v 1.4 2000/07/30 23:57:10 dholland Exp $ ++.\"	$Id: telnetlogin.8,v 1.2 2004-11-07 15:47:43 ianb Exp $ + .\" + .Dd April 12, 2000 + .Dt TELNETLOGIN 8 +@@ -40,6 +40,7 @@ + .Nm telnetlogin + .Op Fl h Ar host + .Op Fl p ++.Op Fl f Ar username + .Op Ar username + .Sh DESCRIPTION + .Nm telnetlogin +@@ -79,11 +80,6 @@ + .Xr inetd 8 , + .Xr telnetd 8 + .Sh RESTRICTIONS +-.Nm telnetlogin +-does not permit the +-.Fl f +-option to login, so will not +-work with telnetds that perform authentication via Kerberos or SSL. + .Pp + THIS IS PRESENTLY EXPERIMENTAL CODE; USE WITH CAUTION. + .Sh HISTORY +diff -ur netkit-telnet-ssl-0.17.24+0.1/telnetlogin/telnetlogin.c netkit-telnet-ssl-0.17.24+0.1.orig/telnetlogin/telnetlogin.c +--- netkit-telnet-ssl-0.17.24+0.1/telnetlogin/telnetlogin.c	2004-05-27 11:47:02.000000000 +0200 ++++ netkit-telnet-ssl-0.17.24+0.1.orig/telnetlogin/telnetlogin.c	2010-05-11 13:44:40.123659071 +0200 +@@ -35,7 +35,7 @@ +  "All rights reserved.\n"; +  + char rcsid[] = +-  "$Id: telnetlogin.c,v 1.1 2000/04/13 01:07:22 dholland Exp $"; ++  "$Id: telnetlogin.c,v 1.2 2004-11-07 15:47:43 ianb Exp $"; + #include "../version.h" +  + #include <sys/types.h> +@@ -76,7 +76,16 @@ +    int i=0; +    /* should we check length? */ +    for (i=0; hname[i]; i++) { +-      if (hname[i]<=32 && hname[i]>126) return -1; ++      if ((hname[i]<=32) || (hname[i]>126)) return -1; ++   } ++   return 0; ++} ++ ++static int check_username(char *username) { ++   int i; ++   if (strlen(username) > 32) return -1; ++   for (i=0; username[i]; i++) { ++      if ((username[i]<=32) || (username[i]>126)) return -1; +    } +    return 0; + } +@@ -158,6 +167,12 @@ +    if (argn < argc && !strcmp(argv[argn], "-p")) { +       argn++; +    } ++   if (argn < argc && !strcmp(argv[argn], "-f")) { ++      argn++; ++      if (argn==argc) die("Illegal args: -f requires argument"); ++      if (check_username(argv[argn])) die("Illegal remote username specified"); ++      argn++; ++   } +    if (argn < argc && argv[argn][0] != '-') { +       argn++; +    } diff --git a/abs/not_built/core/netkit-telnet-ssl/netkit-telnet-ssl.install b/abs/not_built/core/netkit-telnet-ssl/netkit-telnet-ssl.install new file mode 100644 index 0000000..25a4b28 --- /dev/null +++ b/abs/not_built/core/netkit-telnet-ssl/netkit-telnet-ssl.install @@ -0,0 +1,5 @@ + +post_install() { +  groupadd telnetd +} + diff --git a/abs/not_built/core/netkit-telnet-ssl/telnet.xinetd b/abs/not_built/core/netkit-telnet-ssl/telnet.xinetd new file mode 100644 index 0000000..f4ef4c0 --- /dev/null +++ b/abs/not_built/core/netkit-telnet-ssl/telnet.xinetd @@ -0,0 +1,10 @@ +service telnet-ssl +{ +	flags			= REUSE +	socket_type		= stream +	wait			= no +	user			= root +	server			= /usr/sbin/in.telnetd-ssl +	log_on_failure		+= USERID +	disable			= yes +} diff --git a/abs/not_built/core/ntfs-3g/25-ntfs-config-write-policy.fdi b/abs/not_built/core/ntfs-3g/25-ntfs-config-write-policy.fdi new file mode 100644 index 0000000..54195d8 --- /dev/null +++ b/abs/not_built/core/ntfs-3g/25-ntfs-config-write-policy.fdi @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<deviceinfo version="0.2"> +  <device> +   	<match key="volume.fstype" string="ntfs"> +        <append key="volume.fstype.alternative" type="copy_property">volume.fstype</append> +        <merge key="volume.mount.ntfs.valid_options" type="copy_property">volume.mount.valid_options</merge> +        <merge key="volume.unmount.ntfs.valid_options" type="copy_property">volume.unmount.valid_options</merge> +        <merge key="volume.fstype" type="string">ntfs-3g</merge> +       	<merge key="volume.mount.valid_options" type="strlist">ro</merge> +        <append key="volume.mount.valid_options" type="strlist">atime</append> +        <append key="volume.mount.valid_options" type="strlist">noatime</append> +       	<append key="volume.mount.valid_options" type="strlist">relatime</append> +       	<append key="volume.mount.valid_options" type="strlist">fake_rw</append> +       	<append key="volume.mount.valid_options" type="strlist">no_def_opts</append> +       	<append key="volume.mount.valid_options" type="strlist">default_permissions</append> +       	<append key="volume.mount.valid_options" type="strlist">umask=</append> +       	<append key="volume.mount.valid_options" type="strlist">fmask=</append> +       	<append key="volume.mount.valid_options" type="strlist">dmask=</append> +       	<append key="volume.mount.valid_options" type="strlist">uid=</append> +       	<append key="volume.mount.valid_options" type="strlist">gid=</append> +      	<append key="volume.mount.valid_options" type="strlist">show_sys_files</append> +       	<append key="volume.mount.valid_options" type="strlist">silent</append> +       	<append key="volume.mount.valid_options" type="strlist">force</append> +       	<append key="volume.mount.valid_options" type="strlist">remove_hiberfile</append> +       	<append key="volume.mount.valid_options" type="strlist">locale=</append> +       	<append key="volume.mount.valid_options" type="strlist">streams_interface=</append> +       	<append key="volume.mount.valid_options" type="strlist">debug</append> +       	<append key="volume.mount.valid_options" type="strlist">no_detatch</append> +       	<append key="volume.mount.valid_options" type="strlist">sync</append> +       	<append key="volume.mount.valid_options" type="strlist">dirsync</append> +       	<append key="volume.mount.valid_options" type="strlist">nodiratime</append> +       	<append key="volume.mount.valid_options" type="strlist">noexec</append> +        <append key="volume.mount.valid_options" type="strlist">quiet</append> +       	<append key="volume.mount.valid_options" type="strlist">remount</append> +       	<append key="volume.mount.valid_options" type="strlist">exec</append> +       	<append key="volume.mount.valid_options" type="strlist">recover</append> +       	<append key="volume.mount.valid_options" type="strlist">norecover</append> +       	<merge key="volume.unmount.valid_options" type="strlist">lazy</merge> +       	<merge key="volume.policy.mount_filesystem" type="string">ntfs-3g</merge> +	</match> +  </device> +</deviceinfo> diff --git a/abs/not_built/core/ntfs-3g/PKGBUILD b/abs/not_built/core/ntfs-3g/PKGBUILD new file mode 100644 index 0000000..03a7168 --- /dev/null +++ b/abs/not_built/core/ntfs-3g/PKGBUILD @@ -0,0 +1,33 @@ +# $Id: PKGBUILD 94455 2010-10-07 10:35:38Z ronald $ +# Maintainer: Ronald van Haren <ronald.archlinux.org> +# Contributor: Thomas Bächler <thomas.archlinux.org> + +pkgname=ntfs-3g +pkgver=2010.10.2 +pkgrel=1 +pkgdesc="Stable read and write NTFS driver" +url="http://www.tuxera.com" +arch=('i686' 'x86_64') +license=('GPL2') +depends=('glibc' 'fuse') +makedepends=('pkgconfig') +options=('!libtool') +source=(http://www.tuxera.com/opensource/${pkgname}-${pkgver}.tgz +        25-ntfs-config-write-policy.fdi) +sha1sums=('97531dc0e556596e6bf2169863e9b8368c7d2bd0' +          '200029f2999a2c284fd30ae25734abf6459c3501') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ac_cv_path_LDCONFIG=/bin/true ./configure --prefix=/usr \ +    --with-fuse=external --disable-static +  make +} + +package() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  make DESTDIR="${pkgdir}" install +  ln -s /bin/ntfs-3g "${pkgdir}/sbin/mount.ntfs" +  install -m755 -d "${pkgdir}/usr/share/hal/fdi/policy/10osvendor" +  install -m644 "${srcdir}/25-ntfs-config-write-policy.fdi" "${pkgdir}/usr/share/hal/fdi/policy/10osvendor/" +} diff --git a/abs/not_built/core/ntfsprogs/PKGBUILD b/abs/not_built/core/ntfsprogs/PKGBUILD new file mode 100644 index 0000000..56bf765 --- /dev/null +++ b/abs/not_built/core/ntfsprogs/PKGBUILD @@ -0,0 +1,24 @@ +# $Id: PKGBUILD 48342 2009-08-01 14:46:45Z jgc $ +# Maintainer: Ronald van Haren <ronald.archlinux.org> + +pkgname=ntfsprogs +pkgver=2.0.0 +pkgrel=4 +depends=('glibc' 'fuse' 'util-linux-ng>=2.16') +makedepends=('pkgconfig') +pkgdesc="NTFS filesystem utilities" +arch=(i686 x86_64) +license=('GPL') +source=(http://downloads.sourceforge.net/sourceforge/linux-ntfs/${pkgname}-${pkgver}.tar.gz) +url="http://www.linux-ntfs.org/" +options=(!libtool) +md5sums=('2c402b647bb7aeb1d3f8ce1cc354fd68') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr --disable-gnome-vfs \ +      --mandir=/usr/share/man || return 1 +  make || return 1 +  make DESTDIR="${pkgdir}" install || return 1 +} + diff --git a/abs/not_built/core/ntfsprogs/ntfsprogs.install b/abs/not_built/core/ntfsprogs/ntfsprogs.install new file mode 100644 index 0000000..a58d672 --- /dev/null +++ b/abs/not_built/core/ntfsprogs/ntfsprogs.install @@ -0,0 +1,24 @@ + # arg 1:  the new package version +post_install() { +cat << EOF +NOTE: +==> There is a good guide to use the ntfsresize utility at: +    'http://mlf.linux.rulez.org/mlf/ezaz/ntfsresize.html' + +WARNING: +==> This program "can" cause dataloss if you don't use it right! +==> Make a backup of your files! You have been warned !!!      +EOF + +} + +# arg 1:  the new package version +# arg 2:  the old package version +post_upgrade() { +post_install $1 +} + + +op=$1 +shift +$op $*
\ No newline at end of file diff --git a/abs/not_built/core/nuvexport/MP4.pm b/abs/not_built/core/nuvexport/MP4.pm new file mode 100755 index 0000000..e13d44b --- /dev/null +++ b/abs/not_built/core/nuvexport/MP4.pm @@ -0,0 +1,316 @@ +#!/usr/bin/perl -w +# +# ffmpeg-based MP4 (iPod) video module for nuvexport. +# +# Many thanks to cartman in #ffmpeg, and for the instructions at +# http://rob.opendot.cl/index.php?active=3&subactive=1 +# http://videotranscoding.wikispaces.com/EncodeForIPodorPSP +# +# @url       $URL: svn+ssh://xris@svn.mythtv.org/var/lib/svn/trunk/mythextras/nuvexport/export/ffmpeg/MP4.pm $ +# @date      $Date: 2008-02-16 20:54:43 -0800 (Sat, 16 Feb 2008) $ +# @version   $Revision: 16110 $ +# @author    $Author: xris $ +# @copyright Silicon Mechanics +# + +package export::ffmpeg::MP4; +    use base 'export::ffmpeg'; + +# Load the myth and nuv utilities, and make sure we're connected to the database +    use nuv_export::shared_utils; +    use nuv_export::cli; +    use nuv_export::ui; +    use mythtv::recordings; + +# Load the following extra parameters from the commandline +    add_arg('quantisation|q=i', 'Quantisation'); +    add_arg('a_bitrate|a=i',    'Audio bitrate'); +    add_arg('v_bitrate|v=i',    'Video bitrate'); +    add_arg('multipass!',       'Enable two-pass encoding.'); +    add_arg('mp4_codec=s',      'Video codec to use for MP4/iPod video (mpeg4 or h264).'); +    add_arg('mp4_fps=s',        'Framerate to use:  auto, 25, 23.97, 29.97.'); +    add_arg('ipod!',            'Produce ipod-compatible output.'); + +    sub new { +        my $class = shift; +        my $self  = { +                     'cli'      => qr/\b(?:mp4|ipod)\b/i, +                     'name'     => 'Export to MP4 (iPod)', +                     'enabled'  => 1, +                     'errors'   => [], +                     'defaults' => {}, +                    }; +        bless($self, $class); + +    # Initialize the default parameters +        $self->load_defaults(); + +    # Verify any commandline or config file options +        die "Audio bitrate must be > 0\n" unless (!defined $self->val('a_bitrate') || $self->{'a_bitrate'} > 0); +        die "Video bitrate must be > 0\n" unless (!defined $self->val('v_bitrate') || $self->{'v_bitrate'} > 0); +        die "Width must be > 0\n"         unless (!defined $self->val('width')     || $self->{'width'} =~ /^\s*\D/  || $self->{'width'}  > 0); +        die "Height must be > 0\n"        unless (!defined $self->val('height')    || $self->{'height'} =~ /^\s*\D/ || $self->{'height'} > 0); + +    # VBR, multipass, etc. +        if ($self->val('multipass')) { +            $self->{'vbr'} = 1; +        } +        elsif ($self->val('quantisation')) { +            die "Quantisation must be a number between 1 and 31 (lower means better quality).\n" if ($self->{'quantisation'} < 1 || $self->{'quantisation'} > 31); +            $self->{'vbr'} = 1; +        } + +    # Initialize and check for ffmpeg +        $self->init_ffmpeg(); + +    # Can we even encode mp4? +        if (!$self->can_encode('mp4')) { +            push @{$self->{'errors'}}, "Your ffmpeg installation doesn't support encoding to mp4 file formats."; +        } +        if (!$self->can_encode('aac') && !$self->can_encode('libfaac')) { +            push @{$self->{'errors'}}, "Your ffmpeg installation doesn't support encoding to aac audio."; +        } +        if (!$self->can_encode('mpeg4') && !$self->can_encode('h264') && !$self->can_encode('libx264')) { +            push @{$self->{'errors'}}, "Your ffmpeg installation doesn't support encoding to either mpeg4 or h264 video."; +        } +    # Any errors?  disable this function +        $self->{'enabled'} = 0 if ($self->{'errors'} && @{$self->{'errors'}} > 0); +    # Return +        return $self; +    } + +# Load default settings +    sub load_defaults { +        my $self = shift; +    # Load the parent module's settings +        $self->SUPER::load_defaults(); +    # Default settings +        $self->{'defaults'}{'v_bitrate'}  = 384; +        $self->{'defaults'}{'a_bitrate'}  = 64; +        $self->{'defaults'}{'width'}      = 320; +        $self->{'defaults'}{'mp4_codec'}  = 'mpeg4'; +    # Verify commandline options +        if ($self->val('mp4_codec') !~ /^(?:mpeg4|h264)$/i) { +            die "mp4_codec must be either mpeg4 or h264.\n"; +        } +        $self->{'mp4_codec'} =~ tr/A-Z/a-z/; + +    } + +# Gather settings from the user +    sub gather_settings { +        my $self = shift; +    # Load the parent module's settings +        $self->SUPER::gather_settings(); +    # Audio Bitrate +        $self->{'a_bitrate'} = query_text('Audio bitrate?', +                                          'int', +                                          $self->val('a_bitrate')); +    # Video options +        if (!$is_cli) { +        # iPod compatibility mode? +            $self->{'ipod'} = query_text('Enable iPod compatibility?', +                                         'yesno', +                                         $self->val('ipod')); +        # Video codec +            if ($self->{'ffmpeg_vers'} eq 'svn') { +                while (1) { +                    my $codec = query_text('Video codec (mpeg4 or h264)?', +                                           'string', +                                           $self->{'mp4_codec'}); +                    if ($codec =~ /^m/) { +                        $self->{'mp4_codec'} = 'mpeg4'; +                        last; +                    } +                    elsif ($codec =~ /^h/) { +                        $self->{'mp4_codec'} = 'h264'; +                        last; +                    } +                    print "Please choose either mpeg4 or h264\n"; +                } +            } +            else { +                $self->{'mp4_codec'} = 'mpeg4'; +                print "Using the mpeg4 codec (h.264 mp4/ipod encoding requires the svn version of ffmpeg.)\n"; +            } +        # Video bitrate options +            $self->{'vbr'} = query_text('Variable bitrate video?', +                                        'yesno', +                                        $self->val('vbr')); +            if ($self->{'vbr'}) { +                $self->{'multipass'} = query_text('Multi-pass (slower, but better quality)?', +                                                  'yesno', +                                                  $self->val('multipass')); +                if (!$self->{'multipass'}) { +                    while (1) { +                        my $quantisation = query_text('VBR quality/quantisation (1-31)?', +                                                      'float', +                                                      $self->val('quantisation')); +                        if ($quantisation < 1) { +                            print "Too low; please choose a number between 1 and 31.\n"; +                        } +                        elsif ($quantisation > 31) { +                            print "Too high; please choose a number between 1 and 31\n"; +                        } +                        else { +                            $self->{'quantisation'} = $quantisation; +                            last; +                        } +                    } +                } +            } else { +                $self->{'multipass'} = 0; +            } +        # Ask the user what video bitrate he/she wants +            $self->{'v_bitrate'} = query_text('Video bitrate?', +                                              'int', +                                              $self->val('v_bitrate')); +        } +    # Complain about h264 +        if ($self->{'mp4_codec'} eq 'h264' && $self->{'ffmpeg_vers'} ne 'svn') { +            die "h.264 mp4/ipod encoding requires the svn version of ffmpeg.\n"; +        } +    # Loop, in case we need to verify ipod compatibility +        while (1) { +        # Query the resolution +            $self->query_resolution(); +        # Warn about ipod resolution +            if ($self->val('ipod') && ($self->{'height'} > 480 || $self->{'width'} > 640)) { +                my $note = "WARNING:  Video larger than 640x480 will not play on an iPod.\n"; +                die $note if ($is_cli); +                print $note; +                next; +            } +        # Done looping +            last; +        } +    } + +    sub export { +        my $self    = shift; +        my $episode = shift; +    # Make sure this is set to anamorphic mode +        $self->{'aspect_stretched'} = 1; +    # Framerate +        my $standard = ($episode->{'finfo'}{'fps'} =~ /^2(?:5|4\.9)/) ? 'PAL' : 'NTSC'; +        if ($standard eq 'PAL') { +            $self->{'out_fps'} = 25; +        } +        elsif ($self->val('mp4_fps') =~ /^23/) { +            $self->{'out_fps'} = 23.97; +        } +        elsif ($self->val('mp4_fps') =~ /^29/) { +            $self->{'out_fps'} = 29.97; +        } +        else { +            $self->{'out_fps'} = ($self->{'width'} > 320 || $self->{'height'} > 288) ? 29.97 : 23.97; +        } +    # Embed the title +        $safe_title = $episode->{'title'}; +        if ($episode->{'subtitle'} ne 'Untitled') { +            $safe_title .= ' - '.$episode->{'subtitle'}; +        } +        my $safe_title = shell_escape($safe_title); +    # Codec name changes between ffmpeg versions +        my $codec = $self->{'mp4_codec'}; +        if ($codec eq 'h264' && $self->can_encode('libx264')) { +            $codec = 'libx264'; +        } +    # Build the common ffmpeg string +        my $ffmpeg_xtra  = ' -vcodec '.$codec +                           .$self->param('bit_rate', $self->{'v_bitrate'}) +    ;###                      ." -title $safe_title"; +    # Options required for the codecs separately +        if ($self->{'mp4_codec'} eq 'h264') { +            $ffmpeg_xtra .= ' -level 30' +	    ###                    .' -loop 1' +                           .' -g 250 -keyint_min 25' +                           .' -sc_threshold 40' +			   ###             .' -rc_eq \'blurCplx^(1-qComp)\'' +                           .$self->param('bit_rate_tolerance', $self->{'v_bitrate'}) +                           .$self->param('rc_max_rate',        1500 - $self->{'a_bitrate'}) +                           .$self->param('rc_buffer_size',     2000) +                           .$self->param('i_quant_factor',     0.71428572) +                           .$self->param('b_quant_factor',     0.76923078) +                           .$self->param('max_b_frames',       0) +			   ### .' -me umh'   # this will eventually be me_method, but not all ffmpeg versions support it yet +                           ; +        } +        else { +           $ffmpeg_xtra .= ' -flags +mv4' ## +trell+loop' +	   ###                      .' -aic 1' +                          .' -mbd 1' +                          .' -cmp 2 -subcmp 2' +                          ; +        } +    # Some shared options +        if ($self->{'multipass'} || $self->{'vbr'}) { +            $ffmpeg_xtra .= $self->param('qcompress', 0.6) +                           .$self->param('qmax',      51) +                           .$self->param('max_qdiff', 4) +                           ; +        } +    # Dual pass? +        if ($self->{'multipass'}) { +        # Apparently, the -passlogfile option doesn't work for h264, so we need +        # to be aware of other processes that might be working in this directory +            if ($self->{'mp4_codec'} eq 'h264' && (-e 'x264_2pass.log.temp' || -e 'x264_2pass.log')) { +                die "ffmpeg does not allow us to specify the name of the multi-pass log\n" +                   ."file, and x264_2pass.log exists in this directory already.  Please\n" +                   ."wait for the other process to finish, or remove the stale file.\n"; +            } +        # Add all possible temporary files to the list +            push @tmpfiles, 'x264_2pass.log', +                            'x264_2pass.log.temp', +                            'ffmpeg2pass-0.log'; +        # Build the ffmpeg string +            print "First pass...\n"; +            $self->{'ffmpeg_xtra'} = ' -pass 1' +                                    .$ffmpeg_xtra +                                    .' -f mp4'; +            if ($self->{'mp4_codec'} eq 'h264') { +                $self->{'ffmpeg_xtra'} .= ' -refs 1 -subq 1' +                                         .' -trellis 0' +                                         ; +            } +            $self->SUPER::export($episode, '', 1); +        # Second Pass +            print "Final pass...\n"; +            $ffmpeg_xtra = ' -pass 2 ' +                          .$ffmpeg_xtra; +        } +    # Single Pass +        else { +            if ($self->{'vbr'}) { +                $ffmpeg_xtra .= ' -qmin '.$self->{'quantisation'}; +            } +        } +    # Single/final pass options +        if ($self->{'mp4_codec'} eq 'h264') { +            $ffmpeg_xtra .= ' -refs '.($self->val('ipod') ? 2 : 7) +                           .' -subq 7' +                           .' -partitions parti4x4+parti8x8+partp4x4+partp8x8+partb8x8' +                           .' -flags2 +bpyramid+wpred+mixed_refs+8x8dct' ##+brdo' +                           .' -me_range 21' +                           .' -trellis 2' +                           .' -chromaoffset 1' +			   ###         .' -slice 2' +			   ###         .' -cmp 1' +                           # These should match the defaults: +                           .' -deblockalpha 0 -deblockbeta 0' +                           ; +        } +    # Audio codec name changes between ffmpeg versions +        my $acodec = $self->can_encode('libfaac') ? 'libfaac' : 'aac'; +    # Don't forget the audio, etc. +        $self->{'ffmpeg_xtra'} = $ffmpeg_xtra +                                ." -acodec $acodec -ar 48000 -async 1" +                                .$self->param('ab', $self->{'a_bitrate'}); +    # Execute the (final pass) encode +        $self->SUPER::export($episode, '.mp4'); +    } + +1;  #return true + +# vim:ts=4:sw=4:ai:et:si:sts=4 + diff --git a/abs/not_built/core/nuvexport/PKGBUILD b/abs/not_built/core/nuvexport/PKGBUILD new file mode 100644 index 0000000..27369de --- /dev/null +++ b/abs/not_built/core/nuvexport/PKGBUILD @@ -0,0 +1,33 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Contributor: Paul Mattal <paul@mattal.com> +# Maintainer: Paul Mattal <paul@archlinux.org> +pkgname=nuvexport +pkgver=20080311 +relnum=0.5 +pkgrel=3 +pkgdesc="Export for MythTV nuv files to other formats (DVD/SVCD/DivX,etc.)" +arch=(i686 x86_64) +url="http://forevermore.net/files/nuvexport" +license="" +depends=(perl perl-dbi 'ffmpeg>=20060920' perl-dbd-mysql perl-date-manip) +makedepends=() +conflicts=() +replaces=() +backup=() +install= +source=(http://forevermore.net/files/nuvexport/archive/$pkgname-$relnum-0.$pkgver.svn.tar.bz2 $pkgname-ipod-disable.patch MP4.pm XviD.pm) +md5sums=('2d0a99623f06394daf3bf8769536d3cd' 'acd2dad9987e68359ead8b0be5e5797c') + +build() { +  cd $startdir/src/$pkgname-$relnum + +  sed -i "s|prefix=/usr/local|prefix=$startdir/pkg/usr|g" Makefile || return 1 +  sed -i "s|/usr/bin/install|/bin/install|g" Makefile || return 1 +  sed -i "s|sysconfdir=/etc|sysconfdir=$startdir/pkg/etc|g" Makefile || return 1 + +  mkdir $startdir/pkg/usr || return 1 +  make install || return 1 +  sed -i "s|/tmp/fifodir|/var/tmp/fifodir|g" $startdir/pkg/usr/share/nuvexport/export/*.pm || return 1 +  cp $startdir/src/MP4.pm $startdir/pkg/usr/share/nuvexport/export/ffmpeg/MP4.pm +  cp $startdir/src/XviD.pm $startdir/pkg/usr/share/nuvexport/export/ffmpeg/XviD.pm +} diff --git a/abs/not_built/core/nuvexport/XviD.pm b/abs/not_built/core/nuvexport/XviD.pm new file mode 100755 index 0000000..c4700f5 --- /dev/null +++ b/abs/not_built/core/nuvexport/XviD.pm @@ -0,0 +1,197 @@ +# +# ffmpeg-based XviD export module for nuvexport. +# +# @url       $URL: svn+ssh://xris@svn.mythtv.org/var/lib/svn/trunk/mythextras/nuvexport/export/ffmpeg/XviD.pm $ +# @date      $Date: 2008-02-19 20:47:06 -0800 (Tue, 19 Feb 2008) $ +# @version   $Revision: 16175 $ +# @author    $Author: xris $ +# @copyright Silicon Mechanics +# + +package export::ffmpeg::XviD; +    use base 'export::ffmpeg'; + +# Load the myth and nuv utilities, and make sure we're connected to the database +    use nuv_export::shared_utils; +    use nuv_export::cli; +    use nuv_export::ui; +    use mythtv::recordings; + +# Load the following extra parameters from the commandline +    add_arg('quantisation|q=i', 'Quantisation'); +    add_arg('a_bitrate|a=i',    'Audio bitrate'); +    add_arg('v_bitrate|v=i',    'Video bitrate'); +    add_arg('multipass!',       'Enable two-pass encoding.'); + +    sub new { +        my $class = shift; +        my $self  = { +                     'cli'      => qr/\bxvid\b/i, +                     'name'     => 'Export to XviD', +                     'enabled'  => 1, +                     'errors'   => [], +                     'defaults' => {}, +                    }; +        bless($self, $class); + +    # Initialize the default parameters +        $self->load_defaults(); + +    # Verify any commandline or config file options +        die "Audio bitrate must be > 0\n" unless (!defined $self->val('a_bitrate') || $self->{'a_bitrate'} > 0); +        die "Video bitrate must be > 0\n" unless (!defined $self->val('v_bitrate') || $self->{'v_bitrate'} > 0); +        die "Width must be > 0\n"         unless (!defined $self->val('width')     || $self->{'width'} =~ /^\s*\D/  || $self->{'width'}  > 0); +        die "Height must be > 0\n"        unless (!defined $self->val('height')    || $self->{'height'} =~ /^\s*\D/ || $self->{'height'} > 0); + +    # VBR, multipass, etc. +        if ($self->val('multipass')) { +            $self->{'vbr'} = 1; +        } +        elsif ($self->val('quantisation')) { +            die "Quantisation must be a number between 1 and 31 (lower means better quality).\n" if ($self->{'quantisation'} < 1 || $self->{'quantisation'} > 31); +            $self->{'vbr'} = 1; +        } + +    # Initialize and check for ffmpeg +        $self->init_ffmpeg(); + +    # Can we even encode xvid? +        if (!$self->can_encode('xvid') && !$self->can_encode('libxvid')) { +            push @{$self->{'errors'}}, "Your ffmpeg installation doesn't support encoding to xvid.\n" +                                      ."  (It must be compiled with the --enable-libxvid option)"; +        } +        if (!$self->can_encode('mp3') && !$self->can_encode('libmp3lame')) { +            push @{$self->{'errors'}}, "Your ffmpeg installation doesn't support encoding to mp3 audio."; +        } + +    # Any errors?  disable this function +        $self->{'enabled'} = 0 if ($self->{'errors'} && @{$self->{'errors'}} > 0); +    # Return +        return $self; +    } + +# Load default settings +    sub load_defaults { +        my $self = shift; +    # Load the parent module's settings +        $self->SUPER::load_defaults(); +    # Default bitrates and resolution +        $self->{'defaults'}{'a_bitrate'} = 128; +        $self->{'defaults'}{'v_bitrate'} = 960; +        $self->{'defaults'}{'width'}     = 624; +    } + +# Gather settings from the user +    sub gather_settings { +        my $self = shift; +    # Load the parent module's settings +        $self->SUPER::gather_settings(); +    # Audio Bitrate +        $self->{'a_bitrate'} = query_text('Audio bitrate?', +                                          'int', +                                          $self->val('a_bitrate')); +    # VBR options +        if (!$is_cli) { +            $self->{'vbr'} = query_text('Variable bitrate video?', +                                        'yesno', +                                        $self->val('vbr')); +            if ($self->{'vbr'}) { +                $self->{'multipass'} = query_text('Multi-pass (slower, but better quality)?', +                                                  'yesno', +                                                  $self->val('multipass')); +                if (!$self->{'multipass'}) { +                    while (1) { +                        my $quantisation = query_text('VBR quality/quantisation (1-31)?', +                                                      'float', +                                                      $self->val('quantisation')); +                        if ($quantisation < 1) { +                            print "Too low; please choose a number between 1 and 31.\n"; +                        } +                        elsif ($quantisation > 31) { +                            print "Too high; please choose a number between 1 and 31\n"; +                        } +                        else { +                            $self->{'quantisation'} = $quantisation; +                            last; +                        } +                    } +                } +            } else { +                $self->{'multipass'} = 0; +            } +        # Ask the user what video bitrate he/she wants +            $self->{'v_bitrate'} = query_text('Video bitrate?', +                                              'int', +                                              $self->val('v_bitrate')); +        } +    # Query the resolution +        $self->query_resolution(); +    } + +    sub export { +        my $self    = shift; +        my $episode = shift; +    # Make sure we have the framerate +        $self->{'out_fps'} = $episode->{'finfo'}{'fps'}; +    # Embed the title +        $safe_title = $episode->{'title'}; +        if ($episode->{'subtitle'} ne 'Untitled') { +            $safe_title .= ' - '.$episode->{'subtitle'}; +        } +        my $safe_title = shell_escape($safe_title); +    # Codec name changes between ffmpeg versions +        my $codec = $self->can_encode('libxvid') ? 'libxvid' : 'xvid'; +    # Build the common ffmpeg string +        my $ffmpeg_xtra  = ' -vcodec '.$codec +                          .$self->param('bit_rate', $self->{'v_bitrate'}) +                          .($self->{'vbr'} +                            ? $self->param('rc_min_rate', 32) +                             . $self->param('rc_max_rate', (2 * $self->{'v_bitrate'})) +                             . $self->param('bit_rate_tolerance', 32) +                             . ' -bufsize 65535' +                            : '') +                          .' -flags +mv4+loop+cgop' +                          .' -trellis 1' +			  ### .' -aic 1' +                          .' -mbd 1' +                          .' -cmp 2 -subcmp 2' +			  ### .' -cgop 1' +                           .$self->param('b_quant_factor',     150) +                           .$self->param('b_quant_offset',     100) +                           .$self->param('max_b_frames',       1) +                          ; +    # Dual pass? +        if ($self->{'multipass'}) { +        # Add the temporary file to the list +            push @tmpfiles, "/tmp/xvid.$$.log"; +        # First pass +            print "First pass...\n"; +            $self->{'ffmpeg_xtra'} = $ffmpeg_xtra +                                    ." -pass 1 -passlogfile '/tmp/xvid.$$.log'" +                                    .' -f avi'; +            $self->SUPER::export($episode, '', 1); +        # Second pass +            print "Final pass...\n"; +            $self->{'ffmpeg_xtra'} = $ffmpeg_xtra +                                   . " -pass 2 -passlogfile '/tmp/xvid.$$.log'"; +        } +    # Single Pass +        else { +            $self->{'ffmpeg_xtra'} = $ffmpeg_xtra +                                    .($self->{'vbr'} +                                      ? ' -qmax 31 -qmin '.$self->{'quantisation'} +                                      : ''); +        } +    # Don't forget the audio, etc. +        $self->{'ffmpeg_xtra'} .= ' -acodec ' +                                 .($self->can_encode('libmp3lame') ? 'libmp3lame' : 'mp3') +                                 .' -async 1 ' +                                 .$self->param('ab', $self->{'a_bitrate'}) +                                 .' -f avi'; +    # Execute the (final pass) encode +        $self->SUPER::export($episode, '.avi'); +    } + +1;  #return true + +# vim:ts=4:sw=4:ai:et:si:sts=4 diff --git a/abs/not_built/core/nuvexport/nuvexport-ipod-disable.patch b/abs/not_built/core/nuvexport/nuvexport-ipod-disable.patch new file mode 100644 index 0000000..dfb17a9 --- /dev/null +++ b/abs/not_built/core/nuvexport/nuvexport-ipod-disable.patch @@ -0,0 +1,12 @@ +diff -urN nuvexport-0.3/nuvexport nuvexport-0.3-fixed/nuvexport +--- nuvexport-0.3/nuvexport	2006-07-26 03:37:13.000000000 -0400 ++++ nuvexport-0.3-fixed/nuvexport	2006-07-27 20:58:41.000000000 -0400 +@@ -93,7 +93,7 @@ +         push @Exporters, export::ffmpeg::ASF->new; +         push @Exporters, export::ffmpeg::MP3->new; +         push @Exporters, export::ffmpeg::PSP->new; +-        push @Exporters, export::ffmpeg::iPod->new; ++#        push @Exporters, export::ffmpeg::iPod->new; +     } +     elsif ($export_prog eq 'mencoder') { +         push @Exporters, export::mencoder::XviD->new; diff --git a/abs/not_built/core/nvidia-173xx-utils/20-nvidia.conf b/abs/not_built/core/nvidia-173xx-utils/20-nvidia.conf new file mode 100644 index 0000000..227ac7d --- /dev/null +++ b/abs/not_built/core/nvidia-173xx-utils/20-nvidia.conf @@ -0,0 +1,5 @@ +Section "Device" +        Identifier "Default nvidia Device" +        Driver "nvidia" +        Option "NoLogo" "True"  +EndSection diff --git a/abs/not_built/core/nvidia-173xx-utils/PKGBUILD b/abs/not_built/core/nvidia-173xx-utils/PKGBUILD new file mode 100644 index 0000000..013e1c7 --- /dev/null +++ b/abs/not_built/core/nvidia-173xx-utils/PKGBUILD @@ -0,0 +1,68 @@ +# $Id: PKGBUILD 28365 2009-03-01 00:11:38Z pierre $ +# Maintainer: Thomas Bächler <thomas@archlinux.org> + +pkgname=nvidia-173xx-utils +pkgver=173.14.30 +pkgrel=1 +pkgdesc="NVIDIA drivers utilities and libraries, 173xx branch." +arch=('i686' 'x86_64') +[ "$CARCH" = "i686"   ] && ARCH=x86 +[ "$CARCH" = "x86_64" ] && ARCH=x86_64 +url="http://www.nvidia.com/" +depends=('xorg-server') +optdepends=('gtk2: nvidia-settings' 'pkgconfig: nvidia-xconfig') +conflicts=('libgl') +provides=('libgl') +license=('custom') +install=nvidia.install +options=(!strip) +backup=('etc/X11/xorg.conf.d/20-nvidia.conf') +source=("http://download.nvidia.com/XFree86/Linux-${ARCH}/${pkgver}/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run") +md5sums=('665f9f730c18ab24a997e0e14b863262') +[ "$CARCH" = "x86_64" ] && md5sums=('8c47463ae14a2f742d0fa00160456745') + +source[1]='20-nvidia.conf' +md5sums[1]='37e417b2c69e46de1346a653e07027fa' + +package() { +	cd $srcdir +	sh NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run --extract-only +	cd NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/usr/ + +	mkdir -p $pkgdir/usr/{lib,bin,share/applications,share/pixmaps,share/man/man1} +	mkdir -p $pkgdir/usr/lib/xorg/modules/{extensions,drivers} +	mkdir -p $pkgdir/usr/share/licenses/nvidia-173xx/ + +	install lib/{libGLcore,libGL,libnvidia-cfg,tls/libnvidia-tls}.so.${pkgver} \ +	$pkgdir/usr/lib/ +	install -m644 share/man/man1/* $pkgdir/usr/share/man/man1/ +	rm $pkgdir/usr/share/man/man1/nvidia-installer.1.gz +	install X11R6/lib/libXv* $pkgdir/usr/lib/ +	install -m644 share/applications/nvidia-settings.desktop $pkgdir/usr/share/applications/ +	# fix nvidia .desktop file +	sed -e 's:__UTILS_PATH__:/usr/bin:' -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' -i $pkgdir/usr/share/applications/nvidia-settings.desktop +	install -m644 share/pixmaps/nvidia-settings.png $pkgdir/usr/share/pixmaps/ +	install X11R6/lib/modules/drivers/nvidia_drv.so $pkgdir/usr/lib/xorg/modules/drivers +	install X11R6/lib/modules/extensions/libglx.so.$pkgver $pkgdir/usr/lib/xorg/modules/extensions +	install -m755 bin/nvidia-{settings,xconfig,bug-report.sh} $pkgdir/usr/bin/ +	cd $pkgdir/usr/lib/ +	ln -s libGL.so.$pkgver libGL.so +	ln -s libGL.so.$pkgver libGL.so.1 +	ln -s libGLcore.so.$pkgver libGLcore.so.1 +	ln -s libnvidia-cfg.so.$pkgver libnvidia-cfg.so.1 +	ln -s libnvidia-tls.so.$pkgver libnvidia-tls.so.1 +	ln -s libXvMCNVIDIA.so.$pkgver libXvMCNVIDIA_dynamic.so.1 + +	cd $pkgdir/usr/lib/xorg/modules/extensions +	ln -s libglx.so.$pkgver libglx.so + +	install -m644 $srcdir/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/LICENSE $pkgdir/usr/share/licenses/nvidia-173xx/ +	ln -s nvidia-173xx $pkgdir/usr/share/licenses/nvidia-173xx-utils + +	install -D -m644 $srcdir/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/usr/share/doc/README.txt $pkgdir/usr/share/doc/nvidia-173xx/README + +	find $pkgdir/usr -type d -exec chmod 755 {} \; + +	# Install xorg.conf.d file for nvidia autodetection in xorg.conf-less configurations +	install -D -m644 $srcdir/20-nvidia.conf $pkgdir/etc/X11/xorg.conf.d/20-nvidia.conf +} diff --git a/abs/not_built/core/nvidia-173xx-utils/nvidia.install b/abs/not_built/core/nvidia-173xx-utils/nvidia.install new file mode 100644 index 0000000..0a878a7 --- /dev/null +++ b/abs/not_built/core/nvidia-173xx-utils/nvidia.install @@ -0,0 +1,6 @@ +post_install() { +	echo By using this package you accept the NVIDIA license, +	echo which has been installed in /usr/share/licenses/nvidia/LICENSE +	echo If you do not accept this license, you must remove the package immediately. +	echo Dont forget to update your /etc/X11/xorg.conf +} diff --git a/abs/not_built/core/nvidia-173xx/PKGBUILD b/abs/not_built/core/nvidia-173xx/PKGBUILD new file mode 100644 index 0000000..5815dce --- /dev/null +++ b/abs/not_built/core/nvidia-173xx/PKGBUILD @@ -0,0 +1,41 @@ +# $Id: PKGBUILD 28363 2009-03-01 00:06:27Z pierre $ +# Maintainer : Thomas Baechler <thomas@archlinux.org> + +pkgname=nvidia-173xx +pkgver=173.14.30 +_kernver='2.6.39-LinHES' +pkgrel=4 +pkgdesc="NVIDIA drivers for kernel26, 173xx branch." +arch=('i686' 'x86_64') +[ "$CARCH" = "i686"   ] && ARCH=x86 +[ "$CARCH" = "x86_64" ] && ARCH=x86_64 +url="http://www.nvidia.com/" +depends=('kernel26>=2.6.39' 'kernel26<2.6.40' 'nvidia-173xx-utils') +makedepends=('kernel26-headers>=2.6.39' 'kernel26-headers<2.6.40') +conflicts=('nvidia-96xx' 'nvidia') +license=('custom') +install=nvidia.install +source=("http://download.nvidia.com/XFree86/Linux-$ARCH/${pkgver}/NVIDIA-Linux-$ARCH-${pkgver}-pkg0.run") +options=(!strip) +md5sums=('665f9f730c18ab24a997e0e14b863262') +[ "$CARCH" = "x86_64" ] && md5sums=('8c47463ae14a2f742d0fa00160456745') + +build() { +	cd $srcdir +	sh NVIDIA-Linux-$ARCH-${pkgver}-pkg0.run --extract-only +	cd NVIDIA-Linux-$ARCH-${pkgver}-pkg0 +	cd usr/src/nv/ +	ln -s Makefile.kbuild Makefile +	make SYSSRC=/lib/modules/${_kernver}/build module +} + +package() { +	cd $srcdir/NVIDIA-Linux-$ARCH-${pkgver}-pkg0/usr/src/nv/ +	mkdir -p $pkgdir/lib/modules/${_kernver}/kernel/drivers/video/ +	install -m644 nvidia.ko $pkgdir/lib/modules/${_kernver}/kernel/drivers/video/ +        mkdir -p $pkgdir/etc/modprobe.d +        echo "blacklist nouveau" >> $pkgdir/etc/modprobe.d/nouveau_blacklist.conf +	sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/nvidia.install +        # gzip -9 module +        find "$pkgdir" -name '*.ko' -exec gzip -9 {} \; +} diff --git a/abs/not_built/core/nvidia-173xx/nvidia.install b/abs/not_built/core/nvidia-173xx/nvidia.install new file mode 100644 index 0000000..aea2fbb --- /dev/null +++ b/abs/not_built/core/nvidia-173xx/nvidia.install @@ -0,0 +1,14 @@ +post_install() { +	KERNEL_VERSION='2.6.39-LinHES' +	depmod $KERNEL_VERSION +} + +post_upgrade() { +	post_install +	rmmod nvidia || echo 'In order to use the new nvidia module, exit Xserver and unload it manually.' +} + +post_remove() { +	KERNEL_VERSION='2.6.39-LinHES' +	depmod $KERNEL_VERSION +} diff --git a/abs/not_built/core/nvidia-96xx-utils/PKGBUILD b/abs/not_built/core/nvidia-96xx-utils/PKGBUILD new file mode 100644 index 0000000..25a6805 --- /dev/null +++ b/abs/not_built/core/nvidia-96xx-utils/PKGBUILD @@ -0,0 +1,63 @@ +# $Id: PKGBUILD 69361 2010-02-20 11:24:49Z tpowa $ +# Maintainer: Thomas Baechler <thomas@archlinux.org> + +pkgname=nvidia-96xx-utils +pkgver=96.43.19 +pkgrel=3 +pkgdesc="NVIDIA drivers utilities and libraries, 96xx branch." +arch=('i686' 'x86_64') +[ "$CARCH" = "i686"   ] && ARCH=x86 	  +[ "$CARCH" = "x86_64" ] && ARCH=x86_64 +url="http://www.nvidia.com/" +depends=('xorg-server') +optdepends=('gtk2: nvidia-settings' 'pkgconfig: nvidia-xconfig') +conflicts=('libgl') +provides=('libgl') +license=('custom') +install=nvidia.install +options=(!strip) +source=("http://download.nvidia.com/XFree86/Linux-${ARCH}/${pkgver}/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run") +md5sums=('53e98129d885a1b004aabc42a989fa73') +[ "$CARCH" = "x86_64" ] && md5sums=('73e226d4ee0996b6df4bdf44cc1fc6f5') + +build() { +	cd $srcdir +	sh NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run --extract-only +	cd NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/usr/ + +	mkdir -p $pkgdir/usr/{lib,bin,share/applications,share/pixmaps,share/man/man1} +	mkdir -p $pkgdir/usr/lib/xorg/modules/{extensions,drivers} +	mkdir -p $pkgdir/usr/share/licenses/nvidia-96xx/ + +	install lib/{libGLcore,libGL,libnvidia-cfg,tls/libnvidia-tls}.so.${pkgver} \ +	$pkgdir/usr/lib/ || return 1 +	install -m644 share/man/man1/* $pkgdir/usr/share/man/man1/ || return 1 +	rm $pkgdir/usr/share/man/man1/nvidia-installer.1.gz || return 1 +	install X11R6/lib/libXv* $pkgdir/usr/lib/ || return 1 +	install -m644 share/applications/nvidia-settings.desktop $pkgdir/usr/share/applications/ || return 1 +	# fix nvidia .desktop file +	sed -e 's:__UTILS_PATH__:/usr/bin:' -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' -i $pkgdir/usr/share/applications/nvidia-settings.desktop +	install -m644 share/pixmaps/nvidia-settings.png $pkgdir/usr/share/pixmaps/ || return 1 +	install X11R6/lib/modules/drivers/nvidia_drv.so $pkgdir/usr/lib/xorg/modules/drivers || return 1 +	install X11R6/lib/modules/extensions/libglx.so.$pkgver $pkgdir/usr/lib/xorg/modules/extensions || return 1 +	install -m755 bin/nvidia-{settings,xconfig,bug-report.sh} $pkgdir/usr/bin/ || return 1 +	cd $pkgdir/usr/lib/ +	ln -s libGL.so.$pkgver libGL.so || return 1 +	ln -s libGL.so.$pkgver libGL.so.1 || return 1 +	ln -s libGLcore.so.$pkgver libGLcore.so.1 || return 1 +	ln -s libnvidia-cfg.so.$pkgver libnvidia-cfg.so.1 || return 1 +	ln -s libnvidia-tls.so.$pkgver libnvidia-tls.so.1 || return 1 +	ln -s libXvMCNVIDIA.so.$pkgver libXvMCNVIDIA_dynamic.so.1 || return 1 + +	cd $pkgdir/usr/lib/xorg/modules/extensions +	ln -s libglx.so.$pkgver libglx.so || return 1 + +	install -m644 $srcdir/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/LICENSE $pkgdir/usr/share/licenses/nvidia-96xx/ || return 1 +	ln -s nvidia-96xx $startdir/pkg/usr/share/licenses/nvidia-96xx-utils || return 1 + +	install -D -m644 $srcdir/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0/usr/share/doc/README.txt $pkgdir/usr/share/doc/nvidia-96xx/README || return 1 + +	find $pkgdir/usr -type d -exec chmod 755 {} \; +} + + diff --git a/abs/not_built/core/nvidia-96xx-utils/nvidia.install b/abs/not_built/core/nvidia-96xx-utils/nvidia.install new file mode 100644 index 0000000..0a878a7 --- /dev/null +++ b/abs/not_built/core/nvidia-96xx-utils/nvidia.install @@ -0,0 +1,6 @@ +post_install() { +	echo By using this package you accept the NVIDIA license, +	echo which has been installed in /usr/share/licenses/nvidia/LICENSE +	echo If you do not accept this license, you must remove the package immediately. +	echo Dont forget to update your /etc/X11/xorg.conf +} diff --git a/abs/not_built/core/nvidia-96xx-utils/supported-cards.txt b/abs/not_built/core/nvidia-96xx-utils/supported-cards.txt new file mode 100644 index 0000000..d4f26ea --- /dev/null +++ b/abs/not_built/core/nvidia-96xx-utils/supported-cards.txt @@ -0,0 +1,236 @@ +Archlinux currently manages three branches of the NVIDIA binary driver: + +nvidia (latest nvidia release) +nvidia-96xx (96xx legacy branch) +nvidia-71xx (71xx legacy branch) + +This excerpt from the NVIDIA 1.0.9746 README lists the supported devices +for each of those: + +______________________________________________________________________________ + +Appendix A. Supported NVIDIA Graphics Chips +______________________________________________________________________________ + +For the most complete and accurate listing of supported GPUs, please see the +Supported Products List, available from the NVIDIA Linux x86 Graphics Driver +download page. Please go to http://www.nvidia.com/object/unix.html, follow the +Archive link under the Linux x86 heading, follow the link for the 1.0-9746 +driver, and then go to the Supported Products List. + + +    NVIDIA chip name                      Device PCI ID +    ----------------------------------    ---------------------------------- +    GeForce 6800 Ultra                    0x0040 +    GeForce 6800                          0x0041 +    GeForce 6800 XE                       0x0043 +    GeForce 6800 XT                       0x0044 +    GeForce 6800 GT                       0x0045 +    GeForce 6800 GT                       0x0046 +    GeForce 6800 GS                       0x0047 +    GeForce 6800 XT                       0x0048 +    Quadro FX 4000                        0x004E +    GeForce 7800 GTX                      0x0090 +    GeForce 7800 GTX                      0x0091 +    GeForce 7800 GT                       0x0092 +    GeForce 7800 GS                       0x0093 +    GeForce Go 7800                       0x0098 +    GeForce Go 7800 GTX                   0x0099 +    Quadro FX 4500                        0x009D +    GeForce 6800 GS                       0x00C0 +    GeForce 6800                          0x00C1 +    GeForce 6800 LE                       0x00C2 +    GeForce 6800 XT                       0x00C3 +    GeForce Go 6800                       0x00C8 +    GeForce Go 6800 Ultra                 0x00C9 +    Quadro FX Go1400                      0x00CC +    Quadro FX 3450/4000 SDI               0x00CD +    Quadro FX 1400                        0x00CE +    GeForce 6800 Ultra/GeForce 6800       0x00F0 +    GeForce 6600 GT                       0x00F1 +    GeForce 6600                          0x00F2 +    GeForce 6200                          0x00F3 +    GeForce 6600 LE                       0x00F4 +    GeForce 7800 GS                       0x00F5 +    GeForce 6800 GS                       0x00F6 +    Quadro FX 3400/4400                   0x00F8 +    GeForce 6800 Ultra                    0x00F9 +    GeForce PCX 5750                      0x00FA +    GeForce PCX 5900                      0x00FB +    GeForce PCX 5300/Quadro FX 330        0x00FC +    Quadro NVS 280 PCI-E/Quadro FX 330    0x00FD +    Quadro FX 1300                        0x00FE +    GeForce PCX 4300                      0x00FF +    GeForce 6600 GT                       0x0140 +    GeForce 6600                          0x0141 +    GeForce 6600 LE                       0x0142 +    GeForce 6600 VE                       0x0143 +    GeForce Go 6600                       0x0144 +    GeForce 6610 XL                       0x0145 +    GeForce Go 6600 TE/6200 TE            0x0146 +    GeForce 6700 XL                       0x0147 +    GeForce Go 6600                       0x0148 +    GeForce Go 6600 GT                    0x0149 +    Quadro NVS 440                        0x014A +    Quadro FX 550                         0x014C +    Quadro FX 540                         0x014E +    GeForce 6200                          0x014F +    GeForce 6500                          0x0160 +    GeForce 6200 TurboCache(TM)           0x0161 +    GeForce 6200 LE                       0x0163 +    GeForce Go 6200                       0x0164 +    Quadro NVS 285                        0x0165 +    GeForce Go 6400                       0x0166 +    GeForce Go 6200                       0x0167 +    GeForce Go 6400                       0x0168 +    GeForce 8800 GTX                      0x0191 +    GeForce 8800 GTS                      0x0193 +    GeForce 7300 LE                       0x01D1 +    GeForce 7300 SE                       0x01D3 +    Quadro NVS 110M/GeForce Go 7300       0x01D7 +    GeForce Go 7400                       0x01D8 +    Quadro NVS 110M                       0x01DA +    Quadro NVS 120M                       0x01DB +    Quadro FX 350M                        0x01DC +    Quadro FX 350                         0x01DE +    GeForce 7300 GS                       0x01DF +    GeForce 6800                          0x0211 +    GeForce 6800 LE                       0x0212 +    GeForce 6800 GT                       0x0215 +    GeForce 6800 XT                       0x0218 +    GeForce 6200                          0x0221 +    GeForce 6150                          0x0240 +    GeForce 6150 LE                       0x0241 +    GeForce 6100                          0x0242 +    GeForce Go 6100                       0x0247 +    GeForce 7900 GTX                      0x0290 +    GeForce 7900 GT/GTO                   0x0291 +    GeForce 7900 GS                       0x0292 +    GeForce 7950 GX2                      0x0294 +    GeForce Go 7900 GS                    0x0298 +    GeForce Go 7900 GTX                   0x0299 +    Quadro FX 2500M                       0x029A +    Quadro FX 1500M                       0x029B +    Quadro FX 5500                        0x029C +    Quadro FX 3500M                       0x029D +    Quadro FX 1500                        0x029E +    Quadro FX 4500 X2                     0x029F +    GeForce 7600 GS                       0x02E1 +    GeForce FX 5800 Ultra                 0x0301 +    GeForce FX 5800                       0x0302 +    Quadro FX 2000                        0x0308 +    Quadro FX 1000                        0x0309 +    GeForce FX 5600 Ultra                 0x0311 +    GeForce FX 5600                       0x0312 +    GeForce FX 5600XT                     0x0314 +    GeForce FX Go5600                     0x031A +    GeForce FX Go5650                     0x031B +    Quadro FX Go700                       0x031C +    GeForce FX 5200                       0x0320 +    GeForce FX 5200 Ultra                 0x0321 +    GeForce FX 5200                       0x0322 +    GeForce FX 5200LE                     0x0323 +    GeForce FX Go5200                     0x0324 +    GeForce FX Go5250                     0x0325 +    GeForce FX 5500                       0x0326 +    GeForce FX 5100                       0x0327 +    GeForce FX Go5200 32M/64M             0x0328 +    Quadro NVS 55/280 PCI                 0x032A +    Quadro FX 500/FX 600                  0x032B +    GeForce FX Go53xx                     0x032C +    GeForce FX Go5100                     0x032D +    GeForce FX 5900 Ultra                 0x0330 +    GeForce FX 5900                       0x0331 +    GeForce FX 5900XT                     0x0332 +    GeForce FX 5950 Ultra                 0x0333 +    GeForce FX 5900ZT                     0x0334 +    Quadro FX 3000                        0x0338 +    Quadro FX 700                         0x033F +    GeForce FX 5700 Ultra                 0x0341 +    GeForce FX 5700                       0x0342 +    GeForce FX 5700LE                     0x0343 +    GeForce FX 5700VE                     0x0344 +    GeForce FX Go5700                     0x0347 +    GeForce FX Go5700                     0x0348 +    Quadro FX Go1000                      0x034C +    Quadro FX 1100                        0x034E +    GeForce 7600 GT                       0x0391 +    GeForce 7600 GS                       0x0392 +    GeForce 7300 GT                       0x0393 +    GeForce Go 7600                       0x0398 +    Quadro FX 560                         0x039E + + +Below are the legacy GPUs that are no longer supported in the unified driver. +These GPUs will continue to be maintained through the special legacy NVIDIA +GPU driver releases. + +The 1.0-96xx driver supports the following set of GPUs: + + +    NVIDIA chip name                      Device PCI ID +    ----------------------------------    ---------------------------------- +    GeForce2 MX/MX 400                    0x0110 +    GeForce2 MX 100/200                   0x0111 +    GeForce2 Go                           0x0112 +    Quadro2 MXR/EX/Go                     0x0113 +    GeForce4 MX 460                       0x0170 +    GeForce4 MX 440                       0x0171 +    GeForce4 MX 420                       0x0172 +    GeForce4 MX 440-SE                    0x0173 +    GeForce4 440 Go                       0x0174 +    GeForce4 420 Go                       0x0175 +    GeForce4 420 Go 32M                   0x0176 +    GeForce4 460 Go                       0x0177 +    Quadro4 550 XGL                       0x0178 +    GeForce4 440 Go 64M                   0x0179 +    Quadro NVS                            0x017A +    Quadro4 500 GoGL                      0x017C +    GeForce4 410 Go 16M                   0x017D +    GeForce4 MX 440 with AGP8X            0x0181 +    GeForce4 MX 440SE with AGP8X          0x0182 +    GeForce4 MX 420 with AGP8X            0x0183 +    GeForce4 MX 4000                      0x0185 +    Quadro4 580 XGL                       0x0188 +    Quadro NVS 280 SD                     0x018A +    Quadro4 380 XGL                       0x018B +    Quadro NVS 50 PCI                     0x018C +    GeForce2 Integrated GPU               0x01A0 +    GeForce4 MX Integrated GPU            0x01F0 +    GeForce3                              0x0200 +    GeForce3 Ti 200                       0x0201 +    GeForce3 Ti 500                       0x0202 +    Quadro DCC                            0x0203 +    GeForce4 Ti 4600                      0x0250 +    GeForce4 Ti 4400                      0x0251 +    GeForce4 Ti 4200                      0x0253 +    Quadro4 900 XGL                       0x0258 +    Quadro4 750 XGL                       0x0259 +    Quadro4 700 XGL                       0x025B +    GeForce4 Ti 4800                      0x0280 +    GeForce4 Ti 4200 with AGP8X           0x0281 +    GeForce4 Ti 4800 SE                   0x0282 +    GeForce4 4200 Go                      0x0286 +    Quadro4 980 XGL                       0x0288 +    Quadro4 780 XGL                       0x0289 +    Quadro4 700 GoGL                      0x028C + + +The 1.0-71xx driver supports the following set of GPUs: + + +    NVIDIA chip name                      Device PCI ID +    ----------------------------------    ---------------------------------- +    RIVA TNT                              0x0020 +    RIVA TNT2/TNT2 Pro                    0x0028 +    RIVA TNT2 Ultra                       0x0029 +    Vanta/Vanta LT                        0x002C +    RIVA TNT2 Model 64/Model 64 Pro       0x002D +    Aladdin TNT2                          0x00A0 +    GeForce 256                           0x0100 +    GeForce DDR                           0x0101 +    Quadro                                0x0103 +    GeForce2 GTS/GeForce2 Pro             0x0150 +    GeForce2 Ti                           0x0151 +    GeForce2 Ultra                        0x0152 +    Quadro2 Pro                           0x0153 diff --git a/abs/not_built/core/nvidia-96xx/PKGBUILD b/abs/not_built/core/nvidia-96xx/PKGBUILD new file mode 100644 index 0000000..ead149d --- /dev/null +++ b/abs/not_built/core/nvidia-96xx/PKGBUILD @@ -0,0 +1,40 @@ +# $Id: PKGBUILD 105368 2011-01-08 09:33:32Z tpowa $ +# Maintainer : Thomas Baechler <thomas@archlinux.org> + +pkgname=nvidia-96xx +pkgver=96.43.19 +_kernver='2.6.39-LinHES' +pkgrel=7 +pkgdesc="NVIDIA drivers for kernel26, 96xx branch." +arch=('i686' 'x86_64') +[ "$CARCH" = "i686"   ] && ARCH=x86 +[ "$CARCH" = "x86_64" ] && ARCH=x86_64 +url="http://www.nvidia.com/" +depends=('kernel26>=2.6.39' 'kernel26<2.6.40' 'nvidia-96xx-utils') +makedepends=('kernel26-headers>=2.6.39' 'kernel26-headers<2.6.40') +conflicts=('nvidia' 'nvidia-173xx') +license=('custom') +install=nvidia.install +source=("http://download.nvidia.com/XFree86/Linux-$ARCH/${pkgver}/NVIDIA-Linux-$ARCH-${pkgver}-pkg0.run" +	nvidia-legacy-2.6.39.patch) + +[ "$CARCH" = "x86_64" ] && md5sums=('7ff779e299b938b880baff6cd970ab51') + +build() { +	cd $srcdir +	sh NVIDIA-Linux-$ARCH-${pkgver}-pkg0.run --extract-only +	cd NVIDIA-Linux-$ARCH-${pkgver}-pkg0 +	patch -p0 < ${srcdir}/nvidia-legacy-2.6.39.patch +	cd usr/src/nv/ +	ln -s Makefile.kbuild Makefile +	make SYSSRC=/lib/modules/${_kernver}/build module + +	mkdir -p $pkgdir/lib/modules/${_kernver}/kernel/drivers/video/ +	install -m644 nvidia.ko $pkgdir/lib/modules/${_kernver}/kernel/drivers/video/ + +        mkdir -p $pkgdir/etc/modprobe.d +        echo "blacklist nouveau" >> $pkgdir/etc/modprobe.d/nouveau_blacklist.conf +	sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/nvidia.install +} +md5sums=('53e98129d885a1b004aabc42a989fa73' +         'fc1ca585f5c5c3067b0fa283ee44b7c6') diff --git a/abs/not_built/core/nvidia-96xx/kernel-2.6.36.patch b/abs/not_built/core/nvidia-96xx/kernel-2.6.36.patch new file mode 100644 index 0000000..6b68385 --- /dev/null +++ b/abs/not_built/core/nvidia-96xx/kernel-2.6.36.patch @@ -0,0 +1,10 @@ +--- nv.c~	2010-10-25 23:03:15.976668304 +0200 ++++ nv.c	2010-10-25 23:08:12.783334336 +0200 +@@ -249,7 +249,6 @@ + static struct file_operations nv_fops = { +     .owner     = THIS_MODULE, +     .poll      = nv_kern_poll, +-    .ioctl     = nv_kern_ioctl, + #if defined(HAVE_UNLOCKED_IOCTL) +     .unlocked_ioctl = nv_kern_unlocked_ioctl, + #endif diff --git a/abs/not_built/core/nvidia-96xx/nvidia-96.43.11-2.6.30.patch b/abs/not_built/core/nvidia-96xx/nvidia-96.43.11-2.6.30.patch new file mode 100644 index 0000000..44d44fd --- /dev/null +++ b/abs/not_built/core/nvidia-96xx/nvidia-96.43.11-2.6.30.patch @@ -0,0 +1,103 @@ +--- usr/src/nv/nv.c.orig  ++++ usr/src/nv/nv.c  +@@ -15,6 +15,7 @@ + #include "nv_compiler.h" + #include "os-agp.h" + #include "nv-vm.h" ++#include <linux/version.h> +  + #ifdef MODULE_ALIAS_CHARDEV_MAJOR + MODULE_ALIAS_CHARDEV_MAJOR(NV_MAJOR_DEVICE_NUMBER); +@@ -499,10 +500,12 @@ +      * Set the module owner to ensure that the reference +      * count reflects accesses to the proc files. +      */ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) +     proc_nvidia->owner = THIS_MODULE; +     proc_nvidia_cards->owner = THIS_MODULE; +     proc_nvidia_warnings->owner = THIS_MODULE; +  ++#endif +     for (j = 0; j < num_nv_devices; j++) +     { +         nvl = &nv_linux_devices[j]; +@@ -521,7 +524,9 @@ +  +         entry->data = nv; +         entry->read_proc = nv_kern_read_cardinfo; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) +         entry->owner = THIS_MODULE; ++#endif +  +         if (nvos_find_agp_capability(dev)) { +             /* +@@ -534,7 +539,9 @@ +                 goto failed; +             } +  ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) +             entry->owner = THIS_MODULE; ++#endif +             proc_nvidia_agp = entry; +  +             entry = create_proc_entry("status", flags, proc_nvidia_agp); +@@ -545,7 +552,9 @@ +  +             entry->data = nv; +             entry->read_proc = nv_kern_read_status; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) +             entry->owner = THIS_MODULE; ++#endif +  +             entry = create_proc_entry("host-bridge", flags, proc_nvidia_agp); +             if (!entry) { +@@ -555,8 +564,9 @@ +  +             entry->data = NULL; +             entry->read_proc = nv_kern_read_agpinfo; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) +             entry->owner = THIS_MODULE; +- ++#endif +             entry = create_proc_entry("card", flags, proc_nvidia_agp); +             if (!entry) { +                 NV_PCI_DEV_PUT(dev); +@@ -565,7 +575,9 @@ +  +             entry->data = nv; +             entry->read_proc = nv_kern_read_agpinfo; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) +             entry->owner = THIS_MODULE; ++#endif +         } +  +         NV_PCI_DEV_PUT(dev); +@@ -576,14 +588,18 @@ +         goto failed; +  +     entry->read_proc = nv_kern_read_version; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) +     entry->owner = THIS_MODULE; ++#endif +  +     entry = create_proc_entry("registry", flags, proc_nvidia); +     if (!entry) +         goto failed; +  +     entry->read_proc = nv_kern_read_registry; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) +     entry->owner = THIS_MODULE; ++#endif +  +     return; +  +@@ -610,7 +626,9 @@ +  +     entry->data = (void *)message; +     entry->read_proc = nv_kern_read_warning; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) +     entry->owner = THIS_MODULE; ++#endif + #endif + } +  diff --git a/abs/not_built/core/nvidia-96xx/nvidia-legacy-2.6.39.patch b/abs/not_built/core/nvidia-96xx/nvidia-legacy-2.6.39.patch new file mode 100644 index 0000000..4ee8ba6 --- /dev/null +++ b/abs/not_built/core/nvidia-96xx/nvidia-legacy-2.6.39.patch @@ -0,0 +1,10 @@ +--- usr/src/nv/nv-linux.h.orig	2010-10-28 04:23:04.000000000 +0200 ++++ usr/src/nv/nv-linux.h	2011-05-21 08:58:35.714633248 +0200 +@@ -80,7 +80,6 @@ + #if !defined(KERNEL_2_4) + #include <linux/sched.h>            /* suser(), capable() replacement   */ + #include <linux/moduleparam.h>      /* module_param()                   */ +-#include <linux/smp_lock.h>         /* kernel_locked                    */ + #include <asm/tlbflush.h>           /* flush_tlb(), flush_tlb_all()     */ + #include <asm/kmap_types.h>         /* page table entry lookup          */ + #endif diff --git a/abs/not_built/core/nvidia-96xx/nvidia.install b/abs/not_built/core/nvidia-96xx/nvidia.install new file mode 100644 index 0000000..aea2fbb --- /dev/null +++ b/abs/not_built/core/nvidia-96xx/nvidia.install @@ -0,0 +1,14 @@ +post_install() { +	KERNEL_VERSION='2.6.39-LinHES' +	depmod $KERNEL_VERSION +} + +post_upgrade() { +	post_install +	rmmod nvidia || echo 'In order to use the new nvidia module, exit Xserver and unload it manually.' +} + +post_remove() { +	KERNEL_VERSION='2.6.39-LinHES' +	depmod $KERNEL_VERSION +} diff --git a/abs/not_built/core/perl_modules/perl-class-data-inheritable/PKGBUILD b/abs/not_built/core/perl_modules/perl-class-data-inheritable/PKGBUILD new file mode 100644 index 0000000..4769533 --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-class-data-inheritable/PKGBUILD @@ -0,0 +1,23 @@ +# This PKGBUILD was generated by cpan4pacman via CPANPLUS::Dist::Pacman +# Contributor: François Charette <firmicus ατ gmx δοτ net> + +pkgname=perl-class-data-inheritable +pkgver=0.08 +pkgrel=1 +pkgdesc="Inheritable, overridable class data " +arch=('i686' 'x86_64') +url="http://search.cpan.org/~TMTM/Class-Data-Inheritable" +license=('GPL' 'PerlArtistic') +depends=('perl>=5.10.0') +options=('!emptydirs') +source=(http://www.cpan.org/authors/id/T/TM/TMTM/Class-Data-Inheritable-$pkgver.tar.gz)  +md5sums=('fc0fe65926eb8fb932743559feb54eb9') + +build() { +  cd  $startdir/src/Class-Data-Inheritable-$pkgver +  PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1  +  make || return 1 +  make install DESTDIR=$startdir/pkg || return 1 +  find $startdir/pkg -name '.packlist' -delete +  find $startdir/pkg -name '*.pod' -delete +} diff --git a/abs/not_built/core/perl_modules/perl-compress-raw-zlib/PKGBUILD b/abs/not_built/core/perl_modules/perl-compress-raw-zlib/PKGBUILD new file mode 100644 index 0000000..93782f3 --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-compress-raw-zlib/PKGBUILD @@ -0,0 +1,25 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Cecil H. Watson <knoppmyth@gmail.com>  + +pkgname=perl-compress-raw-zlib +_realname=Compress-Raw-Zlib +pkgver=2.015 +pkgrel=1 +pkgdesc="Compress::Raw::Zlib - Low-Level Interface to zlib compression library" +arch=(i686 x86_64) +license=('PerlArtistic') +url="http://search.cpan.org/dist/${_realname}/" +depends=('perlxml' 'perl>=5.10.0') +options=('!emptydirs') +source=(ftp://ftp.cpan.org/pub/CPAN/authors/id/P/PM/PMQS/${_realname}-${pkgver}.tar.gz) +md5sums=('6680d7ee3fbfd5171ccf239328c284fd') + +build() { +  cd ${startdir}/src/${_realname}-${pkgver} +  perl Makefile.PL INSTALLDIRS=vendor || return 1 +  make  || return 1 +  make DESTDIR=${startdir}/pkg install || return 1 + +  find ${startdir}/pkg -name '.packlist' -delete +  find ${startdir}/pkg -name 'perllocal.pod' -delete +} diff --git a/abs/not_built/core/perl_modules/perl-compress-zlib/PKGBUILD b/abs/not_built/core/perl_modules/perl-compress-zlib/PKGBUILD new file mode 100644 index 0000000..5fb55a7 --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-compress-zlib/PKGBUILD @@ -0,0 +1,25 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Cecil H. Watson <knoppmyth@gmail.com> + +pkgname=perl-compress-zlib +_realname=Compress-Zlib +pkgver=2.015 +pkgrel=1 +pkgdesc="The Compress::Zlib module provides a Perl interface to the zlib compression library." +arch=(i686 x86_64) +license=('PerlArtistic') +url="http://search.cpan.org/dist/${_realname}/" +depends=('perlxml' 'perl>=5.10.0') +options=('!emptydirs') +source=(ftp://ftp.cpan.org/pub/CPAN/authors/id/P/PM/PMQS/${_realname}-${pkgver}.tar.gz) +md5sums=('689ba2cc399b019d0bf76a0575c32947') + +build() { +  cd ${startdir}/src/${_realname}-${pkgver} +  perl Makefile.PL INSTALLDIRS=vendor || return 1 +  make  || return 1 +  make DESTDIR=${startdir}/pkg install || return 1 + +  find ${startdir}/pkg -name '.packlist' -delete +  find ${startdir}/pkg -name 'perllocal.pod' -delete +} diff --git a/abs/not_built/core/perl_modules/perl-data-dumper/PKGBUILD b/abs/not_built/core/perl_modules/perl-data-dumper/PKGBUILD new file mode 100644 index 0000000..6b48a24 --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-data-dumper/PKGBUILD @@ -0,0 +1,25 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Cecil H. Watson <knoppmyth@gmail.com> + +pkgname=perl-data-dumper +_realname=Data-Dumper +pkgver=2.121 +pkgrel=1 +pkgdesc="Data::Dumper - stringified perl data structures, suitable for both printing and eval." +arch=(i686 x86_64) +license=('PerlArtistic') +url="http://search.cpan.org/dist/${_realname}/" +depends=('perlxml' 'perl>=5.10.0') +options=('!emptydirs') +source=(ftp://ftp.cpan.org/pub/CPAN/authors/id/I/IL/ILYAM/${_realname}-${pkgver}.tar.gz) +md5sums=('10d6ff7a85fa3e5f91fcb2e6593cfd1b') + +build() { +  cd ${startdir}/src/${_realname}-${pkgver} +  perl Makefile.PL INSTALLDIRS=vendor || return 1 +  make  || return 1 +  make DESTDIR=${startdir}/pkg install || return 1 + +  find ${startdir}/pkg -name '.packlist' -delete +  find ${startdir}/pkg -name 'perllocal.pod' -delete +} diff --git a/abs/not_built/core/perl_modules/perl-devel-stacktrace/PKGBUILD b/abs/not_built/core/perl_modules/perl-devel-stacktrace/PKGBUILD new file mode 100644 index 0000000..72c89c7 --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-devel-stacktrace/PKGBUILD @@ -0,0 +1,28 @@ +pkgname=perl-devel-stacktrace +_realname=Devel-StackTrace +pkgver=1.1902 +pkgrel=2 +pkgdesc="Perl devel stracktrace" +arch=(i686 x86_64) +license=('custom:BSD') +url="http://search.cpan.org/dist/${_realname}/" +depends=('perl>=5.10.0' 'openssl') +options=(!emptydirs) +replaces=('net-ssleay') +provides=('net-ssleay') +source=(http://www.cpan.org/authors/id/D/DR/DROLSKY/${_realname}-${pkgver}.tar.gz) + +build() { +  cd ${startdir}/src/${_realname}-${pkgver} +  # install module in vendor directories. +  PERL_MM_USE_DEFAULT=1 perl Makefile.PL -- INSTALLDIRS=vendor || return 1 +  make  || return 1 +  make install DESTDIR=${startdir}/pkg || return 1 + +  # remove perllocal.pod and .packlist +  find ${startdir}/pkg -name perllocal.pod -delete +  find ${startdir}/pkg -name .packlist -delete + +  install -D -m644 README ${startdir}/pkg/usr/share/licenses/${pkgname}/README +} +# vim: ts=2 sw=2 et ft=sh diff --git a/abs/not_built/core/perl_modules/perl-exception-class/PKGBUILD b/abs/not_built/core/perl_modules/perl-exception-class/PKGBUILD new file mode 100644 index 0000000..58e1138 --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-exception-class/PKGBUILD @@ -0,0 +1,22 @@ +# Maintainer: François Charette <firmicus ατ gmx δοτ net> + +pkgname=perl-exception-class +pkgver=1.24 +pkgrel=1 +pkgdesc="Declare exception class hierarchies" +arch=('i686' 'x86_64') +url="http://search.cpan.org/~DROLSKY/Exception-Class" +license=('GPL' 'PerlArtistic') +depends=('perl') +options=('!emptydirs') +source=(http://www.cpan.org/authors/id/D/DR/DROLSKY/Exception-Class-$pkgver.tar.gz)  +md5sums=('b672b63f8e7f3652980f188c2d58840d') + +build() { +  cd  $startdir/src/Exception-Class-$pkgver +  PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1  +  make || return 1 +  make install DESTDIR=$startdir/pkg || return 1 +  find $startdir/pkg -name '.packlist' -delete +  find $startdir/pkg -name '*.pod' -delete +} diff --git a/abs/not_built/core/perl_modules/perl-getopt-long/PKGBUILD b/abs/not_built/core/perl_modules/perl-getopt-long/PKGBUILD new file mode 100644 index 0000000..e167586 --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-getopt-long/PKGBUILD @@ -0,0 +1,25 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Cecil H. Watson <knoppmyth@gmail.com> + +pkgname=perl-getopt-long +_realname=Getopt-Long +pkgver=2.37 +pkgrel=1 +pkgdesc="Getopt::Long - Extended processing of command line options" +arch=(i686 x86_64) +license=('PerlArtistic') +url="http://search.cpan.org/dist/${_realname}/" +depends=('perlxml' 'perl>=5.10.0') +options=('!emptydirs') +source=(ftp://ftp.cpan.org/pub/CPAN/authors/id/J/JV/JV/${_realname}-${pkgver}.tar.gz) +md5sums=('7d7fdb7a5c07d720e93ff3b9ff34b06e') + +build() { +  cd ${startdir}/src/${_realname}-${pkgver} +  perl Makefile.PL INSTALLDIRS=vendor || return 1 +  make  || return 1 +  make DESTDIR=${startdir}/pkg install || return 1 + +  find ${startdir}/pkg -name '.packlist' -delete +  find ${startdir}/pkg -name 'perllocal.pod' -delete +} diff --git a/abs/not_built/core/perl_modules/perl-getopt-lucid/PKGBUILD b/abs/not_built/core/perl_modules/perl-getopt-lucid/PKGBUILD new file mode 100644 index 0000000..9905900 --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-getopt-lucid/PKGBUILD @@ -0,0 +1,25 @@ +pkgname=perl-getopt-lucid +_realname=Getopt-Lucid +pkgver=0.17 +pkgrel=1 +pkgdesc="Perl/CPAN Getopt::Lucid - Clear, readable syntax for command line processing" +url="http://search.cpan.org/dist/${_realname}/" +arch=(i686 x86_64) +license=('PerlArtistic' 'GPL') +depends=('perl>=5.10.0') +options=('!emptydirs') +#http://search.cpan.org/CPAN/authors/id/D/DA/DAGOLDEN/Getopt-Lucid-0.17.tar.gz + +source=(http://search.cpan.org/CPAN/authors/id/D/DA/DAGOLDEN/${_realname}-${pkgver}.tar.gz) + +build() { +  cd ${startdir}/src/${_realname}-${pkgver} +  # install module in vendor directories. +  perl Makefile.PL INSTALLDIRS=vendor || return 1 +  make  || return 1 +  make install DESTDIR=${startdir}/pkg || return 1 + +  # remove perllocal.pod and .packlist +  find ${startdir}/pkg -name perllocal.pod -delete +  find ${startdir}/pkg -name .packlist -delete +} diff --git a/abs/not_built/core/perl_modules/perl-image-imlib2/PKGBUILD b/abs/not_built/core/perl_modules/perl-image-imlib2/PKGBUILD new file mode 100644 index 0000000..dcb916a --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-image-imlib2/PKGBUILD @@ -0,0 +1,50 @@ +# CPAN Name  : Image-Imlib2 +# Contributor: AUR Perl <aurperl@juster.info> +# Generator  : CPANPLUS::Dist::Arch 1.18 + +pkgname='perl-image-imlib2' +pkgver='2.03' +pkgrel='1' +pkgdesc="Interface to the Imlib2 image library" +arch=('i686' 'x86_64') +license=('PerlArtistic' 'GPL') +options=('!emptydirs') +depends=('perl' 'imlib2') +makedepends=() +url='http://search.cpan.org/dist/Image-Imlib2' +source=('http://search.cpan.org/CPAN/authors/id/L/LB/LBROCARD/Image-Imlib2-2.03.tar.gz') +md5sums=('303b91fae2b863903e41a3cac34fa0d3') +sha512sums=('d38eba0da1d9fe46244400454f55d2d4d682a7aff78c123c01476c14f30de3fc4699a1f926fc82fea09341f0577f943d82fe73cd40225bc69a06e1c710383d60') +_distdir="${srcdir}/Image-Imlib2-2.03" + +build() { +  ( export PERL_MM_USE_DEFAULT=1 PERL5LIB=""                 \ +      PERL_AUTOINSTALL=--skipdeps                            \ +      PERL_MM_OPT="INSTALLDIRS=vendor DESTDIR='$pkgdir'"     \ +      PERL_MB_OPT="--installdirs vendor --destdir '$pkgdir'" \ +      MODULEBUILDRC=/dev/null + +    cd "$_distdir" +    /usr/bin/perl Makefile.PL +    make +  ) +} + +check() { +  cd "$_distdir" +  ( export PERL_MM_USE_DEFAULT=1 PERL5LIB="" +    make test +  ) +} + +package() { +  cd "$_distdir" +  make install +  find "$pkgdir" -name .packlist -o -name perllocal.pod -delete +} + +# Local Variables: +# mode: shell-script +# sh-basic-offset: 2 +# End: +# vim:set ts=2 sw=2 et: diff --git a/abs/not_built/core/perl_modules/perl-io-compress-zlib/PKGBUILD b/abs/not_built/core/perl_modules/perl-io-compress-zlib/PKGBUILD new file mode 100644 index 0000000..9adde18 --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-io-compress-zlib/PKGBUILD @@ -0,0 +1,25 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Cecil H. Watson <knoppmyth@gmail.com> + +pkgname=perl-io-compress-zlib +_realname=IO-Compress-Zlib +pkgver=2.015 +pkgrel=1 +pkgdesc="This module provides a Perl interface to allow reading and writing of RFC 1950, 1951, 1952 (i.e. gzip) and zip files/buffers." +arch=(i686 x86_64) +license=('PerlArtistic') +url="http://search.cpan.org/dist/${_realname}/" +depends=('perlxml' 'perl>=5.10.0') +options=('!emptydirs') +source=(ftp://ftp.cpan.org/pub/CPAN/authors/id/P/PM/PMQS/${_realname}-${pkgver}.tar.gz) +md5sums=('22f3b677a6f1782713c8451966598d3f') + +build() { +  cd ${startdir}/src/${_realname}-${pkgver} +  perl Makefile.PL INSTALLDIRS=vendor || return 1 +  make  || return 1 +  make DESTDIR=${startdir}/pkg install || return 1 + +  find ${startdir}/pkg -name '.packlist' -delete +  find ${startdir}/pkg -name 'perllocal.pod' -delete +} diff --git a/abs/not_built/core/perl_modules/perl-javascript/PKGBUILD b/abs/not_built/core/perl_modules/perl-javascript/PKGBUILD new file mode 100644 index 0000000..5be227c --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-javascript/PKGBUILD @@ -0,0 +1,28 @@ +pkgname=perl-javascript +pkgver=1.16 +pkgrel=2 +pkgdesc="Perl extension for executing embedded JavaScript" +depends=('perl>=5.10.0' 'glibc' 'perl-test-exception' 'js<=1:1.7.0' 'xulrunner' 'nspr') +license=('GPL' 'PerlArtistic') +url="http://search.cpan.org/dist/JavaScript/" +source=(http://search.cpan.org/CPAN/authors/id/C/CL/CLAESJAC/JavaScript-$pkgver.tar.gz) +options=('!emptydirs') +arch=(i686 x86_64) + +build() +{ +  cd ${srcdir}/JavaScript-$pkgver + +  # dirty hack to pass the correct includes to the script +  export JS_THREADSAFE=1 JS_UTF8=1 JS_ENABLE_E4X=1 JS_INC="/usr/include/js -I/usr/include/xulrunner-1.9.2 -I/usr/include/nspr" +  perl Makefile.PL INSTALLDIRS=vendor || return 1 +  make || return 1 +  make DESTDIR=${pkgdir} install || return 1 +   +  # Remove .packlist and perllocal.pod files. +  find ${pkgdir} -name '.packlist' -delete +  find ${pkgdir} -name 'perllocal.pod' -delete + +} + +md5sums=('c3c4a744e0a5018b94f53341baa18df7') diff --git a/abs/not_built/core/perl_modules/perl-lingua-en-numbers/PKGBUILD b/abs/not_built/core/perl_modules/perl-lingua-en-numbers/PKGBUILD new file mode 100644 index 0000000..c7563cf --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-lingua-en-numbers/PKGBUILD @@ -0,0 +1,25 @@ +# $Id: PKGBUILD 73857 2012-07-16 05:44:00Z spupykin $ +# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> +# Maintainer: Allan McRae <mcrae_allan@hotmail.com> +# Contributor: François Charette <firmicus ατ gmx δοτ net> + +pkgname=perl-lingua-en-numbers +pkgver=1.04 +pkgrel=1 +pkgdesc="Turn 407 into four hundred and seven, etc." +arch=('any') +url="http://search.cpan.org/dist/Lingua-EN-Numbers" +license=('GPL' 'PerlArtistic') +depends=('perl>=5.10.0') +options=('!emptydirs') +source=(http://search.cpan.org/CPAN/authors/id/N/NE/NEILB/Lingua-EN-Numbers-$pkgver.tar.gz) +md5sums=('6b3d8ea645b37ee29b37388caa01b0f3') + +build() { +  cd  $srcdir/Lingua-EN-Numbers-$pkgver +  PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor +  make +  make install DESTDIR=$pkgdir +  find $pkgdir -name '.packlist' -delete +  find $pkgdir -name '*.pod' -delete +} diff --git a/abs/not_built/core/perl_modules/perl-list-member/PKGBUILD b/abs/not_built/core/perl_modules/perl-list-member/PKGBUILD new file mode 100644 index 0000000..d944a68 --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-list-member/PKGBUILD @@ -0,0 +1,24 @@ +pkgname=perl-list-member +_realname=List-Member +pkgver=0.043 +pkgrel=1 +pkgdesc="Perl/CPAN List::Member - PROLOG's member/2: return index of $x in @y." +url="http://search.cpan.org/dist/${_realname}/" +arch=(i686 x86_64) +license=('PerlArtistic' 'GPL') +depends=('perl>=5.10.0') +options=('!emptydirs') +#http://search.cpan.org/CPAN/authors/id/L/LG/LGODDARD/List-Member-0.043.tar.gz +source=(http://search.cpan.org/CPAN/authors/id/L/LG/LGODDARD/${_realname}-${pkgver}.tar.gz) + +build() { +  cd ${startdir}/src/${_realname}-${pkgver} +  # install module in vendor directories. +  perl Makefile.PL INSTALLDIRS=vendor || return 1 +  make  || return 1 +  make install DESTDIR=${startdir}/pkg || return 1 + +  # remove perllocal.pod and .packlist +  find ${startdir}/pkg -name perllocal.pod -delete +  find ${startdir}/pkg -name .packlist -delete +} diff --git a/abs/not_built/core/perl_modules/perl-log-log4perl/PKGBUILD b/abs/not_built/core/perl_modules/perl-log-log4perl/PKGBUILD new file mode 100644 index 0000000..73d125d --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-log-log4perl/PKGBUILD @@ -0,0 +1,23 @@ +# This PKGBUILD was generated by cpan4pacman via CPANPLUS::Dist::Pacman +# Contributor: François Charette <firmicus ατ gmx δοτ net> + +pkgname=perl-log-log4perl +pkgver=1.18 +pkgrel=1 +pkgdesc="Log4j implementation in Perl" +arch=('i686' 'x86_64') +url="http://search.cpan.org/~MSCHILLI/Log-Log4perl" +license=('GPL' 'PerlArtistic') +depends=('perl>=5.10.0') +options=('!emptydirs') +source=(http://www.cpan.org/authors/id/M/MS/MSCHILLI/Log-Log4perl-$pkgver.tar.gz)  +md5sums=('9513b615f516827a26bdbcc0d868634f') + +build() { +  cd  $startdir/src/Log-Log4perl-$pkgver +  PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1  +  make || return 1 +  make install DESTDIR=$startdir/pkg || return 1 +  find $startdir/pkg -name '.packlist' -delete +  find $startdir/pkg -name '*.pod' -delete +} diff --git a/abs/not_built/core/perl_modules/perl-mime-parser/PKGBUILD b/abs/not_built/core/perl_modules/perl-mime-parser/PKGBUILD new file mode 100644 index 0000000..c8adc5d --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-mime-parser/PKGBUILD @@ -0,0 +1,25 @@ +pkgname=perl-mime-parser +pkgver=5.420 +pkgrel=2 +pkgdesc="Perl/CPAN Module MIME::Parser : Parses streams to create MIME entities" +arch=("i686" "x86_64") +url="http://search.cpan.org/DSKOLL/MIME-tools" +license=("GPL" "Artistic") +source=("http://www.cpan.org/authors/id/D/DS/DSKOLL/MIME-tools-5.420.tar.gz") +md5sums=("4db6505cc0132c80c5a9cc54f443a21a") +makedepends=("perl-io-stringy" "perl-mailtools" ) +#depends=("perl-io-stringy" "perl-mail-field" "perl-mail-header" "perl-mail-internet") +depends=("perl-io-stringy" "perl-mailtools" ) +build() { +  cd $startdir/src/MIME-tools-5.420 +  eval `perl -V:archname` +  /usr/bin/perl Makefile.PL \ +  INSTALLARCHLIB=/usr/lib/perl5/current/${archname} \ +  INSTALLSITELIB=/usr/lib/perl5/site_perl/current \ +  INSTALLSITEARCH=/usr/lib/perl5/site_perl/current/${archname} || return 1 +  make || return 1 +  make DESTDIR=$startdir/pkg install || return 1 +  /usr/bin/find $startdir/pkg -name '.packlist' -exec rm  '{}' \; && \ +  /usr/bin/find $startdir/pkg -name 'perllocal.pod' -exec rm  '{}' \; && \ +  /usr/bin/find $startdir/pkg -depth -type d -empty -exec rmdir '{}' \; +} diff --git a/abs/not_built/core/perl_modules/perl-parse-yapp/PKGBUILD b/abs/not_built/core/perl_modules/perl-parse-yapp/PKGBUILD new file mode 100644 index 0000000..82d27db --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-parse-yapp/PKGBUILD @@ -0,0 +1,25 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +# Maintainer: Cecil H. Watson <knoppmyth@gmail.com> + +pkgname=perl-parse-yapp +_realname=Parse-Yapp +pkgver=1.05 +pkgrel=1 +pkgdesc="Parse::Yapp - Perl extension for generating and using LALR parsers." +arch=(i686 x86_64) +license=('PerlArtistic') +url="http://search.cpan.org/dist/${_realname}/" +depends=('perlxml' 'perl>=5.10.0') +options=('!emptydirs') +source=(ftp://ftp.cpan.org/pub/CPAN/authors/id/F/FD/FDESAR/${_realname}-${pkgver}.tar.gz) +md5sums=('7bfca736d6af36c51edf7a97111a8f3b') + +build() { +  cd ${startdir}/src/${_realname}-${pkgver} +  perl Makefile.PL INSTALLDIRS=vendor || return 1 +  make  || return 1 +  make DESTDIR=${startdir}/pkg install || return 1 + +  find ${startdir}/pkg -name '.packlist' -delete +  find ${startdir}/pkg -name 'perllocal.pod' -delete +} diff --git a/abs/not_built/core/perl_modules/perl-pathtools/PKGBUILD b/abs/not_built/core/perl_modules/perl-pathtools/PKGBUILD new file mode 100644 index 0000000..a88a231 --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-pathtools/PKGBUILD @@ -0,0 +1,23 @@ + +pkgname=perl-pathtools +pkgver=3.33 +pkgrel=1 +pkgdesc="Current working directory (CWD) and File::Spec perl modules" +arch=('i686' 'x86_64') +url="http://search.cpan.org/~KWILLIAMS/Path-Class" + +license=('GPL' 'PerlArtistic') +depends=('perl>=5.10.0') +options=('!emptydirs') +source=(http://search.cpan.org/CPAN/authors/id/S/SM/SMUELLER/PathTools-$pkgver.tar.gz) +groups=('shepherd-dep') +build() { +  cd  $startdir/src/PathTools-$pkgver +  PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1  +  make || return 1 +  make install DESTDIR=$startdir/pkg || return 1 +  find $startdir/pkg -name '.packlist' -delete +  find $startdir/pkg -name '*.pod' -delete +} + +md5sums=('92f0df032c399fadef2e2e647ebc3111') diff --git a/abs/not_built/core/perl_modules/perl-pathtools/license.txt b/abs/not_built/core/perl_modules/perl-pathtools/license.txt new file mode 100644 index 0000000..508353d --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-pathtools/license.txt @@ -0,0 +1,6 @@ +"THE BEER-WARE LICENSE" (Revision 42): +<phk@login.dknet.dk>  wrote this  file.  As  long as  you  retain this +notice you can  do whatever you want with this stuff.  If we meet some +day, and you  think this stuff is worth  it, you can buy me  a beer in +return.  Poul-Henning Kamp + diff --git a/abs/not_built/core/perl_modules/perl-proc-processtable/PKGBUILD b/abs/not_built/core/perl_modules/perl-proc-processtable/PKGBUILD new file mode 100644 index 0000000..51ee46b --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-proc-processtable/PKGBUILD @@ -0,0 +1,31 @@ +# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de> +# Contributor: yugrotavele <yugrotavele at archlinux dot us> + +pkgname=perl-proc-processtable +pkgver=0.45 +pkgrel=2 +pkgdesc="Provides a consistent interface to process table information." +arch=('i686' 'x86_64') +url="http://search.cpan.org/dist/Proc-ProcessTable/" +license=('PerlArtistic') +depends=('perl') +provides=('perl-proc-killall=1.0.0' 'perl-proc-killfam=1.0.0' 'perl-proc-processtable-process=0.20.0') +options=(!emptydirs) +source=("http://search.cpan.org/CPAN/authors/id/D/DU/DURIST/Proc-ProcessTable-$pkgver.tar.gz") +md5sums=('4481495d639c314f57e6d9d25f23c88e') + +build() { +  cd $srcdir/Proc-ProcessTable-$pkgver + +  PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor +  make +} + +package() { +  cd $srcdir/Proc-ProcessTable-$pkgver + +  make install DESTDIR="${pkgdir}" +  find ${pkgdir} -name perllocal.pod -delete +  find ${pkgdir} -name .packlist -delete +} + diff --git a/abs/not_built/core/perl_modules/perl-text-bidi/PKGBUILD b/abs/not_built/core/perl_modules/perl-text-bidi/PKGBUILD new file mode 100644 index 0000000..e667f5e --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-text-bidi/PKGBUILD @@ -0,0 +1,23 @@ +# Maintainer: Allan McRae <mcrae_allan@hotmail.com> +# Contributor: François Charette <firmicus ατ gmx δοτ net> + +pkgname=perl-text-bidi +pkgver=0.03 +pkgrel=3 +pkgdesc="Unicode bidi algorithm-libfribidi interface" +arch=('i686' 'x86_64') +url="http://search.cpan.org/~KAMENSKY/Text-Bidi" +license=('GPL' 'PerlArtistic') +depends=('perl>=5.10.0' 'fribidi') +options=('!emptydirs') +source=(http://www.cpan.org/authors/id/K/KA/KAMENSKY/Text-Bidi-$pkgver.tar.gz)  +md5sums=('93e124628ff2983e32ac478f25f8d627') + +build() { +  cd  $startdir/src/Text-Bidi-$pkgver +  PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1  +  make || return 1 +  make install DESTDIR=$startdir/pkg || return 1 +  find $startdir/pkg -name '.packlist' -delete +  find $startdir/pkg -name '*.pod' -delete +} diff --git a/abs/not_built/core/perl_modules/perl-text-kakasi/PKGBUILD b/abs/not_built/core/perl_modules/perl-text-kakasi/PKGBUILD new file mode 100644 index 0000000..1954f8a --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-text-kakasi/PKGBUILD @@ -0,0 +1,23 @@ +# Maintainer: Allan McRae <mcrae_allan@hotmail.com> +# Contributor: François Charette <firmicus ατ gmx δοτ net> + +pkgname=perl-text-kakasi +pkgver=2.04 +pkgrel=4 +pkgdesc="Perl frontend to kakasi" +arch=('i686' 'x86_64') +url="http://search.cpan.org/~DANKOGAI/Text-Kakasi" +license=('GPL' 'PerlArtistic') +depends=('perl>=5.10.0' 'kakasi')  +options=('!emptydirs') +source=(http://www.cpan.org/authors/id/D/DA/DANKOGAI/Text-Kakasi-$pkgver.tar.gz)  +md5sums=('5a9e381cb93edfd707124a63c60f96b1') + +build() { +  cd  $startdir/src/Text-Kakasi-$pkgver +  PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1  +  make || return 1 +  make install DESTDIR=$startdir/pkg || return 1 +  find $startdir/pkg -name '.packlist' -delete +  find $startdir/pkg -name '*.pod' -delete +} diff --git a/abs/not_built/core/perl_modules/perl-time-format/PKGBUILD b/abs/not_built/core/perl_modules/perl-time-format/PKGBUILD new file mode 100644 index 0000000..40a2ae2 --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-time-format/PKGBUILD @@ -0,0 +1,21 @@ +# This PKGBUILD was autocreated.  See http://xtermin.us/archperl/ for details +# Maintainer: Charles Mauch <cmauch@gmail.com> + +pkgname=perl-time-format +pkgver=1.09 +pkgrel=1 +pkgdesc="Perl/CPAN Module Time::Format : Easytouse datetime formatting" +arch=("i686" "x86_64") +url="http://search.cpan.org/dist/Time-Format" +license=("GPL" "Artistic") +source=("http://www.cpan.org/authors/id/R/RO/ROODE/Time-Format-$pkgver.tar.gz") + +build() { +  cd $startdir/src/Time-Format-$pkgver +  PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1  +  make || return 1 +  make install DESTDIR=$startdir/pkg || return 1 +  find $startdir/pkg -name '.packlist' -delete +  find $startdir/pkg -name '*.pod' -delete +} +md5sums=('c0edfd94d8f4cb814dee7bdf7e9ed61f') diff --git a/abs/not_built/core/perl_modules/perl-x-osd/PKGBUILD b/abs/not_built/core/perl_modules/perl-x-osd/PKGBUILD new file mode 100644 index 0000000..771079b --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-x-osd/PKGBUILD @@ -0,0 +1,32 @@ +# Contributor: 3ED <krzysztof1987 at gmail dot com> +# +pkgname='perl-x-osd' +_lastauthor="G/GO/GOZER" +_pkgname='X-Osd' +pkgver='0.7' +pkgrel='2' +pkgdesc="Perl extension to the X On Screen Display library (xosd)" +arch=('i686' 'x86_64') +license=('PerlArtistic' 'GPL') +options=('!emptydirs') +depends=('perl' 'xosd') +url='http://search.cpan.org/dist/X-Osd/' +source=(http://search.cpan.org/CPAN/authors/id/${_lastauthor}/${_pkgname}-${pkgver}.tar.gz) +sha256sums=('e3bafe11cd51ad9b1e3d1df18516f9bb1ba462f981483b922f2b627b08190391') + +build() { +  cd "${srcdir}/${_pkgname}-${pkgver}" +  export PERL_MM_USE_DEFAULT=1 +  export PERL_AUTOINSTALL='--skipdeps' +  perl Makefile.PL INSTALLDIRS=vendor +  make +} +check() { +  cd "${srcdir}/${_pkgname}-${pkgver}" +  make test +} +package() { +  cd "${srcdir}/${_pkgname}-${pkgver}" +  make DESTDIR="${pkgdir}" install +  find "${pkgdir}" -name .packlist -o -name perllocal.pod -delete +} diff --git a/abs/not_built/core/perl_modules/perl-xml-xql/PKGBUILD b/abs/not_built/core/perl_modules/perl-xml-xql/PKGBUILD new file mode 100755 index 0000000..34757a3 --- /dev/null +++ b/abs/not_built/core/perl_modules/perl-xml-xql/PKGBUILD @@ -0,0 +1,34 @@ +# Contributor: ndlarsen <ndlarsen@gmail.com> +# Comment: Based on PKGBUILDs from the perlcpan repo by Charles Mauch <cmauch@gmail.com> + +pkgname=perl-xml-xql +pkgver=0.68 +pkgrel=1 +pkgdesc="A perl module for querying XML tree structures with XQL" +arch=('i686') +url="http://search.cpan.org/dist/XML-XQL/lib/XML/XQL.pm" +license=('GPL Artistic') +depends=('perl-parse-yapp' 'perl-xml-dom' 'perl-xml-parser' 'perl-date-manip') +makedepends=() +provides=() +conflicts=() +replaces=() +backup=() +groups=() +options=(docs !emptydirs) +install= +noextract=() +source=(http://search.cpan.org/CPAN/authors/id/T/TJ/TJMATHER/XML-XQL-$pkgver.tar.gz) +md5sums=('bb84096fdf8bcc96a35971539ce8c19e') + +build() { + +	cd $startdir/src/XML-XQL-$pkgver +	/usr/bin/perl Makefile.PL INSTALLDIRS=vendor MAN1ext=1p MAN3EXT=3pm +	make || return 1 +	make DESTDIR=$startdir/pkg install || return 1 +	/usr/bin/find $startdir/pkg -name '.packlist' -exec rm  '{}' \; && \ +	/usr/bin/find $startdir/pkg -name 'perllocal.pod' -exec rm  '{}' \;  +		 +} +# $Id$
\ No newline at end of file diff --git a/abs/not_built/core/plextor-convertX-driver/.svn/all-wcprops b/abs/not_built/core/plextor-convertX-driver/.svn/all-wcprops new file mode 100644 index 0000000..a9a4baa --- /dev/null +++ b/abs/not_built/core/plextor-convertX-driver/.svn/all-wcprops @@ -0,0 +1,29 @@ +K 25 +svn:wc:ra_dav:version-url +V 68 +/svn/MythVantage/!svn/ver/3/trunk/multimedia/plextor-convertX-driver +END +download.php?id=9719 +K 25 +svn:wc:ra_dav:version-url +V 91 +/svn/MythVantage/!svn/ver/3/trunk/multimedia/plextor-convertX-driver/download.php%3Fid=9719 +END +PKGBUILD +K 25 +svn:wc:ra_dav:version-url +V 77 +/svn/MythVantage/!svn/ver/3/trunk/multimedia/plextor-convertX-driver/PKGBUILD +END +wis-go-0.9.8-2.6.17.patch +K 25 +svn:wc:ra_dav:version-url +V 94 +/svn/MythVantage/!svn/ver/3/trunk/multimedia/plextor-convertX-driver/wis-go-0.9.8-2.6.17.patch +END +convertX.install +K 25 +svn:wc:ra_dav:version-url +V 85 +/svn/MythVantage/!svn/ver/3/trunk/multimedia/plextor-convertX-driver/convertX.install +END diff --git a/abs/not_built/core/plextor-convertX-driver/.svn/entries b/abs/not_built/core/plextor-convertX-driver/.svn/entries new file mode 100644 index 0000000..24668fc --- /dev/null +++ b/abs/not_built/core/plextor-convertX-driver/.svn/entries @@ -0,0 +1,95 @@ +8 + +dir +26 +http://www.mythvantage.com/svn/MythVantage/trunk/multimedia/plextor-convertX-driver +http://www.mythvantage.com/svn/MythVantage + + + +2008-08-11T22:07:32.420645Z +3 +jams + + +svn:special svn:externals svn:needs-lock + + + + + + + + + + + +aa4607db-271d-489d-aa74-f9b36e0b8801 + +download.php?id=9719 +file + + + + +2008-08-23T20:50:13.000000Z +046fc285320714abb64ca8d699d5daad +2008-08-11T22:07:32.420645Z +3 +jams +has-props + +PKGBUILD +file + + + + +2008-08-23T20:50:13.000000Z +1a918566d44b59443786bfc0dc425bf8 +2008-08-11T22:07:32.420645Z +3 +jams +has-props + +install +dir + +lib +dir + +wis-go-0.9.8-2.6.17.patch +file + + + + +2008-08-23T20:50:13.000000Z +83d3108be840a45871c195a25c4de4ca +2008-08-11T22:07:32.420645Z +3 +jams +has-props + +usr +dir + +etc +dir + +slack +dir + +convertX.install +file + + + + +2008-08-23T20:50:13.000000Z +3f2eb8d111d0b1b43b4c53852610f4ec +2008-08-11T22:07:32.420645Z +3 +jams +has-props + diff --git a/abs/not_built/core/plextor-convertX-driver/.svn/format b/abs/not_built/core/plextor-convertX-driver/.svn/format new file mode 100644 index 0000000..45a4fb7 --- /dev/null +++ b/abs/not_built/core/plextor-convertX-driver/.svn/format @@ -0,0 +1 @@ +8 diff --git a/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/PKGBUILD.svn-base b/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/PKGBUILD.svn-base new file mode 100644 index 0000000..869ac71 --- /dev/null +++ b/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/PKGBUILD.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/convertX.install.svn-base b/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/convertX.install.svn-base new file mode 100644 index 0000000..869ac71 --- /dev/null +++ b/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/convertX.install.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/download.php?id=9719.svn-base b/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/download.php?id=9719.svn-base new file mode 100644 index 0000000..869ac71 --- /dev/null +++ b/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/download.php?id=9719.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/wis-go-0.9.8-2.6.17.patch.svn-base b/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/wis-go-0.9.8-2.6.17.patch.svn-base new file mode 100644 index 0000000..869ac71 --- /dev/null +++ b/abs/not_built/core/plextor-convertX-driver/.svn/prop-base/wis-go-0.9.8-2.6.17.patch.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/abs/not_built/core/plextor-convertX-driver/.svn/text-base/PKGBUILD.svn-base b/abs/not_built/core/plextor-convertX-driver/.svn/text-base/PKGBUILD.svn-base new file mode 100644 index 0000000..1711062 --- /dev/null +++ b/abs/not_built/core/plextor-convertX-driver/.svn/text-base/PKGBUILD.svn-base @@ -0,0 +1,31 @@ + + +pkgname=plextor-convertX-driver +pkgver=0.9.8 +pkgrel=3 +_kernver=2.6.17-STB +pkgdesc="ivtv - Drivers for many types of PVR cards" +arch=(i686 x86_64) +url="http://ivtvdriver.org" +install="convertX.install" +source=("http://oss.wischip.com/wis-go7007-linux-$pkgver.tar.bz2" "wis-go-0.9.8-2.6.17.patch") +depends=(gcc 'udev>=070' 'fxload') + + +build() { +    +  # SET UP +  patch -p0 < wis-go-0.9.8-2.6.17.patch +  cd $startdir/src/wis-go7007-linux-0.9.8|| return 1 + +  # build +  make clean ||  return 1 +  make || return 1 +  mkdir -p $startdir/pkg/usr/src/linux-$_kernver/include/linux +  mkdir -p $startdir/pkg/etc/udev/rules.d +  mkdir -p $startdir/pkg/usr/bin +  # install +  make DESTDIR=$startdir/pkg install || return 1 +  install -m755 apps/gorecord $startdir/pkg/usr/bin/gorecord +  install -m755 apps/modet $startdir/pkg/usr/bin/modet +} diff --git a/abs/not_built/core/plextor-convertX-driver/.svn/text-base/convertX.install.svn-base b/abs/not_built/core/plextor-convertX-driver/.svn/text-base/convertX.install.svn-base new file mode 100644 index 0000000..8dfd0b7 --- /dev/null +++ b/abs/not_built/core/plextor-convertX-driver/.svn/text-base/convertX.install.svn-base @@ -0,0 +1,31 @@ +pre_install() { +	/bin/true +} + +post_install() { +  # updating module dependencies +  echo ">>> Updating module dependencies. Please wait ..." +  KERNEL_VERSION=2.6.17-STB +  depmod -v $KERNEL_VERSION > /dev/null 2>&1 +  /bin/true +} + +post_upgrade() { +  # updating module dependencies +  echo ">>> Updating module dependencies. Please wait ..." +  KERNEL_VERSION=2.6.17-STB +  depmod -v $KERNEL_VERSION > /dev/null 2>&1 +  /bin/true +} + +post_remove() { +  # updating module dependencies +  echo ">>> Updating module dependencies. Please wait ..." +  KERNEL_VERSION=2.6.17-STB +  depmod -v $KERNEL_VERSION > /dev/null 2>&1 +  /bin/true +} + +op=$1 +shift +$op $* diff --git a/abs/not_built/core/plextor-convertX-driver/.svn/text-base/download.php?id=9719.svn-base b/abs/not_built/core/plextor-convertX-driver/.svn/text-base/download.php?id=9719.svn-base new file mode 100644 index 0000000..516608c --- /dev/null +++ b/abs/not_built/core/plextor-convertX-driver/.svn/text-base/download.php?id=9719.svn-base @@ -0,0 +1,460 @@ +<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">  +<html>  +  +<head>  +<title>LinuxPackages: Download Package</title> +<meta name="Generator" content="PHP and good ole hand coded html">  +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<meta name="Author" content="{TG,robalo} at linuxpackages.net, {pimo,trotter} at opensys.ro"> +<meta name="Description" content="Slackware resources to help install and configure the Linux slackware distribution, Email list, Discussion Board, Howtos, Contributed packages, and much more"> +<meta name="Keywords" content="Linux Packages, Slackware, Linux, Help, Install, HOWTO, Sendmail, Slackbuilds, Software, News, ISDN, Security, Apache, Vhosting, Links, DNS, Sendmail, packages, programs"> +<link rel="alternate" type="application/rss+xml" title="Latest Packages RSS" +          href="http://www.linuxpackages.net/backend/linuxpackages.rdf" /> + +<link rel="stylesheet" href="lpstyle.css"> +<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript"> +   <!-- +   function open_window(url) { +      var NEW_WIN = null; +      NEW_WIN = window.open ("", "RecordViewer", "toolbar=no,width="+600+",height="+400+",directories=no,status=no,scrollbars=yes,resize=no,menubar=no"); +      NEW_WIN.location.href = url; +   } +   //--> +   </SCRIPT> + +</head>  +<body bgcolor="#006699" text="#000000" link="#4b6d96" vlink="#4b6d96" alink="" marginwidth="0" marginheight="0" leftmargin="0" rightmargin="0" topmargin="0">  +<!-- <body bgcolor="" text="" link="" vlink="" alink="" marginwidth="0" marginheight="0" leftmargin="0" rightmargin="0" topmargin="0"> --> + +<table width="100%" cellpadding="10" cellspacing="0" border="0"> +<tr bgcolor="#FF9966"><form method="get" action="http://www.linuxpackages.net/search_view.php"> +<input type="hidden" name="by" value="name"> +<td width="265" align=right> +<img src="/images/newlogo.gif" alt="LinuxPackages.net" width="265" height="43" border="0"></a><br> +<img src="http://www.linuxpackages.net/images/dot.gif" width="265" height="5" border="0"><br> + <font color="#000000">SearchPkg:</font> +<input name="name" type="text" size="12" value=""> +<select name="ver"> +<option value="11.0" >v11.0</option> +<option value="10.2" >v10.2</option> +<option value="10.1" >v10.1</option> +<option value="10.0" >v10.0</option> +<option value="9.1" >v9.1</option> +<option value="9.0" >v9.0</option> +<option value="8.1" >v8.1</option> +<option value="8.0" >v8.0</option> +<option value="" >any</option> +</select> +<input type="submit" value="Go"> +</td></form> +<td width="468"> +<script language='JavaScript' type='text/javascript'> +<!-- +   if (!document.phpAds_used) document.phpAds_used = ','; +   phpAds_random = new String (Math.random()); phpAds_random = phpAds_random.substring(2,11); + +   document.write ("<" + "script language='JavaScript' type='text/javascript' src='"); +   document.write ("http://www.linuxpackages.net/adserv/adjs.php?n=" + phpAds_random); +   document.write ("&what=zone:5"); +   document.write ("&exclude=" + document.phpAds_used); +   if (document.referer) +      document.write ("&referer=" + escape(document.referer)); +   document.write ("'><" + "/script>"); +//--> +</script><noscript><a href='http://www.linuxpackages.net/adserv/adclick.php?n=a1cec3e8' +target='_blank'><img src='http://www.linuxpackages.net/adserv/adview.php?what=zone:5&n=a1cec3e8' +border='0' alt=''></a></noscript> +<br> +<img src="http://www.linuxpackages.net/images/dot.gif" width="468" height="1" border="0"><br> +</td><td width="100%"> +<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="60" border="0"><br> +</td></tr> +</table>  +  +<table width="100%" cellpadding="0" cellspacing="0" border="0"> +<tr bgcolor="#ffffff"><td width="100%"> +<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="1" border="0"><br>  +</td></tr>  +<tr bgcolor="#004263"><td align="center"> +<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="2" border="0"><br> +<font color="#FF9966"> +<a href="http://www.linuxpackages.net/catalog" class="barlink">LP Store</a>    |    <a href="http://www.linuxpackages.net/" class="barlink">Home</a>    |    <a href="http://www.linuxpackages.net/about.php" class="barlink">About</a>    |    <a href="http://www.linuxpackages.net/forum" class="barlink">Forums</a>    |    <a href="http://www.linuxpackages.net/site-links" class="barlink">Links</a>    |    <a href="http://www.linuxpackages.net/packages.php" class="barlink">Packages</a>  +</font><br> +<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="3" border="0"><br> +</td></tr> +</table>  +  +<img src="http://www.linuxpackages.net/images/dot.gif" width="760" height="2" border="0"><br>  +<table width="100%" cellpadding="0" cellspacing="10" border="0"><tr> +<td width="25%" valign="top"> +<!-- start left column -->  + +<!--table header-->  +<table width="100%" cellpadding="1" cellspacing="0" border="0">  +<tr><td bgcolor="#FF9966">  +<table width="100%" cellpadding="0" cellspacing="0" border="0">  +<tr bgcolor="#006699"><td width="100%" align="center">  +<b><font color="#ffffff"> +Information  +</font></b> +</td><td width="5">  +<img src="http://www.linuxpackages.net/images/corner.gif" width="5" height="19" border="0"><br>  +</td></tr></table>  +</td></tr></table>  +<!--//table header//-->  +<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="3" border="0"><br>  +  +<table width="100%" cellpadding="1" cellspacing="0" border="0">  +<tr bgcolor="#000000"><td>  +<table width="100%" cellpadding="5" cellspacing="0" border="0">  +<tr bgcolor="#FFFFFF"><td width="100%">  +<font color="#000000"> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/catalog">LP Store</a><br> + +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/about.php">About this Site</a><br> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/packages.php">Packages</a><br> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/forum">Slackware</a><small><sup>®</sup></small><a href="http://www.linuxpackages.net/forum"> Forums</a><br> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/faq">Slackware FAQ</a><br> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/howto.php">Slackware Documents </a><small>(<i>Updated</i>)</small><br> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://slackart.linuxpackages.net">Slackware Art </a><br> + +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/howto.php?page=package&title=Package+Howto">Building Packages</a><br> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/howto.php?page=buildtools&title=Package+Tools">Package Tools</a><br> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/howto.php?page=perfect-package&title=Perfect+Package">The Perfect package</a><small>(<i>Updated</i>)</small><br> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/howto.php?page=contrib&title=Contribute">Submitting a Package</a><br> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/changelog.php">Slackware Changelog</a><br> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www2.linuxpackages.net/packages/SlackBuilds/">Build Script Archive</a><br> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/topcontrib.php">Top Contributors</a><br> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/mirrors.php">Mirror Status/Info</a><br> +</font>  +</td></tr></table> +</td></tr></table> +<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="10" border="0"><br> +<!--table header-->  +<table width="100%" cellpadding="1" cellspacing="0" border="0">  +<tr><td bgcolor="#FF9966">  +<table width="100%" cellpadding="0" cellspacing="0" border="0">  +<tr bgcolor="#006699"><td width="100%" align="center">  +<span class="module">Top 10 Downloads</span> +</td><td width="5">  +<img src="http://www.linuxpackages.net/images/corner.gif" width="5" height="19" border="0"><br>  +</td></tr></table>  +</td></tr></table>  +<!--//table header//-->  +<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="3" border="0"><br>  +  +<table width="100%" cellpadding="1" cellspacing="0" border="0">  +<tr bgcolor="#000000"><td>  +<table width="100%" cellpadding="5" cellspacing="0" border="0">  +<tr bgcolor="#dfdfdf"><td> +<b>Packages</b><br> +</td><td align=right> +<b>Hits</b><br> +</td></tr> +<tr bgcolor="#FFFFFF"><td width="100%" colspan=2>  +<table width="100%" border=0 cellspacing=2 cellpadding=0> +<tr valign=top><td> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/pkg_details.php?id=7951">OpenOffice.org 2.0.3</a><br> +</td><td align=right> +<b>18540</b> +</td></tr> +<tr valign=top><td> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/pkg_details.php?id=760">Wine 0.9.7</a><br> +</td><td align=right> +<b>15526</b> +</td></tr> +<tr valign=top><td> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/pkg_details.php?id=5982">xmmsskins 1.0</a><br> +</td><td align=right> +<b>13202</b> +</td></tr> +<tr valign=top><td> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/pkg_details.php?id=7608">K3b 0.12.17</a><br> +</td><td align=right> +<b>11383</b> +</td></tr> +<tr valign=top><td> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/pkg_details.php?id=8096">openoffice.org 2.0ptBR</a><br> +</td><td align=right> +<b>10492</b> +</td></tr> +<tr valign=top><td> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/pkg_details.php?id=8352">libdvdcss 1.2.9</a><br> +</td><td align=right> +<b>8839</b> +</td></tr> +<tr valign=top><td> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/pkg_details.php?id=7419">slapt-get 0.9.11e</a><br> +</td><td align=right> +<b>5652</b> +</td></tr> +<tr valign=top><td> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/pkg_details.php?id=7528">Freerock-Gnome 2.12.1</a><br> +</td><td align=right> +<b>4978</b> +</td></tr> +<tr valign=top><td> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/pkg_details.php?id=8105">Frozen-Bubble 1.0.0</a><br> +</td><td align=right> +<b>3906</b> +</td></tr> +<tr valign=top><td> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.linuxpackages.net/pkg_details.php?id=7926">k3b 0.12.16</a><br> +</td><td align=right> +<b>3630</b> +</td></tr> +</table> + +</td></tr></table> +</td></tr></table> +<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="10" border="0"><br> + +<!--table header-->  +<table width="100%" cellpadding="1" cellspacing="0" border="0">  +<tr><td bgcolor="#FF9966">  +<table width="100%" cellpadding="0" cellspacing="0" border="0">  +<tr bgcolor="#006699"><td width="100%" align="center">  +<b><font color="#ffffff"> +Email List +</font></b> +</td><td width="5">  +<img src="http://www.linuxpackages.net/images/corner.gif" width="5" height="19" border="0"><br>  +</td></tr></table>  +</td></tr></table>  +<!--//table header//-->  +<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="3" border="0"><br>  +  +<table width="100%" cellpadding="1" cellspacing="0" border="0">  +<tr bgcolor="#000000"><td>  +<table width="100%" cellpadding="5" cellspacing="0" border="0">  +<tr bgcolor="#FFFFFF"><td width="100%" align=center>  +Subscribe to LinuxPackages Package annoucements to get updated when new packages or updates are posted.<br> +<a href=/mailman/listinfo/pkg-annc>Click here to subscribe</a><br><br> +</td></tr></table> +</td></tr></table> +<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="10" border="0"><br> +<!--table header-->  +<table width="100%" cellpadding="1" cellspacing="0" border="0">  +<tr><td bgcolor="#FF9966">  +<table width="100%" cellpadding="0" cellspacing="0" border="0">  +<tr bgcolor="#006699"><td width="100%" align="center">  +<span class="module">Quick Links</span> +</td><td width="5">  +<img src="http://www.linuxpackages.net/images/corner.gif" width="5" height="19" border="0"><br>  +</td></tr></table>  +</td></tr></table>  +<!--//table header//-->  +<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="3" border="0"><br>  +  +<table width="100%" cellpadding="1" cellspacing="0" border="0">  +<tr bgcolor="#000000"><td>  +<table width="100%" cellpadding="5" cellspacing="0" border="0">  +<tr bgcolor="#FFFFFF"><td width="100%">  +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.slackware.com" target=_blank>Slackware.com</a><br> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://muse.linuxmafia.org" target=_blank>GShield Firewall</a><br> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.satlug.org" target=_blank>SATLUG</a><br> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://swaret.sourceforge.net/index.php" target=_blank>Swaret</a><br> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.abnormalpenguin.com/slackware-mirrors.php" target=_blank>Slack Mirrors List</a><br> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://software.jaos.org/" target=_blank>Slapt-Get</a><br> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.darklinux.net/slackupdate/" target=_blank>SlackUpdate</a><br> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://www.mutagenix.org/" target=_blank>Mutagenix</a><br> +<img src="/images/bullet.gif" border=0 align=middle> <a href="http://gsb.freerock.org" target=_blank>FreeRock Gnome</a><br> +</td></tr></table> +</td></tr></table> +<!--//end left column//-->  +</td> +<td width="75%" valign="top">  +<!-- start middle column --> + +<!--table header-->  +<table width="100%" cellpadding="1" cellspacing="0" border="0">  +<tr><td bgcolor="#FF9966">  +<table width="100%" cellpadding="0" cellspacing="0" border="0">  +<tr bgcolor="#006699"><td width="100%" align="center">  +<b><font color="#ffffff"> +You are requesting file: wisgo7007sb-0.9.8-i486-1bif.tgz<br> +Please select a mirror</font> +</b> +</td><td width="5">  +<img src="http://www.linuxpackages.net/images/corner.gif" width="5" height="19" border="0"><br>  +</td></tr></table>  +</td></tr></table>  +<!--//table header//-->  +<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="3" border="0"><br>  +  +<table width="100%" cellpadding="1" cellspacing="0" border="0">  +<tr bgcolor="#000000"><td>  +<table width="100%" cellpadding="5" cellspacing="0" border="0">  +<tr bgcolor="#FFFFFF"><td width="100%"> +<table align="center" width="90%" bgcolor="#ffffff" cellpadding="0" +cellspacing="0" border="0"> +<tbody> +<tr> +<td align="center" colspan="2"> +<table width="100%" cellpadding="1" cellspacing="1" border="0"> +<tbody> +<tr> +<th> +</th> +<th>Host<br></th> +<th>Location<br> +</th> +<th>Continent<br> +</th> +<th>Download<br> +</th> +</tr> +<tr bgcolor="#dddddd"> +<td align="center"><a href=http://www.rol.ru/ target=_blank><img alt=Rol border="0" +src=images/rol-logo-sm.gif width="100" height="41"></a></td> +<td align="center">Rol</td> +<td align="center">Moscow</td> +<td align="center">Russia</td> +<td align="center"> +<a href=http://slackware.rol.ru/linuxpackages//Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>   </td> +</tr> +<tr bgcolor="#dddddd"> +<td align="center"><a href=http://www.reco-systems.de target=_blank><img alt=ReCo-Systems border="0" +src=/images/logo_small.png width="100" height="41"></a></td> +<td align="center">ReCo-Systems</td> +<td align="center">Hannover Germany</td> +<td align="center">Europe</td> +<td align="center"> +<a href=http://linuxpackages.reco-systems.de//Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>   <a href=ftp://linuxpackages.reco-systems.de//Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>FTP</a> </td> +</tr> +<tr bgcolor="#dddddd"> +<td align="center"><a href=http://www.slackware.hu target=_blank><img alt=Szombathely Linux Association border="0" +src=/images/szle.jpg width="100" height="41"></a></td> +<td align="center">Szombathely Linux Association</td> +<td align="center">Hungary</td> +<td align="center">Europe</td> +<td align="center"> +<a href=ftp://ftp.slackware.hu/linuxpackages/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>FTP</a> </td> +</tr> +<tr bgcolor="#dddddd"> +<td align="center"><a href=http://www.nymphomatic.org target=_blank><img alt=IEEE Student Branch border="0" +src=images/evo.gif width="100" height="41"></a></td> +<td align="center">IEEE Student Branch</td> +<td align="center">Croatia</td> +<td align="center">Europe</td> +<td align="center"> +<a href=http://www.nymphomatic.org/mirror/linuxpackages/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>   <a href=ftp://ftp.nymphomatic.org/linuxpackages/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>FTP</a> </td> +</tr> +<tr bgcolor="#dddddd"> +<td align="center"><a href=http://www.cgu.edu.tw target=_blank><img alt=Chang-Gung University border="0" +src=images/cgu.png width="100" height="41"></a></td> +<td align="center">Chang-Gung University</td> +<td align="center">Taiwan</td> +<td align="center">Asia</td> +<td align="center"> +<a href=http://linuxpackages.cgucccc.org/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>   </td> +</tr> +<tr bgcolor="#dddddd"> +<td align="center"><a href=http://www.software-mirror.com target=_blank><img alt=Software Mirror border="0" +src=/images/sfmirror.gif width="100" height="41"></a></td> +<td align="center">Software Mirror</td> +<td align="center">Colorado</td> +<td align="center">USA</td> +<td align="center"> +<a href=http://www.software-mirror.com/linuxpackages/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>   </td> +</tr> +<tr bgcolor="#dddddd"> +<td align="center"><a href=http://www.inode.at target=_blank><img alt=Inode.at border="0" +src=/images/inode.jpg width="100" height="41"></a></td> +<td align="center">Inode.at</td> +<td align="center">Austria</td> +<td align="center">Europe</td> +<td align="center"> +<a href=http://linuxpackages.inode.at/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>   <a href=ftp://linuxpackages.inode.at/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>FTP</a> </td> +</tr> +<tr bgcolor="#dddddd"> +<td align="center"><a href=http://www.nyi.net target=_blank><img alt=NYI New York Internet border="0" +src=/images/nyilogo.jpg width="100" height="41"></a></td> +<td align="center">NYI New York Internet</td> +<td align="center">New York USA</td> +<td align="center">USA</td> +<td align="center"> +<a href=http://www2.linuxpackages.net/packages/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>   <a href=ftp://ftp3.linuxpackages.net/pub/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>FTP</a> </td> +</tr> +<tr bgcolor="#dddddd"> +<td align="center"><a href=http://www.scarlet.be target=_blank><img alt=Scarlet.be border="0" +src=/images/scarlet_lp.gif width="100" height="41"></a></td> +<td align="center">Scarlet.be</td> +<td align="center">Belgium</td> +<td align="center">Europe</td> +<td align="center"> +<a href=http://ftp.scarlet.be/pub/linuxpackages/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>   <a href=ftp://ftp.scarlet.be/pub/linuxpackages/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>FTP</a> </td> +</tr> +<tr bgcolor="#dddddd"> +<td align="center"><a href=http://www.opensys.ro target=_blank><img alt=Open Systems border="0" +src=/images/logoopensys.jpg width="100" height="41"></a></td> +<td align="center">Open Systems</td> +<td align="center">Romania</td> +<td align="center">Europe</td> +<td align="center"> +<a href=http://opensys.linuxpackages.net/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>   <a href=ftp://opensys.linuxpackages.net/pub/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>FTP</a> </td> +</tr> +<tr bgcolor="#dddddd"> +<td align="center"><a href=http://www.telecoms.bg target=_blank><img alt=Telecoms border="0" +src=images/evo.gif width="100" height="41"></a></td> +<td align="center">Telecoms</td> +<td align="center">Varna Bulgaria</td> +<td align="center">Europe</td> +<td align="center"> +<a href=http://linuxpackages.telecoms.bg/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>   <a href=ftp://linuxpackages.telecoms.bg/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>FTP</a> </td> +</tr> +<tr bgcolor="#dddddd"> +<td align="center"><a href=http://www.naist.jp/ target=_blank><img alt=Naist border="0" +src=/images/naist.png width="100" height="41"></a></td> +<td align="center">Naist</td> +<td align="center">Japan</td> +<td align="center">Asia</td> +<td align="center"> +<a href=http://ftp.naist.jp/pub/Linux/linuxpackages/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>   <a href=ftp://ftp.nara.wide.ad.jp/pub/Linux/linuxpackages/Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>FTP</a> </td> +</tr> +<tr bgcolor="#dddddd"> +<td align="center"><a href=http://mirrors.unixsol.org/ target=_blank><img alt=Unixsol border="0" +src=/images/unixsol.png width="100" height="41"></a></td> +<td align="center">Unixsol</td> +<td align="center">Sofia Bulgaria</td> +<td align="center">Europe</td> +<td align="center"> +<a href=http://mirrors.unixsol.org/linuxpackages//Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>   <a href=ftp://mirrors.unixsol.org/linuxpackages//Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>FTP</a> </td> +</tr> +<tr bgcolor="#dddddd"> +<td align="center"><a href=http://www.cs.utah.edu/ target=_blank><img alt=University of Utah border="0" +src=images/UUSC.png width="100" height="41"></a></td> +<td align="center">University of Utah</td> +<td align="center">Utah</td> +<td align="center">USA</td> +<td align="center"> +<a href=http://linuxpackages.cs.utah.edu//Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>HTTP</a>   <a href=ftp://mirror.cs.utah.edu/pub/linuxpackages//Slackware-11.0/Console/GO7007-Linux-Driver/wisgo7007sb-0.9.8-i486-1bif.tgz>FTP</a> </td> +</tr> +</tbody> +</table> +</td> +</tr> +</tbody> +</table> +<br><center>Not all mirrors may be updated right away with new packages.</center> +</td></tr></table> +</td></tr></table> +<!--//end middle column//--> +</td> +</tr></table> + +<table width="100%" cellpadding="0" cellspacing="0" border="0"> +<tr bgcolor="#ffffff"><td width="100%"> +<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="1" border="0"><br>  +</td></tr>  +<tr bgcolor="#FF9966"><td align=center> +<br>Copyright ©1997-2004 LinuxPackages Network. All rights reserved.<br> +Slackware is a registered trademark of Patrick Volkerding and Slackware Linux, Inc.<br> +<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="5" border="0"><br> +<a href="http://www.linuxpackages.net/advertise.php">Advertising</a> - <a href="http://www.linuxpackages.net/catalog/privacy.php">Privacy Statement</a> - Terms of Use  - Build: 2002071201<br> +<a href=http://www.nyi.net>FTP Hosting provided by The New York Internet Company</a><br> +<img src="http://www.linuxpackages.net/images/dot.gif" width="1" height="10" border="0"><br> +</td></tr> +</table>  +</body>  +</html> diff --git a/abs/not_built/core/plextor-convertX-driver/.svn/text-base/wis-go-0.9.8-2.6.17.patch.svn-base b/abs/not_built/core/plextor-convertX-driver/.svn/text-base/wis-go-0.9.8-2.6.17.patch.svn-base new file mode 100644 index 0000000..694a2f6 --- /dev/null +++ b/abs/not_built/core/plextor-convertX-driver/.svn/text-base/wis-go-0.9.8-2.6.17.patch.svn-base @@ -0,0 +1,76 @@ +diff -ur wis-go7007-linux-0.9.8/kernel/go7007-usb.c wis-go7007-linux-0.9.8-new/kernel/go7007-usb.c +--- wis-go7007-linux-0.9.8/kernel/go7007-usb.c	2006-04-02 00:57:04.000000000 +0200 ++++ wis-go7007-linux-0.9.8-new/kernel/go7007-usb.c	2006-04-03 12:58:44.000000000 +0200 +@@ -27,7 +27,7 @@ + #include <linux/usb.h> + #include <linux/i2c.h> + #include <asm/byteorder.h> +-#include <media/audiochip.h> ++#include <media/tvaudio.h> +  + #include "go7007-priv.h" + #include "wis-i2c.h" +@@ -225,17 +225,17 @@ + 		.inputs 	 = { + 			{ + 				.video_input	= 1, +-				.audio_input	= AUDIO_EXTERN, ++                .audio_input	= TVAUDIO_INPUT_EXTERN, + 				.name		= "Composite", + 			}, + 			{ + 				.video_input	= 8, +-				.audio_input	= AUDIO_EXTERN, ++				.audio_input	= TVAUDIO_INPUT_EXTERN, + 				.name		= "S-Video", + 			}, + 			{ + 				.video_input	= 3, +-				.audio_input	= AUDIO_TUNER, ++				.audio_input	= TVAUDIO_INPUT_TUNER, + 				.name		= "Tuner", + 			}, + 		}, +diff -ur wis-go7007-linux-0.9.8/kernel/go7007-v4l2.c wis-go7007-linux-0.9.8-new/kernel/go7007-v4l2.c +--- wis-go7007-linux-0.9.8/kernel/go7007-v4l2.c	2006-04-02 01:22:03.000000000 +0200 ++++ wis-go7007-linux-0.9.8-new/kernel/go7007-v4l2.c	2006-04-03 12:55:52.000000000 +0200 +@@ -939,7 +939,7 @@ + 		if (go->i2c_adapter_online) { + 			i2c_clients_command(&go->i2c_adapter, DECODER_SET_INPUT, + 				&go->board_info->inputs[*input].video_input); +-			i2c_clients_command(&go->i2c_adapter, AUDC_SET_INPUT, ++			i2c_clients_command(&go->i2c_adapter, VIDIOC_S_AUDIO, + 				&go->board_info->inputs[*input].audio_input); + 		} + 		return 0; +diff -ur wis-go7007-linux-0.9.8/kernel/wis-uda1342.c wis-go7007-linux-0.9.8-new/kernel/wis-uda1342.c +--- wis-go7007-linux-0.9.8/kernel/wis-uda1342.c	2006-04-02 00:37:32.000000000 +0200 ++++ wis-go7007-linux-0.9.8-new/kernel/wis-uda1342.c	2006-04-03 13:07:04.000000000 +0200 +@@ -20,7 +20,7 @@ + #include <linux/version.h> + #include <linux/i2c.h> + #include <linux/videodev.h> +-#include <media/audiochip.h> ++#include <media/tvaudio.h> + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) + #include <media/v4l2-common.h> + #endif +@@ -38,15 +38,15 @@ + 				unsigned int cmd, void *arg) + { + 	switch (cmd) { +-	case AUDC_SET_INPUT: ++	case VIDIOC_S_AUDIO: + 	{ + 		int *inp = arg; +  + 		switch (*inp) { +-		case AUDIO_TUNER: ++		case TVAUDIO_INPUT_TUNER: + 			write_reg(client, 0x00, 0x1441); /* select input 2 */ + 			break; +-		case AUDIO_EXTERN: ++		case TVAUDIO_INPUT_EXTERN: + 			write_reg(client, 0x00, 0x1241); /* select input 1 */ + 			break; + 		default: diff --git a/abs/not_built/core/plextor-convertX-driver/PKGBUILD b/abs/not_built/core/plextor-convertX-driver/PKGBUILD new file mode 100755 index 0000000..8b203f6 --- /dev/null +++ b/abs/not_built/core/plextor-convertX-driver/PKGBUILD @@ -0,0 +1,36 @@ + + +pkgname=plextor-convertX-driver +pkgver=0.9.8 +pkgrel=7 +_kernver=2.6.28-LinHES +pkgdesc="Drivers for Plextor tuners" +arch=(i686 x86_64) +url="http://nikosapi.org/software/WIS_Go7007" +install="convertX.install" +source=("http://go7007.imploder.org/wp-content/uploads/2009/02/wis-go7007-linux-098-4tar.bz2" 'wis-go7007-2.6.26-nopage.diff' 'wis-go7007-linux-0.9.8-2-2.6.27.patch') +depends=('udev>=070' 'fxload') +makedepends=('gcc') +options=(!strip) + +build() { +    +  # SET UP +  cd $startdir/src/wis-go7007-linux-0.9.8-4 || return 1 +#  patch -Np1 -i ../wis-go7007-2.6.26-nopage.diff || return 1 +#  patch -Np1 -i ../wis-go7007-linux-0.9.8-2-2.6.27.patch || return 1 +  # build +  make clean ||  return 1 +  make || return 1 +  mkdir -p $startdir/pkg/usr/src/linux-$_kernver/include/linux +  mkdir -p $startdir/pkg/etc/udev/rules.d +  mkdir -p $startdir/pkg/usr/bin +  mkdir -p $startdir/pkg/usr/sbin +  # install +  make DESTDIR=$startdir/pkg install || return 1 +  install -m755 apps/gorecord $startdir/pkg/usr/bin/gorecord +  install -m755 apps/modet $startdir/pkg/usr/bin/modet +} +md5sums=('b4299b6e2fcbaf461bc8afe36654f314' +         'e4c7bc33d6e69eafc10bd107cf648828' +         '3b89d8746adf70102eeeb47d03627ece') diff --git a/abs/not_built/core/plextor-convertX-driver/convertX.install b/abs/not_built/core/plextor-convertX-driver/convertX.install new file mode 100755 index 0000000..5b79d84 --- /dev/null +++ b/abs/not_built/core/plextor-convertX-driver/convertX.install @@ -0,0 +1,34 @@ +pre_install() { +	/bin/true +} + +post_install() { +  # updating module dependencies +  echo ">>> Updating module dependencies. Please wait ..." +  KERNEL_VERSION=2.6.28-LinHES +  depmod -v $KERNEL_VERSION > /dev/null 2>&1 +  echo "# Added For Plextor ConvertX" >> /etc/fstab +  echo "usbfs /proc/bus/usb usbfs devmode=0666 0 0" >> /etc/fstab +  /bin/true +} + +post_upgrade() { +  # updating module dependencies +  echo ">>> Updating module dependencies. Please wait ..." +  KERNEL_VERSION=2.6.28-LinHES +  depmod -v $KERNEL_VERSION > /dev/null 2>&1 +  /bin/true +} + +post_remove() { +  # updating module dependencies +  echo ">>> Updating module dependencies. Please wait ..." +  KERNEL_VERSION=2.6.28-LinHES +  depmod -v $KERNEL_VERSION > /dev/null 2>&1 +  sed -i~ -e '/ConvertX/d' -e '/usbfs/d' /etc/fstab +  /bin/true +} + +op=$1 +shift +$op $* diff --git a/abs/not_built/core/plextor-convertX-driver/wis-go7007-2.6.26-nopage.diff b/abs/not_built/core/plextor-convertX-driver/wis-go7007-2.6.26-nopage.diff new file mode 100644 index 0000000..2fd1cca --- /dev/null +++ b/abs/not_built/core/plextor-convertX-driver/wis-go7007-2.6.26-nopage.diff @@ -0,0 +1,26 @@ +diff -urN wis-go7007-linux-0.9.8.orig/kernel/go7007-v4l2.c wis-go7007-linux-0.9.8/kernel/go7007-v4l2.c +--- wis-go7007-linux-0.9.8.orig/kernel/go7007-v4l2.c	2007-05-09 13:56:07.000000000 -0400 ++++ wis-go7007-linux-0.9.8/kernel/go7007-v4l2.c	2008-08-03 16:01:35.000000000 -0400 +@@ -1375,6 +1375,7 @@ + 	} + } +  ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26) + /* This is really only going to ever be called when we +  * do get_user_pages() in VIDIOC_QBUF */ + static struct page *go7007_vm_nopage(struct vm_area_struct *vma, +@@ -1392,11 +1393,14 @@ + 		*type = VM_FAULT_MINOR; + 	return page; + } ++#endif +  + static struct vm_operations_struct go7007_vm_ops = { + 	.open	= go7007_vm_open, + 	.close	= go7007_vm_close, ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26) + 	.nopage	= go7007_vm_nopage, ++#endif + }; +  + static int go7007_mmap(struct file *file, struct vm_area_struct *vma) diff --git a/abs/not_built/core/plextor-convertX-driver/wis-go7007-linux-0.9.8-2-2.6.27.patch b/abs/not_built/core/plextor-convertX-driver/wis-go7007-linux-0.9.8-2-2.6.27.patch new file mode 100644 index 0000000..6275d8c --- /dev/null +++ b/abs/not_built/core/plextor-convertX-driver/wis-go7007-linux-0.9.8-2-2.6.27.patch @@ -0,0 +1,83 @@ +diff -Naur wis-go7007-linux-0.9.8-2/kernel/go7007-driver.c wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-driver.c +--- wis-go7007-linux-0.9.8-2/kernel/go7007-driver.c	2007-03-21 12:51:54.000000000 -0500 ++++ wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-driver.c	2008-12-30 21:04:32.545534308 -0600 +@@ -32,7 +32,7 @@ + #include <linux/i2c.h> + #include <linux/firmware.h> + #include <asm/uaccess.h> +-#include <asm/semaphore.h> ++#include <linux/semaphore.h> + #include <asm/system.h> + #include <linux/videodev.h> + #include <media/tuner.h> +diff -Naur wis-go7007-linux-0.9.8-2/kernel/go7007-i2c.c wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-i2c.c +--- wis-go7007-linux-0.9.8-2/kernel/go7007-i2c.c	2008-04-06 09:28:35.000000000 -0500 ++++ wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-i2c.c	2008-12-30 21:04:32.569550193 -0600 +@@ -29,7 +29,7 @@ + #include <linux/device.h> + #include <linux/i2c.h> + #include <asm/uaccess.h> +-#include <asm/semaphore.h> ++#include <linux/semaphore.h> + #include <asm/system.h> +  + #include "go7007-priv.h" +diff -Naur wis-go7007-linux-0.9.8-2/kernel/go7007-v4l2.c wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-v4l2.c +--- wis-go7007-linux-0.9.8-2/kernel/go7007-v4l2.c	2008-12-30 21:16:17.221534155 -0600 ++++ wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/go7007-v4l2.c	2008-12-30 21:10:24.252534209 -0600 +@@ -35,10 +35,12 @@ + #include <media/audiochip.h> + #else + #include <media/v4l2-common.h> ++#include <media/v4l2-chip-ident.h> ++#include <media/v4l2-ioctl.h> + #endif + #include <linux/i2c.h> + #include <asm/uaccess.h> +-#include <asm/semaphore.h> ++#include <linux/semaphore.h> + #include <asm/system.h> +  + #include "../include/go7007.h" +@@ -1478,7 +1480,7 @@ +  + static struct video_device go7007_template = { + 	.name		= "go7007", +-	.type		= VID_TYPE_CAPTURE, ++	.vfl_type		= VID_TYPE_CAPTURE, + 	.fops		= &go7007_fops, + 	.minor		= -1, + 	.release	= go7007_vfl_release, +@@ -1492,7 +1494,7 @@ + 	if (go->video_dev == NULL) + 		return -ENOMEM; + 	memcpy(go->video_dev, &go7007_template, sizeof(go7007_template)); +-	go->video_dev->dev = go->dev; ++	go->video_dev->parent = go->dev; + 	rv = video_register_device(go->video_dev, VFL_TYPE_GRABBER, -1); + 	if (rv < 0) + 	{ +diff -Naur wis-go7007-linux-0.9.8-2/kernel/snd-go7007.c wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/snd-go7007.c +--- wis-go7007-linux-0.9.8-2/kernel/snd-go7007.c	2007-09-06 22:45:25.000000000 -0500 ++++ wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/snd-go7007.c	2008-12-30 21:04:33.077579435 -0600 +@@ -34,7 +34,7 @@ + #include <linux/mm.h> + #include <linux/i2c.h> + #include <asm/uaccess.h> +-#include <asm/semaphore.h> ++#include <linux/semaphore.h> + #include <asm/system.h> + #include <sound/driver.h> + #include <sound/core.h> +diff -Naur wis-go7007-linux-0.9.8-2/kernel/wis-sony-tuner.c wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/wis-sony-tuner.c +--- wis-go7007-linux-0.9.8-2/kernel/wis-sony-tuner.c	2006-04-01 16:37:18.000000000 -0600 ++++ wis-go7007-linux-0.9.8-2-kernel-2.6.27/kernel/wis-sony-tuner.c	2008-12-30 21:10:36.100534544 -0600 +@@ -23,6 +23,8 @@ + #include <media/tuner.h> + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) + #include <media/v4l2-common.h> ++#include <media/v4l2-chip-ident.h> ++#include <media/v4l2-ioctl.h> + #endif +  + #include "wis-i2c.h" diff --git a/abs/not_built/core/procinfo-ng/PKGBUILD b/abs/not_built/core/procinfo-ng/PKGBUILD new file mode 100644 index 0000000..abe31c2 --- /dev/null +++ b/abs/not_built/core/procinfo-ng/PKGBUILD @@ -0,0 +1,38 @@ +# $Id: PKGBUILD 77945 2010-04-19 06:20:55Z allan $ +# Maintainer: Eric Belanger <eric@archlinux.org> +# Contributor: Allan McRae <allan@archlinux.org> + +pkgname=procinfo-ng +pkgver=2.0.304 +pkgrel=1 +pkgdesc="Displays useful information from /proc" +arch=('i686' 'x86_64') +url="http://procinfo-ng.sourceforge.net/" +license=('GPL2' 'LGPL2.1') +depends=('ncurses' 'perl') +provides=('procinfo') +conflicts=('procinfo') +replaces=('procinfo') +source=(http://downloads.sourceforge.net/project/procinfo-ng/procinfo-ng/2.0.304/$pkgname-$pkgver.tar.bz2 +        ftp://ftp.cistron.nl/pub/people/00-OLD/svm/procinfo-18.tar.gz) +md5sums=('ed018fe37becc36ceb1ebe3ed909c4d2' +         '27658d0a69040aca05a65b9888599d50') + +build() { +  cd $srcdir/$pkgname-$pkgver +  ./configure --prefix=/usr +  make || return 1 +} + +package() { +  cd $srcdir/$pkgname-$pkgver +  make DESTDIR="$pkgdir/" install + +  # install tools from old procinfo package +  cd $srcdir/procinfo-18 +  install -m755 lsdev.pl $pkgdir/usr/bin/lsdev +  install -m755 socklist.pl $pkgdir/usr/bin/socklist +  install -m644 lsdev.8 $pkgdir/usr/share/man/man8/lsdev.8 +  install -m644 socklist.8 $pkgdir/usr/share/man/man8/socklist.8 +} + diff --git a/abs/not_built/core/procps/ChangeLog b/abs/not_built/core/procps/ChangeLog new file mode 100644 index 0000000..dddcde3 --- /dev/null +++ b/abs/not_built/core/procps/ChangeLog @@ -0,0 +1,10 @@ +2009-05-12  Eric Belanger  <eric@archlinux.org> + +	* procps 3.2.8-1 +	* Upstream update +	* Fixed license + +2008-10-19  Eric Belanger  <eric@archlinux.org> + +	* Updated url +	* Added ChangeLog diff --git a/abs/not_built/core/procps/PKGBUILD b/abs/not_built/core/procps/PKGBUILD new file mode 100644 index 0000000..84c3a19 --- /dev/null +++ b/abs/not_built/core/procps/PKGBUILD @@ -0,0 +1,27 @@ +# $Id: PKGBUILD 39239 2009-05-14 06:04:46Z eric $ +# Maintainer: Eric Belanger <eric@archlinux.org> +# Contributor: judd <jvinet@zeroflux.org> + +pkgname=procps +pkgver=3.2.8 +pkgrel=1 +pkgdesc="Utilities for monitoring your system and processes on your system" +arch=('i686' 'x86_64') +url="http://procps.sourceforge.net/" +license=('GPL' 'LGPL') +groups=('base') +depends=('ncurses') +backup=('etc/sysctl.conf') +source=(http://procps.sourceforge.net/procps-${pkgver}.tar.gz sysctl.conf) +md5sums=('9532714b6846013ca9898984ba4cd7e0' '9be3a131a7068aae11418e6dd99e2221') +sha1sums=('a0c86790569dec26b5d9037e8868ca907acc9829' '9b9a314010d042b5aa487893c06f361531525e6a') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  sed -i "s:\$(lib64):lib:" Makefile || return 1 +  make || return 1 +  make DESTDIR="${pkgdir}" ldconfig=/bin/true install || return 1 +  install -D -m644 "${srcdir}/sysctl.conf" "${pkgdir}/etc/sysctl.conf" || return 1 +  install -d "${pkgdir}/usr/include/proc" || return 1 +  install -m644 proc/*.h "${pkgdir}/usr/include/proc" || return 1 +} diff --git a/abs/not_built/core/procps/sysctl.conf b/abs/not_built/core/procps/sysctl.conf new file mode 100644 index 0000000..e3ebc7b --- /dev/null +++ b/abs/not_built/core/procps/sysctl.conf @@ -0,0 +1,13 @@ +# +# Kernel sysctl configuration +# + +# Disable packet forwarding +net.ipv4.ip_forward=0 + +# Disable the magic-sysrq key (console security issues) +kernel.sysrq = 0 + +# Enable TCP SYN Cookie Protection +net.ipv4.tcp_syncookies = 1 + diff --git a/abs/not_built/core/projectm-complete/PKGBUILD b/abs/not_built/core/projectm-complete/PKGBUILD new file mode 100644 index 0000000..59fd26f --- /dev/null +++ b/abs/not_built/core/projectm-complete/PKGBUILD @@ -0,0 +1,32 @@ +# Maintainer: Nickolay Stepanenko <nixtrian at gmail dot com> + +pkgname=projectm-complete +pkgver=2.0.1 +pkgrel=3 +pkgdesc="A music visualizer which uses 3D accelerated iterative image based rendering (all components)" +arch=('i686' 'x86_64') +url="http://projectm.sourceforge.net/" +license=('GPL') +depends=('ftgl' 'glut' 'glew' 'libvisual-plugins') +provides=('projectm' 'projectm-qt' 'projectm-libvisual' 'projectm-libvisual-alsa') +conflicts=('projectm' 'projectm-qt' 'projectm-libvisual' 'projectm-libvisual-alsa') +makedepends=('pkgconfig' 'xproto' 'cmake') +source=("http://sourceforge.net/projects/projectm/files/2.0.1/projectM-complete-2.0.1-Source.tar.gz/download" +        "libprojectm-2.0.1-pcfix.patch" +	"error-handling.patch") +md5sums=('9d32fa1357622c7a945a2e10620ee945' '9e2d9b03748fd6511181366b8d025425') + +build() { +  cd $srcdir/projectM-complete-$pkgver-Source/ || return 1 + +  patch -p1 -i ../libprojectm-2.0.1-pcfix.patch +  patch -p1 -i ../error-handling.patch +  cd src +  cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_BUILD_TYPE=Release -D USE_FBO=OFF . || return 1 +  make all || return 1 +  make DESTDIR=$pkgdir install || return 1 +  rm -rf $srcdir/projectM-complete-$pkgver-Source +} +md5sums=('9d32fa1357622c7a945a2e10620ee945' +         '9e2d9b03748fd6511181366b8d025425' +         '9b6e5a862603e7b9e45bfc51313c6a04') diff --git a/abs/not_built/core/projectm-complete/error-handling.patch b/abs/not_built/core/projectm-complete/error-handling.patch new file mode 100644 index 0000000..4154884 --- /dev/null +++ b/abs/not_built/core/projectm-complete/error-handling.patch @@ -0,0 +1,308 @@ +Description: Error handling + * Guard against reinitializing the builtin milkdrop functions. +   Hides a deeper issue where something is double loading the preset factories, most +   likely. + * Playlist file / directory error handling fixes, resize playlist refresh fix +  +Forwarded: yes +Author: Carmelo Piccione <carmelo.piccione@gmail.com> +Last-Update: 2010-07-29 +--- a/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.cpp ++++ b/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.cpp +@@ -29,7 +29,7 @@ +   /* Create new function */ +   func = new Func(name, func_ptr, num_args); +  +-  if (func == NULL) ++  if (func == 0) +     return PROJECTM_OUTOFMEM_ERROR; +  +   retval = insert_func( func ); +@@ -115,12 +115,18 @@ +   return PROJECTM_SUCCESS; + } +  ++volatile bool BuiltinFuncs::initialized = false; +  + /* Initialize the builtin function database. +    Should only be necessary once */ + int BuiltinFuncs::init_builtin_func_db() { +   int retval; +  ++  if (initialized) { ++    return 0; ++  } else ++    initialized = true; ++   +   retval = load_all_builtin_func(); +   return retval; + } +@@ -134,7 +140,7 @@ + traverse<TraverseFunctors::Delete<Func> >(builtin_func_tree); +  + builtin_func_tree.clear(); +- ++initialized = false; + return PROJECTM_SUCCESS; + } +  +@@ -142,13 +148,24 @@ + int BuiltinFuncs::insert_func( Func *func ) { +  +   assert(func); +-  std::pair<std::map<std::string, Func*>::iterator, bool> inserteePair = +-  	builtin_func_tree.insert(std::make_pair(std::string(func->getName()), func)); +    ++  if (func == 0) { ++      std::cerr << "Received a null function object, ignoring...." << std::endl; ++      return PROJECTM_ERROR; ++  } ++   ++//   //std::cout << "inserting function " << func->getName() << std::endl; ++   ++  const std::pair<std::string, Func*> pair = std::make_pair(std::string(func->getName()), func); ++   ++  assert(pair.second); ++   ++  const std::pair<std::map<std::string, Func*>::iterator, bool> inserteePair = ++  	builtin_func_tree.insert(pair); ++  	 +   if (!inserteePair.second) { + 	std::cerr << "Failed to insert builtin function \"" << func->getName() << "\" into collection! Bailing..." << std::endl; + 	abort(); +- +   } +  +   return PROJECTM_SUCCESS; +--- a/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.hpp ++++ b/src/libprojectM/MilkdropPresetFactory/BuiltinFuncs.hpp +@@ -229,6 +229,7 @@ +     static Func *find_func( const std::string & name ); + private: +      static std::map<std::string, Func*> builtin_func_tree; ++     static volatile bool initialized; + }; +  + #endif +--- a/src/libprojectM/MilkdropPresetFactory/MilkdropPresetFactory.cpp ++++ b/src/libprojectM/MilkdropPresetFactory/MilkdropPresetFactory.cpp +@@ -26,7 +26,7 @@ + 	Eval::init_infix_ops(); +  + 	_presetOutputs = createPresetOutputs(gx,gy); +-    _presetOutputs2 = createPresetOutputs(gx, gy); ++	_presetOutputs2 = createPresetOutputs(gx, gy); + } +  + MilkdropPresetFactory::~MilkdropPresetFactory() { +@@ -37,13 +37,13 @@ + 	BuiltinFuncs::destroy_builtin_func_db(); + 	std::cerr << "[~MilkdropPresetFactory] delete preset out puts" << std::endl; + 	delete(_presetOutputs); +-    delete(_presetOutputs2); ++        delete(_presetOutputs2); + 	std::cerr << "[~MilkdropPresetFactory] done" << std::endl; +  + } +  + /* Reinitializes the engine variables to a default (conservative and sane) value */ +-void resetPresetOutputs(PresetOutputs *presetOutputs) ++void resetPresetOutputs(PresetOutputs * presetOutputs) + { +  +     presetOutputs->zoom=1.0; +--- a/src/libprojectM/PresetFactoryManager.cpp ++++ b/src/libprojectM/PresetFactoryManager.cpp +@@ -20,7 +20,7 @@ + #endif +  + #include <sstream> +-PresetFactoryManager::PresetFactoryManager() : _gx(0), _gy(0) {} ++PresetFactoryManager::PresetFactoryManager() : _gx(0), _gy(0), initialized(false) {} +  + PresetFactoryManager::~PresetFactoryManager() { + 	for (std::vector<PresetFactory *>::iterator pos = _factoryList.begin();  +@@ -29,11 +29,20 @@ + 		delete(*pos); + 	} +  +- ++  initialized = false; + } ++ + void PresetFactoryManager::initialize(int gx, int gy) { + 	_gx = gx; + 	_gy = gy; ++	 ++	if (!initialized) { ++	  initialized = true; ++	} else { ++	  std::cout << "already initialized " << std::endl; ++	  return; ++	} ++	   + 	PresetFactory * factory; + 	 + 	#ifndef DISABLE_MILKDROP_PRESETS +--- a/src/libprojectM/PresetFactoryManager.hpp ++++ b/src/libprojectM/PresetFactoryManager.hpp +@@ -21,7 +21,7 @@ + 		virtual ~PresetFactoryException() throw() {} + 		const std::string & message() const { return _message; }  +  +-	private:	 ++	private: + 		std::string _message; + }; +  +@@ -54,6 +54,6 @@ + 		mutable std::map<std::string, PresetFactory *> _factoryMap; + 		mutable std::vector<PresetFactory *> _factoryList; + 		void registerFactory(const std::string & extension, PresetFactory * factory); +- ++		volatile bool initialized; + }; + #endif +--- a/src/libprojectM/projectM.cpp ++++ b/src/libprojectM/projectM.cpp +@@ -222,7 +222,6 @@ +     projectM_init ( _settings.meshX, _settings.meshY, _settings.fps, +                     _settings.textureSize, _settings.windowWidth,_settings.windowHeight); +  +- +                     _settings.beatSensitivity = beatDetect->beat_sensitivity = config.read<float> ( "Hard Cut Sensitivity", 10.0 ); +  +                     if ( config.read ( "Aspect Correction", true ) ) +--- a/src/projectM-pulseaudio/QPulseAudioThread.cpp ++++ b/src/projectM-pulseaudio/QPulseAudioThread.cpp +@@ -296,9 +296,7 @@ + { + 	assert ( mainloop_api ); + 	mainloop_api->quit ( mainloop_api, ret ); +-	if (*s_qprojectM_MainWindowPtr) +-		delete(*s_qprojectM_MainWindowPtr); +-	*s_qprojectM_MainWindowPtr = 0; ++	 + } +  +  +@@ -315,7 +313,8 @@ + 	{ + 		fprintf ( stderr, "pa_stream_peek() failed: %s\n", pa_strerror ( pa_context_errno ( context ) ) ); + 		pulseQuit ( 1 ); +-		return; ++		return ++; + 	} +  + 	if ((!s_qprojectM_MainWindowPtr) || (!*s_qprojectM_MainWindowPtr)) +@@ -352,16 +351,16 @@ + 	switch ( pa_stream_get_state ( s ) ) + 	{ + 		case PA_STREAM_UNCONNECTED: +-//			qDebug() << "UNCONNECTED"; ++			qDebug() << "UNCONNECTED"; + 			break; + 		case PA_STREAM_CREATING: +-//			qDebug() << "CREATED"; ++		  qDebug() << "CREATED"; + 			break; + 		case PA_STREAM_TERMINATED: +-//			qDebug() << "TERMINATED"; ++			qDebug() << "TERMINATED"; + 			break; + 		case PA_STREAM_READY: +-//			qDebug() << "READY"; ++			qDebug() << "READY"; + 			if ( verbose ) + 			{ + 				const pa_buffer_attr *a; +--- a/src/projectM-qt/qplaylisttableview.hpp ++++ b/src/projectM-qt/qplaylisttableview.hpp +@@ -93,14 +93,14 @@ + 	 } + 	  + 	 inline void resizeEvent(QResizeEvent * event) { +- ++		QTableView::resizeEvent(event); + 		emit(resized(event)); + 	 }	 + 	  + 	 inline void mousePressEvent(QMouseEvent * event) { + 		QAbstractItemView::mousePressEvent(event); + 		if (event->button() == Qt::RightButton) { +-			emit(mousePressed(event, selectedIndexes()));			 ++			emit(mousePressed(event, selectedIndexes())); + 		} + 		else + 				; +--- a/src/projectM-qt/qprojectm_mainwindow.cpp ++++ b/src/projectM-qt/qprojectm_mainwindow.cpp +@@ -98,7 +98,8 @@ +  + 	connect(ui->tableView, SIGNAL(resized(QResizeEvent *)), this, SLOT(refreshHeaders(QResizeEvent*))); + 	 +-	connect(ui->tableView, SIGNAL(mousePressed(QMouseEvent*, const QModelIndexList &)), this, SLOT(popupPlaylistContextMenu(QMouseEvent*, const QModelIndexList &))); ++	connect(ui->tableView, SIGNAL(mousePressed(QMouseEvent*, const QModelIndexList &)), this, ++		SLOT(popupPlaylistContextMenu(QMouseEvent*, const QModelIndexList &))); + 	 + 	connect ( m_QProjectMWidget, SIGNAL ( projectM_Initialized(QProjectM*) ),  + 		  this, SLOT ( postProjectM_Initialize() ) ); +@@ -662,7 +663,7 @@ + 		// Add 1 to skip the Name column + 		hHeader->setResizeMode (i+1, QHeaderView::ResizeToContents); + 		sizeTotal += hHeader->sectionSize(i+1); +-	}				 ++	} + 	hHeader->resizeSection(0, ui->tableView->size().width()-20-sizeTotal); + 	 + 	 +@@ -883,11 +884,13 @@ + 		QString url = m_QPlaylistFileDialog->selectedFiles() [0]; +  + 		 +-		if ( !playlistModel->readPlaylist ( url ) ) {  ++		const bool loadedOk = playlistModel->readPlaylist ( url ); ++		 ++		if (!loadedOk) {  + 			qDebug() << "could not open playlist"; + 			url = QString(); +-			 +-		} ++		}  ++		 + 		qDebug() << "url: " << url; + 		updatePlaylistUrl(url); + 		 +--- a/src/projectM-qt/qprojectmwidget.hpp ++++ b/src/projectM-qt/qprojectmwidget.hpp +@@ -22,6 +22,7 @@ + #ifndef QPROJECTM_WIDGET_HPP + #define QPROJECTM_WIDGET_HPP +  ++#include <iostream> + #include "qprojectm.hpp" + #include <QGLWidget> + #include <QMutex> +@@ -111,7 +112,7 @@ +  + 		void resetProjectM() + 		{ +- ++			std::cout << "reseting" << std::endl; + 			qDebug() << "reset start"; +  + 			emit ( projectM_BeforeDestroy() ); +@@ -246,8 +247,10 @@ + 		void initializeGL() + 		{ +  +-			this->m_projectM = new QProjectM ( m_config_file ); +-			projectM_Initialized ( m_projectM ); ++		        if (m_projectM == 0) { ++			    this->m_projectM = new QProjectM ( m_config_file ); ++			    projectM_Initialized ( m_projectM ); ++			} + 		} +  + 		inline void paintGL() diff --git a/abs/not_built/core/projectm-complete/libprojectm-2.0.1-pcfix.patch b/abs/not_built/core/projectm-complete/libprojectm-2.0.1-pcfix.patch new file mode 100644 index 0000000..50097e7 --- /dev/null +++ b/abs/not_built/core/projectm-complete/libprojectm-2.0.1-pcfix.patch @@ -0,0 +1,25 @@ +--- projectM-2.0.1-Source.orig/src/libprojectM/libprojectM.pc.in ++++ projectM-2.0.1-Source/src/libprojectM/libprojectM.pc.in +@@ -1,6 +1,6 @@ + prefix=@CMAKE_INSTALL_PREFIX@ + exec_prefix=@CMAKE_INSTALL_PREFIX@ +-libdir=@LIB_INSTALL_DIR@ ++libdir=${exec_prefix}/lib@LIB_SUFFIX@ + includedir=@CMAKE_INSTALL_PREFIX@/include + pkgdatadir=@CMAKE_INSTALL_PREFIX@/@RESOURCE_PREFIX@ + sysconfdir=@CMAKE_INSTALL_PREFIX@/@RESOURCE_PREFIX@ + +--- projectM-complete-2.0.1-Source.orig/src/CMakeLists.txt	2009-12-06 02:20:48.000000000 +0100 ++++ rojectM-complete-2.0.1-Source/src/CMakeLists.txt	2010-06-28 01:10:27.145943667 +0200 +@@ -3,9 +3,9 @@ + cmake_minimum_required(VERSION 2.4.0) +  + OPTION(INCLUDE-PROJECTM-QT "Build the projectM Qt4 user interface extension library (recommended)" ON) +-OPTION(INCLUDE-PROJECTM-PULSEAUDIO "Build the projectM pulse audio client (recommended for fedora users)" ON) ++OPTION(INCLUDE-PROJECTM-PULSEAUDIO "Build the projectM pulse audio client (recommended for fedora users)" OFF) + OPTION(INCLUDE-PROJECTM-LIBVISUAL "Build the projectM libvisual client" ON) +-OPTION(INCLUDE-PROJECTM-LIBVISUAL-ALSA "Build experimental libvisual / alsa input standalone client (NEW!)" OFF) ++OPTION(INCLUDE-PROJECTM-LIBVISUAL-ALSA "Build experimental libvisual / alsa input standalone client (NEW!)" ON) + OPTION(INCLUDE-PROJECTM-JACK "Build the projectM JACK client" OFF) + OPTION(INCLUDE-PROJECTM-TEST "Build the projectM test suite" ON) + OPTION(INCLUDE-PROJECTM-XMMS "Build the projectM xmms module (deprecated, use audacious instead)" OFF) diff --git a/abs/not_built/core/pvr150-firmware/PKGBUILD b/abs/not_built/core/pvr150-firmware/PKGBUILD new file mode 100644 index 0000000..013a2c8 --- /dev/null +++ b/abs/not_built/core/pvr150-firmware/PKGBUILD @@ -0,0 +1,17 @@ +# $Id: PKGBUILD 5936 2008-07-21 20:24:16Z thomas $ +# Maintainer: Cecil Watson<knoppmyth@gmail.com> + +pkgname=pvr150-firmware +pkgver=1 +pkgrel=2 +pkgdesc="Firmware for PVR-150 IR-Blaster" +arch=('i586' 'i686' 'x86_64') +url="http://www.blushingpenguin.com/mark/blog/?p=24" +source=(http://www.blushingpenguin.com/mark/lmilk/haup-ir-blaster.bin) +md5sums=('1c117d591bbcb733690e1b7b36202490') + +build() { +  cd $startdir/src/ +  mkdir -p $startdir/pkg/lib/firmware +  install -m0755  $startdir/src/haup-ir-blaster.bin $startdir/pkg/lib/firmware +} diff --git a/abs/not_built/core/python2/PKGBUILD b/abs/not_built/core/python2/PKGBUILD new file mode 100644 index 0000000..0273175 --- /dev/null +++ b/abs/not_built/core/python2/PKGBUILD @@ -0,0 +1,84 @@ +# $Id: PKGBUILD 157413 2012-04-28 09:27:14Z allan $ +# Maintainer: Stéphane Gaudreault <stephane@archlinux.org> +# Contributer: Allan McRae <allan@archlinux.org> +# Contributer: Jason Chu <jason@archlinux.org> + +pkgname=python2 +pkgver=2.7.3 +pkgrel=2 +_pybasever=2.7 +pkgdesc="A high-level scripting language" +arch=('i686' 'x86_64') +license=('PSF') +url="http://www.python.org/" +depends=('bzip2' 'gdbm' 'openssl' 'zlib' 'expat' 'sqlite' 'libffi') +makedepends=('tk') +optdepends=('tk: for IDLE') +conflicts=('python<3') +options=('!makeflags') +source=(http://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz) +sha1sums=('b2b0ada7ebed4a8204a855193afbdb3aa3308357') + +build() { +  cd "${srcdir}/Python-${pkgver}" + +  # Temporary workaround for FS#22322 +  # See http://bugs.python.org/issue10835 for upstream report +  sed -i "/progname =/s/python/python${_pybasever}/" Python/pythonrun.c + +  # Enable built-in SQLite module to load extensions (fix FS#22122) +  sed -i "/SQLITE_OMIT_LOAD_EXTENSION/d" setup.py + +  # FS#23997 +  sed -i -e "s|^#.* /usr/local/bin/python|#!/usr/bin/python2|" Lib/cgi.py + +  # Ensure that we are using the system copy of various libraries (expat, zlib and libffi), +  # rather than copies shipped in the tarball +  rm -r Modules/expat +  rm -r Modules/zlib +  rm -r Modules/_ctypes/{darwin,libffi}* + +  export OPT="${CFLAGS}" +  ./configure --prefix=/usr --enable-shared --with-threads --enable-ipv6 \ +              --enable-unicode=ucs4 --with-system-expat --with-system-ffi \ +              --with-dbmliborder=gdbm:ndbm + +  make +} + +package() { +  cd "${srcdir}/Python-${pkgver}" +  make DESTDIR="${pkgdir}" altinstall maninstall + +  ln -sf python${_pybasever}        "${pkgdir}/usr/bin/python2" +  ln -sf python${_pybasever}-config "${pkgdir}/usr/bin/python2-config" +  ln -sf python${_pybasever}.1      "${pkgdir}/usr/share/man/man1/python2.1" + +  ln -sf ../../libpython${_pybasever}.so \ +    "${pkgdir}/usr/lib/python${_pybasever}/config/libpython${_pybasever}.so" + +  mv "${pkgdir}/usr/bin/smtpd.py" "${pkgdir}/usr/lib/python${_pybasever}/" + +  # some useful "stuff" +  install -dm755 "${pkgdir}"/usr/lib/python${_pybasever}/Tools/{i18n,scripts} +  install -m755 Tools/i18n/{msgfmt,pygettext}.py \ +    "${pkgdir}/usr/lib/python${_pybasever}/Tools/i18n/" +  install -m755 Tools/scripts/{README,*py} \ +    "${pkgdir}/usr/lib/python${_pybasever}/Tools/scripts/" + +  # fix conflicts with python +  mv "${pkgdir}"/usr/bin/idle{,2} +  mv "${pkgdir}"/usr/bin/pydoc{,2} +  mv "${pkgdir}"/usr/bin/2to3{,-2.7} + +  # clean up #!s +  find "${pkgdir}/usr/lib/python${_pybasever}/" -name '*.py' | \ +    xargs sed -i "s|#[ ]*![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" + +  # clean-up reference to build directory +  sed -i "s#${srcdir}/Python-${pkgver}:##" \ +    "${pkgdir}/usr/lib/python${_pybasever}/config/Makefile" + +  # license +  install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" +} diff --git a/abs/not_built/core/python_modules/bluez-python/PKGBUILD b/abs/not_built/core/python_modules/bluez-python/PKGBUILD new file mode 100644 index 0000000..4314206 --- /dev/null +++ b/abs/not_built/core/python_modules/bluez-python/PKGBUILD @@ -0,0 +1,20 @@ +# Contributor: Li Dongyang<Jerry87905@gmail.com> + +pkgname=bluez-python +pkgver=0.1.4 +pkgrel=3 +pkgdesc="A BlueZ python binding on top of dbus-python" +arch=('i686' 'x86_64') +url="http://code.google.com/p/bluez-python" +license=('LGPL') +depends=('bluez>=4.30' 'dbus-python') +source=(http://bluez-python.googlecode.com/files/${pkgname}-${pkgver}.tar.gz) +md5sums=('013f283d3c32765e67c89ebf7f5470ea') + +build() { +  /bin/true +} +package() { +  cd ${srcdir}/${pkgname} +  python2 setup.py install --root=${pkgdir} +} diff --git a/abs/not_built/core/python_modules/cddb-py/PKGBUILD b/abs/not_built/core/python_modules/cddb-py/PKGBUILD new file mode 100755 index 0000000..3facc20 --- /dev/null +++ b/abs/not_built/core/python_modules/cddb-py/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 26144 2010-09-13 19:36:37Z schuay $ +# Contributor: Allan McRae <allan@archlinux.org> +# Contributor: Hugo Ideler <hugoideler@dse.nl> +# Contributor: David Keogh <davekeogh@shaw.ca> +# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us> + +pkgname=cddb-py +pkgver=1.4 +pkgrel=6 +pkgdesc="CDDB-Server access from Python" +arch=('i686' 'x86_64') +url="http://cddb-py.sourceforge.net" +license=('GPL') +depends=('python2') +source=("http://downloads.sourceforge.net/sourceforge/cddb-py/CDDB-${pkgver}.tar.gz") +md5sums=('254698082bafe3030d07d88fb7e13fe2') + +package() { +    cd ${srcdir}/CDDB-${pkgver} + +    for file in CDDB.py DiscID.py; do +        sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' $file +    done + +    python2 setup.py install --root=${pkgdir} --optimize=1 +} diff --git a/abs/not_built/core/python_modules/gnome-python-extras/PKGBUILD b/abs/not_built/core/python_modules/gnome-python-extras/PKGBUILD new file mode 100644 index 0000000..690ec2e --- /dev/null +++ b/abs/not_built/core/python_modules/gnome-python-extras/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 35285 2009-04-11 20:46:50Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=gnome-python-extras +pkgver=2.25.3 +pkgrel=2 +pkgdesc="Gnome Python interfaces for libraries not part of the core platform" +arch=('i686' 'x86_64') +license=('GPL' 'LGPL') +depends=('gnome-python>=2.22.1') +makedepends=('libgtkhtml' 'gtkspell' 'gdl' 'xulrunner>=1.9' 'libgksu' 'pkgconfig' 'libgnomeui' 'libgda') +optdepends=('libgtkhtml' 'gtkspell' 'gdl' 'xulrunner' 'libgksu' 'libgnomeui' 'libgda') +options=('!libtool') +source=(http://ftp.gnome.org/pub/gnome/sources/gnome-python-extras/2.25/gnome-python-extras-${pkgver}.tar.bz2) +url="http://www.daa.com.au/~james/pygtk/" +md5sums=('9f3b7ec5c57130b96061cb486b79c076') + +build() { +  cd "${srcdir}/gnome-python-extras-${pkgver}" +  ./configure --prefix=/usr || return 1 +  make MOZILLA_HOME=/usr/lib/xulrunner-1.9 || return 1 +} +package() { +  cd "${srcdir}/gnome-python-extras-${pkgver}" +  make DESTDIR="${pkgdir}" install || return 1 +} diff --git a/abs/not_built/core/python_modules/gnome-python-extras/gnome-python-extras-2.19.1-pkg-config.patch b/abs/not_built/core/python_modules/gnome-python-extras/gnome-python-extras-2.19.1-pkg-config.patch new file mode 100644 index 0000000..77fd0a4 --- /dev/null +++ b/abs/not_built/core/python_modules/gnome-python-extras/gnome-python-extras-2.19.1-pkg-config.patch @@ -0,0 +1,61 @@ +diff -up gnome-python-extras-2.19.1/configure.pkg-config gnome-python-extras-2.19.1/configure +--- gnome-python-extras-2.19.1/configure.pkg-config	2008-01-12 21:07:56.000000000 -0500 ++++ gnome-python-extras-2.19.1/configure	2008-01-12 21:09:49.000000000 -0500 +@@ -22096,14 +22096,14 @@ if test -n "$PKG_CONFIG"; then +         pkg_cv_GTKMOZEMBED_CFLAGS="$GTKMOZEMBED_CFLAGS" +     else +         if test -n "$PKG_CONFIG" && \ +-    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$mozpackage-gtkmozembed >= \$mozpackage_required_version, ++    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\mozilla-gtkmozembed >= \$mozpackage_required_version, +                                 gtk+-2.0                >= 2.4.0\"") >&5 +-  ($PKG_CONFIG --exists --print-errors "$mozpackage-gtkmozembed >= $mozpackage_required_version, ++  ($PKG_CONFIG --exists --print-errors "mozilla-gtkmozembed >= $mozpackage_required_version, +                                 gtk+-2.0                >= 2.4.0") 2>&5 +   ac_status=$? +   echo "$as_me:$LINENO: \$? = $ac_status" >&5 +   (exit $ac_status); }; then +-  pkg_cv_GTKMOZEMBED_CFLAGS=`$PKG_CONFIG --cflags "$mozpackage-gtkmozembed >= $mozpackage_required_version, ++  pkg_cv_GTKMOZEMBED_CFLAGS=`$PKG_CONFIG --cflags "mozilla-gtkmozembed >= $mozpackage_required_version, +                                 gtk+-2.0                >= 2.4.0" 2>/dev/null` + else +   pkg_failed=yes +@@ -22117,14 +22117,14 @@ if test -n "$PKG_CONFIG"; then +         pkg_cv_GTKMOZEMBED_LIBS="$GTKMOZEMBED_LIBS" +     else +         if test -n "$PKG_CONFIG" && \ +-    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\$mozpackage-gtkmozembed >= \$mozpackage_required_version, ++    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\mozilla-gtkmozembed >= \$mozpackage_required_version, +                                 gtk+-2.0                >= 2.4.0\"") >&5 +-  ($PKG_CONFIG --exists --print-errors "$mozpackage-gtkmozembed >= $mozpackage_required_version, ++  ($PKG_CONFIG --exists --print-errors "mozilla-gtkmozembed >= $mozpackage_required_version, +                                 gtk+-2.0                >= 2.4.0") 2>&5 +   ac_status=$? +   echo "$as_me:$LINENO: \$? = $ac_status" >&5 +   (exit $ac_status); }; then +-  pkg_cv_GTKMOZEMBED_LIBS=`$PKG_CONFIG --libs "$mozpackage-gtkmozembed >= $mozpackage_required_version, ++  pkg_cv_GTKMOZEMBED_LIBS=`$PKG_CONFIG --libs "mozilla-gtkmozembed >= $mozpackage_required_version, +                                 gtk+-2.0                >= 2.4.0" 2>/dev/null` + else +   pkg_failed=yes +@@ -22144,10 +22144,10 @@ else +         _pkg_short_errors_supported=no + fi +         if test $_pkg_short_errors_supported = yes; then +-	        GTKMOZEMBED_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$mozpackage-gtkmozembed >= $mozpackage_required_version, ++	        GTKMOZEMBED_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "mozilla-gtkmozembed >= $mozpackage_required_version, +                                 gtk+-2.0                >= 2.4.0"` +         else +-	        GTKMOZEMBED_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$mozpackage-gtkmozembed >= $mozpackage_required_version, ++	        GTKMOZEMBED_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "mozilla-gtkmozembed >= $mozpackage_required_version, +                                 gtk+-2.0                >= 2.4.0"` +         fi + 	# Put the nasty error message in config.log where it belongs +@@ -22179,7 +22179,7 @@ fi + if test -n "$export_dynamic"; then +   GTKMOZEMBED_LIBS=`echo $GTKMOZEMBED_LIBS | sed -e "s/$export_dynamic//"` + fi +-MOZILLA_HOME="`$PKG_CONFIG --variable=libdir $mozpackage-gtkmozembed`" ++MOZILLA_HOME="`$PKG_CONFIG --variable=libdir mozilla-gtkmozembed`" +  +  +  diff --git a/abs/not_built/core/python_modules/gnome-python-extras/gnome-python-extras-2.19.1-xulrunner.patch b/abs/not_built/core/python_modules/gnome-python-extras/gnome-python-extras-2.19.1-xulrunner.patch new file mode 100644 index 0000000..d2fa26e --- /dev/null +++ b/abs/not_built/core/python_modules/gnome-python-extras/gnome-python-extras-2.19.1-xulrunner.patch @@ -0,0 +1,22 @@ +diff -up gnome-python-extras-2.19.1/docs/gtkmozembed/html/class-gtkmozembed.html.old gnome-python-extras-2.19.1/docs/gtkmozembed/html/class-gtkmozembed.html +diff -up gnome-python-extras-2.19.1/docs/gtkmozembed/html/pygtkmozembed.devhelp.old gnome-python-extras-2.19.1/docs/gtkmozembed/html/pygtkmozembed.devhelp +diff -up gnome-python-extras-2.19.1/docs/gtkmozembed/gtkmozembed-gtkmozembed.xml.old gnome-python-extras-2.19.1/docs/gtkmozembed/gtkmozembed-gtkmozembed.xml +diff -up gnome-python-extras-2.19.1/gtkmozembed/gtkmozembed.override.old gnome-python-extras-2.19.1/gtkmozembed/gtkmozembed.override +diff -up gnome-python-extras-2.19.1/gtkmozembed/gtkmozembed.defs.old gnome-python-extras-2.19.1/gtkmozembed/gtkmozembed.defs +--- gnome-python-extras-2.19.1/gtkmozembed/gtkmozembed.defs.old	2007-06-05 16:52:30.000000000 +0200 ++++ gnome-python-extras-2.19.1/gtkmozembed/gtkmozembed.defs	2007-11-27 12:54:42.000000000 +0100 +@@ -123,6 +123,14 @@ +   ) + ) +  ++(define-function set_path ++  (c-name "gtk_moz_embed_set_path") ++  (return-type "none") ++  (parameters ++    '("char*" "aPath") ++  ) ++) ++ + (define-function gtk_moz_embed_set_profile_path +   (c-name "gtk_moz_embed_set_profile_path_deprecated") +   (return-type "none") diff --git a/abs/not_built/core/python_modules/imdbpy/PKGBUILD b/abs/not_built/core/python_modules/imdbpy/PKGBUILD new file mode 100644 index 0000000..22efa94 --- /dev/null +++ b/abs/not_built/core/python_modules/imdbpy/PKGBUILD @@ -0,0 +1,37 @@ +# $Id: PKGBUILD 27018 2010-09-16 17:37:18Z schuay $ +# Maintainer: Ray Rashif <schivmeister@gmail.com> +# Contributor: Andrea Scarpino <andrea@archlinux.org> +# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr> +# Contributor: lang2 <wenzhi.liang@gmail.com> + +pkgname=imdbpy +_realname=IMDbPY +pkgver=4.6 +pkgrel=3 +pkgdesc="Python bindings for imdb" +url="http://imdbpy.sourceforge.net/" +arch=('i686' 'x86_64') +license=('GPL') +depends=('python2') +makedepends=('setuptools') +optdepends=('python-lxml' 'python-sqlalchemy' 'python-sqlobject') +source=(http://downloads.sourceforge.net/$pkgname/$_realname-$pkgver.tar.gz) + +build(){ +  cd "$srcdir/$_realname-$pkgver" + +  # python2 fix +  for file in $(find . -name '*.py' -print); do +    sed -i 's_#!.*/usr/bin/python_#!/usr/bin/python2_' $file +    sed -i 's_#!.*/usr/bin/env.*python_#!/usr/bin/env python2_' $file +  done + +  python2 setup.py install --root="$pkgdir" + +  # fix directories path +  mv "$pkgdir/usr/etc" "$pkgdir" +  install -d "$pkgdir/usr/share" +  mv "$pkgdir/usr/imdb" "$pkgdir/usr/share" +  mv "$pkgdir/usr/doc" "$pkgdir/usr/share/imdb/" +} +md5sums=('876d4cd041fa23633e3637c22bf95622') diff --git a/abs/not_built/core/python_modules/pycrypto/PKGBUILD b/abs/not_built/core/python_modules/pycrypto/PKGBUILD new file mode 100644 index 0000000..5ba87ac --- /dev/null +++ b/abs/not_built/core/python_modules/pycrypto/PKGBUILD @@ -0,0 +1,23 @@ +# $Id: PKGBUILD 96778 2010-10-24 17:01:27Z ibiru $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +# Contributor: Kritoke <kritoke@gamebox.net> + +pkgname=pycrypto +pkgver=2.3 +pkgrel=2 +pkgdesc="Collection of cryptographic algorithms and protocols, implemented for use from Python." +arch=('i686' 'x86_64') +depends=('python2') +url="http://www.dlitz.net/software/pycrypto/" +license=(custom) +source=(http://ftp.dlitz.net/pub/dlitz/crypto/${pkgname}/${pkgname}-${pkgver}.tar.gz) +sha256sums=('4f11e85fbcf13960373650fc2dae8f088f9b001f07fb6d3efb2fcb5334987182') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  python2 setup.py build +  python2 setup.py install --root="${pkgdir}" --optimize=1 +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/" +  cp -r LEGAL "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/python_modules/python-beaker/PKGBUILD b/abs/not_built/core/python_modules/python-beaker/PKGBUILD new file mode 100644 index 0000000..8780497 --- /dev/null +++ b/abs/not_built/core/python_modules/python-beaker/PKGBUILD @@ -0,0 +1,21 @@ +# $Id: PKGBUILD 87715 2010-08-18 03:37:40Z allan $ +# Maintainer : Ionut Biru <ibiru@archlinux.org> +# Contributor: Massimiliano Torromeo < massimiliano DOT torromeo AT gmail DOT com > +pkgname=python-beaker +pkgver=1.5.4 +pkgrel=3 +arch=('any') +license=('custom') +pkgdesc="Caching and sessions WSGI middleware for use with web applications and stand-alone Python scripts and applications" +url="http://beaker.groovie.org/" +depends=('python2') +makedepends=('setuptools') +source=("http://cheeseshop.python.org/packages/source/B/Beaker/Beaker-$pkgver.tar.gz") +md5sums=('de84e7511119dc0b8eb4ac177d3e2512') + +build() { +    cd ${srcdir}/Beaker-${pkgver} +    sed -i "s#/usr/bin/python#/usr/bin/python2#" beaker/crypto/pbkdf2.py +    python2 setup.py install --root=${pkgdir} --optimize=1 +    install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/$pkgname/LICENSE +} diff --git a/abs/not_built/core/python_modules/python-beautifulsoup4/PKGBUILD b/abs/not_built/core/python_modules/python-beautifulsoup4/PKGBUILD new file mode 100644 index 0000000..e5eba14 --- /dev/null +++ b/abs/not_built/core/python_modules/python-beautifulsoup4/PKGBUILD @@ -0,0 +1,51 @@ +# $Id: PKGBUILD 73500 2012-07-08 17:25:45Z dwallace $ +# Maintainer: Daniel Wallace <danielwallace at gtmanfred dot com> +# Contributor: Giovanni Scafora <giovanni@archlinux.org> + +pkgbase=python-beautifulsoup4 +pkgname=('python2-beautifulsoup4' 'python-beautifulsoup4') +pkgver=4.1.1 +pkgrel=2 +pkgdesc="A Python HTML/XML parser designed for quick turnaround projects like screen-scraping" +arch=('any') +url="http://www.crummy.com/software/BeautifulSoup/index.html" +license=('PSF') +#makedepends=('python-distribute' 'python2-distribute') +makedepends=('python2-distribute') +source=("http://www.crummy.com/software/BeautifulSoup/bs4/download/${pkgver%\.*}/${pkgbase#*-}-${pkgver}.tar.gz") +md5sums=('fccee58b4d914fb489385d672fe89f43') + +build() { +  cd "${srcdir}" +  cp -a beautifulsoup4-${pkgver}{,-python2} + +  # Build python 3 module +  cd "${srcdir}/beautifulsoup4-${pkgver}" +  python setup.py build + +  # Build python 2 module +  cd "${srcdir}/beautifulsoup4-${pkgver}-python2" +  python2 setup.py build +} + +package_python2-beautifulsoup4() { +  depends=('python2-distribute') +  optdepends=('python2-chardet: universal encoding detector' +              'python2-lxml: pythonic binding for the libxml2 and libxslt libraries') + +  cd "${srcdir}/beautifulsoup4-${pkgver}-python2" +  python2 setup.py install --root="${pkgdir}/" --optimize=1 --skip-build + +  rm -rf ${pkgdir}/usr/lib/python2.7/site-packages/bs4/tests +} + +package_python-beautifulsoup4() { +#  depends=('python-distribute') +  optdepends=('python-chardet: universal encoding detector' +              'python-lxml: pythonic binding for the libxml2 and libxslt libraries') + +  cd "${srcdir}/beautifulsoup4-${pkgver}" +  python setup.py install --root="${pkgdir}/" --optimize=1 --skip-build + +  rm -rf ${pkgdir}/usr/lib/python3.2/site-packages/bs4/{__pycache__,tests,builder/__pycache__} +} diff --git a/abs/not_built/core/python_modules/python-beautifulsoup4/__changelog b/abs/not_built/core/python_modules/python-beautifulsoup4/__changelog new file mode 100644 index 0000000..1cdf6fa --- /dev/null +++ b/abs/not_built/core/python_modules/python-beautifulsoup4/__changelog @@ -0,0 +1,2 @@ +9/3/12 - chw +commented python-distribute as dep since we don't include python3. Built with mp.py --pkg=python2-beautisoup4. diff --git a/abs/not_built/core/python_modules/python-chardet/PKGBUILD b/abs/not_built/core/python_modules/python-chardet/PKGBUILD new file mode 100644 index 0000000..d3e67d0 --- /dev/null +++ b/abs/not_built/core/python_modules/python-chardet/PKGBUILD @@ -0,0 +1,20 @@ +# $Id: PKGBUILD 87872 2010-08-18 15:26:20Z ibiru $ +# Maintainer : Ionut Biru <ibiru@archlinux.org> +# Contributor: William Rea <sillywilly@gmail.com> +pkgname=python-chardet +_pkgnamebase=python2-chardet +pkgver=2.0.1 +pkgrel=3 +pkgdesc="Python module for character encoding auto-detection" +arch=('any') +url="http://chardet.feedparser.org" +license=('LGPL') +depends=('python2') +source=(http://chardet.feedparser.org/download/${_pkgnamebase}-${pkgver}.tgz) +sha256sums=('56fa0c37189b0a5f082d064dec59d69a044aaa3eeb7acb9b3081e2ba306deaa4') + +build() { +  cd "${srcdir}/${_pkgnamebase}-${pkgver}" +  python2 setup.py install --root="${pkgdir}" --optimize=1 +} + diff --git a/abs/not_built/core/python_modules/python-geoip/PKGBUILD b/abs/not_built/core/python_modules/python-geoip/PKGBUILD new file mode 100644 index 0000000..cd095c6 --- /dev/null +++ b/abs/not_built/core/python_modules/python-geoip/PKGBUILD @@ -0,0 +1,21 @@ +# $Id: PKGBUILD 89623 2010-09-02 16:32:29Z remy $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=python-geoip +pkgver=1.2.4 +pkgrel=4 +pkgdesc="Python bindings for the GeoIP IP-to-country resolver library." +arch=(i686 x86_64) +url="http://www.maxmind.com/app/python" +license=('LGPL') +depends=('python2' 'geoip') +source=(http://www.maxmind.com/download/geoip/api/python/GeoIP-Python-${pkgver}.tar.gz) +replaces=('geoip-python') +provides=('geoip-python') + +build() { +  cd ${startdir}/src/GeoIP-Python-${pkgver} +  python2 setup.py build install --root=${pkgdir}/ +} +md5sums=('50f820d854476efaf3b7af733ffe4236') + diff --git a/abs/not_built/core/python_modules/python-libconcord/PKGBUILD b/abs/not_built/core/python_modules/python-libconcord/PKGBUILD new file mode 100644 index 0000000..fb638f8 --- /dev/null +++ b/abs/not_built/core/python_modules/python-libconcord/PKGBUILD @@ -0,0 +1,22 @@ +# $Id$ +# Maintainers: +# Andreas Baumann <abaumann@yahoo.com>  +# Guillaume DUMOULIN <guillaume.dumoulin@gmail.com> +# Contributor: elsixdiab +pkgname=python-libconcord +_pkgsrcname=concordance +pkgver=0.23 +pkgrel=3 +pkgdesc="This software will allow you to program your Logitech Harmony universal remote control"  +url="http://www.phildev.net/harmony/index.shtml"  +license="GPL"  +arch=('any') +depends=('libconcord=0.23' 'python2')  +source=("http://downloads.sourceforge.net/${_pkgsrcname}/${_pkgsrcname}-${pkgver}.tar.bz2") +md5sums=('d7400d5b351b195b63adfafae68be3d8') +build() {  +	cd $srcdir/${_pkgsrcname}-${pkgver}/libconcord/bindings/python/ +	python2 setup.py install --prefix=/usr --root="$pkgdir" || return 1 +} + + diff --git a/abs/not_built/core/python_modules/python-mako/PKGBUILD b/abs/not_built/core/python_modules/python-mako/PKGBUILD new file mode 100644 index 0000000..987116a --- /dev/null +++ b/abs/not_built/core/python_modules/python-mako/PKGBUILD @@ -0,0 +1,21 @@ +# $Id: PKGBUILD 87883 2010-08-18 15:32:33Z ibiru $ +# Maintainer : Ionut Biru <ibiru@archlinux.org> +# Contributor: Roberto Alsina <ralsina@kde.org> +pkgname=python-mako +pkgver=0.3.4 +pkgrel=5 +pkgdesc="Hyperfast and lightweight templating for the Python platform." +arch=('any') +url="http://www.makotemplates.org/" +license=('custom') +depends=('python2' 'python-markupsafe>=0.9.2' 'python-beaker>=1.5.4') +makedepends=('setuptools') +source=(http://www.makotemplates.org/downloads/Mako-$pkgver.tar.gz) +md5sums=('2ae56ccc6c9b5c4e2e67f42b69475009') + +build() { +  cd "$srcdir/Mako-$pkgver" +  python2 setup.py install --root="$pkgdir" --optimize=1 || return 1 +  install -D LICENSE "$pkgdir/usr/share/licenses/python-mako/COPYING" || return 1 +} + diff --git a/abs/not_built/core/python_modules/python-markupsafe/PKGBUILD b/abs/not_built/core/python_modules/python-markupsafe/PKGBUILD new file mode 100644 index 0000000..f3563c9 --- /dev/null +++ b/abs/not_built/core/python_modules/python-markupsafe/PKGBUILD @@ -0,0 +1,23 @@ +# $Id: PKGBUILD 87877 2010-08-18 15:28:18Z ibiru $ +# Maintainer : Ionut Biru <ibiru@archlinux.org> +# Contributor: Alex Anthony <alex.anthony28991@gmail.com> + +pkgname=python-markupsafe +pkgver=0.9.2 +pkgrel=3 +pkgdesc="Implements a XML/HTML/XHTML Markup safe string for Python" +arch=('i686' 'x86_64') +url="http://pypi.python.org/pypi/MarkupSafe" +license=('custom') +depends=('python2') +makedepends=('setuptools') +source=(http://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-${pkgver}.tar.gz) +md5sums=('69b72d1afdd9e808f9c1ef65f819c7a6') + +build() { +  cd ${srcdir}/MarkupSafe-${pkgver} +  python2 setup.py install --root=${pkgdir} --optimize=1 + +  install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE +} + diff --git a/abs/not_built/core/python_modules/python-numeric/PKGBUILD b/abs/not_built/core/python_modules/python-numeric/PKGBUILD new file mode 100644 index 0000000..2c8ea21 --- /dev/null +++ b/abs/not_built/core/python_modules/python-numeric/PKGBUILD @@ -0,0 +1,35 @@ +# Maintainer: SpepS <dreamspepser at yahoo dot it> +# Contributor: arjan <arjan@archlinux.org> +# Contributor orelien <aurelien.foret@wanadoo.fr> + +pkgname=python-numeric +pkgver=24.2 +pkgrel=6 +pkgdesc="Numerical Python adds a fast array facility to the Python language" +arch=('i686' 'x86_64') +url="http://numeric.scipy.org/" +license=('custom') +depends=('python2') +source=(http://downloads.sourceforge.net/sourceforge/numpy/Numeric-$pkgver.tar.gz) +md5sums=('2ae672656e06716a149acb048cca3093') + +build() { + +  cd "$srcdir/Numeric-$pkgver" + +  # Python2 fix +  sed \ +	-e "s_\(env python\).*_\12_" \ +	-e "s_\(bin/python\).*_\12_" \ +	-i `grep -rlE "(env python|bin/python)" .` +} + +package() { + +  cd "$srcdir/Numeric-$pkgver" + +  # Install +  python2 setup.py install --prefix=/usr --root="$pkgdir/" +  install -D -m644 Legal.htm "$pkgdir/usr/share/licenses/$pkgname/Legal.htm" +} + diff --git a/abs/not_built/core/python_modules/python-pymedia/PKGBUILD b/abs/not_built/core/python_modules/python-pymedia/PKGBUILD new file mode 100644 index 0000000..5433471 --- /dev/null +++ b/abs/not_built/core/python_modules/python-pymedia/PKGBUILD @@ -0,0 +1,35 @@ +# Maintainer: TDY <tdy@gmx.com> + +pkgname=python-pymedia +pkgver=1.3.7.3 +pkgrel=2 +pkgdesc="A Python library for accessing and manipulating multimedia files" +arch=('i686' 'x86_64') +url="http://pymedia.org/" +license=('LGPL') +depends=('alsa-lib' 'ffmpeg-svn' 'python2') +optdepends=('faad2:     AAC support' +            'lame:      MP3 support' +            'libogg:    Ogg support' +            'libvorbis: Vorbis support') +source=(http://downloads.sourceforge.net/${pkgname/*-}/${pkgname/*-}-$pkgver.tar.gz +        ${pkgname/*-}-$pkgver-amd64-gentoo.diff) +md5sums=('2f4930c63866c97af5090b176e2a118a' +         '3137e65e1208db98e404ee894fcd744a') + +build() { +  cd "$srcdir/${pkgname/*-}-$pkgver" +  patch -Np1 -i ../${pkgname/*-}-$pkgver-amd64-gentoo.diff || return 1 + +  find "$srcdir/${pkgname/*-}-$pkgver" -name '*.py' | \ +    xargs sed -i "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" || return 1 +  find "$srcdir/${pkgname/*-}-$pkgver" -name '*.py' | \ +    xargs sed -i "s|#![ ]*/bin/env python$|#!/usr/bin/env python2|" || return 1 + +  python2 setup.py build || return 1 +} + +package() { +  cd "$srcdir/${pkgname/*-}-$pkgver" +  python2 setup.py install --prefix=/usr --root="$pkgdir" || return 1 +} diff --git a/abs/not_built/core/python_modules/python-pymedia/pymedia-1.3.7.3-amd64-gentoo.diff b/abs/not_built/core/python_modules/python-pymedia/pymedia-1.3.7.3-amd64-gentoo.diff new file mode 100644 index 0000000..801eccf --- /dev/null +++ b/abs/not_built/core/python_modules/python-pymedia/pymedia-1.3.7.3-amd64-gentoo.diff @@ -0,0 +1,64 @@ +diff -ru pymedia-1.3.7.3/audio/inttypes.h pymedia-1.3.7.3-amd64/audio/inttypes.h +--- pymedia-1.3.7.3/audio/inttypes.h	2006-06-13 13:32:22.000000000 -0700 ++++ pymedia-1.3.7.3-amd64/audio/inttypes.h	2008-03-26 08:05:57.000000000 -0700 +@@ -2,6 +2,7 @@ + #if !defined( __INTTYPES_H__ )
 + #define __INTTYPES_H__
 + 
 ++#include <stdint.h>
 + #if defined( _STDINT_H )
 + 
 + 	typedef unsigned short UINT16;
 +diff -ru pymedia-1.3.7.3/setup.py pymedia-1.3.7.3-amd64/setup.py +--- pymedia-1.3.7.3/setup.py	2006-06-19 23:04:43.000000000 -0700 ++++ pymedia-1.3.7.3-amd64/setup.py	2008-03-26 08:16:04.000000000 -0700 +@@ -216,7 +216,7 @@ + 		FILES[ 'video.vcodec' ][ 'libavcodec' ]+= NONMMX_FILES
 + else:
 + 		print 'Using UNIX configuration...\n'
 +-		disable_fPIC()
 ++		#disable_fPIC()
 + 		dep= config.Dependency_unix
 + 		inc_hunt = [ 
 + 			'/usr/include', 
 +@@ -224,13 +224,13 @@ + 			'/usr/local/include', 
 + 			'/usr/local/include/lame',]
 + 		lib_hunt = [ '/usr/lib64', '/usr/lib', '/usr/local/lib64', '/usr/local/lib' ]
 +-		LIBS= []
 ++		LIBS= ['avcodec', 'avformat']
 + 		DEFINES+= [
 + 			('PATH_DEV_DSP', '"/dev/dsp"' ), 
 + 			('PATH_DEV_MIXER','"/dev/mixer"' ), 
 + 			('_FILE_OFFSET_BITS',64),
 + 			('ACCEL_DETECT',1),	
 +-			('HAVE_MMX', '1' ),
 ++			('HAVE_LRINTF', '1' ),
 + 		] 
 + 		if sys.platform== 'cygwin':
 + 			DEFINES+= [	
 +@@ -243,13 +243,13 @@ + 				('DVD_STRUCT_IN_LINUX_CDROM_H', '1' ),
 + 			]
 + 
 +-		FILES[ 'video.vcodec' ][ 'libavcodec' ]+= MMX_FILES
 ++		FILES[ 'video.vcodec' ][ 'libavcodec' ]#+= MMX_FILES
 + 
 + DEPS = [
 + 		dep('OGG', 'libogg-[1-9].*', 'ogg/ogg.h', 'libogg', 'CONFIG_VORBIS').configure(inc_hunt,lib_hunt),
 + 		dep('VORBIS', 'libvorbis-[1-9].*', 'vorbis/codec.h', 'libvorbis', 'CONFIG_VORBIS' ).configure(inc_hunt,lib_hunt),
 + 		dep('FAAD', 'libfaad2', 'faad.h', 'libfaad', 'CONFIG_FAAD').configure(inc_hunt,lib_hunt),
 +-		dep('MP3LAME', 'lame-3.95.*', 'lame.h', 'libmp3lame', 'CONFIG_MP3LAME').configure(inc_hunt,lib_hunt),
 ++		dep('MP3LAME', 'lame-3.96.*', 'lame.h', 'libmp3lame', 'CONFIG_MP3LAME').configure(inc_hunt,lib_hunt),
 + 		dep('VORBISENC', 'libvorbis-[1-9].*','vorbis/vorbisenc.h','libvorbisenc', 'CONFIG_VORBIS').configure(inc_hunt,lib_hunt),
 + 		dep('ALSA', 'libasound','alsa/asoundlib.h','libasound', 'CONFIG_ALSA').configure(inc_hunt,lib_hunt),
 + ]
 +@@ -260,7 +260,7 @@ + DEFINES+= [ ( x.define, None ) for x in DEPS ]+ [ ( 'HAVE_AV_CONFIG_H', None ), ( 'UDF_CACHE', 1 ) ]
 + LIBS+= [ x.lib for x in DEPS ]
 + 
 +-choice = raw_input('Continue building '+MODULE_NAME+' ? [Y,n]:')
 ++choice = 'Y'
 + if choice== 'n':
 + 		print 'To start installation please run: \n\tsetup.py install and press Enter when prompted\n'
 + 		sys.exit()
 diff --git a/abs/not_built/core/python_modules/python-simplejson/ChangeLog b/abs/not_built/core/python_modules/python-simplejson/ChangeLog new file mode 100644 index 0000000..4a5d1d9 --- /dev/null +++ b/abs/not_built/core/python_modules/python-simplejson/ChangeLog @@ -0,0 +1,5 @@ +2010-05-15 Jaroslav Lichtblau <dragonlord@aur.archlinux.org> +	* Update to major release 2.1.1 + +2010-03-27 Jaroslav Lichtblau <dragonlord@aur.archlinux.org> +	* Update to major release 2.1.0 diff --git a/abs/not_built/core/python_modules/python-simplejson/PKGBUILD b/abs/not_built/core/python_modules/python-simplejson/PKGBUILD new file mode 100644 index 0000000..05e2b1b --- /dev/null +++ b/abs/not_built/core/python_modules/python-simplejson/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 26298 2010-09-14 17:18:19Z schuay $ +# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org> +# Contributor: Allan McRae <allan@archlinux.org> +# Contributor: David Moore <davidm@sjsoft.com> + +pkgname=python-simplejson +pkgver=2.1.1 +pkgrel=3 +pkgdesc="Simple, fast, extensible JSON encoder/decoder for Python" +license=('MIT') +arch=('any') +url="http://undefined.org/python/#simplejson" +depends=('python2') +makedepends=('setuptools') +source=(http://pypi.python.org/packages/source/s/simplejson/simplejson-${pkgver}.tar.gz) +md5sums=('0bbe3a2e5e4cac040013733aca159d89') + +build() { +  cd ${srcdir}/simplejson-${pkgver} + +  python2 setup.py install --root=${pkgdir} + +# License +  install -Dm644 ${srcdir}/simplejson-${pkgver}/LICENSE.txt \ +    ${pkgdir}/usr/share/licenses/python-simplejson/LICENSE +} diff --git a/abs/not_built/core/python_modules/python2-distribute/PKGBUILD b/abs/not_built/core/python_modules/python2-distribute/PKGBUILD new file mode 100644 index 0000000..04c0f48 --- /dev/null +++ b/abs/not_built/core/python_modules/python2-distribute/PKGBUILD @@ -0,0 +1,24 @@ +# Maintainer: Stéphane Gaudreault <stephane@archlinux.org> +# Contributor: Sebastien Binet <binet@farnsworth> +pkgname=python2-distribute +pkgver=0.6.14 +pkgrel=4 +pkgdesc="A collection of extensions to the Python 2 distutils" +arch=('any') +license=('PSF') +url="http://packages.python.org/distribute" +depends=('python2') +conflicts=('setuptools') +replaces=('setuptools') +provides=('setuptools=0.6c11') +source=(http://pypi.python.org/packages/source/d/distribute/distribute-${pkgver}.tar.gz +        distribute-${pkgver}_python2_and_3.patch) + +package() { +   cd ${srcdir}/distribute-${pkgver} +   patch -Np1 -i ../distribute-${pkgver}_python2_and_3.patch +   python2 setup.py install --prefix=/usr --root=${pkgdir} +} +# vim: set noexpandtab tabstop=8 shiftwidth=8 textwidth=132 autoindent +md5sums=('83ada58a83d99b28c806703597323b80' +         'bbf5554ade06f27285f81ed8a8a3a3f8') diff --git a/abs/not_built/core/python_modules/python2-distribute/distribute-0.6.14_python2_and_3.patch b/abs/not_built/core/python_modules/python2-distribute/distribute-0.6.14_python2_and_3.patch new file mode 100644 index 0000000..dc5da86 --- /dev/null +++ b/abs/not_built/core/python_modules/python2-distribute/distribute-0.6.14_python2_and_3.patch @@ -0,0 +1,51 @@ +diff -Naur distribute-0.6.14.ori//distribute.egg-info/entry_points.txt distribute-0.6.14/distribute.egg-info/entry_points.txt +--- distribute-0.6.14.ori//distribute.egg-info/entry_points.txt	2010-07-14 20:14:10.000000000 -0400 ++++ distribute-0.6.14/distribute.egg-info/entry_points.txt	2010-10-21 09:26:43.386667396 -0400 +@@ -31,7 +31,8 @@ + depends.txt = setuptools.command.egg_info:warn_depends_obsolete +  + [console_scripts] +-easy_install = setuptools.command.easy_install:main ++easy_install-3.1 = setuptools.command.easy_install:main ++easy_install-2.7 = setuptools.command.easy_install:main + easy_install-2.6 = setuptools.command.easy_install:main +  + [setuptools.file_finders] +diff -Naur distribute-0.6.14.ori//distribute_setup.py distribute-0.6.14/distribute_setup.py +--- distribute-0.6.14.ori//distribute_setup.py	2010-07-14 19:53:38.000000000 -0400 ++++ distribute-0.6.14/distribute_setup.py	2010-10-21 09:25:18.356667404 -0400 +@@ -299,8 +299,7 @@ +         log.warn('Could not find the install location') +         return +     pyver = '%s.%s' % (sys.version_info[0], sys.version_info[1]) +-    setuptools_file = 'setuptools-%s-py%s.egg-info' % \ +-            (SETUPTOOLS_FAKED_VERSION, pyver) ++    setuptools_file = 'setuptools-%s.egg-info' % SETUPTOOLS_FAKED_VERSION +     pkg_info = os.path.join(placeholder, setuptools_file) +     if os.path.exists(pkg_info): +         log.warn('%s already exists', pkg_info) +diff -Naur distribute-0.6.14.ori//setup.py distribute-0.6.14/setup.py +--- distribute-0.6.14.ori//setup.py	2010-07-14 19:53:38.000000000 -0400 ++++ distribute-0.6.14/setup.py	2010-10-21 09:32:44.850000736 -0400 +@@ -96,6 +96,8 @@ +                 f.close() +  +  ++console_scripts = ["easy_install-%s = setuptools.command.easy_install:main" % sys.version[:3]] ++ + # if we are installing Distribute using "python setup.py install" + # we need to get setuptools out of the way + def _easy_install_marker(): +@@ -182,11 +184,7 @@ +             "dependency_links.txt = setuptools.command.egg_info:overwrite_arg", +         ], +  +-        "console_scripts": [ +-             "easy_install = setuptools.command.easy_install:main", +-             "easy_install-%s = setuptools.command.easy_install:main" +-                % sys.version[:3] +-        ], ++        "console_scripts": console_scripts, +  +         "setuptools.file_finders": +             ["svn_cvs = setuptools.command.sdist:_default_revctrl"], diff --git a/abs/not_built/core/python_modules/pyusb/PKGBUILD b/abs/not_built/core/python_modules/pyusb/PKGBUILD new file mode 100644 index 0000000..d9349ec --- /dev/null +++ b/abs/not_built/core/python_modules/pyusb/PKGBUILD @@ -0,0 +1,18 @@ +# Contributor: Jason Giangrande <jgiangrande@clarku.edu> +pkgname=pyusb +pkgver=0.4.3 +pkgrel=4 +pkgdesc="A native Python module written in C which provides USB access." +arch=('i686' 'x86_64') +url="http://pyusb.berlios.de/" +license=('GPL') +depends=('python2' 'libusb') +makedepends=('setuptools') +source=(http://downloads.sourceforge.net/project/pyusb/PyUSB%200.x/$pkgver/pyusb-$pkgver.tar.gz) +md5sums=('a1a43bc6407caccbc22073c56439aa06') + +build() { +	cd "${srcdir}/${pkgname}-${pkgver}" +	python2 setup.py install -f --root="${pkgdir}" || return 1 +} + diff --git a/abs/not_built/core/python_modules/pyxdg/PKGBUILD b/abs/not_built/core/python_modules/pyxdg/PKGBUILD new file mode 100644 index 0000000..a3aca49 --- /dev/null +++ b/abs/not_built/core/python_modules/pyxdg/PKGBUILD @@ -0,0 +1,20 @@ +# $Id: PKGBUILD 89531 2010-09-01 15:23:06Z remy $ +# Maintainer: Hugo Doria <hugo@archlinux.org> +# Contributor: Mario A. Vazquez <mario_vazq@hotmail.com> + +pkgname=pyxdg +pkgver=0.19 +pkgrel=3 +pkgdesc="Python library to access freedesktop.org standards." +arch=('any') +url="http://freedesktop.org/Software/pyxdg" +license=("LGPL") +depends=('python2') +source=(http://www.freedesktop.org/~lanius/${pkgname}-${pkgver}.tar.gz) + +build() { +  cd ${srcdir}/${pkgname}-${pkgver} +  python2 setup.py install --prefix=/usr --root=${pkgdir} || return 1 +} +md5sums=('9f33542e846d0fc1e0bfa992a8555b0a') + diff --git a/abs/not_built/core/rp-pppoe/PKGBUILD b/abs/not_built/core/rp-pppoe/PKGBUILD new file mode 100644 index 0000000..1b4724d --- /dev/null +++ b/abs/not_built/core/rp-pppoe/PKGBUILD @@ -0,0 +1,25 @@ +# $Id: PKGBUILD 5374 2008-07-15 17:18:23Z daniel $ +# Contributor: orelien <aurelien.foret@wanadoo.fr> +# Maintainer: judd <jvinet@zeroflux.org> +pkgname=rp-pppoe +pkgver=3.10 +pkgrel=10 +pkgdesc="Roaring Penguin's Point-to-Point Protocol over Ethernet client" +arch=(i686 x86_64) +url="http://www.roaringpenguin.com/pppoe/" +license=('GPL') +groups=('base') +depends=('ppp') +options=('!makeflags') +backup=(etc/ppp/pppoe.conf etc/ppp/firewall-standalone etc/ppp/firewall-masq etc/ppp/pppoe-server-options) +source=(http://www.roaringpenguin.com/files/download/rp-pppoe-$pkgver.tar.gz adsl) +md5sums=('d58a13cc4185bca6121a606ff456dec0' +         'adace1ad441aa88dcb3db52fb7f9c97f') + +build() { +  cd $startdir/src/$pkgname-$pkgver/src +  ./configure --prefix=/usr --enable-plugin=/ppp-2.4.4 +  make || return 1 +  make DESTDIR=$startdir/pkg install +  install -m755 -D ../../adsl $startdir/pkg/etc/rc.d/adsl +} diff --git a/abs/not_built/core/rp-pppoe/adsl b/abs/not_built/core/rp-pppoe/adsl new file mode 100755 index 0000000..33bd918 --- /dev/null +++ b/abs/not_built/core/rp-pppoe/adsl @@ -0,0 +1,35 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in +  start) +    stat_busy "Starting ADSL Connection" +    /usr/sbin/pppoe-start &>/dev/null +    if [ $? -gt 0 ]; then +      stat_fail +    else +      add_daemon adsl +      stat_done +    fi +    ;; +  stop) +    stat_busy "Stopping ADSL Connection" +    /usr/sbin/pppoe-stop &>/dev/null +    if [ $? -gt 0 ]; then +      stat_fail +    else +      rm_daemon adsl +      stat_done +    fi +    ;; +  restart) +    $0 stop +    sleep 1 +    $0 start +    ;; +  *) +    echo "usage: $0 {start|stop|restart}"   +esac +exit 0 diff --git a/abs/not_built/core/speex/PKGBUILD b/abs/not_built/core/speex/PKGBUILD new file mode 100644 index 0000000..7bf7e7b --- /dev/null +++ b/abs/not_built/core/speex/PKGBUILD @@ -0,0 +1,28 @@ +# $Id: PKGBUILD 137583 2011-09-09 22:58:20Z allan $ +# Maintainer:  +# Contributer: Jason Chu <jason@archlinux.org> + +pkgname=speex +pkgver=1.2rc1 +pkgrel=2 +pkgdesc="A free codec for free speech" +arch=('i686' 'x86_64') +url="http://www.speex.org/" +license=('BSD') +depends=('libogg') +options=('!libtool') +source=(http://downloads.us.xiph.org/releases/$pkgname/$pkgname-$pkgver.tar.gz) +md5sums=('c4438b22c08e5811ff10e2b06ee9b9ae') + +build() { +  cd $srcdir/speex-$pkgver +  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var +  make +} + +package() { +  cd $srcdir/speex-$pkgver +  make DESTDIR=$startdir/pkg install + +  install -D -m644 COPYING $startdir/pkg/usr/share/licenses/$pkgname/LICENSE +} diff --git a/abs/not_built/core/systemd/systemd-tools/0001-Reinstate-TIMEOUT-handling.patch b/abs/not_built/core/systemd/systemd-tools/0001-Reinstate-TIMEOUT-handling.patch new file mode 100644 index 0000000..766dcb8 --- /dev/null +++ b/abs/not_built/core/systemd/systemd-tools/0001-Reinstate-TIMEOUT-handling.patch @@ -0,0 +1,124 @@ +From 2127f99fb43d2ef950e95329ce40bdd5da8b015c Mon Sep 17 00:00:00 2001 +From: Dave Reisner <dreisner@archlinux.org> +Date: Fri, 25 May 2012 19:43:24 -0400 +Subject: [PATCH] Reinstate TIMEOUT= handling + +This is mostly to deal with ipw2?00 drivers which have yet to be fixed +in the kernel. +--- + src/libudev/libudev-device.c  |   19 +++++++++++++++++++ + src/libudev/libudev-private.h |    1 + + src/udev/udevd.c              |   13 ++++++++++--- + 3 files changed, 30 insertions(+), 3 deletions(-) + +diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c +index a8277d1..5966189 100644 +--- a/src/libudev/libudev-device.c ++++ b/src/libudev/libudev-device.c +@@ -68,6 +68,7 @@ struct udev_device { +         struct udev_list tags_list; +         unsigned long long int seqnum; +         unsigned long long int usec_initialized; ++        int timeout; +         int devlink_priority; +         int refcount; +         dev_t devnum; +@@ -89,6 +90,21 @@ struct udev_device { +         bool db_persist; + }; +  ++int udev_device_get_timeout(struct udev_device *udev_device) ++{ ++        return udev_device->timeout; ++} ++ ++static int udev_device_set_timeout(struct udev_device *udev_device, int timeout) ++{ ++        char num[32]; ++ ++        udev_device->timeout = timeout; ++        snprintf(num, sizeof(num), "%u", timeout); ++        udev_device_add_property(udev_device, "TIMEOUT", num); ++        return 0; ++} ++ + /** +  * udev_device_get_seqnum: +  * @udev_device: udev device +@@ -362,6 +378,8 @@ void udev_device_add_property_from_string_parse(struct udev_device *udev_device, +  +                 util_strscpyl(path, sizeof(path), TEST_PREFIX "/sys", &property[8], NULL); +                 udev_device_set_syspath(udev_device, path); ++        } else if (strncmp(property, "TIMEOUT=", 8) == 0) { ++                udev_device_set_timeout(udev_device, strtoull(&property[8], NULL, 10)); +         } else if (startswith(property, "SUBSYSTEM=")) { +                 udev_device_set_subsystem(udev_device, &property[10]); +         } else if (startswith(property, "DEVTYPE=")) { +@@ -605,6 +623,7 @@ struct udev_device *udev_device_new(struct udev *udev) +         udev_list_init(udev, &udev_device->sysattr_value_list, true); +         udev_list_init(udev, &udev_device->sysattr_list, false); +         udev_list_init(udev, &udev_device->tags_list, true); ++        udev_device->timeout = -1; +         udev_device->watch_handle = -1; +         /* copy global properties */ +         udev_list_entry_foreach(list_entry, udev_get_properties_list_entry(udev)) +diff --git a/src/libudev/libudev-private.h b/src/libudev/libudev-private.h +index 4eb4a59..99aefeb 100644 +--- a/src/libudev/libudev-private.h ++++ b/src/libudev/libudev-private.h +@@ -70,6 +70,7 @@ const char *udev_device_get_id_filename(struct udev_device *udev_device); + void udev_device_set_is_initialized(struct udev_device *udev_device); + int udev_device_add_tag(struct udev_device *udev_device, const char *tag); + void udev_device_cleanup_tags_list(struct udev_device *udev_device); ++int udev_device_get_timeout(struct udev_device *udev_device); + unsigned long long udev_device_get_usec_initialized(struct udev_device *udev_device); + void udev_device_set_usec_initialized(struct udev_device *udev_device, unsigned long long usec_initialized); + int udev_device_get_devlink_priority(struct udev_device *udev_device); +diff --git a/src/udev/udevd.c b/src/udev/udevd.c +index 0d85960..cd24462 100644 +--- a/src/udev/udevd.c ++++ b/src/udev/udevd.c +@@ -384,7 +384,7 @@ out: +         } + } +  +-static void event_run(struct event *event) ++static void event_run(struct event *event, bool force) + { +         struct udev_list_node *loop; +  +@@ -410,7 +410,7 @@ static void event_run(struct event *event) +                 return; +         } +  +-        if (children >= children_max) { ++        if (!force && children >= children_max) { +                 if (children_max > 1) +                         log_debug("maximum number (%i) of children reached\n", children); +                 return; +@@ -444,6 +444,13 @@ static int event_queue_insert(struct udev_device *dev) +  +         event->state = EVENT_QUEUED; +         udev_list_node_append(&event->node, &event_list); ++ ++        /* run all events with a timeout set immediately */ ++        if (udev_device_get_timeout(dev) > 0) { ++                event_run(event, true); ++                return 0; ++        } ++ +         return 0; + } +  +@@ -549,7 +556,7 @@ static void event_queue_start(struct udev *udev) +                 if (is_devpath_busy(event)) +                         continue; +  +-                event_run(event); ++                event_run(event, false); +         } + } +  +--  +1.7.10.2 + diff --git a/abs/not_built/core/systemd/systemd-tools/PKGBUILD b/abs/not_built/core/systemd/systemd-tools/PKGBUILD new file mode 100644 index 0000000..338fd8f --- /dev/null +++ b/abs/not_built/core/systemd/systemd-tools/PKGBUILD @@ -0,0 +1,205 @@ +# Maintainer: Dave Reisner <dreisner@archlinux.org> +# Contributor: Tom Gundersen <teg@jklm.no> + +pkgbase=systemd +pkgname=('systemd' 'libsystemd' 'systemd-tools' 'systemd-sysvcompat') +pkgver=186 +pkgrel=2 +arch=('i686' 'x86_64') +url="http://www.freedesktop.org/wiki/Software/systemd" +license=('GPL2' 'LGPL2.1' 'MIT') +makedepends=('acl' 'cryptsetup' 'dbus-core' 'docbook-xsl' 'gobject-introspection' 'gperf' +             'gtk-doc' 'intltool' 'kmod' 'libcap' 'libxslt' 'linux-api-headers' 'pam' 'xz') +options=('!libtool') +source=("http://www.freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.xz" +        'initcpio-hook-udev' +        'initcpio-install-udev' +        'initcpio-install-timestamp' +        '0001-Reinstate-TIMEOUT-handling.patch' +        'locale.sh') +md5sums=('17eff1d31e6e49bf82e129fe57efd59b' +         'e99e9189aa2f6084ac28b8ddf605aeb8' +         '59e91c4d7a69b7bf12c86a9982e37ced' +         'df69615503ad293c9ddf9d8b7755282d' +         '5543be25f205f853a21fa5ee68e03f0d' +         'f15956945052bb911e5df81cf5e7e5dc') + +build() { +  cd "$pkgname-$pkgver" + +  # still waiting on ipw2x00 to get fixed... +  patch -Np1 <"$srcdir/0001-Reinstate-TIMEOUT-handling.patch" + +  ./configure \ +      --libexecdir=/usr/lib \ +      --localstatedir=/var \ +      --sysconfdir=/etc \ +      --enable-split-usr \ +      --enable-introspection \ +      --enable-gtk-doc \ +      --disable-audit \ +      --disable-ima \ +      --with-pamlibdir=/usr/lib/security \ +      --with-distro=arch \ +      --with-usb-ids-path=/usr/share/hwdata/usb.ids \ +      --with-pci-ids-path=/usr/share/hwdata/pci.ids \ +      --with-firmware-path=/usr/lib/firmware/updates:/lib/firmware/updates:/usr/lib/firmware:/lib/firmware + +  make +} + +package_systemd() { +  pkgdesc="system and service manager" +  depends=('acl' 'dbus-core' "libsystemd=$pkgver" 'kmod' 'libcap' 'pam' +           "systemd-tools=$pkgver" 'util-linux' 'xz') +  optdepends=('python-dbus: systemd-analyze' +              'initscripts: legacy support for hostname and vconsole setup' +              'initscripts-systemd: legacy generator for initialization scripts' +              'python-cairo: systemd-analyze' +              'systemd-arch-units: collection of native unit files for Arch daemon/init scripts' +              'systemd-sysvcompat: symlink package to provide sysvinit binaries') +  backup=(etc/dbus-1/system.d/org.freedesktop.systemd1.conf +          etc/dbus-1/system.d/org.freedesktop.hostname1.conf +          etc/dbus-1/system.d/org.freedesktop.login1.conf +          etc/dbus-1/system.d/org.freedesktop.locale1.conf +          etc/dbus-1/system.d/org.freedesktop.timedate1.conf +          etc/systemd/system.conf +          etc/systemd/user.conf +          etc/systemd/logind.conf +          etc/systemd/journald.conf) +  install="systemd.install" + +  make -C "$pkgname-$pkgver" DESTDIR="$pkgdir" install + +  printf "d /run/console 0755 root root\n" > "$pkgdir/usr/lib/tmpfiles.d/console.conf" + +  install -dm755 "$pkgdir/bin" +  ln -s ../usr/lib/systemd/systemd "$pkgdir/bin/systemd" + +  # move bash-completion and symlink for loginctl +  install -Dm644 "$pkgdir/etc/bash_completion.d/systemd-bash-completion.sh" \ +    "$pkgdir/usr/share/bash-completion/completions/systemctl" +  ln -s systemctl "$pkgdir/usr/share/bash-completion/completions/loginctl" +  rm -rf "$pkgdir/etc/bash_completion.d" + +  # don't write units to /etc by default -- we'll enable this on post_install +  # as a sane default +  rm "$pkgdir/etc/systemd/system/getty.target.wants/getty@tty1.service" +  rmdir "$pkgdir/etc/systemd/system/getty.target.wants" + +  ### split off libsystemd (libs, includes, pkgconfig, man3) +  rm -rf "$srcdir/_libsystemd" +  install -dm755 "$srcdir"/_libsystemd/usr/{include,lib/pkgconfig} +  cd "$srcdir"/_libsystemd +  mv "$pkgdir/usr/lib"/libsystemd-*.so* usr/lib +  mv "$pkgdir/usr/include/systemd" usr/include +  mv "$pkgdir/usr/lib/pkgconfig"/libsystemd-*.pc usr/lib/pkgconfig + +  ### split out manpages for sysvcompat +  rm -rf "$srcdir/_sysvcompat" +  install -dm755 "$srcdir"/_sysvcompat/usr/share/man/man8/ +  mv "$pkgdir"/usr/share/man/man8/{telinit,halt,reboot,poweroff,runlevel,shutdown}.8 \ +     "$srcdir"/_sysvcompat/usr/share/man/man8 + +  ### split out systemd-tools/udev +  rm -rf "$srcdir/_tools" +  install -dm755 \ +      "$srcdir"/_tools/etc/udev \ +      "$srcdir"/_tools/usr/bin \ +      "$srcdir"/_tools/usr/include \ +      "$srcdir"/_tools/usr/lib/udev \ +      "$srcdir"/_tools/usr/lib/systemd/system/{sysinit,sockets}.target.wants \ +      "$srcdir"/_tools/usr/lib/girepository-1.0 \ +      "$srcdir"/_tools/usr/share/pkgconfig \ +      "$srcdir"/_tools/usr/share/gir-1.0 \ +      "$srcdir"/_tools/usr/share/gtk-doc/html/{g,lib}udev \ +      "$srcdir"/_tools/usr/share/man/man{1,5,7,8} + +  cd "$srcdir/_tools" +  mv "$pkgdir"/etc/udev etc +  mv "$pkgdir"/etc/{binfmt,modules-load,sysctl,tmpfiles}.d etc +  mv "$pkgdir"/usr/bin/udevadm usr/bin +  mv "$pkgdir"/usr/bin/systemd-machine-id-setup usr/bin +  mv "$pkgdir"/usr/lib/pkgconfig usr/lib +  mv "$pkgdir"/usr/lib/systemd/systemd-udevd usr/lib/systemd +  mv "$pkgdir"/usr/lib/systemd/system/systemd-udev* usr/lib/systemd/system +  mv "$pkgdir"/usr/lib/systemd/system/sysinit.target.wants/systemd-udev* usr/lib/systemd/system/sysinit.target.wants +  mv "$pkgdir"/usr/lib/systemd/system/sockets.target.wants/systemd-udev* usr/lib/systemd/system/sockets.target.wants +  mv "$pkgdir"/usr/lib/lib{,g}udev* usr/lib +  mv "$pkgdir"/usr/lib/{binfmt,sysctl,modules-load,tmpfiles}.d usr/lib +  mv "$pkgdir"/usr/lib/udev usr/lib +  mv "$pkgdir"/usr/include/{libudev.h,gudev-1.0} usr/include +  mv "$pkgdir"/usr/lib/girepository-1.0 usr/lib +  mv "$pkgdir"/usr/share/pkgconfig/udev.pc usr/share/pkgconfig +  mv "$pkgdir"/usr/share/gir-1.0 usr/share +  mv "$pkgdir"/usr/share/gtk-doc/html/{g,lib}udev usr/share/gtk-doc/html +  mv "$pkgdir"/usr/share/man/man7/udev.7 usr/share/man/man7 +  mv "$pkgdir"/usr/share/man/man8/{systemd-{tmpfiles,udevd},udevadm}.8 usr/share/man/man8 +  mv "$pkgdir"/usr/share/man/man1/systemd-{ask-password,delta,detect-virt,machine-id-setup}.1 usr/share/man/man1 +  mv "$pkgdir"/usr/share/man/man5/{binfmt,modules-load,sysctl,tmpfiles}.d.5 usr/share/man/man5 +  mv "$pkgdir"/usr/share/man/man5/{hostname,{vconsole,locale}.conf}.5 usr/share/man/man5 +  mv "$pkgdir"/usr/bin/systemd-{ask-password,delta,detect-virt,tmpfiles,tty-ask-password-agent} usr/bin +  mv "$pkgdir"/usr/lib/systemd/systemd-{ac-power,binfmt,cryptsetup,modules-load,random-seed,remount-fs,reply-password,sysctl,timestamp,vconsole-setup} usr/lib/systemd +} + +package_systemd-sysvcompat() { +  pkgdesc="sysvinit compat for systemd" +  conflicts=('sysvinit' 'initscripts') + +  mv "$srcdir/_sysvcompat"/* "$pkgdir" + +  install -dm755 "$pkgdir/sbin" +  for tool in runlevel reboot shutdown poweroff halt telinit; do +    ln -s '/usr/bin/systemctl' "$pkgdir/sbin/$tool" +  done + +  ln -s '../usr/lib/systemd/systemd' "$pkgdir/sbin/init" + +  install -Dm755 "$srcdir/locale.sh" "$pkgdir/etc/profile.d/locale.sh" +} + +package_libsystemd() { +  pkgdesc="systemd client libraries" +  depends=('xz') + +  mv "$srcdir/_libsystemd"/* "$pkgdir" +} + +package_systemd-tools() { +  pkgdesc='standalone tools from systemd' +  url='http://www.freedesktop.org/wiki/Software/systemd' +  depends=('acl' 'bash' 'glibc' 'glib2' 'libsystemd' 'kmod' 'hwids' 'util-linux' 'kbd') +  optdepends=('cryptsetup: required for encrypted block devices') +  provides=("udev=$pkgver") +  conflicts=('udev') +  replaces=('udev') +  install='systemd-tools.install' + +  mv "$srcdir/_tools/"* "$pkgdir" + +  # the path to udevadm is hardcoded in some places +  install -d "$pkgdir/sbin" +  ln -s ../usr/bin/udevadm "$pkgdir/sbin/udevadm" + +  # udevd is no longer udevd because systemd. why isn't udevadm now udevctl? +  ln -s ../lib/systemd/systemd-udevd "$pkgdir/usr/bin/udevd" + +  # add back tmpfiles.d/legacy.conf +  install -m644 "systemd-$pkgver/tmpfiles.d/legacy.conf" "$pkgdir/usr/lib/tmpfiles.d" + +  # Replace dialout/tape/cdrom group in rules with uucp/storage/optical group +  sed -i 's#GROUP="dialout"#GROUP="uucp"#g; +          s#GROUP="tape"#GROUP="storage"#g; +          s#GROUP="cdrom"#GROUP="optical"#g' "$pkgdir"/usr/lib/udev/rules.d/*.rules + +  # add mkinitcpio hooks +  install -Dm644 "$srcdir/initcpio-install-udev" "$pkgdir/usr/lib/initcpio/install/udev" +  install -Dm644 "$srcdir/initcpio-hook-udev" "$pkgdir/usr/lib/initcpio/hooks/udev" +  install -Dm644 "$srcdir/initcpio-install-timestamp" "$pkgdir/usr/lib/initcpio/install/timestamp" + +  # XXX: kill off coredump rule until the journal can recover coredumps +  # this file needs to come back as part of systemd, not systemd-tools +  rm "$pkgdir/usr/lib/sysctl.d/coredump.conf" +} + +# vim: ft=sh syn=sh et diff --git a/abs/not_built/core/systemd/systemd-tools/initcpio-hook-udev b/abs/not_built/core/systemd/systemd-tools/initcpio-hook-udev new file mode 100644 index 0000000..75da7e4 --- /dev/null +++ b/abs/not_built/core/systemd/systemd-tools/initcpio-hook-udev @@ -0,0 +1,20 @@ +#!/usr/bin/ash + +run_earlyhook() { +    udevd --daemon --resolve-names=never +    udevd_running=1 +} + +run_hook() { +    msg ":: Triggering uevents..." +    udevadm trigger --action=add --type=subsystems +    udevadm trigger --action=add --type=devices +    udevadm settle +} + +run_cleanuphook() { +    udevadm control --exit +    udevadm info --cleanup-db +} + +# vim: set ft=sh ts=4 sw=4 et: diff --git a/abs/not_built/core/systemd/systemd-tools/initcpio-install-timestamp b/abs/not_built/core/systemd/systemd-tools/initcpio-install-timestamp new file mode 100644 index 0000000..259cc70 --- /dev/null +++ b/abs/not_built/core/systemd/systemd-tools/initcpio-install-timestamp @@ -0,0 +1,14 @@ +#!/bin/bash + +build() { +    add_binary /usr/lib/systemd/systemd-timestamp /usr/bin/systemd-timestamp +} + +help() { +    cat <<HELPEOF +Provides support for RD_TIMESTAMP in early userspace, which can be read by a +program such as systemd-analyze to determine boot time. +HELPEOF +} + +# vim: set ft=sh ts=4 sw=4 et: diff --git a/abs/not_built/core/systemd/systemd-tools/initcpio-install-udev b/abs/not_built/core/systemd/systemd-tools/initcpio-install-udev new file mode 100644 index 0000000..7624299 --- /dev/null +++ b/abs/not_built/core/systemd/systemd-tools/initcpio-install-udev @@ -0,0 +1,28 @@ +#!/bin/bash + +build() { +    local rules tool + +    add_file "/etc/udev/udev.conf" +    add_binary /usr/lib/systemd/systemd-udevd /usr/bin/udevd +    add_binary /usr/bin/udevadm + +    for rules in 50-udev-default.rules 60-persistent-storage.rules 80-drivers.rules; do +        add_file "/usr/lib/udev/rules.d/$rules" +    done +    for tool in ata_id scsi_id; do +        add_file "/usr/lib/udev/$tool" +    done + +    add_runscript +} + +help() { +    cat <<HELPEOF +This hook will use udev to create your root device node and detect the needed +modules for your root device. It is also required for firmware loading in +initramfs. It is recommended to use this hook. +HELPEOF +} + +# vim: set ft=sh ts=4 sw=4 et: diff --git a/abs/not_built/core/systemd/systemd-tools/locale.sh b/abs/not_built/core/systemd/systemd-tools/locale.sh new file mode 100644 index 0000000..a4c413e --- /dev/null +++ b/abs/not_built/core/systemd/systemd-tools/locale.sh @@ -0,0 +1,60 @@ +#!/bin/sh + +if [ ! -r /etc/locale.conf ]; then +  return +fi + +. /etc/locale.conf + +if [ "${LANG+x}" = 'x' ]; then +  export LANG +fi + +if [ "${LC_CTYPE+x}" = 'x' ]; then +  export LC_CTYPE +fi + +if [ "${LC_NUMERIC+x}" = 'x' ]; then +  export LC_NUMERIC +fi + +if [ "${LC_TIME+x}" = 'x' ]; then +  export LC_TIME +fi + +if [ "${LC_COLLATE+x}" = 'x' ]; then +  export LC_COLLATE +fi + +if [ "${LC_MONETARY+x}" = 'x' ]; then +  export LC_MONETARY +fi + +if [ "${LC_MESSAGES+x}" = 'x' ]; then +  export LC_MESSAGES +fi + +if [ "${LC_PAPER+x}" = 'x' ]; then +  export LC_PAPER +fi + +if [ "${LC_NAME+x}" = 'x' ]; then +  export LC_NAME +fi + +if [ "${LC_ADDRESS+x}" = 'x' ]; then +  export LC_ADDRESS +fi + +if [ "${LC_TELEPHONE+x}" = 'x' ]; then +  export LC_TELEPHONE +fi + +if [ "${LC_MEASUREMENT+x}" = 'x' ]; then +  export LC_MEASUREMENT +fi + +if [ "${LC_IDENTIFICATION+x}" = 'x' ]; then +  export LC_IDENTIFICATION +fi + diff --git a/abs/not_built/core/systemd/systemd-tools/systemd-tools.install b/abs/not_built/core/systemd/systemd-tools/systemd-tools.install new file mode 100644 index 0000000..7d0bd87 --- /dev/null +++ b/abs/not_built/core/systemd/systemd-tools/systemd-tools.install @@ -0,0 +1,35 @@ +# arg 1:  the new package version +# arg 2:  the old package version + +post_install() { +  systemd-machine-id-setup +} + +post_upgrade() { +  systemd-machine-id-setup + +  if [ "$(vercmp $2 174)" -lt 0 ]; then +    echo " * We now use upstream rules for assigning devices to the 'disk', 'optical'," +    echo "   'scanner' and 'video' groups. Beware of any changes." +    echo " * We no longer create symlinks from /dev/<dev> to /dev/<dev>0." +    echo " * For security reasons, we no longer add devices to the 'storage' group. Use" +    echo "   udisks and friends, or add custom rules to /etc/udev.d/rules/, if you want" +    echo "   this functionality back." +    echo " * We no longer create the static nodes on install needed for an initrd-less" +    echo "   boot where devtmpfs is not mounted by the kernel, this only affects fresh" +    echo "   installs." +  fi +  if [ "$(vercmp $2 175)" -lt 0 ]; then +    echo " * devtmpfs support is now a hard requirement. Users of the official Arch" +    echo "   kernels have this enabled." +  fi +  if [ "$(vercmp $2 181)" -lt 0 ]; then +    echo " * udev-compat has been removed, and should be uninstalled." +    echo " * Framebuffers are no longer blacklisted by default." +    echo " * binaries moved from /sbin to /usr/bin" +  fi +  if [ "$(vercmp $2 181-3)" -lt 0 ]; then +    echo " * if your kernel does not provide /dev/loop-control, you need to manually" +    echo "   load the 'loop' module before using losetup" +  fi +} diff --git a/abs/not_built/core/systemd/systemd-tools/systemd.install b/abs/not_built/core/systemd/systemd-tools/systemd.install new file mode 100644 index 0000000..e369f09 --- /dev/null +++ b/abs/not_built/core/systemd/systemd-tools/systemd.install @@ -0,0 +1,37 @@ +#!/bin/sh + +sd_booted() { +  [ -e sys/fs/cgroup/systemd ] +} + +post_install() { +  # enable getty@tty1 by default, but don't track the file +  systemctl enable getty@.service + +  echo ":: Append 'init=/bin/systemd' to your kernel command line in your" +  echo "   bootloader to replace sysvinit with systemd" +} + +post_upgrade() { +  if sd_booted; then +    # we moved the binary in 44-2 to /usr, so a reexec leads to a +    # coredump. refuse this reexec and warn the user that they should +    # reboot instead. +    if [ "$(vercmp 44-2 "$2")" -eq 1 ]; then +      echo "warning: refusing to reexec systemd. the system should be rebooted." +    else +      systemctl daemon-reload +      systemctl daemon-reexec +    fi +  fi + +  # getty@tty1.service is no longer enabled by default, but we don't want to break +  # existing setups. +  if [ "$(vercmp 183 "$2")" -eq 1 ]; then +    # systemctl seems to be whiny on sysvinit. this will succeed unless something +    # horrific happens, so just mask the error. +    systemctl -q enable getty@.service || true +  fi +} + +# vim:set ts=2 sw=2 et: diff --git a/abs/not_built/core/test-pattern/PKGBUILD b/abs/not_built/core/test-pattern/PKGBUILD new file mode 100644 index 0000000..7ac825b --- /dev/null +++ b/abs/not_built/core/test-pattern/PKGBUILD @@ -0,0 +1,16 @@ +pkgname=test-pattern +pkgver=1.0 +pkgrel=6 +arch=('i686') +pkgdesc="script to create test pattern videos" +depends=(imagemagick) +license=('GPL') +source=(test_pattern.bash) + +build() { +  cd $startdir/src +#  mkdir $startdir/pkg/usr/bin/ +  install -m755 -D test_pattern.bash $startdir/pkg/usr/bin/test_pattern.bash +} + +md5sums=('3a427a5dee0763c6b0a5938fedbde883') diff --git a/abs/not_built/core/test-pattern/test_pattern.bash b/abs/not_built/core/test-pattern/test_pattern.bash new file mode 100755 index 0000000..d220fb0 --- /dev/null +++ b/abs/not_built/core/test-pattern/test_pattern.bash @@ -0,0 +1,326 @@ +#!/bin/bash + +# Set default options to be overriden by command line arguments. + +w=400 +h=325 +rate=50 +TEMPDIR= +unset remove_tempdir +interlaced= +aspect_ratio= +bitrate= + +while getopts ":w:h:t:r:ia:b:" opt; do +  case $opt in +    w) +      w=$OPTARG +      ;; +    h) +      h=$OPTARG +      ;; +    t) +      TEMPDIR=$OPTARG +      ;; +    r) +      rate=$OPTARG +      ;; +    i) +      interlaced=TRUE +      ;; +    a) +      aspect_ratio=$OPTARG +      ;; +    b) +      bitrate=$OPTARG +      ;; +    \?) +      echo -n "\ +Error: Invalid option -$OPTARG + +Usage: +  test_pattern.bash [options] +    -w width +	The width in pixels. +    -h height +        The height in pixels. +    -t tempdir +	Temporary directory for intermediate files. If no directory is specified, one is created and deleted at the end of processing. +    -r fieldrate +    -i +	Generate an interlaced test pattern +    -a n:m +	Aspect ratio of generated video. +    -b bitrate +	Bitrate used for encoding. + +Example: +test_pattern.bash -w 1440 -h 1080 -t temp -r 50 -i -a 16:9 -b 12000k +" +      exit 1 +  esac +done + +if [ -z "$aspect_ratio" ] ; then +  aspect_ratio="${w}:${h}" +fi + +aspectx=$(echo $aspect_ratio | cut -d: -f1) +aspecty=$(echo $aspect_ratio | cut -d: -f2) + +# Calculate some dimensions based on the requested size. + +barw=$((w/32)) +barstep=$((w/90)) +barstart=$((-barw/barstep-1)) + +frames=$((w/2)) + +unity=$((h*2/27)) +unitx=$((unity*aspecty*w/(aspectx*h))) +gridlw=$((unity*3/43)) + +echo unity=$unity +echo unitx=$unitx + +nvgrid=$(((h-gridlw)/unity)) +nhgrid=$(((((w-gridlw)/unitx)-1)/2*2+1)) + +gridstartx=$((w/2-(nhgrid*unitx+gridlw)/2-1)) +gridstarty=$((h/2-(nvgrid*unity+gridlw)/2-1)) + +echo nvgrid=$nvgrid +echo nhgrid=$nhgrid +echo gridstartx=$gridstartx +echo gridstarty=$gridstarty + +echo parsed tempdir $TEMPDIR + +if [ -z "$TEMPDIR" ] ; then +  TEMPDIR=$(mktemp -d --tmpdir=/tmp) +  remove_tempdir=1 +else +  if [ ! -d "$TEMPDIR" ] ; then +    mkdir $TEMPDIR +  fi +fi + +echo parsed tempdir $TEMPDIR $remove_tempdir + +unset checker +checker=( -fill "rgb(192,192,192)" )  +for ((g=-9;g<=7;g=g+2)) ; do +  checker=( "${checker[@]}"  +    -draw  +    "rectangle $((w/2+g*unitx*7/10)),$((gridstarty+unity*3+gridlw)) $((w/2+(g+1)*unitx*7/10)),$((gridstarty+unity*4+gridlw))" ) +done + +checker=( "${checker[@]}" -fill black ) +for ((g=-8;g<=8;g=g+2)) ; do +  checker=( "${checker[@]}"  +    -draw  +    "rectangle $((w/2+g*unitx*7/10)),$((gridstarty+unity*3+gridlw)) $((w/2+(g+1)*unitx*7/10)),$((gridstarty+unity*4+gridlw))" ) +done + +unset stripe +stripe=( -fill white ) +  +for ((g=0;g<5;g++)) ; do +  startx=$((w/2+(3-g*2)*unitx)) +  endx=$((startx+2*unitx)) + +  for ((x=startx;x<endx;x=x+2*(g+1))) ; do  +    stripe=( "${stripe[@]}"  +      -draw  +      "rectangle $x,$((gridstarty+unity*7+gridlw)) $((x+g)),$((gridstarty+unity*9+gridlw))" ) +  done +done + +for ((g=0;g<13;g++)) ; do +  stripe=( "${stripe[@]}"  +    -draw  +    "rectangle $((gridstartx+(nhgrid/2-6+g)*unitx)),$((gridstarty+unity*6+gridlw)) $((gridstartx+(nhgrid/2-6+g)*unitx+gridlw)),$((gridstarty+unity*7+gridlw-1))" )   +done + +convert -size ${w}x${h} xc:white \ +        -fill "rgb(204,204,0)" \ +        -draw "rectangle $((w/2-6*unitx)),$((gridstarty+unity*4+gridlw)) $((w/2-4*unitx)),$((gridstarty+unity*6+gridlw))" \ +        -draw "rectangle $((w/2-6*unitx)),$((gridstarty+unity*11+gridlw)) $((w/2+6*unitx)),$((gridstarty+unity*13+gridlw))" \ +        -fill "rgb(0,204,204)" \ +        -draw "rectangle $((w/2-4*unitx)),$((gridstarty+unity*4+gridlw)) $((w/2-2*unitx)),$((gridstarty+unity*6+gridlw))" \ +        -fill "rgb(0,204,0)" \ +        -draw "rectangle $((w/2-2*unitx)),$((gridstarty+unity*4+gridlw)) $((w/2-0*unitx)),$((gridstarty+unity*6+gridlw))" \ +        -fill "rgb(204,0,204)" \ +        -draw "rectangle $((w/2-0*unitx)),$((gridstarty+unity*4+gridlw)) $((w/2+2*unitx)),$((gridstarty+unity*6+gridlw))" \ +        -fill "rgb(204,0,0)" \ +        -draw "rectangle $((w/2+2*unitx)),$((gridstarty+unity*4+gridlw)) $((w/2+4*unitx)),$((gridstarty+unity*6+gridlw))" \ +        -draw "rectangle $((w/2-unitx/2)),$((gridstarty+unity*11+gridlw)) $((w/2+unitx/2)),$((gridstarty+unity*13+gridlw))" \ +        -fill "rgb(0,0,204)" \ +        -draw "rectangle $((w/2+4*unitx)),$((gridstarty+unity*4+gridlw)) $((w/2+6*unitx)),$((gridstarty+unity*6+gridlw))" \ +\ +	-fill black \ +        -draw "rectangle $((w/2-6*unitx)),$((gridstarty+unity*6+gridlw)) $((w/2+6*unitx)),$((gridstarty+unity*9+gridlw))" \ +	"${stripe[@]}" \ +	-fill black \ +        -draw "rectangle $((w/2-(unitx-gridlw)/2)),$((gridstarty+unity*5+gridlw)) $((w/2+(unitx-gridlw)/2-1)),$((gridstarty+unity*8+gridlw))" \ +	-fill white \ +        -draw "rectangle $((w/2-6*unitx)),$((h/2-gridlw/2)) $((w/2+6*unitx)),$((h/2-gridlw/2+gridlw))" \ +        -draw "rectangle $((w/2-gridlw/2)),$((gridstarty+unity*5+gridlw)) $((w/2-gridlw/2+gridlw)),$((gridstarty+unity*8+gridlw))" \ +\ +        -fill "rgb(0,0,0)" \ +        -draw "rectangle $((w/2-6*unitx)),$((gridstarty+unity*9+gridlw)) $((w/2-4*unitx)),$((gridstarty+unity*10+gridlw))" \ +        -fill "rgb(51,51,51)" \ +        -draw "rectangle $((w/2-4*unitx)),$((gridstarty+unity*9+gridlw)) $((w/2-2*unitx)),$((gridstarty+unity*10+gridlw))" \ +        -fill "rgb(102,102,102)" \ +        -draw "rectangle $((w/2-2*unitx)),$((gridstarty+unity*9+gridlw)) $((w/2-0*unitx)),$((gridstarty+unity*10+gridlw))" \ +        -fill "rgb(153,153,153)" \ +        -draw "rectangle $((w/2-0*unitx)),$((gridstarty+unity*9+gridlw)) $((w/2+2*unitx)),$((gridstarty+unity*10+gridlw))" \ +        -fill "rgb(204,204,204)" \ +        -draw "rectangle $((w/2+2*unitx)),$((gridstarty+unity*9+gridlw)) $((w/2+4*unitx)),$((gridstarty+unity*10+gridlw))" \ +        -fill "rgb(255,255,255)" \ +        -draw "rectangle $((w/2+4*unitx)),$((gridstarty+unity*9+gridlw)) $((w/2+6*unitx)),$((gridstarty+unity*10+gridlw))" \ +\ +        -fill black \ +        -draw "rectangle $((w/2-2*unitx)),$((gridstarty+unity*1+gridlw)) $((w/2+2*unitx)),$((gridstarty+unity*2+gridlw))" \ +        -draw "rectangle $((w/2-6*unitx)),$((gridstarty+unity*2+gridlw)) $((w/2-3*unitx)),$((gridstarty+unity*3+gridlw))" \ +        -draw "rectangle $((w/2+6*unitx)),$((gridstarty+unity*2+gridlw)) $((w/2+3*unitx)),$((gridstarty+unity*3+gridlw))" \ +        -draw "rectangle $((gridstartx+(nhgrid/2-2)*unitx)),$((gridstarty+unity*2+gridlw)) $((gridstartx+(nhgrid/2-2)*unitx+gridlw)),$((gridstarty+unity*3+gridlw))" \ +        -draw "rectangle $((w/2-3*unitx+1)),$((gridstarty+unity*10+gridlw)) $((w/2+3*unitx)),$((gridstarty+unity*11+gridlw))" \ +        -fill white \ +        -draw "rectangle $((gridstartx+(nhgrid/2-2)*unitx)),$((gridstarty+unity*10+gridlw)) $((gridstartx+(nhgrid/2-2)*unitx+gridlw)),$((gridstarty+unity*11+gridlw))" \ +	"${checker[@]}" \ +        ${TEMPDIR}/centre.png + +convert -size ${w}x${h} xc:black \ +	-fill white \ +	-draw "ellipse $((w/2)),$((h/2)) $((6*unitx)),$((6*unity)) 0,360" \ +	${TEMPDIR}/circle.png  + +unset drawgrid +drawgrid=( -fill white ) +for ((g=0;g<=$nhgrid;g++)) ; do +  drawgrid=( "${drawgrid[@]}"  +    -draw  +    "rectangle $((gridstartx+g*unitx)),0 $((gridstartx+g*unitx+gridlw)),$h" ) +done + +for ((g=0;g<=$nvgrid;g++)) ; do +  drawgrid=( "${drawgrid[@]}"  +    -draw  +    "rectangle 0,$((gridstarty+g*unity)) $w,$((gridstarty+g*unity+gridlw))" ) +done + +drawgrid=( "${drawgrid[@]}"  +  -draw "rectangle 0,0 $gridstartx,$h"  +  -draw "rectangle 0,0 $w,$gridstarty"  +  -draw "rectangle $w,$h $((gridstartx+nhgrid*unitx)),0"  +  -draw "rectangle $w,$h 0,$((gridstarty+nvgrid*unity))"  +  -fill black +) + +for ((g=0;g<=$nhgrid;g=g+2)) ; do +  drawgrid=( "${drawgrid[@]}"  +    -draw  +    "rectangle $((gridstartx+g*unitx+gridlw+1)),0 $((gridstartx+(g+1)*unitx)),$((gridstarty-1))" +    -draw +    "rectangle $((gridstartx+g*unitx+gridlw+1)),$((gridstarty+nvgrid*unity+gridlw+1)) $((gridstartx+(g+1)*unitx)),$h"  +  ) +done + +for ((g=0;g<=$nvgrid;g=g+2)) ; do +  drawgrid=( "${drawgrid[@]}"  +    -draw  +    "rectangle 0,$((gridstarty+g*unity+gridlw+1)) $((gridstartx-1)),$((gridstarty+(g+1)*unity-1))" +    -draw +    "rectangle $((gridstartx+nhgrid*unitx+gridlw+1)),$((gridstarty+g*unity+gridlw+1)) $w,$((gridstarty+(g+1)*unity-1))"  +  ) +done + +diagonals=( +	-fill white +	-linewidth 10 +	-fill white +	-draw "line 0,0 $((w/2)),$((h-1))" +	-draw "line 0,0 $((w-1)),$((h/2))" +	-draw "line 0,$((h-1)) $((w/2)),0" +	-draw "line 0,$((h-1)) $((w-1)),$((h/2))" +	-draw "line $((w-1)),0 $((w/2)),$((h-1))" +	-draw "line $((w-1)),0 0,$((h/2))" +	-draw "line $((w-1)),$((h-1)) $((w/2)),0" +	-draw "line $((w-1)),$((h-1)) 0,$((h/2))" ) + +convert -size ${w}x${h} xc:grey50 \ +	"${diagonals[@]}" \ +	"${drawgrid[@]}" \ +        -fill "rgb(51,153,102)" \ +        -draw "rectangle $((gridstartx+(nhgrid/2-7)*unitx+gridlw+1)),$((gridstarty+unity+gridlw+1))    $((gridstartx+(nhgrid/2-6)*unitx-1)),$((h/2))" \ +        -fill "rgb(204,102,102)" \ +        -draw "rectangle $((gridstartx+(nhgrid/2-7)*unitx+gridlw+1)),$((h/2))                         $((gridstartx+(nhgrid/2-6)*unitx-1)),$((gridstarty+unity*12-1))" \ +        -fill "rgb(102,102,255)" \ +        -draw "rectangle $((gridstartx+(nhgrid/2-6)*unitx)),$((gridstarty+unity+gridlw+1))             $((gridstartx+(nhgrid/2-5)*unitx-1)),$((gridstarty+unity*3-1))" \ +        -fill "rgb(153,102,0)" \ +        -draw "rectangle $((gridstartx+(nhgrid/2-6)*unitx)),$((gridstarty+10*unity+gridlw+1))          $((gridstartx+(nhgrid/2-5)*unitx-1)),$((gridstarty+unity*12-1))" \ +        -fill "rgb(128,128,0)" \ +        -draw "rectangle $((gridstartx+(nhgrid/2+7)*unitx+gridlw+1)),$((gridstarty+unity+gridlw+1))    $((gridstartx+(nhgrid/2+8)*unitx-1)),$((h/2))" \ +        -fill "rgb(102,102,255)" \ +        -draw "rectangle $((gridstartx+(nhgrid/2+7)*unitx+gridlw+1)),$((h/2))                         $((gridstartx+(nhgrid/2+8)*unitx-1)),$((gridstarty+unity*12-1))" \ +        -fill "rgb(102,102,255)" \ +        -draw "rectangle $((gridstartx+(nhgrid/2+6)*unitx+gridlw+1)),$((gridstarty+unity+gridlw+1))    $((gridstartx+(nhgrid/2+7)*unitx+gridlw)),$((gridstarty+unity*3-1))" \ +        -fill "rgb(153,102,0)" \ +        -draw "rectangle $((gridstartx+(nhgrid/2+6)*unitx+gridlw+1)),$((gridstarty+10*unity+gridlw+1)) $((gridstartx+(nhgrid/2+7)*unitx+gridlw)),$((gridstarty+unity*12-1))" \ +	${TEMPDIR}/grid.png + +convert -size ${w}x${h} ${TEMPDIR}/grid.png ${TEMPDIR}/centre.png ${TEMPDIR}/circle.png -composite ${TEMPDIR}/background.png + +if [ -n "$interlaced" ] ; then +  interlaced_frame=0 +  convert -size 1x${h} -tile-offset +0+1 pattern:gray50 \ +    -scale ${w}x${h}\! ${TEMPDIR}/interlace.png +fi + +for ((i=0; i < $frames; i++)) ; do + +  prev_image_name=$image_name +  image_name=${TEMPDIR}/test$(printf "%03d" $i).png +  echo creating image $image_name + +  convert -size ${w}x${h} ${TEMPDIR}/background.png \ +	  -fill black \ +	  -draw "rectangle $(((barstart+i)*barstep)),0 $(((barstart+i)*barstep+barw)),${h}" \ +	  -font Arial-Black-Regular \ +	  -pointsize $unity \ +	  -fill white \ +          -stroke black -strokewidth 5 -annotate +$((w-2*i))+$((gridstartx+11*unity)) 'Judder Test' \ +          -stroke none                 -annotate +$((w-2*i))+$((gridstartx+11*unity)) 'Judder Test' \ +	  -depth 8 \ +	  ${image_name} + +  if [ -n "$interlaced" ] ; then +    interlaced_frame=$((interlaced_frame + 1)) + +    if [ $interlaced_frame = 2 ] ; then +      echo interlacing $((i-1)) and $i +      interlaced_frame=0 +      convert -size ${w}x${h} -depth 8 $prev_image_name $image_name ${TEMPDIR}/interlace.png -composite ${TEMPDIR}/interlaced$(printf "%03d" $((i/2))).png +    fi +  fi +done + +bitrate_flags= +if [ -n "$bitrate" ] ; then +  bitrate_flags="-b $bitrate" +fi + +if [ -n "$interlaced" ] ; then +  ffmpeg -r ${rate} -i ${TEMPDIR}/interlaced%03d.png -r ${rate} \ +    -vcodec mpeg2video -flags +ilme+ildct -aspect $aspect_ratio \ +    ${bitrate_flags} -y test.mpg +else +  ffmpeg -r ${rate} -i ${TEMPDIR}/test%03d.png -r ${rate} \ +    -vcodec mpeg2video -aspect $aspect_ratio \ +    ${bitrate_flags} -y test.mpg +fi + +if [ -n "$remove_tempdir" ] ; then +  rm -Rf $TEMPDIR +fi diff --git a/abs/not_built/core/tftp-hpa/LICENSE b/abs/not_built/core/tftp-hpa/LICENSE new file mode 100644 index 0000000..6dade69 --- /dev/null +++ b/abs/not_built/core/tftp-hpa/LICENSE @@ -0,0 +1,32 @@ +/* + * Copyright (c) 1983, 1993 + *      The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *      This product includes software developed by the University of + *      California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ diff --git a/abs/not_built/core/tftp-hpa/PKGBUILD b/abs/not_built/core/tftp-hpa/PKGBUILD new file mode 100644 index 0000000..cf1c9e0 --- /dev/null +++ b/abs/not_built/core/tftp-hpa/PKGBUILD @@ -0,0 +1,29 @@ +# $Id: PKGBUILD 37555 2009-05-02 22:51:20Z eric $ +# Maintainer: dorphell <dorphell@archlinux.org> +# Contributor: Jose Javier  <jojapa@terra.es> +pkgname=tftp-hpa +pkgver=5.0 +pkgrel=2 +pkgdesc="Official tftp server" +arch=('i686' 'x86_64') +url="http://www.kernel.org/pub/software/network/tftp/" +license=('BSD') +depends=('tcp_wrappers') +conflicts=('netkit-tftp') +backup=('etc/conf.d/tftpd') +source=(http://www.kernel.org/pub/software/network/tftp/$pkgname-$pkgver.tar.gz tftpd.rc tftpd.conf LICENSE) +md5sums=('1ae813a94670f0d8c294aafa9f5ecf65' 'a974d02526f19222146c8e3d3b598871'\ +         '414a79dc891bced056d99a9bb790fc9e' '6ce21e27b6fdc1a1adf85c81e42aeecf') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr --mandir=/usr/share/man || return 1 +  make || return 1 +  make INSTALLROOT="${pkgdir}" install || return 1 +  install -d "${pkgdir}/etc/rc.d" +  install -d "${pkgdir}/var/tftpboot" +  install -m755 "${srcdir}/tftpd.rc" "${pkgdir}/etc/rc.d/tftpd" || return 1 +  install -D -m644 "${srcdir}/tftpd.conf" "${pkgdir}/etc/conf.d/tftpd" || return 1 +  rm "${pkgdir}/usr/share/man/man8/tftpd.8" +  install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" +} diff --git a/abs/not_built/core/tftp-hpa/tftpd.conf b/abs/not_built/core/tftp-hpa/tftpd.conf new file mode 100644 index 0000000..4705cc3 --- /dev/null +++ b/abs/not_built/core/tftp-hpa/tftpd.conf @@ -0,0 +1,4 @@ +# +# Parameters to be passed to TFTPD +# +TFTPD_ARGS="-l -s /var/tftpboot"  diff --git a/abs/not_built/core/tftp-hpa/tftpd.rc b/abs/not_built/core/tftp-hpa/tftpd.rc new file mode 100755 index 0000000..b21f87f --- /dev/null +++ b/abs/not_built/core/tftp-hpa/tftpd.rc @@ -0,0 +1,38 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +TFTPD_ARGS= +[ -f /etc/conf.d/tftpd ] && . /etc/conf.d/tftpd + +PID=$(pidof -o %PPID /usr/sbin/in.tftpd) +case "$1" in +  start) +    stat_busy "Starting TFTPD" +    [ -z "$PID" ] && /usr/sbin/in.tftpd ${TFTPD_ARGS} +    if [ $? -gt 0 ]; then +      stat_fail +    else +      add_daemon in.tftpd +      stat_done +    fi +    ;; +  stop) +    stat_busy "Stopping TFTPD" +    [ ! -z "$PID" ]  && kill $PID &> /dev/null +    if [ $? -gt 0 ]; then +      stat_fail +    else +      rm_daemon in.tftpd +      stat_done +    fi +    ;; +  restart) +    $0 stop +    $0 start +    ;; +  *) +    echo "usage: $0 {start|stop|restart}"   +esac +exit 0 diff --git a/abs/not_built/core/tiacx-firmware/PKGBUILD b/abs/not_built/core/tiacx-firmware/PKGBUILD new file mode 100644 index 0000000..1479cf5 --- /dev/null +++ b/abs/not_built/core/tiacx-firmware/PKGBUILD @@ -0,0 +1,22 @@ +# $Id: PKGBUILD 59442 2009-11-23 23:27:25Z giovanni $ +# Maintainer: Tobias Powalowski <tpowa@archlinux.org> +# Contributor: Giovanni Scafora <giovanni@archlinux.org> + +pkgname=tiacx-firmware +pkgver=2 +pkgrel=2 +pkgdesc="Firmware for Texas Instruments ACX100/ACX111 wireless chips." +arch=('any') +url="http://acx100.sourceforge.net/" +license=('MPL') +install=tiacx-firmware.install +depends=() +source=(ftp://ftp.archlinux.org/other/tiacx-firmware/acx-firmware-20060207.tar.bz2) +md5sums=('b8efea38c2c598190604dfa297cc9675') + +build() { +  install -d ${pkgdir}/usr/share +  cp -r fw "${pkgdir}/usr/share/tiacx" +  find ${pkgdir} -type d -exec chmod 755 {} \; +  find ${pkgdir} -type f -exec chmod 644 {} \; +} diff --git a/abs/not_built/core/tiacx-firmware/tiacx-firmware.install b/abs/not_built/core/tiacx-firmware/tiacx-firmware.install new file mode 100644 index 0000000..b83d6fd --- /dev/null +++ b/abs/not_built/core/tiacx-firmware/tiacx-firmware.install @@ -0,0 +1,18 @@ +post_install() { +  cat << 'EOM' +   +  ==> +  ==> PLEASE NOTE: +  ==> The firmware files for ACX100/111 devices are installed in +  ==> /usr/share/tiacx. Please identify the correct file(s) for your +  ==> device and copy them to /lib/firmware. +  ==> +  ==> See http://acx100.sourceforge.net/wiki/Firmware for details. +  ==> + +EOM +} + +post_upgrade() { +  post_install +} diff --git a/abs/not_built/core/tiacx/PKGBUILD b/abs/not_built/core/tiacx/PKGBUILD new file mode 100644 index 0000000..428d993 --- /dev/null +++ b/abs/not_built/core/tiacx/PKGBUILD @@ -0,0 +1,41 @@ +# Contributor: James Rayner <iphitus@gmail.com> + +pkgname=tiacx +pkgver=20080210 +pkgrel=22 +pkgdesc="OpenSource module for Texas Instruments ACX100/ACX111 wireless chips. For stock arch 2.6 kernel" +arch=(i686 x86_64) +url="http://acx100.sourceforge.net/" +license=('MPL') +depends=('wireless_tools' 'kernel26>=2.6.39' 'kernel26<2.6.40' 'tiacx-firmware') +makedepends=('kernel26-headers>=2.6.39' 'kernel26-headers<2.6.40') +install=acx.install +source=(http://downloads.sourceforge.net/sourceforge/acx100/acx-$pkgver.tar.bz2 +        kernel-2.6.27.patch +        kernel-2.6.30.patch +        kernel-2.6.31.patch +        kernel-2.6.33.patch) +options=(!strip) +_kernver=2.6.39-LinHES +md5sums=('7d5ce3215708e4e9f95cf567a9ee3a12' +         '9895f72f8d0c84956b0f6c3b16df0fe8' +         'e2900aee839ce711a7f7606b3e3de36e' +         'dbcb276d77df7801cef58a85c18dfe94' +         '9cd35ea33b8abdd2e4efec485b05477e') + +build() { +    cd $srcdir/acx-$pkgver +    patch -Np1 -i ../kernel-2.6.27.patch  +    patch -Np0 -i ../kernel-2.6.30.patch +    patch -Np1 -i ../kernel-2.6.31.patch +    patch -Np0 -i ../kernel-2.6.33.patch +    make -C /lib/modules/${_kernver}/build M=$(pwd) +} + +package () { +    cd $srcdir/acx-$pkgver +    install -D acx.ko $pkgdir/lib/modules/${_kernver}/kernel/drivers/net/wireless/tiacx/acx.ko +    sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/*.install +    # gzip -9 modules +    find "$pkgdir" -name '*.ko' -exec gzip -9 {} \; +} diff --git a/abs/not_built/core/tiacx/acx.install b/abs/not_built/core/tiacx/acx.install new file mode 100644 index 0000000..971bf32 --- /dev/null +++ b/abs/not_built/core/tiacx/acx.install @@ -0,0 +1,19 @@ +# arg 1:  the new package version +post_install() { +  KERNEL_VERSION='2.6.39-LinHES' +  depmod $KERNEL_VERSION > /dev/null 2>&1  +} + +# arg 1:  the new package version +# arg 2:  the old package version +post_upgrade() { +  KERNEL_VERSION='2.6.39-LinHES' +  depmod $KERNEL_VERSION > /dev/null 2>&1	  +   +} + +# arg 1:  the old package version +post_remove() { +  KERNEL_VERSION='2.6.39-LinHES' +  depmod $KERNEL_VERSION > /dev/null 2>&1	  +} diff --git a/abs/not_built/core/tiacx/kernel-2.6.27.patch b/abs/not_built/core/tiacx/kernel-2.6.27.patch new file mode 100644 index 0000000..f0c114b --- /dev/null +++ b/abs/not_built/core/tiacx/kernel-2.6.27.patch @@ -0,0 +1,82 @@ +diff -Nur acx-20080210.orig/ioctl.c acx-20080210/ioctl.c +--- acx-20080210.orig/ioctl.c	2008-02-10 21:06:42.000000000 +0100 ++++ acx-20080210/ioctl.c	2008-10-10 17:07:32.000000000 +0200 +@@ -489,6 +489,7 @@ + static char* + acx_s_scan_add_station( + 	acx_device_t *adev, ++	struct iw_request_info *info, + 	char *ptr, + 	char *end_buf, + 	struct client *bss) +@@ -503,14 +504,14 @@ + 	iwe.u.ap_addr.sa_family = ARPHRD_ETHER; + 	MAC_COPY(iwe.u.ap_addr.sa_data, bss->bssid); + 	acxlog_mac(L_IOCTL, "scan, station address: ", bss->bssid, "\n"); +-	ptr = iwe_stream_add_event(ptr, end_buf, &iwe, IW_EV_ADDR_LEN); ++	ptr = iwe_stream_add_event(info, ptr, end_buf, &iwe, IW_EV_ADDR_LEN); +  + 	/* Add ESSID */ + 	iwe.cmd = SIOCGIWESSID; + 	iwe.u.data.length = bss->essid_len; + 	iwe.u.data.flags = 1; + 	log(L_IOCTL, "scan, essid: %s\n", bss->essid); +-	ptr = iwe_stream_add_point(ptr, end_buf, &iwe, bss->essid); ++	ptr = iwe_stream_add_point(info, ptr, end_buf, &iwe, bss->essid); +  + 	/* Add mode */ + 	iwe.cmd = SIOCGIWMODE; +@@ -520,7 +521,7 @@ + 		else + 			iwe.u.mode = IW_MODE_ADHOC; + 		log(L_IOCTL, "scan, mode: %d\n", iwe.u.mode); +-		ptr = iwe_stream_add_event(ptr, end_buf, &iwe, IW_EV_UINT_LEN); ++		ptr = iwe_stream_add_event(info, ptr, end_buf, &iwe, IW_EV_UINT_LEN); + 	} +  + 	/* Add frequency */ +@@ -528,7 +529,7 @@ + 	iwe.u.freq.m = acx_channel_freq[bss->channel - 1] * 100000; + 	iwe.u.freq.e = 1; + 	log(L_IOCTL, "scan, frequency: %d\n", iwe.u.freq.m); +-	ptr = iwe_stream_add_event(ptr, end_buf, &iwe, IW_EV_FREQ_LEN); ++	ptr = iwe_stream_add_event(info, ptr, end_buf, &iwe, IW_EV_FREQ_LEN); +  + 	/* Add link quality */ + 	iwe.cmd = IWEVQUAL; +@@ -546,7 +547,7 @@ + 	iwe.u.qual.updated = 7; + 	log(L_IOCTL, "scan, link quality: %d/%d/%d\n", + 			iwe.u.qual.level, iwe.u.qual.noise, iwe.u.qual.qual); +-	ptr = iwe_stream_add_event(ptr, end_buf, &iwe, IW_EV_QUAL_LEN); ++	ptr = iwe_stream_add_event(info, ptr, end_buf, &iwe, IW_EV_QUAL_LEN); +  + 	/* Add encryption */ + 	iwe.cmd = SIOCGIWENCODE; +@@ -556,7 +557,7 @@ + 		iwe.u.data.flags = IW_ENCODE_DISABLED; + 	iwe.u.data.length = 0; + 	log(L_IOCTL, "scan, encryption flags: %X\n", iwe.u.data.flags); +-	ptr = iwe_stream_add_point(ptr, end_buf, &iwe, bss->essid); ++	ptr = iwe_stream_add_point(info, ptr, end_buf, &iwe, bss->essid); +  + 	/* add rates */ + 	iwe.cmd = SIOCGIWRATE; +@@ -570,7 +571,7 @@ + 		if (rate & 1) { + 			iwe.u.bitrate.value = *p * 500000; /* units of 500kb/s */ + 			log(L_IOCTL, "scan, rate: %d\n", iwe.u.bitrate.value); +-			ptr_rate = iwe_stream_add_value(ptr, ptr_rate, end_buf, ++			ptr_rate = iwe_stream_add_value(info, ptr, ptr_rate, end_buf, + 						&iwe, IW_EV_PARAM_LEN); + 		} + 		rate >>= 1; +@@ -625,7 +626,7 @@ + 	for (i = 0; i < ARRAY_SIZE(adev->sta_list); i++) { + 		struct client *bss = &adev->sta_list[i]; + 		if (!bss->used) continue; +-		ptr = acx_s_scan_add_station(adev, ptr, ++		ptr = acx_s_scan_add_station(adev, info, ptr, + 			extra + IW_SCAN_MAX_DATA, bss); + 	} + 	dwrq->length = ptr - extra; diff --git a/abs/not_built/core/tiacx/kernel-2.6.30.patch b/abs/not_built/core/tiacx/kernel-2.6.30.patch new file mode 100644 index 0000000..b5d94a1 --- /dev/null +++ b/abs/not_built/core/tiacx/kernel-2.6.30.patch @@ -0,0 +1,16 @@ +--- wlan_compat.h~	2009-06-12 09:17:30.000000000 +0200 ++++ wlan_compat.h	2009-06-12 09:17:30.000000000 +0200 +@@ -217,13 +217,6 @@ + /*=============================================================*/ + #define WLAN_PACKED	__attribute__ ((packed)) +  +-/* Interrupt handler backwards compatibility stuff */ +-#ifndef IRQ_NONE +-#define IRQ_NONE +-#define IRQ_HANDLED +-typedef void irqreturn_t; +-#endif +- + #ifndef ARPHRD_IEEE80211_PRISM + #define ARPHRD_IEEE80211_PRISM 802 + #endif diff --git a/abs/not_built/core/tiacx/kernel-2.6.31.patch b/abs/not_built/core/tiacx/kernel-2.6.31.patch new file mode 100644 index 0000000..2a89e3c --- /dev/null +++ b/abs/not_built/core/tiacx/kernel-2.6.31.patch @@ -0,0 +1,88 @@ +--- acx-20080210/pci.c	2008-02-10 21:06:42.000000000 +0100 ++++ acx-20080210/pci.c	2009-09-11 22:27:28.000000000 +0200 +@@ -1437,6 +1437,19 @@ +  + static void dummy_netdev_init(struct net_device *ndev) {} +  ++static const struct net_device_ops acx_netdev_ops = { ++	.ndo_open = &acxpci_e_open, ++	.ndo_stop = &acxpci_e_close, ++	.ndo_start_xmit = &acx_i_start_xmit, ++	.ndo_get_stats = &acx_e_get_stats, ++#if IW_HANDLER_VERSION <= 5 ++	.ndo_get_wireless_stats = &acx_e_get_wireless_stats, ++#endif ++	.ndo_set_multicast_list = &acxpci_i_set_multicast_list, ++	.ndo_tx_timeout = &acxpci_i_tx_timeout, ++	.ndo_change_mtu = &acx_e_change_mtu, ++}; ++	 + #ifdef CONFIG_PCI + static int __devinit acxpci_e_probe(struct pci_dev *pdev, const struct pci_device_id *id) + { +@@ -1547,17 +1560,8 @@ + 	} +  + 	ether_setup(ndev); +-	ndev->open = &acxpci_e_open; +-	ndev->stop = &acxpci_e_close; +-	ndev->hard_start_xmit = &acx_i_start_xmit; +-	ndev->get_stats = &acx_e_get_stats; +-#if IW_HANDLER_VERSION <= 5 +-	ndev->get_wireless_stats = &acx_e_get_wireless_stats; +-#endif +-	ndev->wireless_handlers = (struct iw_handler_def *)&acx_ioctl_handler_def; +-	ndev->set_multicast_list = &acxpci_i_set_multicast_list; +-	ndev->tx_timeout = &acxpci_i_tx_timeout; +-	ndev->change_mtu = &acx_e_change_mtu; ++	ndev->wireless_handlers = (struct iw_handler_def *)&acx_ioctl_handler_def; ++	ndev->netdev_ops = &acx_netdev_ops; + 	ndev->watchdog_timeo = 4 * HZ; + 	ndev->irq = pdev->irq; + 	ndev->base_addr = pci_resource_start(pdev, 0); +--- acx-20080210/usb.c	2008-02-10 21:06:42.000000000 +0100 ++++ acx-20080210/usb.c	2009-09-11 22:38:42.000000000 +0200 +@@ -778,6 +778,21 @@ + static void + dummy_netdev_init(struct net_device *ndev) {} +  ++static const struct net_device_ops acxusb_netdev_ops = { ++	.ndo_open = &acxusb_e_open, ++	.ndo_stop = &acxusb_e_close, ++	.ndo_start_xmit = (void *)&acx_i_start_xmit, ++	.ndo_get_stats = (void *)&acx_e_get_stats, ++#if IW_HANDLER_VERSION <= 5 ++	.ndo_get_wireless_stats = (void *)&acx_e_get_wireless_stats, ++#endif ++	.ndo_set_multicast_list = (void *)&acxusb_i_set_rx_mode, ++#ifdef HAVE_TX_TIMEOUT ++	.ndo_tx_timeout = &acxusb_i_tx_timeout, ++#endif ++	.ndo_change_mtu = &acx_e_change_mtu, ++}; ++ + static int + acxusb_e_probe(struct usb_interface *intf, const struct usb_device_id *devID) + { +@@ -845,20 +860,11 @@ + 	/* Register the callbacks for the network device functions */ +  + 	ether_setup(ndev); +-	ndev->open = &acxusb_e_open; +-	ndev->stop = &acxusb_e_close; +-	ndev->hard_start_xmit = (void *)&acx_i_start_xmit; +-	ndev->get_stats = (void *)&acx_e_get_stats; +-#if IW_HANDLER_VERSION <= 5 +-	ndev->get_wireless_stats = (void *)&acx_e_get_wireless_stats; +-#endif + 	ndev->wireless_handlers = (struct iw_handler_def *)&acx_ioctl_handler_def; +-	ndev->set_multicast_list = (void *)&acxusb_i_set_rx_mode; ++	ndev->netdev_ops = &acxusb_netdev_ops; + #ifdef HAVE_TX_TIMEOUT +-	ndev->tx_timeout = &acxusb_i_tx_timeout; + 	ndev->watchdog_timeo = 4 * HZ; + #endif +-	ndev->change_mtu = &acx_e_change_mtu; + #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) && defined(SET_MODULE_OWNER) + 	SET_MODULE_OWNER(ndev); + #endif diff --git a/abs/not_built/core/tiacx/kernel-2.6.33.patch b/abs/not_built/core/tiacx/kernel-2.6.33.patch new file mode 100644 index 0000000..f486009 --- /dev/null +++ b/abs/not_built/core/tiacx/kernel-2.6.33.patch @@ -0,0 +1,11 @@ +--- pci.c~	2010-02-27 19:30:54.000000000 +0100 ++++ pci.c	2010-02-27 19:30:54.000000000 +0100 +@@ -35,7 +35,7 @@ +  + /* Linux 2.6.18+ uses <linux/utsrelease.h> */ + #ifndef UTS_RELEASE +-#include <linux/utsrelease.h> ++#include <generated/utsrelease.h> + #endif +  + #include <linux/compiler.h> /* required for Lx 2.6.8 ?? */ diff --git a/abs/not_built/core/transcode/PKGBUILD b/abs/not_built/core/transcode/PKGBUILD new file mode 100644 index 0000000..4e6718c --- /dev/null +++ b/abs/not_built/core/transcode/PKGBUILD @@ -0,0 +1,76 @@ +# $Id: PKGBUILD 91207 2010-09-24 03:35:03Z eric $ +# Maintainer: +# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca> +# Contributor: roberto <roberto@archlinux.org> + +pkgname=transcode +_sripver=0.3-4 +pkgver=1.1.5 +pkgrel=8 +pkgdesc="A video/DVD ripper and encoder for the terminal/console" +arch=('i686' 'x86_64') +url="http://tcforge.berlios.de/" +license=('GPL') +depends=('imagemagick' 'lzo2' 'libdv' 'libdvdread' 'ffmpeg-svn' 'mjpegtools' +	 'libmpeg2' 'libtheora' 'libxaw'  'libxml2' 'libxv' 'a52dec' 'alsa-lib') +makedepends=('nasm' 'pkg-config') +options=('!libtool' '!makeflags') +source=(http://download2.berlios.de/tcforge/${pkgname}-${pkgver}.tar.bz2 +	http://downloads.sourceforge.net/sourceforge/subtitleripper/subtitleripper-${_sripver}.tgz +	transcode-1.1.5-jpeg-7.patch  transcode-1.1.5-mpa.patch) +md5sums=('41ac6b1c0fe30f3aab286e771fc31b9e' 'c0bd49a88f667c68c4430ad25bbed510'\ +         'af4056b7530a6f147594f676849e7c7b' 'c299cfc6c4be6a5512d1a129f04e5450') +sha1sums=('48c36e06ca0cd1cdc1a9c6a241e231f896eefd26' 'd93ff3578dd5f722c8f4ef16bc0903eec5781a0d'\ +         '9e380c00a3b31725dc3ec483fa7bf5e3d8a8a977' '6f45d9167c3aa15a83cb29545749f55eb1f1e5a2') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  patch -p0 < ../transcode-1.1.5-jpeg-7.patch +  patch -p1 < ../transcode-1.1.5-mpa.patch + + # building from here +  ./configure --prefix=/usr \ +    --enable-sse=no --enable-sse2=no --enable-altivec=no --enable-mmx \ +    --enable-lame --enable-ogg --enable-vorbis --enable-theora \ +    --enable-libdv --enable-libxml2 --enable-v4l \ +    --enable-imagemagick --enable-libjpeg --enable-lzo --enable-mjpegtools \ +    --enable-sdl --enable-freetype2 --enable-a52 --enable-libpostproc \ +    --enable-xvid --enable-x264 --enable-alsa \ +    --enable-libmpeg2 --enable-libmpeg2convert \ +    --with-libxml2-prefix=/usr \ +    --with-mjpegtools-prefix=/usr \ +    --with-imagemagick-prefix=/usr \ +    --with-libdv-includes=/usr \ +    --with-libpostproc-includes=/usr/include/libpostproc \ +    --with-ogg-prefix=/usr \ +    --with-lame-libs=/usr \ +    --with-lzo-libs=/usr/lib \ +    --with-libavcodec-prefix=/usr \ +    --with-libavcodec-includes=/usr/include \ +    --with-libavcodec-libs=/usr/lib + +  make + ############################################################################## + # this imports the latest subtitleripper sources and replaces the internal +  mkdir contrib +  mv "${srcdir}/subtitleripper" contrib/subrip + # removes dependency on libppm, make it dependend on netpbm just failed, argh... +  cd contrib/subrip +  sed -e 's|^\(.*lppm.*\)$|#\1|' \ +      -e 's|^\(.*D_HAVE_LIB_PPM.*\)$|#\1|' \ +      -e 's/DEFINES :=/DEFINES = -DHAVE_GETLINE/' \ +      -i Makefile +  make +} + +package() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  make DESTDIR="${pkgdir}" install + +  cd contrib/subrip +  install -m 755 pgm2txt "${pkgdir}/usr/bin/" +  install -m 755 srttool "${pkgdir}/usr/bin/" +  install -m 755 subtitle2pgm "${pkgdir}/usr/bin/" +  install -m 755 subtitle2vobsub "${pkgdir}/usr/bin/" +  install -m 755 vobsub2pgm "${pkgdir}/usr/bin/" +} diff --git a/abs/not_built/core/transcode/transcode-1.1.5-jpeg-7.patch b/abs/not_built/core/transcode/transcode-1.1.5-jpeg-7.patch new file mode 100644 index 0000000..288932a --- /dev/null +++ b/abs/not_built/core/transcode/transcode-1.1.5-jpeg-7.patch @@ -0,0 +1,16 @@ +http://bugs.gentoo.org/show_bug.cgi?id=294488 + +Patch by: Salah Coronya + +Fix segmentation fault with jpeg-7 and above where dinfo.do_fancy_upsampling isn't set by default to FALSE anymore. + +--- export/export_jpg.c ++++ export/export_jpg.c +@@ -91,6 +91,7 @@ +  +   jpeg_set_quality(&encinfo, quality, TRUE); +   encinfo.raw_data_in = TRUE; ++  encinfo.do_fancy_downsampling = FALSE; +   encinfo.in_color_space = JCS_YCbCr; +  +   encinfo.comp_info[0].h_samp_factor = 2; diff --git a/abs/not_built/core/transcode/transcode-1.1.5-mpa.patch b/abs/not_built/core/transcode/transcode-1.1.5-mpa.patch new file mode 100644 index 0000000..e7fb0fc --- /dev/null +++ b/abs/not_built/core/transcode/transcode-1.1.5-mpa.patch @@ -0,0 +1,10 @@ +--- transcode-1.1.5-old/export/aud_aux.c	2010-07-04 12:44:31.867550180 -0500 ++++ transcode-1.1.5/export/aud_aux.c	2010-07-04 13:41:01.253292529 -0500 +@@ -347,6 +347,7 @@ +     //-- set parameters (bitrate, channels and sample-rate) -- +     //-------------------------------------------------------- +     memset(&mpa_ctx, 0, sizeof(mpa_ctx));          // default all ++    mpa_ctx.codec_type  = CODEC_TYPE_AUDIO; +     mpa_ctx.bit_rate    = vob->mp3bitrate * 1000;  // bitrate dest. +     mpa_ctx.channels    = vob->dm_chan;            // channels +     mpa_ctx.sample_rate = vob->a_rate; diff --git a/abs/not_built/core/trapproto/PKGBUILD b/abs/not_built/core/trapproto/PKGBUILD new file mode 100644 index 0000000..9f6830c --- /dev/null +++ b/abs/not_built/core/trapproto/PKGBUILD @@ -0,0 +1,22 @@ +# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $ +#Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=trapproto +pkgver=3.4.3 +pkgrel=2 +pkgdesc="X11 Trap extension wire protocol" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +source=(http://xorg.freedesktop.org/releases/individual/proto/${pkgname}-$pkgver.tar.bz2) +md5sums=('3b713239e5e6b269b31cb665563358df') +sha1sums=('b108aa39a7bfde530d5cd347fda7c58770d5b8da') + +build() { +  cd ${srcdir}/${pkgname}-$pkgver +  ./configure --prefix=/usr +  make || return 1 +} +package() { +  cd ${srcdir}/${pkgname}-$pkgver +  make DESTDIR=${pkgdir} install || return 1 +} diff --git a/abs/not_built/core/ttf-bitstream-vera/PKGBUILD b/abs/not_built/core/ttf-bitstream-vera/PKGBUILD new file mode 100644 index 0000000..4fa76b8 --- /dev/null +++ b/abs/not_built/core/ttf-bitstream-vera/PKGBUILD @@ -0,0 +1,24 @@ +# $Id: PKGBUILD 77738 2010-04-17 15:45:51Z thayer $ +# Maintainer: Thayer Williams <thayer@archlinux.org> +# Contributor: dorphell <dorphell@archlinux.org> + +pkgname=ttf-bitstream-vera +pkgver=1.10 +pkgrel=7 +pkgdesc="Bitstream vera fonts" +arch=('any') +license=('custom') +url="http://www.gnome.org/fonts" +depends=('fontconfig' 'xorg-fonts-encodings' 'xorg-font-utils') +install=vera.install +source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/1.10/${pkgname}-${pkgver}.tar.bz2) +md5sums=(bb22bd5b4675f5dbe17c6963d8c00ed6) + +build() { +  cd ${srcdir}/${pkgname}-${pkgver} +  mkdir -p  ${pkgdir}/usr/share/fonts/TTF +  install -m644 *.ttf ${pkgdir}/usr/share/fonts/TTF/ +  mkdir -p ${pkgdir}/usr/share/licenses/ttf-bitstream-vera +  install -m644 COPYRIGHT.TXT ${pkgdir}/usr/share/licenses/ttf-bitstream-vera/LICENSE +} + diff --git a/abs/not_built/core/ttf-bitstream-vera/vera.install b/abs/not_built/core/ttf-bitstream-vera/vera.install new file mode 100644 index 0000000..4f5212e --- /dev/null +++ b/abs/not_built/core/ttf-bitstream-vera/vera.install @@ -0,0 +1,20 @@ +post_install() { +  echo -n "Updating font cache... " +  fc-cache -f > /dev/null +  mkfontscale /usr/share/fonts/TTF +  mkfontdir /usr/share/fonts/TTF +  echo "done." +} + +post_upgrade() { +  post_install $1 +} + +post_remove() { +  post_install $1 +} + +op=$1 +shift + +$op $* diff --git a/abs/not_built/core/tweaker/PKGBUILD b/abs/not_built/core/tweaker/PKGBUILD new file mode 100644 index 0000000..85df000 --- /dev/null +++ b/abs/not_built/core/tweaker/PKGBUILD @@ -0,0 +1,45 @@ +pkgname=tweaker +pkgver=1 +pkgrel=56 +pkgdesc="applies tweaks to the baseline configuration and attempts to optimize settings for the hardware it finds" +arch=('i686' 'x86_64') + +depends=('bash' 'perl' 'perl-dbi' 'perl-exception-class' 'perl-log-log4perl' 'perl-log-dispatch' 'perl-getopt-lucid' 'perl-list-member' 'perl-class-data-inheritable' 'perl-devel-stacktrace' 'perl-xml-twig')  + +source=(tweaker.sh log4perl.conf) + +license=('GPL2') +#groups=('pvr') + + +install=tweaker.install +build() { +   TWEAKER_ROOT=usr/LH/tweaker +   mkdir -p $startdir/pkg/$TWEAKER_ROOT +   mkdir -p $startdir/pkg/$TWEAKER_ROOT/{bin,fs,tcf} +   mkdir -p $startdir/pkg/etc/profile.d +   mkdir -p $startdir/pkg/usr/lib/perl5/vendor_perl/Tweaker/  +    +   cd $startdir +   # executables +   install -m0777 -D bin/*  $startdir/pkg/$TWEAKER_ROOT/bin +    +   # parallel root directory structure used for seeding configuration files +   # Ensure shell variables are configured at start; ensure $TWEAKER_ROOT/bin is in $PATH +   cp -rp fs $startdir/pkg/$TWEAKER_ROOT/ +   chmod -R  0777 $startdir/pkg/$TWEAKER_ROOT/  +    +   # Tweaker configuration files +   install -m0555 -D tcf/*  $startdir/pkg/$TWEAKER_ROOT/tcf + +   # Tweaker-centric log4perl configuration +   #install -m0755 log4perl.conf $startdir/pkg/etc/log4perl.conf +   install -m0755 log4perl.conf $startdir/pkg/$TWEAKER_ROOT + +   install -m0755 tweaker.sh $startdir/pkg/etc/profile.d/tweaker.sh + +   # Copy our tweaker Perl modules for general use +   install -m0555  lib/Tweaker/* $startdir/pkg/usr/lib/perl5/vendor_perl/Tweaker/ +} +md5sums=('77fab526e866b273091e6816135ef25f' +         'e897b87dd308f9562d0867de9fab2de0') diff --git a/abs/not_built/core/tweaker/bin/LocalIPCheck.pl b/abs/not_built/core/tweaker/bin/LocalIPCheck.pl new file mode 100755 index 0000000..b744fb6 --- /dev/null +++ b/abs/not_built/core/tweaker/bin/LocalIPCheck.pl @@ -0,0 +1,47 @@ +#!/usr/bin/perl + +# Valid private IP ranges + +my @LOCAL_IP_RANGES = ("10.0.0.0", "10.255.255.255", +		       "172.16.0.0", "172.31.255.255", +		       "192.168.0.0", "192.168.255.255"); + +# input: A dotted quad IP address. + +# output: 0 if a public (internet) address +#       : 8 if a class A private (LAN) address +#       : 12 if a class B private (LAN) address +#       : 16 if a class C private (LAN) address + +sub get_IP_number () { +    my ($dotted_quad) = @_; +    my $IP_number=0; +     +    split(/\./, $dotted_quad); + +    for (my $i=0; $i < 4; $i++) { +	$IP_number=$IP_number+@_[3-$i]*(2**(8*$i)); +    } +    return $IP_number; +} + +while(<>) { +    chop; +    my $IPnumber=&get_IP_number($_); +    my $class=16; + +    while (@LOCAL_IP_RANGES) { +	my $highIPnumber = &get_IP_number(pop(@LOCAL_IP_RANGES)); +	my $lowIPnumber = &get_IP_number(pop(@LOCAL_IP_RANGES)); + +	if (($lowIPnumber <= $IPnumber) && ($highIPnumber >= $IPnumber)) { +	    exit($class); # PRIVATE IP +	} else { +	    $class += 4; +	} +    } +} + +exit(0); # PUBLIC IP + + diff --git a/abs/not_built/core/tweaker/bin/SQLtweaker.sh b/abs/not_built/core/tweaker/bin/SQLtweaker.sh new file mode 100755 index 0000000..5760e5d --- /dev/null +++ b/abs/not_built/core/tweaker/bin/SQLtweaker.sh @@ -0,0 +1,86 @@ +# This isn't to be run.  Do not chmod it +x and try - it won't do anything. + +# This function will change or create entries in various tables within +# the mythconverg database. +# If the key value already exists in $SQL_FILENAME, then it is changed.  Otherwise, +# it will create the necessary SQL to make the entry if it does not exist. +# +# For the purposes of this function, a key is defined as any unique string of text +# after which a comma and a value or values follow.  E.g.: +# in an entry like this: +# INSERT INTO `videotypes` VALUES (6,'mpeg','',0,1); +# we can define the key as "6" if we wanted, but that would be ambiguous.  So we can instead +# define it as "6,'mpeg'" and we gain the ability to control the values of the fields after +# the first two.  So this function call +# +# ChangeOrMakeEntry "6,'mpeg'" "'mplayer -fs -zoom', 0,1" "videotypes" +# +# would change the above SQL entry into this: +# +# INSERT INTO `videotypes` VALUES (6,'mpeg','mplayer -fs -zoom', 0,1); + +# parameters: name, value, table + +# Some tables have simple key, value pairs.  Others have several potential keys and values. +# The 'settings' table is a simple key, value pair table, plus the name of the system on which +# the settings hold true, e.g.: +# INSERT INTO `settings` VALUES ('FooHat','Peas with sauce:drizzle','MythTVhost'); +### +function ChangeOrMakeEntry { +    NAME=$1	; shift +    VALUE=$1	; shift +    TABLE=$1	; shift + +    if [ `grep -c "$NAME" $SQL_FILENAME` == 0 ]; then +	# There is no setting for $SETTING_NAME, so we need to make it +	echo "INSERT INTO \`$TABLE\`" VALUES \($NAME,$VALUE\)\; >> $SQL_FILENAME +    else +	# There is a setting for $SETTING_NAME, so make sure it's what we want it to be. +	sed -i "s@$NAME,.*);@$NAME,$VALUE);@" $SQL_FILENAME +    fi +} + +# shortcut function to ChangeOrMakeEntry for 'settings' table +function ChangeOrMakeSetting { +    NAME=$1	; shift +    VALUE=$1	; shift + +    ChangeOrMakeEntry "$NAME" "$VALUE, 'MythTVhost'" "settings" +} + +# shortcut function to ChangeOrMakeEntry for 'settings' table +function ChangeOrMakeKeybinding { +    NAME=$1	; shift +    VALUE=$1	; shift + +    ChangeOrMakeEntry "$NAME" "$VALUE, 'MythTVhost'" "keybindings" +} + +# This only works for North America at the moment. +LocaleCode() { # no arguments.  Obtain a zipcode or locale, either using +    # SchedulesDirect subscription info or by asking the user. + +    mysqldump --tab=/tmp --opt mythconverg videosource +    # Get the first data direct "Video Source" +    dd_src=$(awk -F'\t' '$3 == "schedulesdirect1" {print $0; exit 0;}' </tmp/videosource.txt) +    /bin/rm -f /tmp/videosource.txt +    if [ -n "$dd_src" ]; then +	# we have a chance at getting a usable locale from the schedulesdirect data +	    cd /usr/LH/ +	     +	    SCHEDULESDIRECT_USERNAME=$(echo "$dd_src" | cut -f4) +	    SCHEDULESDIRECT_PASSWORD=$(echo "$dd_src" | cut -f7) +	     +	    sed -i "s/<userName>.*<\/userName>/<userName>$SCHEDULESDIRECT_USERNAME<\/userName>/" xtvd.xml +	    sed -i "s/<password>.*<\/password>/<password>$SCHEDULESDIRECT_PASSWORD<\/password>/" xtvd.xml +	    datadirect-parse.pl &> /dev/null +	     +	    SQL_LocaleCode=`grep -i postalCode \`ls -1tr *xml | tail -1\` | perl -e '%zips=""; while(<>) { split(/postalCode=/); @_[1] =~ m/(\d{5})/; if ($1) { $zips{$1}=$1; } } @keys = keys %zips; if ($#keys == 1) { print values %zips,"\n"; }'` + +	    if [ "$SQL_LocaleCode" == "" ]; then # zipcode was ambiguous or was not extractable +		echo -e "\nPlease enter your US zipcode or Canadian Postal Code:" +		read SQL_LocaleCode +	    fi +	    echo $SQL_LocaleCode > /tmp/locale.txt # remember this just long enough to make use of it in PostSQLTweaker.sh +    fi +} diff --git a/abs/not_built/core/tweaker/bin/create-linhes-sql.sh b/abs/not_built/core/tweaker/bin/create-linhes-sql.sh new file mode 100755 index 0000000..478eed0 --- /dev/null +++ b/abs/not_built/core/tweaker/bin/create-linhes-sql.sh @@ -0,0 +1,166 @@ +#!/bin/bash + +# Written by Bob Igo from the MythTV Store at http://MythiC.TV +# Email: bob@stormlogic.com +# +# If you run into problems with this script, please send me email + +# PURPOSE: +# -------------------------- +# This script automates the creation of a new LinHES.sql based +# on the contents of the current mythconverg database. + +if [ `whoami` != "root" ]; then +    echo "This script must be run as root." +    exit -1 +fi + +# Every file we may create, edit, or delete +########################################### +export LINHES_SQL_PROTOTYPE=/data/database/LinHES.sql-new +export MYTHTV_SQL_OLD=/data/database/LinHES.sql-backup +export TMPFILE=/tmp/LinHES.sql-tmp + +echo "" +echo " ** ONLY CESMAN SHOULD EVER NEED TO RUN THIS SCRIPT **" +echo "" +echo " WARNING: This will archive your mythconverg database to a file," +echo " then delete mythconverg from MySQL.  It will then launch mythbackend" +echo " to repopulate mythconverg, with a goal of creating the smallest-possible" +echo " mythconverg database that MythTV can load without complanining." +echo " Every attempt will be made to restore your original database, but" +echo " ***no guarantee is made***." +echo "" +echo " ** ONLY CESMAN SHOULD EVER NEED TO RUN THIS SCRIPT **" +echo "" + +echo -n "Proceed? [y|N] " +read FEAR + +if [ "$FEAR" != "y" ] && [ "$FEAR" != "Y" ]; then +    echo "***NO OPERATION WILL BE PERFORMED***" +    exit +fi + +# Archive the current mythconverg table from the MySQL database: +echo "DROP DATABASE IF EXISTS mythconverg; CREATE DATABASE mythconverg; USE mythconverg;" > $MYTHTV_SQL_OLD +mysqldump mythconverg >> $MYTHTV_SQL_OLD + +# delete the mythconverg database from MySQL +killall mythbackend +mysql -e "DROP DATABASE IF EXISTS mythconverg; CREATE DATABASE mythconverg;" + +mythtv-setup --geometry 640x480 2>&1 > /dev/null & + +echo "*" +echo "* 1) PICK ANY LANGUAGE WHEN PROMPTED." +echo "* 2) AGREE TO THE SCHEMA UPGRADE." +echo "* 3) PRESS ENTER HERE WHEN THE MYTHTV-SETUP MENU LAUNCHES." +echo "*" +read KEYPRESS + +mysql -e "USE mythconverg; \ +INSERT INTO settings VALUES ('SecurityPin','0000','"`hostname`"'); \ +INSERT INTO settings VALUES ('BackendServerIP','127.0.0.1','"`hostname`"'); \ +INSERT INTO storagegroup VALUES ('\N', 'Default','"`hostname`"','/');" + +echo "*" +echo "* 1) EXIT MYTHTV-SETUP" +echo "* 2) PRESS ENTER HERE WHEN READY TO CONTINUE." +echo "*" +read KEYPRESS + +# let mythbackend repopulate mythconverg from scratch +mythbackend 2>&1 > /dev/null & +sleep 3 + +mythfrontend --geometry 640x480 2>&1 > /dev/null & +echo "*" +echo "* 1) EXIT MYTHFRONTEND" +echo "* 2) PRESS ENTER HERE WHEN READY TO CONTINUE." +echo "*" +read KEYPRESS + +killall mythfrontend +killall mythbackend + +# save off the mostly-pristine MythTV myconverg database +# (It would be 100% pristine, but mythbackend won't run unless BackendServerIP is given a value, +# and both mythtv-setup and the mythfrontend won't proceed until you've picked a language.) + +# Edit the pristine MythTV mythconverg database so that we can use it to prime +# the database during a semi-automated LinHES installation. + +SQL_FILENAME=$LINHES_SQL_PROTOTYPE + +# load our library functions +. /usr/LH/tweaker/bin/SQLtweaker.sh +# +echo "*" +echo "* Writing $LINHES_SQL_PROTOTYPE..." +echo "*" +# +echo "/*" > $LINHES_SQL_PROTOTYPE +echo " * MythTV raw SQL creation file." >> $LINHES_SQL_PROTOTYPE +echo " */" >> $LINHES_SQL_PROTOTYPE +echo "" >> $LINHES_SQL_PROTOTYPE +echo "-- #################################################################### --" >> $LINHES_SQL_PROTOTYPE +echo "-- Drop any initial database:" >> $LINHES_SQL_PROTOTYPE +echo "DROP DATABASE IF EXISTS mythconverg;" >> $LINHES_SQL_PROTOTYPE +echo "" >> $LINHES_SQL_PROTOTYPE +echo "-- #################################################################### --" >> $LINHES_SQL_PROTOTYPE +echo "-- Create an empty new database:" >> $LINHES_SQL_PROTOTYPE +echo "CREATE DATABASE mythconverg;" >> $LINHES_SQL_PROTOTYPE +echo "GRANT ALL ON mythconverg.* TO mythtv@localhost IDENTIFIED BY \"mythtv\";" >> $LINHES_SQL_PROTOTYPE +echo "FLUSH PRIVILEGES;" >> $LINHES_SQL_PROTOTYPE +echo "GRANT CREATE TEMPORARY TABLES ON mythconverg.* TO mythtv@localhost IDENTIFIED BY \"mythtv\";" >> $LINHES_SQL_PROTOTYPE +echo "FLUSH PRIVILEGES;" >> $LINHES_SQL_PROTOTYPE +echo "USE mythconverg;" >> $LINHES_SQL_PROTOTYPE +echo "" >> $LINHES_SQL_PROTOTYPE +echo "-- #################################################################### --" >> $LINHES_SQL_PROTOTYPE +echo "-- Create all the tables:" >> $LINHES_SQL_PROTOTYPE +echo "" >> $LINHES_SQL_PROTOTYPE + +# Dump the database, removing all unneeded DB inserts - when LinHES launches mythtv-setup and mythfrontend, +# anything undefined will be given default values by the applications, except for the INSERTs below. +mysqldump mythconverg | sed -e "s/`hostname`/MythTVhost'/g" -e "s/AUTO_INCREMENT=[0-9]* //g" > $TMPFILE +grep -v "INSERT INTO" $TMPFILE >> $LINHES_SQL_PROTOTYPE +sed "s/,(/,\n(/g" $TMPFILE | grep DBSchema | sed "s/\(.*\)NULL),/INSERT INTO settings VALUES \1'MythTVhost');/g" >> $LINHES_SQL_PROTOTYPE +echo "INSERT INTO settings VALUES ('SecurityPin','0000','MythTVhost');" >> $LINHES_SQL_PROTOTYPE +echo "INSERT INTO settings VALUES ('BackendServerIP','127.0.0.1','MythTVhost');" >> $LINHES_SQL_PROTOTYPE +echo "INSERT INTO settings VALUES ('MasterServerIP','127.0.0.1','MythTVhost');" >> $LINHES_SQL_PROTOTYPE +echo "INSERT INTO settings VALUES ('MasterServerPort','6543','MythTVhost');" >> $LINHES_SQL_PROTOTYPE +echo "INSERT INTO settings VALUES ('Theme', 'LinHES','MythTVhost');" >> $LINHES_SQL_PROTOTYPE +echo "INSERT INTO settings VALUES ('HostMyhostname', 'type_hostname_here','MythTVhost');" >> $LINHES_SQL_PROTOTYPE +echo "INSERT INTO storagegroup VALUES ('\N', 'Default','MythTVhost','/');" >> $LINHES_SQL_PROTOTYPE + +rm $TMPFILE + +# +echo "*" +echo "...DONE" +echo "*" +# + +echo "*" +echo "* PRESS ENTER HERE WHEN READY TO RESTORE THE OLD DATABASE" +echo "* AND RE-LAUNCH MYTHBACKEND" +echo "*" +read KEYPRESS + +# +echo "Restoring original database from $MYTHTV_SQL_OLD..." +# +# Restore the original mythconverg database +cat $MYTHTV_SQL_OLD | mysql 2>&1 > /dev/null +# +echo "...DONE" +# + +# +echo "restarting mythbackend..." +# +mythbackend & +# +echo "...DONE" +# diff --git a/abs/not_built/core/tweaker/bin/tweaker.pl b/abs/not_built/core/tweaker/bin/tweaker.pl new file mode 100755 index 0000000..28519df --- /dev/null +++ b/abs/not_built/core/tweaker/bin/tweaker.pl @@ -0,0 +1,333 @@ +#!/usr/bin/perl -w + +# Copyright 2007, 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + +package Tweaker; + +use strict; +use Getopt::Lucid qw( :all ); +# see http://search.cpan.org/~dagolden/Getopt-Lucid-0.16/lib/Getopt/Lucid.pm for usage details +use XML::Twig; +# see http://xmltwig.com for usage details +use Log::Log4perl qw(get_logger); + +# see http://search.cpan.org/~mschilli/Log-Log4perl-1.14/lib/Log/Log4perl.pm for usage details +# http://www.perl.com/pub/a/2002/09/11/log4perl.html is highly recommended as well + +use Tweaker::Script; +use Tweaker::Definitions; + +# To install the above modules: +# -- +# sudo cpan install Getopt::Lucid XML::Twig Log::Log4perl List::Member +# choose the defaults for all options, agree to install all dependencies +# Copy TweakerDefinitions.pm to /etc/perl + +use vars qw($debug); +use vars qw($interactivity); +use vars qw($logfile); +use vars qw($twig); + +my $bottom = Tweaker::Definitions::get_global_variable_value("bottom"); +my $optional = Tweaker::Definitions::get_global_variable_value("optional"); +my $minimal = Tweaker::Definitions::get_global_variable_value("minimal"); +my $null = Tweaker::Definitions::get_global_variable_value("null"); + +# As each tweak tag is processed, this subroutine is called.  Here we will +# see if any previous tweak tag had the same name attribute.  If so, we will +# replace the previous tweak tag with this new tweak tag's contents. +sub uniquify_tweaks { +    my ($twig, $this_tweak) = @_; +    my $tweak_name = $this_tweak->att('name'); +    my $previous_tweak = $this_tweak->prev_sibling( qq{tweak[\@name="$tweak_name"]}); +    my $logger = get_logger('tweaker'); + +    # If the tweak's name is found elsewhere, replace the first +    # instance with the latest one, then delete the latest one. +    if ($previous_tweak) { +	my $log_entry; +	# Requirement 6.3.1 +	$log_entry = sprintf("\tReplacing\n\t\t%s\n\twith\n\t\t%s\n", $previous_tweak->sprint, $this_tweak->sprint); +	$logger->info($log_entry); +	$this_tweak->cut; +	$this_tweak->replace($previous_tweak); +    } +} + +$twig = XML::Twig->new(load_DTD => 1, +		       expand_external_ents => 1, +		       twig_handlers => { 'tweak' => \&uniquify_tweaks } +    ); + +# Requirement 4.2 +# Print advice on usage and invocation. +sub help () { +    my $logger = get_logger('tweaker'); +    $logger->fatal("USAGE:\n$0 --tcf file1.tcf [--tcf file2.tcf ...] [--help]"); +    exit; +} + +sub print_tcf { +    my(@tweaks) = @_; +    my $logger = get_logger('tweaker'); + +    $logger->debug('<?xml version="1.0"?>');   # print the XML declaration +    $logger->debug('<!DOCTYPE stats SYSTEM "tcf.dtd">'); +    $logger->debug('<tcf>');                   # then the root element start tag + +    foreach my $tweak (@tweaks) {    # the list of tweaks +	$logger->debug($tweak->sprint);               # print the xml content of the element  +    } + +    $logger->debug("</tcf>\n");                # close the document +} + +# For each tweak, invoke the option that was selected. +# Requirement 9.1.5 +# Requirement 13 +sub invoke_selected_options { +    my @tweaks= $twig->root->children;   # get the tweak list +    my $logger = get_logger('tweaker'); +    my $has_selected_option; +    my $recommendationlevel = $bottom; + +    foreach my $tweak (@tweaks) {    # the list of tweaks +	if ($tweak->att('name')) { +	    $has_selected_option=0; +	    $logger->debug("TWEAK ", $tweak->att('name')); +	    my @options = $tweak->descendants('option'); +	    foreach my $option (@options) { +		if ($option->first_child('selected')) { +		    $has_selected_option++; +		    $recommendationlevel = $option->first_child('selected')->text; +		    $logger->info("\t", $tweak->att('name'), " : ", $option->att('name'), " is selected (recommendationlevel is ", $recommendationlevel, ")"); +		    # If the selected option is merely $optional, and we are in $minimal interactivity mode, we +		    # really don't know if this option is useful for the user.  Just skip it. +		    if (($recommendationlevel == $optional) && ($interactivity eq $minimal)) { # UI Requirement 9.1.4 +			$logger->debug("\tSKIPPING"); +			next; +		    } elsif (($tweak->first_child('script')->text) && +			     ($tweak->first_child('script')->text) ne $null) { +			$logger->debug("\tRUNNING"); +			my $command = sprintf("%s --implement %s", $tweak->first_child('script')->text, $option->att('name')); +			$logger->info("\t\tRunning '$command' to run a tweak."); +			 +			open(COMMAND, "$command|"); +			while(<COMMAND>) { # should only be one line of results +			    if ($_) { +				$logger->debug("script returned text: ", $_); +			    } else { +				$logger->debug("no return value from script"); +			    } +			} +			close(COMMAND); +		    } else { +			$logger->debug("\tNO SCRIPT TO RUN"); +		    } +		} +	    } +	    if ($has_selected_option == 0) { +		$logger->debug("\tNO OPTION SELECTED"); +	    } +	} +    } +} + + +# Parses an XML file in TCF format, loading its information into memory. +# Rely on the DTD to mandate required tags. +sub parse_tcf { +    my $this_tcf = shift(@_); +    my $logger = get_logger('tweaker'); + +    $logger->info("Parsing $this_tcf..."); +    $twig->safe_parsefile($this_tcf) || $logger->fatal("Bad TCF $this_tcf: $@"); +    if ($@) { +	return 0; +    } +    # ??? For Requirement 5.1, we need to catch parse errors here +    # $twig now has the parsed $this_tcf +    $logger->info("DONE parsing $this_tcf"); + +    my $root= $twig->root;         # get the root of the twig (tcf) +    my @tweaks= $root->children;   # get the tweak list + +    print_tcf(@tweaks) if $debug; + +    return 1; # successfully parsed $this_tcf +} + +sub parse_core_tcf { +    my ($core_tcf_pathname) = @_; +    my $logger = get_logger('tweaker'); + +    $logger->debug("core TCF pathname: $core_tcf_pathname"); + +    # Requirement 5.1 +    if (!(parse_tcf($core_tcf_pathname))) { +	# Part of Requirement 6.4.1 +	$logger->fatal("$0 requires at least one valid .tcf file."); +	$logger->fatal("$core_tcf_pathname, or a .tcf that it includes, did not parse."); +	exit;     +    } +    #    $twig->root->print; +} + +sub process_parameters () { +    # Accept these parameters: +    # -- +    my @parameters = ( +	Switch("help")->anycase,  # Requirement 4.2 +	Switch("debug")->anycase, +	# part of Requirement 8 +	Param("interactivity")->default($minimal), # side-effect of UI Requirement 9 for v0.7 +	); + +    my $opt = Getopt::Lucid->getopt( \@parameters ); +    my $help = $opt->get_help; +    $debug = $opt->get_debug; +    $interactivity = $opt->get_interactivity; + +    if ($interactivity ne $minimal) { # side-effect of UI Requirement 9 for v0.7 +	my $logger = get_logger('tweaker'); +	$logger->warn("This version of Tweaker ignores requests for $interactivity interactivity and defaults to $minimal."); +	$interactivity = $minimal; +    } + +    if ( $help > 0 ) { +	help; +    } +} + +# Requirement 6.6: Tweaker shall determine Recommendation Levels and default Options +# Requirements 6.6.1 and 6.6.2 +sub post_process_tweaks { +    my $logger = get_logger('tweaker'); + +    # Requirement 6.6.1 + +    my $root= $twig->root;         # get the root of the twig (tcf) +    my @tweaks= $root->children;   # get the tweak list + +    foreach my $tweak (@tweaks) { +	$logger->debug("#######"); +	my @options = $tweak->descendants('option'); + +	my $name_of_most_recommended_option=""; +	my $most_recommended_option; +	my $highest_recommendationlevel=$bottom; + +	foreach my $option (@options) { +	    $logger->debug("===== OPTION"); +	    $logger->debug($option->sprint); + +	    my $recommendationlevel = $option->first_child('recommendationlevel'); +	    if ($recommendationlevel) { +		# Requirement 6.6.1.1 +		$logger->debug("\t+++"); +		$logger->debug("\tUsing predefined recommendation level:", $recommendationlevel->text); +	    } else { +		# Requirement 6.6.1.4 +		my $result="optional"; +		my $explanation=""; + +		if (($tweak->first_child('script')->text) && +		    ($tweak->first_child('script')->text) ne $null) { +		    # Requirement 6.6.1.2 +		    $logger->debug("\t---"); +		    $logger->debug("\tThis has no defined recommendation level."); + +		    # Get the name of the script for this tweak and invoke it with the name of the option. +		    my $command = sprintf("%s --poll %s", $tweak->first_child('script')->text, $option->att('name')); +		    $logger->debug("\t\tRunning '$command' to see what it should be."); +		    # Create a recommendationlevel element and populate it with the script's return value. + +		    open(COMMAND, "$command|"); +		    while(<COMMAND>) { # should only be one line of results +			$logger->debug("Got this: ", $_); +			if ($_) { +			    chop; +			    my @text = split(/\|/); +			    $result = $text[0]; +			    if ($text[1]) { +				$explanation = $text[1]; +			    } +			} +		    } +		    close(COMMAND); +		} +		# Requirement 6.6.1.3 +		$option->set_field ( 'recommendationlevel', $result ); +		if ($explanation) { +		    $option->set_field ( 'explanation', $explanation ); +		} +		#$logger->debug("*** Paste results: ", $option->sprint); +	    } +	    # Requirement 6.6.2 : Auto-select the Option with the highest non-negative Recommendation Level. +	    # Requirement 6.6.2.1 : If there is a tie, Tweaker shall auto-select the first Option with the highest Recommendation Level. +	    $recommendationlevel = $option->first_child('recommendationlevel'); +	    if ($recommendationlevel) { +		if ($name_of_most_recommended_option) { +		    $logger->debug("comparing ", $name_of_most_recommended_option, "'s recommendationlevel ($highest_recommendationlevel) to ", $recommendationlevel->text, " (",Tweaker::Definitions::get_global_variable_value($recommendationlevel->text),")"); +		} else { +		    $logger->debug("considering recommendationlevel ", $recommendationlevel->text, " (",Tweaker::Definitions::get_global_variable_value($recommendationlevel->text),")"); +		} +		if (($highest_recommendationlevel < Tweaker::Definitions::get_global_variable_value($recommendationlevel->text)) +		    && (Tweaker::Definitions::get_global_variable_value($recommendationlevel->text) >= 0)) { +		    $highest_recommendationlevel = Tweaker::Definitions::get_global_variable_value($recommendationlevel->text); +		    $name_of_most_recommended_option = $option->att('name'); +		    $most_recommended_option = $option; +		    $logger->debug("now recommending: ", $name_of_most_recommended_option, " at level ", $highest_recommendationlevel); +		} +	    } else { +		$logger->error("No recommendationlevel defined for ", $option->att('name')); +	    } +	    # Select the best option, based on recommendation level +	} +	if ($most_recommended_option) { +	    $logger->debug("(1) BEST OPTION: ", $most_recommended_option->sprint); +	    $most_recommended_option->set_field ( 'selected', $highest_recommendationlevel ); +	} +    } +} + +sub main () { +    my $tweaker_root; + +    if (!($tweaker_root = Tweaker::Script::get_environment_variable("\$TWEAKER_ROOT"))) { +	Log::Log4perl->easy_init(); +	my $logger = get_logger(); +	$logger->fatal("\$TWEAKER_ROOT not defined.  Exiting."); +	exit -1; +    } +    my $core_tcf_path = "$tweaker_root/tcf"; +    my $core_tcf = "tweaker-core.tcf"; +    my $core_tcf_pathname = "$core_tcf_path/$core_tcf"; +    my $log4perl_conf = "$tweaker_root/log4perl.conf"; + +    Log::Log4perl::init_and_watch($log4perl_conf,10); +     +    process_parameters; +    parse_core_tcf($core_tcf_pathname); +    post_process_tweaks; +    # ??? need to add Requirement 11 here +    invoke_selected_options; +} + +main; + +#my @tweaks= $twig->root->children;   # get the tweak list +#print_tcf(@tweaks) if $debug; diff --git a/abs/not_built/core/tweaker/bin/twk_EXAMPLE.pl b/abs/not_built/core/tweaker/bin/twk_EXAMPLE.pl new file mode 100755 index 0000000..7dfb075 --- /dev/null +++ b/abs/not_built/core/tweaker/bin/twk_EXAMPLE.pl @@ -0,0 +1,134 @@ +# This is not an executable.  It provides an example of how you would implement a +# Tweaker Script.  For details on the functions provided by Tweaker::Script, +# such as execute_shell_command, get_environment_variable, connect_to_db, etc. +# see Tweaker/Script.pm +# +# See the corresponding EXAMPLE.tcf for the Tweak that would correspond to this script. + +# +# BEGIN EXAMPLE +# + +#!/usr/bin/perl -w + +# Copyright 2009 YOUR NAME HERE +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + +use Switch; +use Tweaker::Script; +package Tweaker::Script; + +# List all the options that this script supports.  Make sure it matches what's in +# the corresponding .tcf entry. +set_known_options( 'option1', 'option2', 'option3' ); + +# Try to implement the given option. +sub implement_option { +    my($option) = @_; + +    # If you need a subroutine that is specific to the task of implementing an option, +    # define it inside the above subroutine. +    sub my_subroutune { +	# ... +    } +     +    $dbconnectionstring = get_mythtv_connection_string(); +	 +    if (connect_to_db("DBI:mysql:$dbconnectionstring")) { # You may not have to do this.  It's only when you need to change MySQL settings for MythTV. +	switch ($option) { +	    # List all the options that this script supports.  You can have as many as you like. +	    case "option1" { +		# Perform the actions necessary to implement option1. +		# You may want to call do_query, change_or_make_setting, or change_or_make_entry to make changes to the MySQL database. +		# You may want to call execute_shell_command to make changes from the shell. +	    } +	    case "option2" { +		# Perform the actions necessary to implement option2. +		# You may want to call do_query, change_or_make_setting, or change_or_make_entry to make changes to the MySQL database. +		# You may want to call execute_shell_command to make changes from the shell. +	    } +	    case "option3" { +		# Perform the actions necessary to implement option3. +		# You may want to call do_query, change_or_make_setting, or change_or_make_entry to make changes to the MySQL database. +		# You may want to call execute_shell_command to make changes from the shell. +	    } +	} +    } else { # You may not have to do this.  It's only when you need to change MySQL settings for MythTV. +	my $logger = get_logger('tweaker.script'); +	$logger->error("ERROR: Unable to connect to mythconverg database"); +	$logger->error("ERROR: Unable to implement option $option."); +	exit -1; # You may not have to do this.  It's only when you need to change MySQL settings for MythTV. +    } # You may not have to do this.  It's only when you need to change MySQL settings for MythTV. +    disconnect_from_db(); # You may not have to do this.  It's only when you need to change MySQL settings for MythTV. +} + +# Poll the system to see what recommendationlevel the given option has on the system. +sub poll_options { +    my($option) = @_; + +    # If you need a subroutine that is specific to the task of implementing an option, +    # define it inside the above subroutine. +    sub my_subroutune { +	# ... +    } +     +    $dbconnectionstring = get_mythtv_connection_string(); +	 +    if (connect_to_db("DBI:mysql:$dbconnectionstring")) { # You may not have to do this.  It's only when you need to change MySQL settings for MythTV. +	switch ($option) { +	    # List all the options that this script supports.  You can have as many as you like. +	    case "option1" { +		# Perform the actions necessary to determine a recommendation level for option1. +		# You may want to call do_query to query to the MySQL database. +		# You may want to call execute_shell_command to check things in the shell. +		# When you're done, you can use the recommendation_level subroutine to return the +		#   resulting recommendation level. +	    } +	    case "option2" { +		# Perform the actions necessary to determine a recommendation level for option2. +		# You may want to call do_query to query to the MySQL database. +		# You may want to call execute_shell_command to check things in the shell. +		# When you're done, you can use the recommendation_level subroutine to return the +		#   resulting recommendation level. +	    } +	    case "option3" { +		# Perform the actions necessary to determine a recommendation level for option3. +		# You may want to call do_query to query to the MySQL database. +		# You may want to call execute_shell_command to check things in the shell. +		# When you're done, you can use the recommendation_level subroutine to return the +		#   resulting recommendation level. +	    } +	} +    } else { # You may not have to do this.  It's only when you need to change MySQL settings for MythTV. +	exit -1; # You may not have to do this.  It's only when you need to change MySQL settings for MythTV. +    } # You may not have to do this.  It's only when you need to change MySQL settings for MythTV. +    disconnect_from_db(); # You may not have to do this.  It's only when you need to change MySQL settings for MythTV. +} + +# Unimplemented in 0.7 +sub check_option { +    help; +} + +# Unimplemented in 0.7 +sub count_iterations { +    help; +} + +process_parameters; # mandatory + +# +# END EXAMPLE +# diff --git a/abs/not_built/core/tweaker/bin/twk_RAM.pl b/abs/not_built/core/tweaker/bin/twk_RAM.pl new file mode 100755 index 0000000..2eea598 --- /dev/null +++ b/abs/not_built/core/tweaker/bin/twk_RAM.pl @@ -0,0 +1,81 @@ +#!/usr/bin/perl -w + +# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + +use Switch; +use Tweaker::Script; +package Tweaker::Script; + +set_known_options( 'low', 'medium', 'high' ); + +# ??? Need to make this update a class variable so it only ever needs to run once. +sub determine_RAM_size() { +    my $result = execute_shell_command("cat /proc/meminfo | grep MemTotal"); +    if ($result =~ m/.*MemTotal:\s*(\d+) .*/) { +	return $1; +    } +    return 0; +} + +# Try to implement the given option. +sub implement_option { +    my($option) = @_; + +    $dbconnectionstring = get_mythtv_connection_string(); +	 +    if (connect_to_db("DBI:mysql:$dbconnectionstring")) { +	# MythTV's GUI allows setting this value in multiples of 4700kB. +	# We will arbitrarily set the HDRingbufferSize to the value that is closest to +	# 3.3% of the total RAM. +	my $RAM_size = determine_RAM_size(); +	my $ringbuffer_size = int($RAM_size * 0.033 / 4700) * 4700; +	change_or_make_setting('HDRingbufferSize', $ringbuffer_size) || exit -1; + +	# change any existing mplayer cache setting to one based on available RAM size +	# We will arbitrarily set the cache size to 1/16 of available RAM +	my $cachesize = int($RAM_size / 16); +	execute_shell_command("if [[ `grep -e cache.*=.*\$ /etc/mplayer/mplayer.conf` ]]; then sed -i 's/cache.*=.*/cache=$cachesize/g' /etc/mplayer/mplayer.conf; else echo 'cache=$cachesize' >> /etc/mplayer/mplayer.conf; fi") || exit -1; + +	# If there's enough RAM, make mtd run by default. +	# ??? unimplemented +    } else { +	exit -1; +    } +    disconnect_from_db(); +} + +# Poll the system to see what recommendationlevel the given option has on the system. +sub poll_options { +    my($option) = @_; +    my $fudge_factor = .985; +    my $low_RAM = int($fudge_factor * 512*1024);     # ~512MB +    my $medium_RAM = int($fudge_factor * 1024*1024); # ~1GB +    my $high_RAM = int($fudge_factor * 2048*1024);   # ~2GB + +    threshold_test($option, determine_RAM_size(), "RAM", $low_RAM, $medium_RAM, $high_RAM); +} + +# Unimplemented in 0.7 +sub check_option { +    help; +} + +# Unimplemented in 0.7 +sub count_iterations { +    help; +} + +process_parameters; diff --git a/abs/not_built/core/tweaker/bin/twk_audio.pl b/abs/not_built/core/tweaker/bin/twk_audio.pl new file mode 100755 index 0000000..47a2415 --- /dev/null +++ b/abs/not_built/core/tweaker/bin/twk_audio.pl @@ -0,0 +1,390 @@ +#!/usr/bin/perl -w + +# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + +use Switch; +use Tweaker::Script; +package Tweaker::Script; + +set_known_options( 'analogstereo', 'analogsurround', 'digital' ); + +# Poll the system to find the digital output device. +sub poll_for_digital_output_device { +    my $card=-1; +    my $device=-1; +    my $poll_command = "aplay -l | grep card"; + +    my @digital_matches = ( "digital", "IEC958" ); +     +    my $results = execute_shell_command($poll_command); +    if ($results) { +	foreach my $digital_match (@digital_matches) { +	    if ($results =~ /card (\d):.*device (\d).*$digital_match.*/i) { +		$card = $1; +		$device = $2; +	    } +	} +    } else { +	recommendation_level("not available", "No audio devices detected."); +	exit(-1); +    } +    return ($card, $device); +} + +# Try to implement the given option. +sub implement_option { +    my($option) = @_; +    use vars qw($card); +    use vars qw($device); +    ($card, $device) = poll_for_digital_output_device; +    use vars qw($asound_conf); +    $asound_conf = "/etc/asound.conf"; +    use vars qw($mplayer_conf); +    $mplayer_conf = "/etc/mplayer/mplayer.conf"; +    use vars qw($xine_conf); +    $xine_conf = "/home/mythtv/.xine/config"; +     +    sub generate_asound_conf { +	my($option) = @_; +	my $command1; +	my $command2; + +	switch ($option) { +	    case "analogstereo" { +		# Analog stereo usually needs no asound.conf, but sometimes it needs to be there to +		# support more than one app using sound simultaneously. +		$command1 = "[ -e $asound_conf ] && /bin/cp $asound_conf $asound_conf-TWEAKERBACKUP"; +		# Assumption: The proper analog device is always device 0. +		if ($card >= 0) { +		    $command2 = "[ -e $asound_conf ] && sed -i 's/hw:.,./hw:$card,0/g' $asound_conf"; +		} else { +		    $command2 = "[ -e $asound_conf ] && sed -i 's/hw:.,./hw:0,0/g' $asound_conf"; +		} +	    } +	    case "analogsurround" { +		# Not supported yet. +	    } +	    case "digital" { +		# Digital audio starts with an asound.conf that references the +		# hardware address on the sound device corresponding to digital +		# output. +		$command1 = "/bin/cp \$TWEAKER_ROOT/fs$asound_conf /etc/"; +		if (($card >= 0) && ($device >= 0)) { +		    $command2 = "[ -e $asound_conf ] && sed -i 's/hw:.,./hw:$card,$device/g' $asound_conf"; +		} else { +		    my $logger = get_logger('tweaker.script'); +		    $logger->error("ERROR: Unable to poll for digital sound output device."); +		    exit(-1); +		} +	    } +	} +	if (my $error = execute_shell_command($command1)) { +	    my $logger = get_logger('tweaker.script'); +	    $logger->error("ERROR: $error"); +	    $logger->error("ERROR: Unable to implement option $option."); +	    exit(-1); +	} +	if (my $error = execute_shell_command($command2)) { +	    my $logger = get_logger('tweaker.script'); +	    $logger->error("ERROR: $error"); +	    $logger->error("ERROR: Unable to implement option $option."); +	    exit(-1); +	} +	my $logger = get_logger('tweaker.script'); +	$logger->info("Generated $asound_conf for $option audio."); +    } + +    sub edit_mplayer_conf { +	my($option) = @_; +	# delete any old entries that Tweaker made, relevant to this particular edit +	my $delete_old_tweaker_edits = "[ -e $mplayer_conf ] && sed -i '/^.*a[o,c,f].*=.*#TWEAKER/d' $mplayer_conf && sed -i '/^speed.*=.*#TWEAKER/d' $mplayer_conf"; +	# comment out old entries that some other process may have made +	my $comment_out_external_edits = "[ -e $mplayer_conf ] && sed -i 's/^\\(a[o,c,f].*=.*\\)/#\\1/g' $mplayer_conf && sed -i 's/^\\(speed.*=.*\\)/#\\1/g' $mplayer_conf"; +	my $command1; +	my $command2=""; +	($card, $device) = poll_for_digital_output_device; +	my $logger = get_logger('tweaker.script'); + +	if (my $error = execute_shell_command("$delete_old_tweaker_edits && $comment_out_external_edits")) { +	    $logger->error("ERROR: $error"); +	    $logger->error("ERROR: Unable to implement option $option."); +	    exit(-1); +	} + +	switch($option) { +	    case "analogstereo" { +		# No additional work needed; the above commands comment out ao and ac entries, +		# leaving a baseline which works with analog stereo. +	    } +	    case "analogsurround" { +		# Not supported yet. +	    } +	    case "digital" { +		$command2 = "echo -e 'ac=hwac3,hwdts, #TWEAKER\nao=alsa:device=plughw=$card.$device #TWEAKER' >> $mplayer_conf"; +		if (my $error = execute_shell_command($command2)) { +		    $logger->error("ERROR: $error"); +		    $logger->error("ERROR: Unable to implement option $option."); +		    exit(-1); +		} + +		my @digital_audio_device_patterns = ( +		    [ +		     # Asus T3-M2NC51PV onboard audio +		     ".*0403.*10de.*026c.*1043.*821f", "T3-M2NC51PV", "[ -e $mplayer_conf ] && sed -i 's/plughw.* #TWEAKER/spdif #TWEAKER/g' $mplayer_conf" +		    ] +		    ); + +		foreach my $pattern_and_workaround_command (@digital_audio_device_patterns) { +		    my $pattern=@$pattern_and_workaround_command[0]; +		    my $name=@$pattern_and_workaround_command[1]; +		    my $workaround_command=@$pattern_and_workaround_command[2]; +		     +		    if (execute_shell_command('lspci -mn | grep -e "'.$pattern.'"')) { +			$logger->info("Applying workaround for $name audio"); +			execute_shell_command($workaround_command); +			last; +		    } +		} +	    } +	} +	# for all options +	$command2 = "echo -e 'af=scaletempo=stride=30:overlap=.50:search=10 #TWEAKER\nspeed=1.0 #TWEAKER' >> $mplayer_conf"; +	if (my $error = execute_shell_command($command2)) { +	    $logger->error("ERROR: $error"); +	    $logger->error("ERROR: Unable to implement option $option."); +	    exit(-1); +	} +	 +	$logger->info("Edited $mplayer_conf for $option audio."); +    } + +    sub edit_xine_conf { +	my($option)=@_; +	# delete any old entries that Tweaker made, relevant to this particular edit +	my $delete_old_tweaker_edits = "[ -e $xine_conf ] && sed -i -e '/^.*audio.output.speaker_arrangement.*#TWEAKER/d' -e '/^.*audio.synchronization.passthrough_offset.*#TWEAKER/d' $xine_conf"; +	# comment out entries that some other process may have made +	my $comment_out_external_edits = "[ -e $xine_conf ] && sed -i -e 's/^\\(audio.output.speaker_arrangement.*\\)/#\\1/g' -e 's/^\\(audio.synchronization.passthrough_offset.*\\)/#\\1/g' $xine_conf"; +	my $logger = get_logger('tweaker.script'); + +	if (my $error = execute_shell_command("$delete_old_tweaker_edits && $comment_out_external_edits")) { +	    $logger->error("ERROR: $error"); +	    $logger->error("ERROR: Unable to implement option $option."); +	    exit(-1); +	} + +	my $command1; + +	switch($option) { +	    case "analogstereo" { +		$command1 = "echo 'audio.output.speaker_arrangement:Stereo 2.0 #TWEAKER' >> $xine_conf"; +	    } +	    case "analogsurround" { +		# Not supported yet. +	    } +	    case "digital" { +		$command1 = "echo -e 'audio.output.speaker_arrangement:Pass Through #TWEAKER\naudio.synchronization.passthrough_offset:$device #TWEAKER' >> $xine_conf"; +	    } +	} +	if (my $error = execute_shell_command($command1)) { +	    $logger->error("ERROR: $error"); +	    $logger->error("ERROR: Unable to implement option $option."); +	    exit(-1); +	} +	$logger->info("Edited $xine_conf for $option audio."); +    } + +    sub reload_modules { +	my($option) = @_; +	my $command = "update-modules; depmod -a; rmmod snd-pcm-oss; modprobe snd-pcm-oss"; +	my $logger = get_logger('tweaker.script'); + +	if (my $error = execute_shell_command($command)) { +	    $logger->error("ERROR: $error"); +	    $logger->error("ERROR: Unable to implement option $option."); +	    exit(-1); +	} +	$logger->info("Reloaded sound modules for $option audio."); +    } +     +    sub set_mixer_values { +	my($option) = @_; +	my $logger = get_logger('tweaker.script'); + +	# Some sound devices work poorly in their default state, so we will load in a known-good +	# state for them. + +	my @digital_audio_device_patterns = ( +	    [ +	     # Chaintech AV-710 +	     ".*0401.*1412.*1724.*1412.*1724", "AV710" +	    ], +	    [ +	     # Realtek ALC888 High Definition onboard Audio +	     ".*0403.*10de.*055c.*1565.*820c", "ALC888" +	    ] +	    ); +	 +	foreach my $pattern_and_name_pairing (@digital_audio_device_patterns) { +	    my $name=@$pattern_and_name_pairing[1]; +	    my $pattern=@$pattern_and_name_pairing[0]; +	     +	    if (execute_shell_command('lspci -mn | grep -e "'.$pattern.'"')) { +		$logger->info("Applying ALSA state workaround for $name audio"); +		execute_shell_command("/bin/cp \$TWEAKER_ROOT/fs/var/lib/alsa/$name.asound.state /var/lib/alsa/asound.state"); +		execute_shell_command("alsactl restore"); +		last; +	    } +	} + +	# Now, do what works for all sound devices. +	 +	my $command = "su - mythtv -c \"aumix -v 70 -m 0 -l 0 -l R -w 70\""; # ok for analog and digital + +	if (my $error = execute_shell_command($command)) { +	    $logger->error("ERROR: $error"); +	    $logger->error("ERROR: Unable to implement option $option."); +	    exit(-1); +	} + +	if ("$option" eq "digital") { +	    # Poll system for IEC958 controls, and try to turn them all 'on' +	    $command = "amixer scontrols | grep IEC958"; +	    my @results = split('\n', execute_shell_command($command)); +	    foreach my $line (@results) { +		if ($line =~ /Simple mixer control (.*),.*/i) { +		    $command = "su - mythtv -c \"amixer set $1 on\""; # Tries to set all IEC958 devices to 'on' +		    # but some are just placeholders and can't be turned 'on', therefore don't error out if we fail +		    execute_shell_command($command); +		} +	    } +	} +	execute_shell_command("alsactl store"); # persist the above change(s) +	$logger->info("Reset mixer volume levels for $option audio."); +    } + +    sub edit_mythtv_configuration { +	my($option)=@_; + +	$dbconnectionstring = get_mythtv_connection_string(); +	 +	if (connect_to_db("DBI:mysql:$dbconnectionstring")) { +	    switch ($option) { +		case "analogstereo" { +		    change_or_make_setting('AC3PassThru', '0') || exit -1; +		    change_or_make_setting('DTSPassThru', '0') || exit -1; +		    change_or_make_setting('MTDac3Flag', '0') || exit -1; +		    change_or_make_setting('MythControlsVolume', '1') || exit -1; +		} +		case "analogsurround" { +		    # Not supported yet. +		} +		case "digital" { +		    change_or_make_setting('AC3PassThru', '1') || exit -1; +		    change_or_make_setting('DTSPassThru', '1') || exit -1; +		    change_or_make_setting('MTDac3Flag', '1') || exit -1; +		    change_or_make_setting('MythControlsVolume', '0') || exit -1; +		} +	    } +	    change_or_make_setting('AudioOutputDevice', 'ALSA:default') || exit -1; +	    change_or_make_setting('MixerDevice', 'ALSA:default') || exit -1; +	    change_or_make_setting('MusicAudioDevice', 'default') || exit -1; +	} else { +	    exit -1; +	} +	disconnect_from_db(); +    } + +    generate_asound_conf($option); +    edit_mplayer_conf($option); +    #edit_xine_conf($option); +    #reload_modules($option); +    edit_mythtv_configuration($option); +    set_mixer_values($option); +} + +# Try to get a Recommendation Level for $option. +sub poll_options { +    my($option) = @_; +    my @digital_audio_device_patterns = ( +	[ +	 # Pattern matches for PCI IDs of perfect devices, comma-separated within the brackets +	 [ ".*0403.*8086.*284b.*8086.*2504", # Intel DG965WH onboard audio +	   ".*0403.*10de.*026c.*1043.*821f", # Asus T3-M2NC51PV onboard audio +	   ".*0403.*8086.*293e.*8086.*3001"  # Intel AusDragon onboard audio +	 ], +	 "optional|Your sound device works very well in digital mode.  Unless you don't have a receiver that can accept digital inputs, you should use digital mode.", +	], +	[ +	 # Pattern matches for PCI IDs of suboptimal devices, comma-separated within the brackets +	 [ ".*0401.*1412.*1724.*1412.*1724", # Chaintech AV-710 PCI card (regressions in R5.5) +	 ], +	 "inadvisable|Your sound device is known to have some problems in digital mode, but you may try it if you like, starting at low volume in your receiver.", +	], +	[ +	 [ ], # Leave blank for unknown devices +	 "optional|Your sound device may or may not work well in digital mode.  Please tell us if it works, and how well.", +	] +	); + +    switch ($option) { +	case "analogstereo" { +	    my ($card, $device) = poll_for_digital_output_device; +	    if (($card >= 0) && ($device >= 0)) { # A digital output device was detected. +		recommendation_level("optional"); +	    } else { +		recommendation_level("recommended", "You seem to have no digital output option.  If this is not true, please tell us."); +	    } +	} +	case "analogsurround" { +	    my ($card, $device) = poll_for_digital_output_device; +	    recommendation_level("unsupported", "No configuration data exists yet for this option."); +	} +	case "digital" { +	    my ($card, $device) = poll_for_digital_output_device; +	    if (($card >= 0) && ($device >= 0)) { # A digital output device was detected. +		my $recommendation_return_string; +		foreach my $pattern_and_recommendation_pairing (@digital_audio_device_patterns) { +		    $recommendation_return_string=@$pattern_and_recommendation_pairing[1]; +		    foreach my $patterns (@$pattern_and_recommendation_pairing[0]) { +			foreach my $pattern (@$patterns) { +			    if (execute_shell_command('lspci -mn | grep -e "'.$pattern.'"')) { +				recommendation_level($recommendation_return_string); +				return; +			    } +			} +		    } +		} +		# Because we didn't return a recommendation level above, return a default recommendation level. +		recommendation_level($recommendation_return_string); +		return; +	    } else { # No digital output device was detected. +		recommendation_level("not available"); +	    } +	} +    } +} + +# Unimplemented in 0.7 +sub check_option { +    help; +} + +# Unimplemented in 0.7 +sub count_iterations { +    help; +} + +process_parameters; diff --git a/abs/not_built/core/tweaker/bin/twk_cpu.pl b/abs/not_built/core/tweaker/bin/twk_cpu.pl new file mode 100755 index 0000000..8d5e563 --- /dev/null +++ b/abs/not_built/core/tweaker/bin/twk_cpu.pl @@ -0,0 +1,163 @@ +#!/usr/bin/perl -w + +# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + +use Switch; +use Tweaker::Script; +package Tweaker::Script; + +set_known_options( 'low', 'medium', 'high' ); + +# These values are in BOGOMIPS.  They are arbitrary and will be refined, if possible, +# as more data is collected.  Obviously, BOGOMIPS are not the best CPU benchmarking +# tool. +my $rrd_threshold = 1650; # bogomips at or below this mean rrdtool is too much of a strain +#my $rrd_threshold = 3365; + +my $low_threshold = 2500; +my $medium_threshold = 4050; +my $high_threshold = 7400; + +# Poll the system to find the CPU type.  Currently, we use bogomips (the bogosity of which +# is in the name itself) to guess how powerful the CPU is. +sub get_CPU_strength { +    my $bogomips=0; +    my @results = split("\n", execute_shell_command("cat /proc/cpuinfo | grep bogomips")); +    foreach my $result (@results) { # Count the bogomips for each core.  Again, this is rough. +	if ($result =~ /bogomips\s*:\s*(\d+.\d+)/) { +	    $bogomips+=$1; +	} +    } +    return $bogomips; +} + +# ??? Need to test for storage groups and LVM +# Specific to KnoppMyth +sub get_HDD_size { +    my @HDD_info = split(" +", execute_shell_command("df -h /myth | grep myth")); + +    chop($HDD_info[1]); +    return($HDD_info[1] || 0); +} + +#sub disable_rrdtool { +#     +#} + +# Edit mplayer.conf to tell mplayer to drop video frames when necessary.  This should do no harm +# on systems that don't need the option, and it should make video watchable on those that do. +sub edit_mplayer_conf { +    use vars qw($mplayer_conf); +    $mplayer_conf = "/etc/mplayer/mplayer.conf"; + +    # delete any old entries that Tweaker made, relevant to this particular edit +    my $delete_old_tweaker_edits = "[ -e $mplayer_conf ] && sed -i '/^.*hardframedrop.*=.*#TWEAKER/d' $mplayer_conf"; +    # comment out old entries that some other process may have made +    my $comment_out_external_edits = "[ -e $mplayer_conf ] && sed -i 's/^\\(hardframedrop.*=.*\\)/#\\1/g' $mplayer_conf"; +    my $command1; +    my $command2=""; +    my $logger = get_logger('tweaker.script'); + +    if (my $error = execute_shell_command("$delete_old_tweaker_edits && $comment_out_external_edits")) { +	$logger->error("ERROR: $error"); +	$logger->error("ERROR: Unable to implement option $option."); +	exit(-1); +    } + +    $command2 = "echo -e 'hardframedrop=true #TWEAKER' >> $mplayer_conf"; +    if (my $error = execute_shell_command($command2)) { +	$logger->error("ERROR: $error"); +	$logger->error("ERROR: Unable to implement option $option."); +	exit(-1); +    } + +    $logger->info("Edited $mplayer_conf to drop video frames when CPU is overloaded."); +} + +# Try to implement the given option. +sub implement_option { +    my($option) = @_; + +    # ??? This will need some work to properly integrate with MythTV 0.21's own CPU-based playback settings. +    # For now, set profile to CPU++ no matter what CPU type, and just change what CPU++ provides. + +    $dbconnectionstring = get_mythtv_connection_string(); +	 +    if (connect_to_db("DBI:mysql:$dbconnectionstring")) { +	switch ($option) { +	    case "low" { +		change_or_make_setting('AutoCommflagWhileRecording', '0') || exit -1; +		change_or_make_setting('Theme', 'Iulius') || exit -1; # Low eye candy, high performance +		#change_or_make_setting('PreferredMPEG2Decoder', 'libmpeg2') || exit -1; # Least CPU usage, lowest quality +		#change_or_make_entry("displayprofiles", [["pref_decoder", "libmpeg2"]], [["profilegroupid", "1"], ["profileid", "1"]]) || exit -1; # Least CPU usage, lowest quality +		change_or_make_setting('DefaultVideoPlaybackProfile', 'CPU--') || exit -1; # best playback defaults for weak hardware +		# Should libmpeg2/ffmpeg be triggered based on CPU type?  libmpeg2 is usually +		# recommended for AMD CPUs. +		# ??? when to use xvmc? + +		# Weak CPUs may actually be too weak to run rrdtool without causing problems. +#		if (get_CPU_strength() <= $rrd_threshold) { +#		    disable_rrdtool(); +#		} +	    } +	    case "medium" { +		change_or_make_setting('AutoCommflagWhileRecording', '1') || exit -1; +		change_or_make_setting('Theme', 'LinHES') || exit -1; # Moderate eye candy, moderate performance +		#change_or_make_setting('PreferredMPEG2Decoder', 'libmpeg2') || exit -1; # Least CPU usage, lowest quality +		#change_or_make_entry("displayprofiles", [["pref_decoder", "libmpeg2"]], [["profilegroupid", "1"], ["profileid", "1"]]) || exit -1; # Least CPU usage, lowest quality +		change_or_make_setting('DefaultVideoPlaybackProfile', 'CPU+') || exit -1; # best playback defaults for average hardware +		# ??? when to use xvmc? +	    } +	    case "high" { +		change_or_make_setting('AutoCommflagWhileRecording', '1') || exit -1; +		# ??? Interacts with screen aspect ratio +		change_or_make_setting('Theme', 'LinHES') || exit -1; # Moderate eye candy, moderate performance +		#change_or_make_entry("displayprofiles", [["pref_decoder", "ffmpeg"]], [["profilegroupid", "1"], ["profileid", "1"]]) || exit -1; # Most CPU usage, best quality +		#change_or_make_setting('PreferredMPEG2Decoder', 'ffmpeg') || exit -1; # Most CPU usage, best quality +		change_or_make_setting('DefaultVideoPlaybackProfile', 'CPU++') || exit -1; # best playback defaults for powerful hardware +		# ??? when to use xvmc? +	    } +	} +	change_or_make_setting('UseXvMcVld', '0') || exit -1; +	#change_or_make_entry("displayprofiles", [["pref_deint0", "onefield"]], [["profilegroupid", "1"], ["profileid", "1"]]) || exit -1; # Most CPU usage, best quality +	change_or_make_setting('OSDTheme', 'blootube-osd') || exit -1; +	change_or_make_setting('PlayBoxShading', '0') || exit -1; +	change_or_make_setting('PlaybackExitPrompt', '2') || exit -1; +	#edit_mplayer_conf(); # This was found to cause temporary picture freezing when skipping forward through playback, followed by out-of-sync audio and video +    } else { +	exit -1; +    } +    disconnect_from_db(); +} + +# Try to get a Recommendation Level for $option. +sub poll_options { +    my($option) = @_; + +    threshold_test($option, get_CPU_strength(), "CPU", $low_threshold, $medium_threshold, $high_threshold); +} + +# Unimplemented in 0.7 +sub check_option { +    help; +} + +# Unimplemented in 0.7 +sub count_iterations { +    help; +} + +process_parameters; diff --git a/abs/not_built/core/tweaker/bin/twk_dragon.pl b/abs/not_built/core/tweaker/bin/twk_dragon.pl new file mode 100755 index 0000000..21a9dc7 --- /dev/null +++ b/abs/not_built/core/tweaker/bin/twk_dragon.pl @@ -0,0 +1,65 @@ +#!/usr/bin/perl -w + +# Copyright 2008-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + +use Switch; +use Tweaker::Script; +package Tweaker::Script; + +# List all the options that this script supports.  Make sure it matches what's in +# the corresponding .tcf entry. +set_known_options( 'all' ); + +# Try to implement the given option. +sub implement_option { +    my($option) = @_; +    my $logger = get_logger('tweaker.script'); + +    $dbconnectionstring = get_mythtv_connection_string(); +	 +    if (connect_to_db("DBI:mysql:$dbconnectionstring")) { +	# Overrides SQL changes made in twk_tuners.pl +	# WARNING: Very big harccoded hack that chooses ATSC tuning over QAM. +	do_query("UPDATE cardinput SET sourceid='10' WHERE sourceid='20'") || return -1; + +	# Use the most beautiful theme +	change_or_make_setting('Theme', 'blootube-wide') || exit -1; +    } else { +	my $logger = get_logger('tweaker.script'); +	$logger->error("ERROR: Unable to connect to mythconverg database"); +	$logger->error("ERROR: Unable to implement option $option."); +	exit -1; +    } +    disconnect_from_db(); +} + +# Poll the system to see what recommendationlevel the given option has on the system. +sub poll_options { +    my($option) = @_; +    recommendation_level("recommended", "These tweaks benefit all Dragon users."); +} + +# Unimplemented in 0.7 +sub check_option { +    help; +} + +# Unimplemented in 0.7 +sub count_iterations { +    help; +} + +process_parameters; diff --git a/abs/not_built/core/tweaker/bin/twk_fingerprint_hardware.sh b/abs/not_built/core/tweaker/bin/twk_fingerprint_hardware.sh new file mode 100755 index 0000000..25111dd --- /dev/null +++ b/abs/not_built/core/tweaker/bin/twk_fingerprint_hardware.sh @@ -0,0 +1,98 @@ +#!/bin/bash + +# Copyright 2007, 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + +# This script will grab USB and PCI data and dump it to a file for the +# user to post. + +output_file=/tmp/fingerprint.txt +maintainer="Human" +thread="" + +Usage() { +    echo "USAGE:" +    echo `basename $0` " [-a]" +    echo "-a: advanced mode" +    echo +    echo "EXAMPLE: $0" +    exit 3 +} + +while getopts "a" FLAG ; do +    case "$FLAG" in +	a) ADVANCED_MODE=1;; +	*) Usage;; +    esac +done + +check_for_root() { +    if [ `whoami` != "root" ]; then +	echo -n `basename $0` +	echo " must be run as root.  Exiting."; +	exit; +    fi +} + +poll_PCI() { +    echo \ +"##### +# lspci -vv +#####" >> $output_file +    lspci -vv >> $output_file +    echo ""  >> $output_file +     +    echo \ +"##### +# lspci -mn +#####" >> $output_file +    lspci -mn >> $output_file +    echo ""  >> $output_file +} + +poll_USB() { +    echo \ +"##### +# /proc/bus/usb/devices +#####" >> $output_file +cat /proc/bus/usb/devices >> $output_file +} + +instruct() { +    echo "Your hardware fingerprint is in $output_file" +    echo -n "Please PM it to $maintainer" +    if [ "$thread" != "" ]; then +	echo " or post it to" +	echo -n "$thread" +    fi +    echo "." +    echo "It should be accompanied by a list of changes that you made to the baseline +installation in order to improve MythTV on your hardware." +     +    echo "If you feel up to the task, feel free to prune out any entries that are for +very low-level devices like memory controllers, USB subsystems, etc. before +sending the fingerprint." +} + +main() { +    check_for_root +    > $output_file +    poll_PCI +    poll_USB +    instruct +} + +main + diff --git a/abs/not_built/core/tweaker/bin/twk_general.pl b/abs/not_built/core/tweaker/bin/twk_general.pl new file mode 100755 index 0000000..f89912c --- /dev/null +++ b/abs/not_built/core/tweaker/bin/twk_general.pl @@ -0,0 +1,590 @@ +#!/usr/bin/perl -w + +# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + +use Switch; +use Tweaker::Script; +package Tweaker::Script; + +set_known_options( 'all' ); + +# Try to implement the given option. +sub implement_option { +    my($option) = @_; + +    # KnoppMyth-centric file-level tweaks +    sub file_tweaks { +	my($option) = @_; + +	my @commands = ( +	    # keymap tweaks +	    "twk_keymap.sh" +	    ); + +	foreach my $command (@commands) { +	    if (my $error = execute_shell_command($command)) { +		my $logger = get_logger('tweaker.script'); +		$logger->error("$error"); +		$logger->error("Unable to implement option $option with command $command."); +	    } +	} +	return 1; +    } + +    # Enhance the default MythTV SQL +    sub SQL_tweaks { +	my($option) = @_; + +	$dbconnectionstring = get_mythtv_connection_string(); + +	if (connect_to_db("DBI:mysql:$dbconnectionstring")) { +	    # ??? This also exists in mkmythdir - it should be centralized +	    my $SQL_DirData="/myth";			# Top level dir. of structure, +	    my $SQL_DirTV="$SQL_DirData/tv";		# TV Recordings, +	    my $SQL_DirMusic="$SQL_DirData/music/";	# Music storage, +	    my $SQL_DirGames="$SQL_DirData/games";	# Games dir, +	    my $SQL_DirPics="$SQL_DirData/gallery";	# Pictures directory. +	    my $SQL_DirTmp="$SQL_DirData/tmp";		# DVD temp +	    my $SQL_DirVideo="$SQL_DirData/video";	# videos + +	    # ??? Eventually, put these into a text file so that 1) people can contribute without having to code, and 2) the data +	    # stays separate from the code and can be re-used by other (non-Perl) implementations + +	    # +	    # keybindings +	    # +	    change_or_make_entry("keybindings", [["keylist", "l"]], [["context", "Gallery"], ["action","PLAY"]]); +	    change_or_make_entry("keybindings", [["keylist", ">"]], [["context", "Music"], ["action","FFWD"]]); +	    change_or_make_entry("keybindings", [["keylist", "<"]], [["context", "Music"], ["action","RWND"]]); +	    change_or_make_entry("keybindings", [["keylist", "PgDown,.,Z,End"]], [["context", "Music"], ["action","NEXTTTRACK"]]); +	    change_or_make_entry("keybindings", [["keylist", "PgUp,Q,Home"]], [["context", "Music"], ["action","PREVTRACK"]]); +	    change_or_make_entry("keybindings", [["keylist", "P,l"]], [["context", "Music"], ["action","PAUSE"]]); + +	    change_or_make_entry("keybindings", [["keylist", ">"]], [["context", "Stream"], ["action","FORWARD"]]); +	    change_or_make_entry("keybindings", [["keylist", "<"]], [["context", "Stream"], ["action","REWIND"]]); +	    change_or_make_entry("keybindings", [["keylist", "F"]], [["context", "Stream"], ["action","FULLSCREEN"]]); +	    change_or_make_entry("keybindings", [["keylist", "|,\\,F9,Volume Mute"]], [["context", "Stream"], ["action","MUTE"]]); +	    change_or_make_entry("keybindings", [["keylist", "Y"]], [["context", "Stream"], ["action","STOREMARKED"]]); + +	    change_or_make_entry("keybindings", [["keylist", "l"]], [["context", "TV Frontend"], ["action","PLAYBACK"]]); + +	    change_or_make_entry("keybindings", [["keylist", "l"]], [["context", "TV Playback"], ["action","PLAY"]]); +	    change_or_make_entry("keybindings", [["keylist", "P"]], [["context", "TV Playback"], ["action","PAUSE"]]); # default, but here for completeness + +	    # +	    # better awareness of different video extensions +	    # +	    foreach my $video_ext ("mp2", "tp", "ts", "m2p", "nuv", "mkv", "ogg", "theora") { +		change_or_make_entry("videotypes", [["playcommand", "Default"], ["f_ignore", "0"], ["use_default", "1"]], [["extension", $video_ext]]); +	    } +	    foreach my $non_video_ext ("jpg", "par2", "php") { +		change_or_make_entry("videotypes", [["f_ignore", "1"]], [["extension", $non_video_ext]]); +	    } + +	    # +	    # games, game players, and emulators +	    # +	    my @players = ( +		 [ 'SDLMAME', '/myth/games/xmame/roms', '/myth/games/xmame/screenshots', '/usr/games/mame -rp /myth/games/xmame/roms %s', 'MAME' ], +		 [ 'ZSNES','/myth/games/snes/roms','/myth/games/snes/screens','/usr/bin/zsnes','SNES' ], +		 [ 'FCEU','/myth/games/nes/roms','/myth/games/nes/screens','/usr/games/fceu','NES' ], +		 [ 'Frozen Bubble', '', '', '/usr/games/frozen-bubble --fullscreen','PC' ] +		); + +	    foreach my $player (@players) { +		# These INSERTs will fail if the playername is already present, but we don't error out if it happens. +		do_query("INSERT INTO gameplayers (playername, rompath, screenshots, commandline, gametype) VALUES ('".join("','",@$player)."');"); +	    } +	    # somewhat hardwired, but make sure Frozen Bubble shows up in the list of playable games. +	    do_query("INSERT INTO gamemetadata (system, romname, gamename, genre, year, publisher, rompath, gametype) VALUES ('". +		     join("','",($players[3][0], $players[3][3], $players[3][0], "action/puzzle", "2006", "Frozen Bubble Team", "/usr/games", $players[3][4]))."');"); + +	    # +	    # smart music playlists +	    # +	    # categoryid, name +	    change_or_make_entry("music_smartplaylist_categories", [["name", "Decades"]], [["categoryid", 1]]); +	    change_or_make_entry("music_smartplaylist_categories", [["name", "Favorite Tracks"]], [["categoryid", 2]]); +	    change_or_make_entry("music_smartplaylist_categories", [["name", "New Tracks"]], [["categoryid", 3]]); + +	    foreach my $decade (60, 70, 80, 90, 100) { +		my $id = ($decade / 10) - 5; +		my $query = "INSERT INTO music_smartplaylist_items (smartplaylistid, field, operator, value1, value2) VALUES ($id, 'Year', 'is between'," . ($decade+1900) . "," . ($decade+1909) . ");"; +		do_query($query); +		$query = "INSERT INTO music_smartplaylists (name, categoryid, matchtype, orderby, limitto) VALUES ('". ($decade+1900) . "\\'s', 1, 'All', 'Artist (A)', 0);"; +		do_query($query); +	    } + +	    my @other_lists = ( +		[ +		 ( 'Rating', 'is greater than', '7', 'Favorite Tracks', 2, 'Artist (A), Album (A)', 0 ), +		 ( 'Play Count', 'is greater than', '0', '100 Most Played Tracks', 2, 'Play Count (D)', 100 ), +		 ( 'Play Count', 'is equal to', '0', 'Never Played Tracks', 3, 'Artist (A), Album (A)', 0 ) +		]); + +	    my $id=6; +	    foreach my $other_list (@other_lists) { +		change_or_make_entry("music_smartplaylist_items", [["field", @$other_list[0]], ["operator", @$other_list[1]], ["value1", @$other_list[2]]], [["smartplaylistid", $id]]); +		change_or_make_entry("music_smartplaylists", [["name", @$other_list[3]], ["categoryid", @$other_list[4]], ["matchtype", "All"], ["orderby", @$other_list[5]], ["limitto", @$other_list[6]]], [["smartplaylistid", $id]]); +		$id++; +	    } + +	    # +	    # default playgroup with time-related settings +	    # +	    change_or_make_entry("playgroup", [["skipahead", 10], ["skipback", 5], ["timestretch", 100], ["jump", 1]], [["name", "Default"]]); + +	    # +	    # useful recording profiles and transcoding options +	    # +	    change_or_make_entry("profilegroups", [["name", "Software Encoders (v4l based)"], ["cardtype", "V4L"], ["is_default", 1]], [["id", 1]]); +	    change_or_make_entry("profilegroups", [["name", "MPEG-2 Encoders (PVR-x50, PVR-500)"], ["cardtype", "MPEG"], ["is_default", 1]], [["id", 2]]); +	    change_or_make_entry("profilegroups", [["name", "Hardware MJPEG Encoders (Matrox G200-TV, Miro DC10, etc)"], ["cardtype", "MJPEG"], ["is_default", 1]], [["id", 3]]); +	    change_or_make_entry("profilegroups", [["name", "Hardware HDTV"], ["cardtype", "HDTV"], ["is_default", 1]], [["id", 4]]); +	    change_or_make_entry("profilegroups", [["name", "Hardware DVB Encoders"], ["cardtype", "DVB"], ["is_default", 1]], [["id", 5]]); +	    change_or_make_entry("profilegroups", [["name", "Transcoders"], ["cardtype", "TRANSCODE"], ["is_default", 1]], [["id", 6]]); +	    change_or_make_entry("profilegroups", [["name", "FireWire Input"], ["cardtype", "FIREWIRE"], ["is_default", 1]], [["id", 7]]); +	    change_or_make_entry("profilegroups", [["name", "USB Mpeg-4 Encoder (Plextor ConvertX, etc)"], ["cardtype", "GO7007"], ["is_default", 1]], [["id", 8]]); +	    change_or_make_entry("profilegroups", [["name", "DBOX2 Input"], ["cardtype", "DBOX2"], ["is_default", 1]], [["id", 9]]); +	    change_or_make_entry("profilegroups", [["name", "Freebox Input"], ["cardtype", "Freebox"], ["is_default", 1]], [["id", 10]]); +	    change_or_make_entry("profilegroups", [["name", "HDHomeRun Recorders"], ["cardtype", "HDHOMERUN"], ["is_default", 1]], [["id", 11]]); +	    change_or_make_entry("profilegroups", [["name", "CRC IP Recorders"], ["cardtype", "CRC_IP"], ["is_default", 1]], [["id", 12]]); + +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'transcodelossless', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'transcoderesize', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4bitrate', 2200)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4maxquality', 2)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4minquality', 15)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4qualdiff', 3)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'scalebitrate', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4optionvhq', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4option4mv', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4optionidct', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4optionime', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'encodingthreadcount', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg2bitrate', 4500)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'hardwaremjpegquality', 100)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'hardwaremjpeghdecimation', 4)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'hardwaremjpegvdecimation', 4)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg2streamtype', 'MPEG-2 PS')"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg2maxbitrate', 6000)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'samplerate', 48000)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'volume', 100)"); + +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'transcodelossless', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'transcoderesize', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4bitrate', 2200)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4maxquality', 2)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4minquality', 15)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4qualdiff', 3)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'scalebitrate', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4optionvhq', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4option4mv', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4optionidct', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4optionime', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'encodingthreadcount', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg2bitrate', 4500)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'hardwaremjpegquality', 100)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'hardwaremjpeghdecimation', 4)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'hardwaremjpegvdecimation', 4)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg2streamtype', 'MPEG-2 PS')"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg2maxbitrate', 6000)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'samplerate', 48000)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'volume', 100)"); + +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (27, 'transcodelossless', 1)"); + +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'transcodelossless', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'transcoderesize', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4bitrate', 2200)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4maxquality', 2)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4minquality', 15)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4qualdiff', 3)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'scalebitrate', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4optionvhq', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4option4mv', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4optionidct', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4optionime', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'encodingthreadcount', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg2bitrate', 4500)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'hardwaremjpegquality', 100)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'hardwaremjpeghdecimation', 4)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'hardwaremjpegvdecimation', 4)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg2streamtype', 'MPEG-2 PS')"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg2maxbitrate', 6000)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'samplerate', 48000)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'volume', 100)"); + +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'transcodelossless', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'transcoderesize', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4bitrate', 1500)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4maxquality', 2)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4minquality', 15)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4qualdiff', 3)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'scalebitrate', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4optionvhq', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4option4mv', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4optionidct', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4optionime', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'encodingthreadcount', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg2bitrate', 4500)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'hardwaremjpegquality', 100)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'hardwaremjpeghdecimation', 4)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'hardwaremjpegvdecimation', 4)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg2streamtype', 'MPEG-2 PS')"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg2maxbitrate', 6000)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'samplerate', 44100)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mp3quality', 7)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'volume', 100)"); + + +	    # I don't know why we have so many of these.  Only profilegroup 6 seems to matter. +	    change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 1]], [["id", 1]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 1]], [["id", 2]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 1]], [["id", 3]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 1]], [["id", 4]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 2]], [["id", 5]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 2]], [["id", 6]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 2]], [["id", 7]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 2]], [["id", 8]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 3]], [["id", 9]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 3]], [["id", 10]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 3]], [["id", 11]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 3]], [["id", 12]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 4]], [["id", 13]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 4]], [["id", 14]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 4]], [["id", 15]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 4]], [["id", 16]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 5]], [["id", 17]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 5]], [["id", 18]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 5]], [["id", 19]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 5]], [["id", 20]]); +	    change_or_make_entry("recordingprofiles", [["name", 'RTjpeg/MPEG4'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "Uncompressed"]], [["id", 21]]); +	    change_or_make_entry("recordingprofiles", [["name", 'MPEG2'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "Uncompressed"]], [["id", 22]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 8]], [["id", 23]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 8]], [["id", 24]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 8]], [["id", 25]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 8]], [["id", 26]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 6]], [["id", 27]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Medium Quality'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "Uncompressed"]], [["id", 28]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "MP3"]], [["id", 29]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 10]], [["id", 30]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 10]], [["id", 31]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 10]], [["id", 32]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 10]], [["id", 33]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 11]], [["id", 34]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 11]], [["id", 35]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 11]], [["id", 36]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 11]], [["id", 37]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 12]], [["id", 38]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 12]], [["id", 39]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 12]], [["id", 40]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 12]], [["id", 41]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 7]], [["id", 42]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 7]], [["id", 43]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 7]], [["id", 44]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 7]], [["id", 45]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 9]], [["id", 46]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 9]], [["id", 47]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 9]], [["id", 48]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 9]], [["id", 49]]); + +	    # +	    # settings +	    # +	    change_or_make_setting('AlwaysStreamFiles', '1'); # new in R6 +	    change_or_make_setting('AutoCommercialSkip', '1'); +	    change_or_make_setting('AutoExpireWatchedPriority', '1'); +	    change_or_make_setting('BackendServerPort', '6543'); +	    change_or_make_setting('BackendStatusPort', '6544'); +	    change_or_make_setting('CDWriterDevice', 'ATA:1,0,0'); +#	    change_or_make_setting('ChannelOrdering', 'chanid'); +	    change_or_make_setting('CommercialSkipMethod', '255'); +	    change_or_make_setting('DVDBookmarkPrompt', '1'); +	    change_or_make_setting('DVDRipLocation', $SQL_DirTmp); +	    change_or_make_setting('DefaultRipQuality', '1'); +	    change_or_make_setting('DefaultTranscoder', '28'); # change this number if you redefine the transcoders above +	    change_or_make_setting('Deinterlace', '1'); +	    change_or_make_setting('DeletesFollowLinks', '1'); +	    change_or_make_setting('DisableFirewireReset', '0'); +	    change_or_make_setting('EITCrawIdleStart','60'); +	    change_or_make_setting('EITIgnoresSource','0'); +	    change_or_make_setting('EITTimeOffset','Auto'); +	    change_or_make_setting('EITTransportTimeout','5'); +	    change_or_make_setting('EPGEnableJumpToChannel','1'); +	    change_or_make_setting('EPGFillType','12'); +	    change_or_make_setting('EnableDVDBookmark','1'); +	    change_or_make_setting('EndOfRecordingExitPrompt','1'); +	    change_or_make_setting('GalleryDir', $SQL_DirPics); +	    change_or_make_setting('GalleryRecursiveSlideshow', '1'); +#------------------------JM--------------------------- + 	    change_or_make_setting('HaltCommand', 'sudo /sbin/halt'); +# 	    change_or_make_setting('HostAudiotype','ALSA'); +# 	    change_or_make_setting('HostMiro','1'); +# 	    change_or_make_setting('HostXine','1'); +# 	    change_or_make_setting('Hostpluginmythappletrailers','1'); +# 	    change_or_make_setting('Hostpluginmytharchive','1'); +# 	    change_or_make_setting('Hostpluginmythbrowser','1'); +# 	    change_or_make_setting('Hostpluginmythcontrols','1'); +# 	    change_or_make_setting('Hostpluginmythflix','1'); +# 	    change_or_make_setting('Hostpluginmythgallery','1'); +# 	    change_or_make_setting('Hostpluginmythgame','1'); +# 	    change_or_make_setting('HostpluginmythgameFceu','1'); +# 	    change_or_make_setting('HostpluginmythgameMame','1'); +# 	    change_or_make_setting('HostpluginmythgameMame','1'); +# 	    change_or_make_setting('HostpluginmythgameROMDB','1'); +# 	    change_or_make_setting('HostpluginmythgameXE','1'); +# 	    change_or_make_setting('HostpluginmythgameZsnes','1'); +# 	    change_or_make_setting('HostpluginmythgameZsnes','1'); +# 	    change_or_make_setting('Hostpluginmythmovietime','1'); +# 	    change_or_make_setting('Hostpluginmythmusic','1'); +# 	    change_or_make_setting('Hostpluginmythnews','1'); +# 	    change_or_make_setting('Hostpluginmythphone','1'); +# 	    change_or_make_setting('Hostpluginmythsmolt','1'); +# 	    change_or_make_setting('Hostpluginmythstream','1'); +# 	    change_or_make_setting('Hostpluginmythvideo','1'); +# 	    change_or_make_setting('Hostpluginmythvideo_dvdcss','0'); +# 	    change_or_make_setting('Hostpluginmythvideo_dvdcss','0'); +# 	    change_or_make_setting('Hostpluginmythvodka','1'); +# 	    change_or_make_setting('Hostpluginmythweather','1'); +	    change_or_make_setting('JobAllowCommFlag', '1'); +	    change_or_make_setting('JobAllowTranscode', '1'); +	    change_or_make_setting('JobAllowUserJob1', '1'); +	    change_or_make_setting('JobAllowUserJob2', '1'); +	    change_or_make_setting('JobAllowUserJob3', '1'); +	    change_or_make_setting('JobAllowUserJob4', '1'); +	    change_or_make_setting('JobQueueCPU','0'); +	    change_or_make_setting('JobQueueCheckFrequency','60'); +	    change_or_make_setting('JobQueueCommFlagCommand','mythcommflag'); +	    change_or_make_setting('JobQueueMaxSimultaneousJobs','1'); +	    change_or_make_setting('JobQueueTranscodeCommand','mythtranscode'); +	    change_or_make_setting('JobQueueWindowEnd','23:59'); +	    change_or_make_setting('JobQueueWindowStart','00:00'); +	    change_or_make_setting('JobsRunOnRecordHost','0'); +	    change_or_make_setting('LiveTVInAllPrograms','1'); +	    change_or_make_setting('MasterMixerVolume','100'); +# 	    change_or_make_setting('MasterServerIP', '127.0.0.1'); +# 	    change_or_make_setting('MasterServerPort', '6543'); +	    change_or_make_setting('MediaChangeEvents','1'); +	    change_or_make_setting('MonitorDrives', '1'); +	    change_or_make_setting('MusicLocation', $SQL_DirMusic); +	    change_or_make_setting('MythArchivePng2yuvCmd', 'png2yuv'); # ??? still used? +	    change_or_make_setting('MythArchiveShareDir','/myth/archive/'); +	    change_or_make_setting('MythArchiveTempDir', $SQL_DirTmp); +	    change_or_make_setting('MythFillDatabaseArgs', '--quiet'); +	    change_or_make_setting('MythFillDatabaseLog', '/var/log/mythtv/mythfilldatabase.log'); +	    change_or_make_setting('MythFillDatabasePath', '/usr/bin/nice -n 19 /usr/bin/mythfilldatabase'); +	    change_or_make_setting('MythFillEnabled', '1'); +	    change_or_make_setting('MythTVtv', $SQL_DirTV); +	    change_or_make_setting('NetworkControlEnabled', '1'); +	    change_or_make_setting('PCMMixerVolume', '50'); +	    change_or_make_setting('PVR350VideoDev', '/dev/video16'); +	    change_or_make_setting('PlayBoxShading', '0'); +	    change_or_make_setting('PlayMode', 'none'); +	    change_or_make_setting('PlaybackExitPrompt', '2'); +	    change_or_make_setting('PlaybackPreviewLowCPU', '1'); +#	    change_or_make_setting('PlaybackReturnPrompt', '1'); +#	    change_or_make_setting('PlaybackReturnPrompt', '2'); +	    change_or_make_setting('RebootCommand', 'sudo /sbin/reboot'); +	    change_or_make_setting('RecordFilePrefix',$SQL_DirTV); +	    change_or_make_setting('SelectChangesChannel', '1'); +	    change_or_make_setting('ServerHaltCommand', 'sudo /sbin/halt -p'); +	    change_or_make_setting('ShowWholeTree', '1'); +	    change_or_make_setting('SmartChannelChange', '1'); +	    change_or_make_setting('StartupSecsBeforeRecording', '120'); +	    change_or_make_setting('TruncateDeletesSlowly', '1'); +	    change_or_make_setting('UseOutputPictureControls', '1'); +	    change_or_make_setting('UserJob1', 'myth2ipod \"%DIR%\" \"%FILE%\"'); +	    change_or_make_setting('UserJob2', 'myt2xvid3 \"%DIR%\" \"%FILE%\"'); +	    change_or_make_setting('UserJob3', 'myth2x264 \"%DIR%/%FILE%\" \"%TITLE% - %SUBTITLE%\" \"%CHANID%\" \"%STARTTIME%\" \"%JOBID%\"'); +	    change_or_make_setting('UserJob4', 'removecommercials.sh \"%DIR%\" \"%FILE%\" \"%CHANID%\" \"%STARTTIME%\" \"%JOBID%\"'); +	    change_or_make_setting('UserJobDesc1', 'Transcode for iPod'); +	    change_or_make_setting('UserJobDesc2', 'Transcode to xvid'); +	    change_or_make_setting('UserJobDesc3', 'Transcode to h264'); +	    change_or_make_setting('UserJobDesc4', 'Remove Commercials'); +	    change_or_make_setting('UseOutputPictureControls','0'); # If this is set to '1' it can swap blue for red (and vice versa) on some nVidia GPUs +	    change_or_make_setting('VCDPlayerCommand', 'mplayer-wrapper.pl vcd:\/\/ -cdrom-device %d -fs -zoom'); +	    change_or_make_setting('VideoArtworkDir', "$SQL_DirVideo/.covers"); +	    change_or_make_setting('VideoBrowserNoDB', '1'); +	    change_or_make_setting('VideoDefaultPlayer', 'mplayer-wrapper.pl -fs -zoom %s'); +	    change_or_make_setting('VideoGalleryNoDB', '1'); +	    change_or_make_setting('VideoStartupDir', $SQL_DirVideo); +	    change_or_make_setting('VideoTreeNoDB', '1'); +	    change_or_make_setting('VisualMode','BumpScope;Gears;Goom;MonoScope;Squares;StereoScope;Synaesthesia;LibVisual-bumpscope;LibVisual-corona;LibVisual-infinite;AlbumArt'); +	    change_or_make_setting('weatherbackgroundfetch', '1'); +	    change_or_make_setting('WebBrowserCommand','/usr/bin/mythbrowser'); +	    change_or_make_setting('WebBrowserHideScrollbars','0'); +	    change_or_make_setting('WebBrowserScrollMode','1'); +	    change_or_make_setting('WebBrowserScrollSpeed','4'); +	    change_or_make_setting('WebBrowserZoomLevel','20'); +	    change_or_make_setting('WebcamDevice','/dev/video'); +	    change_or_make_setting('WOLbackendCommand',''); +	    change_or_make_setting('WOLbackendConnectRetry','5'); +	    change_or_make_setting('WOLslaveBackendsCommand',''); +	    change_or_make_setting('WakeupTimeFormat','hh:mm yyyy-MM-dd'); +	    change_or_make_setting('WatchTVGuide','0'); +# 	    change_or_make_setting('WeatherDBSchemaVer','1000'); +	    change_or_make_setting('WebBrowserCommand','/usr/bin/mythbrowser'); +	    change_or_make_setting('WebBrowserHideScrollbars','0'); +	    change_or_make_setting('WebBrowserScrollMode','1'); +	    change_or_make_setting('WebBrowserScrollSpeed','4'); +	    change_or_make_setting('WebBrowserZoomLevel','20'); +	    change_or_make_setting('XineramaScreen','0'); +	    change_or_make_setting('blockSDWUwithoutClient','1'); +	    change_or_make_setting('idleWaitForRecordingTime','15'); +	    change_or_make_setting('mythdvd.DVDPlayerCommand', 'Internal'); +	    change_or_make_setting('mythvideo.VideoTreeRemember', '1'); +	    change_or_make_setting('mythfilldatabaseLastRunStart',''); +	    change_or_make_setting('mythfilldatabaseLastRunEnd',''); +	    change_or_make_setting('mythfilldatabaseLastRunStatus',''); + +	    # +	    # customexample table +	    # +	    change_or_make_entry("customexample", [["fromclause", ""], ["whereclause", "program.category_type = \"movie\" AND program.airdate >= YEAR(DATE_SUB(NOW(), INTERVAL 1 YEAR)) AND program.stars > 0.5 "], ["search", "1"]], [["rulename", "New Flix"]]); + +#	    # As much of MythWeather as we can automate for now +	    my $units = 0; +	    my $metric_units = do_query("SELECT * FROM settings WHERE value='SIUnits' AND data='YES'"); +	    if ($metric_units) { +		$units=0; +	    } else { +		$units=1; +	    } +#	    change_or_make_entry("weatherscreens", [["draworder", "0"], ["container", "Six Day Forecast"], ["units", $units]], [["screen_id", 1]]); +#	    change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "6dlocation"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]); +#	    for (my $increment=0; $increment < 6; $increment++) { +#		change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "date-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]); +#		change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "high-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]); +#		change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "icon-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]); +#		change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "low-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]); +#	    } +#	    change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "updatetime"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]); +# +#	    change_or_make_entry("weathersourcesettings", [["sourceid", "1"], ["source_name", "BBC-Current-XML"], ["update_timeout", "7200"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/bbccurrentxml.pl"], ["author", "Stuart Morgan"], ["version", "0.1"], ["email", "stuart\@tase.co.uk"], ["types", "cclocation,station_id,copyright,observation_time,weather,temp,relative_humidity,wind_dir,pressure,visibility,weather_icon,appt,wind_spdgst"]]); +#	    change_or_make_entry("weathersourcesettings", [["sourceid", "2"], ["source_name", "BBC-3day-XML"], ["update_timeout", "21600"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/bbcthreedayxml.pl"], ["author", "Stuart Morgan"], ["version", "0.1"], ["email", "stuart\@tase.co.uk"], ["types", "3dlocation,station_id,copyright,weather_icon,date-0,icon-0,low-0,high-0,date-1,icon-1,low-1,high-1,date-2,icon-2,low-2,high-2,updatetime"]]); +#	    change_or_make_entry("weathersourcesettings", [["sourceid", "3"], ["source_name", "ENVCAN"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/ca_envcan/envcan.pl"], ["author", "Joe Ripley"], ["version", "0.4"], ["email", "vitaminjoe\@gmail.com"], ["types", "cclocation,station_id,copyright,observation_time,observation_time_rfc822,weather,temp,relative_humidity,wind_dir,wind_degrees,wind_speed,wind_gust,pressure,dewpoint,heat_index,windchill,visibility,weather_icon,appt,wind_spdgst,3dlocation,6dlocation,date-0,icon-0,low-0,high-0,date-1,icon-1,low-1,high-1,date-2,icon-2,low-2,high-2,updatetime,date-3,icon-3,low-3,high-3,date-4,icon-4,low-4,high-4,date-5,icon-5,low-5,high-5"]]); +#	    change_or_make_entry("weathersourcesettings", [["sourceid", "4"], ["source_name", "NDFD-6_day"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/ndfd.pl"], ["author", "Lucien Dunning"], ["version", "0.1"], ["email", "ldunning\@gmail.com"], ["types", "3dlocation,6dlocation,updatetime,high-0,high-1,high-2,high-3,high-4,high-5,low-0,low-1,low-2,low-3,low-4,low-5,icon-0,icon-1,icon-2,icon-3,icon-4,icon-5,date-0,date-1,date-2,date-3,date-4,date-5"]]); +#	    change_or_make_entry("weathersourcesettings", [["sourceid", "5"], ["source_name", "NDFD-18_hour"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/ndfd18.pl"], ["author", "Lucien Dunning"], ["version", "0.1"], ["email", "ldunning\@gmail.com"], ["types", "18hrlocation,updatetime,temp-0,temp-1,temp-2,temp-3,temp-4,temp-5,18icon-0,18icon-1,18icon-2,18icon-3,18icon-4,18icon-5,pop-0,pop-1,pop-2,pop-3,pop-4,pop-5,time-0,time-1,time-2,time-3,time-4,time-5"]]); +#	    change_or_make_entry("weathersourcesettings", [["sourceid", "6"], ["source_name", "NWS-Alerts"], ["update_timeout", "600"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/nws-alert.pl"], ["author", "Lucien Dunning"], ["version", "0.1"], ["email", "ldunning\@gmail.com"], ["types", "swlocation,updatetime,alerts"]]); +#	    change_or_make_entry("weathersourcesettings", [["sourceid", "7"], ["source_name", "NWS-XML"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/nwsxml.pl"], ["author", "Lucien Dunning"], ["version", "0.2"], ["email", "ldunning\@gmail.com"], ["types", "cclocation,station_id,latitude,longitude,observation_time,observation_time_rfc822,weather,temperature_string,temp,relative_humidity,wind_string,wind_dir,wind_degrees,wind_speed,wind_gust,pressure_string,pressure,dewpoint_string,dewpoint,heat_index_string,heat_index,windchill_string,windchill,visibility,weather_icon,appt,wind_spdgst"]]); + +	    my $ipaddress = execute_shell_command("ifconfig | grep inet.addr | head -1"); +	    $ipaddress =~ s/.*inet addr:(\d+.\d+.\d+.\d+)\s.*/$1/g; + + + + + + +#-------------------jm +# 	    # Change from the generic IP address to the real one. +# 	    do_query("UPDATE settings SET data='$ipaddress' where data='127.0.0.1'"); +# 	    do_query("UPDATE settings SET data='$ipaddress' where data='MythTVip'"); # ??? needed? + +	    my $hostname = execute_shell_command("hostname") || "localhost"; +	    # one table at a time, replace hostname with our actual hostname +	    # ??? can this be done all at once in MySQL? +	    foreach my $table ("capturecard", "inuseprograms", "jobqueue", "jumppoints", "keybindings", "music_playlists", +			       "musicplaylist", "recorded", "settings", "weatherscreens") { +		do_query("UPDATE $table SET hostname='$hostname'"); +	    } + +	    # Some entries in 'settings' should stay NULL:  http://www.mythtv.org/wiki/index.php/Settings_table +	    # There are fewer entries that stay NULL than there are that should have the hostname set, so while +	    # it duplicates some effort to change them from NULL to the hostname and them back to NULL, it's +	    # easier to maintain and more future-proof. + +	    foreach my $entry ("mythfilldatabaseLastRunStart", "mythfilldatabaseLastRunEnd", "mythfilldatabaseLastRunStatus", +			       "DataDirectMessage", "HaveRepeats", "DBSchemaVer", "DefaultTranscoder", "MythFillSuggestedRunTime", +			       "MythFillGrabberSuggestsTime", "MasterServerIP", "MasterServerPort", "TVFormat", "VbiFormat", "FreqTable", +			       "TimeOffset", "MasterBackendOverride", "DeletesFollowLinks", "HDRingbufferSize", "EITTransportTimeout", +			       "EITIgnoresSource", "EITCrawIdleStart", "startupCommand", "blockSDWUwithoutClient", "idleWaitForRecordingTime", +			       "StartupSecsBeforeRecording", "WakeupTimeFormat", "SetWakeuptimeCommand", "ServerHaltCommand", "preSDWUCheckCommand", +			       "WOLbackendConnectRetry", "WOLbackendCommand", "WOLslaveBackendsCommand", "JobsRunOnRecordHost", +			       "AutoCommflagWhileRecording", "JobQueueCommFlagCommand", "JobQueueTranscodeCommand", +			       "AutoTranscodeBeforeAutoCommflag", "SaveTranscoding", "UserJobDesc1", "UserJob1", "UserJobDesc2", "UserJob2", +			       "UserJobDesc3", "UserJob3", "UserJobDesc4", "UserJob4", "PreviewPixmapOffset", "AllRecGroupPassword", +			       "MaximumCommercialSkip", "CommSkipAllBlanks", "LastFreeCard", "LiveTVPriority", "AutoExpireMethod", +			       "AutoExpireDefault", "RerecordWatched", "AutoExpireWatchedPriority", "AutoExpireLiveTVMaxAge", +			       "AutoExpireDayPriority", "AutoExpireExtraSpace", "AutoExpireInsteadOfDelete", "DeletedFifoOrder", +			       "CommercialSkipMethod", "AggressiveCommDetect", "AutoCommercialFlag", "AutoTranscode", "AutoRunUserJob1", +			       "AutoRunUserJob2", "AutoRunUserJob3", "AutoRunUserJob4", "OverTimeCategory", "CategoryOverTime", +			       "EPGEnableJumpToChannel", "LogEnabled", "MythFillEnabled", "MythFillDatabasePath", "MythFillDatabaseArgs", +			       "MythFillDatabaseLog", "MythFillPeriod", "MythFillMinHour", "MythFillMaxHour", "SchedMoveHigher", "SchedOpenEnd", +			       "ComplexPriority", "PrefInputPriority", "SingleRecordRecPriority", "FindOneRecordRecPriority", "ArchiveDBSchemaVer", +			       "FlixDBSchemaVer", "GalleryDBSchemaVer", "GameDBSchemaVer", "MusicDBSchemaVer", "PhoneDBSchemaVer", +			       "mythvideo.DBSchemaVer", "WeatherDBSchemaVer") { +		do_query("UPDATE settings SET hostname=NULL WHERE value='$entry'"); +	    } + +	    change_or_make_setting('MasterBackendOverride','1'); # I don't remember why, but making the hostname NULL is important here +	    do_query("UPDATE settings SET hostname=NULL WHERE value='MasterBackendOverride'"); + +	    # storagegroup +	    change_or_make_entry("storagegroup", [["groupname", "Default"], ["hostname", $hostname], ["dirname", $SQL_DirTV]], [["id", 1]]); + +	    # +	    # Websites for mythbrowser +	    # +	    #change_or_make_entry("websites", [["grp", "LinHeS"], ["dsc", ""], ["updated", ""]], [["url", "http://knoppmyth.net"]]); +	    #change_or_make_entry("websites", [["grp", "LinHeS"], ["dsc", ""], ["updated", ""]], [["url", "http://knoppmythwiki.org"]]); + +	    disconnect_from_db(); + +	    # Fix hostname for iPod feed URLs +	    $command = "sed -i \"s/hostname\\//$hostname\\//g\" /usr/local/bin/myth2ipod"; +	    execute_shell_command($command); + +	    # Fix hostname for XViD feed URLs +	    $command = "sed -i \"s/192.168.0.222\\//$hostname\\//g\" /usr/local/bin/myt2xvid3"; +	    execute_shell_command($command); + +	    # Customize default MythTV library.xml to reflect KnoppMyth's wider selection of +	    # online stream options. +	    #$command = "sed -i \"/<type>STREAM<\\/type>\$/{N; N; N; N; s/text>.*<\\/text/text>Online Streams<\\/text/; s/action>.*<\\/action/action>MENU is.xml<\\/action/; s/<depends.*depends>//; }\" /usr/share/mythtv/library.xml"; +	    $command = "/bin/cp /usr/share/mythtv/library.xml.km /usr/share/mythtv/library.xml"; +	    execute_shell_command($command); +	} else { +	    my $logger = get_logger('tweaker.script'); +	    $logger->error("Unable to connect to mythconverg database"); +	    $logger->error("Unable to implement option $option."); +	    return -1; +	} +	return 1; +    } + +    file_tweaks($option) || exit -1; +    SQL_tweaks($option) || exit -1; +} + +# Try to get a Recommendation Level for $option. +sub poll_options { +    my($option) = @_; +    recommendation_level("recommended", "These tweaks benefit all users."); +} + +# Unimplemented in 0.7 +sub check_option { +    help; +} + +# Unimplemented in 0.7 +sub count_iterations { +    help; +} + +process_parameters; diff --git a/abs/not_built/core/tweaker/bin/twk_general.pl.orig b/abs/not_built/core/tweaker/bin/twk_general.pl.orig new file mode 100755 index 0000000..0255852 --- /dev/null +++ b/abs/not_built/core/tweaker/bin/twk_general.pl.orig @@ -0,0 +1,579 @@ +#!/usr/bin/perl -w + +# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + +use Switch; +use Tweaker::Script; +package Tweaker::Script; + +set_known_options( 'all' ); + +# Try to implement the given option. +sub implement_option { +    my($option) = @_; + +    # KnoppMyth-centric file-level tweaks +    sub file_tweaks { +	my($option) = @_; + +	my @commands = ( +	    # keymap tweaks +	    "twk_keymap.sh" +	    ); +	 +	foreach my $command (@commands) { +	    if (my $error = execute_shell_command($command)) { +		my $logger = get_logger('tweaker.script'); +		$logger->error("$error"); +		$logger->error("Unable to implement option $option with command $command."); +	    } +	} +	return 1; +    } +     +    # Enhance the default MythTV SQL +    sub SQL_tweaks { +	my($option) = @_; + +	$dbconnectionstring = get_mythtv_connection_string(); +	 +	if (connect_to_db("DBI:mysql:$dbconnectionstring")) { +	    # ??? This also exists in mkmythdir - it should be centralized +	    my $SQL_DirData="/myth";			# Top level dir. of structure, +	    my $SQL_DirTV="$SQL_DirData/tv";		# TV Recordings, +	    my $SQL_DirMusic="$SQL_DirData/music/";	# Music storage, +	    my $SQL_DirGames="$SQL_DirData/games";	# Games dir, +	    my $SQL_DirPics="$SQL_DirData/gallery";	# Pictures directory. +	    my $SQL_DirTmp="$SQL_DirData/tmp";		# DVD temp +	    my $SQL_DirVideo="$SQL_DirData/video";	# videos +	     +	    # ??? Eventually, put these into a text file so that 1) people can contribute without having to code, and 2) the data +	    # stays separate from the code and can be re-used by other (non-Perl) implementations + +	    # +	    # keybindings +	    # +	    change_or_make_entry("keybindings", [["keylist", "l"]], [["context", "Gallery"], ["action","PLAY"]]); +	    change_or_make_entry("keybindings", [["keylist", ">"]], [["context", "Music"], ["action","FFWD"]]); +	    change_or_make_entry("keybindings", [["keylist", "<"]], [["context", "Music"], ["action","RWND"]]); +	    change_or_make_entry("keybindings", [["keylist", "PgDown,.,Z,End"]], [["context", "Music"], ["action","NEXTTTRACK"]]); +	    change_or_make_entry("keybindings", [["keylist", "PgUp,Q,Home"]], [["context", "Music"], ["action","PREVTRACK"]]); +	    change_or_make_entry("keybindings", [["keylist", "P,l"]], [["context", "Music"], ["action","PAUSE"]]); + +	    change_or_make_entry("keybindings", [["keylist", ">"]], [["context", "Stream"], ["action","FORWARD"]]); +	    change_or_make_entry("keybindings", [["keylist", "<"]], [["context", "Stream"], ["action","REWIND"]]); +	    change_or_make_entry("keybindings", [["keylist", "F"]], [["context", "Stream"], ["action","FULLSCREEN"]]); +	    change_or_make_entry("keybindings", [["keylist", "|,\\,F9,Volume Mute"]], [["context", "Stream"], ["action","MUTE"]]); +	    change_or_make_entry("keybindings", [["keylist", "Y"]], [["context", "Stream"], ["action","STOREMARKED"]]); +	     +	    change_or_make_entry("keybindings", [["keylist", "l"]], [["context", "TV Frontend"], ["action","PLAYBACK"]]); +	     +	    change_or_make_entry("keybindings", [["keylist", "l"]], [["context", "TV Playback"], ["action","PLAY"]]); +	    change_or_make_entry("keybindings", [["keylist", "P"]], [["context", "TV Playback"], ["action","PAUSE"]]); # default, but here for completeness + +	    # +	    # better awareness of different video extensions +	    # +	    change_or_make_entry("videotypes", [["playcommand", "mplayer-resumer.pl -fs -zoom -vc theora,fftheora, -vo xv %s"]], [["extension", "ogg"]]); +	    change_or_make_entry("videotypes", [["playcommand", "mplayer-resumer.pl -fs -zoom -vc theora,fftheora, -vo xv %s"]], [["extension", "theora"]]); +	    foreach my $video_ext ("mp2", "tp", "ts", "m2p", "nuv", "mkv") { +		change_or_make_entry("videotypes", [["playcommand", "Internal"], ["f_ignore", "0"], ["use_default", "1"]], [["extension", $video_ext]]); +	    } +	    foreach my $non_video_ext ("jpg", "par2") { +		change_or_make_entry("videotypes", [["f_ignore", "1"]], [["extension", $non_video_ext]]); +	    } +	     +	    # +	    # games, game players, and emulators +	    # +	    my @players = ( +		 [ 'SDLMAME', '/myth/games/xmame/roms', '/myth/games/xmame/screenshots', '/usr/games/mame -rp /myth/games/xmame/roms %s', 'MAME' ], +		 [ 'ZSNES','/myth/games/snes/roms','/myth/games/snes/screens','/usr/bin/zsnes','SNES' ], +		 [ 'FCEU','/myth/games/nes/roms','/myth/games/nes/screens','/usr/games/fceu','NES' ], +		 [ 'Frozen Bubble', '', '', '/usr/games/frozen-bubble --fullscreen','PC' ] +		); + +	    foreach my $player (@players) { +		# These INSERTs will fail if the playername is already present, but we don't error out if it happens. +		do_query("INSERT INTO gameplayers (playername, rompath, screenshots, commandline, gametype) VALUES ('".join("','",@$player)."');"); +	    } +	    # somewhat hardwired, but make sure Frozen Bubble shows up in the list of playable games. +	    do_query("INSERT INTO gamemetadata (system, romname, gamename, genre, year, publisher, rompath, gametype) VALUES ('". +		     join("','",($players[3][0], $players[3][3], $players[3][0], "action/puzzle", "2006", "Frozen Bubble Team", "/usr/games", $players[3][4]))."');"); + +	    # +	    # smart music playlists +	    # +	    # categoryid, name +	    change_or_make_entry("music_smartplaylist_categories", [["name", "Decades"]], [["categoryid", 1]]); +	    change_or_make_entry("music_smartplaylist_categories", [["name", "Favorite Tracks"]], [["categoryid", 2]]); +	    change_or_make_entry("music_smartplaylist_categories", [["name", "New Tracks"]], [["categoryid", 3]]); + +	    foreach my $decade (60, 70, 80, 90, 100) { +		my $id = ($decade / 10) - 5; +		my $query = "INSERT INTO music_smartplaylist_items (smartplaylistid, field, operator, value1, value2) VALUES ($id, 'Year', 'is between'," . ($decade+1900) . "," . ($decade+1909) . ");"; +		do_query($query); +		$query = "INSERT INTO music_smartplaylists (name, categoryid, matchtype, orderby, limitto) VALUES ('". ($decade+1900) . "\\'s', 1, 'All', 'Artist (A)', 0);"; +		do_query($query); +	    } + +	    my @other_lists = ( +		[ +		 ( 'Rating', 'is greater than', '7', 'Favorite Tracks', 2, 'Artist (A), Album (A)', 0 ), +		 ( 'Play Count', 'is greater than', '0', '100 Most Played Tracks', 2, 'Play Count (D)', 100 ), +		 ( 'Play Count', 'is equal to', '0', 'Never Played Tracks', 3, 'Artist (A), Album (A)', 0 ) +		]); + +	    my $id=6; +	    foreach my $other_list (@other_lists) { +		change_or_make_entry("music_smartplaylist_items", [["field", @$other_list[0]], ["operator", @$other_list[1]], ["value1", @$other_list[2]]], [["smartplaylistid", $id]]); +		change_or_make_entry("music_smartplaylists", [["name", @$other_list[3]], ["categoryid", @$other_list[4]], ["matchtype", "All"], ["orderby", @$other_list[5]], ["limitto", @$other_list[6]]], [["smartplaylistid", $id]]); +		$id++; +	    } + +	    # +	    # default playgroup with time-related settings +	    # +	    change_or_make_entry("playgroup", [["skipahead", 10], ["skipback", 5], ["timestretch", 100], ["jump", 1]], [["name", "Default"]]); + +	    # +	    # useful recording profiles and transcoding options +	    # +	    change_or_make_entry("profilegroups", [["name", "Software Encoders (v4l based)"], ["cardtype", "V4L"], ["is_default", 1]], [["id", 1]]); +	    change_or_make_entry("profilegroups", [["name", "MPEG-2 Encoders (PVR-x50, PVR-500)"], ["cardtype", "MPEG"], ["is_default", 1]], [["id", 2]]); +	    change_or_make_entry("profilegroups", [["name", "Hardware MJPEG Encoders (Matrox G200-TV, Miro DC10, etc)"], ["cardtype", "MJPEG"], ["is_default", 1]], [["id", 3]]); +	    change_or_make_entry("profilegroups", [["name", "Hardware HDTV"], ["cardtype", "HDTV"], ["is_default", 1]], [["id", 4]]); +	    change_or_make_entry("profilegroups", [["name", "Hardware DVB Encoders"], ["cardtype", "DVB"], ["is_default", 1]], [["id", 5]]); +	    change_or_make_entry("profilegroups", [["name", "Transcoders"], ["cardtype", "TRANSCODE"], ["is_default", 1]], [["id", 6]]); +	    change_or_make_entry("profilegroups", [["name", "FireWire Input"], ["cardtype", "FIREWIRE"], ["is_default", 1]], [["id", 7]]); +	    change_or_make_entry("profilegroups", [["name", "USB Mpeg-4 Encoder (Plextor ConvertX, etc)"], ["cardtype", "GO7007"], ["is_default", 1]], [["id", 8]]); +	    change_or_make_entry("profilegroups", [["name", "DBOX2 Input"], ["cardtype", "DBOX2"], ["is_default", 1]], [["id", 9]]); +	    change_or_make_entry("profilegroups", [["name", "Freebox Input"], ["cardtype", "Freebox"], ["is_default", 1]], [["id", 10]]); +	    change_or_make_entry("profilegroups", [["name", "HDHomeRun Recorders"], ["cardtype", "HDHOMERUN"], ["is_default", 1]], [["id", 11]]); +	    change_or_make_entry("profilegroups", [["name", "CRC IP Recorders"], ["cardtype", "CRC_IP"], ["is_default", 1]], [["id", 12]]); +     +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'transcodelossless', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'transcoderesize', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4bitrate', 2200)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4maxquality', 2)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4minquality', 15)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4qualdiff', 3)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'scalebitrate', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4optionvhq', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4option4mv', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4optionidct', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4optionime', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'encodingthreadcount', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg2bitrate', 4500)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'hardwaremjpegquality', 100)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'hardwaremjpeghdecimation', 4)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'hardwaremjpegvdecimation', 4)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg2streamtype', 'MPEG-2 PS')"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg2maxbitrate', 6000)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'samplerate', 48000)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'volume', 100)"); + +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'transcodelossless', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'transcoderesize', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4bitrate', 2200)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4maxquality', 2)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4minquality', 15)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4qualdiff', 3)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'scalebitrate', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4optionvhq', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4option4mv', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4optionidct', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4optionime', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'encodingthreadcount', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg2bitrate', 4500)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'hardwaremjpegquality', 100)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'hardwaremjpeghdecimation', 4)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'hardwaremjpegvdecimation', 4)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg2streamtype', 'MPEG-2 PS')"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg2maxbitrate', 6000)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'samplerate', 48000)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'volume', 100)"); + +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (27, 'transcodelossless', 1)"); + +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'transcodelossless', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'transcoderesize', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4bitrate', 2200)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4maxquality', 2)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4minquality', 15)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4qualdiff', 3)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'scalebitrate', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4optionvhq', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4option4mv', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4optionidct', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4optionime', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'encodingthreadcount', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg2bitrate', 4500)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'hardwaremjpegquality', 100)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'hardwaremjpeghdecimation', 4)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'hardwaremjpegvdecimation', 4)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg2streamtype', 'MPEG-2 PS')"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg2maxbitrate', 6000)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'samplerate', 48000)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'volume', 100)"); + +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'transcodelossless', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'transcoderesize', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4bitrate', 1500)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4maxquality', 2)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4minquality', 15)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4qualdiff', 3)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'scalebitrate', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4optionvhq', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4option4mv', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4optionidct', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4optionime', 0)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'encodingthreadcount', 1)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg2bitrate', 4500)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'hardwaremjpegquality', 100)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'hardwaremjpeghdecimation', 4)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'hardwaremjpegvdecimation', 4)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg2streamtype', 'MPEG-2 PS')"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg2maxbitrate', 6000)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'samplerate', 44100)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mp3quality', 7)"); +	    do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'volume', 100)"); + + +	    # I don't know why we have so many of these.  Only profilegroup 6 seems to matter. +	    change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 1]], [["id", 1]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 1]], [["id", 2]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 1]], [["id", 3]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 1]], [["id", 4]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 2]], [["id", 5]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 2]], [["id", 6]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 2]], [["id", 7]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 2]], [["id", 8]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 3]], [["id", 9]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 3]], [["id", 10]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 3]], [["id", 11]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 3]], [["id", 12]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 4]], [["id", 13]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 4]], [["id", 14]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 4]], [["id", 15]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 4]], [["id", 16]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 5]], [["id", 17]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 5]], [["id", 18]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 5]], [["id", 19]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 5]], [["id", 20]]); +	    change_or_make_entry("recordingprofiles", [["name", 'RTjpeg/MPEG4'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "Uncompressed"]], [["id", 21]]); +	    change_or_make_entry("recordingprofiles", [["name", 'MPEG2'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "Uncompressed"]], [["id", 22]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 8]], [["id", 23]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 8]], [["id", 24]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 8]], [["id", 25]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 8]], [["id", 26]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 6]], [["id", 27]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Medium Quality'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "Uncompressed"]], [["id", 28]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "MP3"]], [["id", 29]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 10]], [["id", 30]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 10]], [["id", 31]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 10]], [["id", 32]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 10]], [["id", 33]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 11]], [["id", 34]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 11]], [["id", 35]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 11]], [["id", 36]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 11]], [["id", 37]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 12]], [["id", 38]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 12]], [["id", 39]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 12]], [["id", 40]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 12]], [["id", 41]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 7]], [["id", 42]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 7]], [["id", 43]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 7]], [["id", 44]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 7]], [["id", 45]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 9]], [["id", 46]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 9]], [["id", 47]]); +	    change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 9]], [["id", 48]]); +	    change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 9]], [["id", 49]]); + +	    # +	    # settings +	    # +	    change_or_make_setting('AlwaysStreamFiles', '1'); # new in R6 +	    change_or_make_setting('AutoCommercialSkip', '1'); +	    change_or_make_setting('AutoExpireWatchedPriority', '1'); +	    change_or_make_setting('BackendServerPort', '6543'); +	    change_or_make_setting('BackendStatusPort', '6544'); +	    change_or_make_setting('CDWriterDevice', 'ATA:1,0,0'); +#	    change_or_make_setting('ChannelOrdering', 'chanid'); +	    change_or_make_setting('CommercialSkipMethod', '255'); +	    change_or_make_setting('DVDBookmarkPrompt', '1'); +	    change_or_make_setting('DVDRipLocation', $SQL_DirTmp); +	    change_or_make_setting('DefaultRipQuality', '1'); +	    change_or_make_setting('DefaultTranscoder', '28'); # change this number if you redefine the transcoders above +	    change_or_make_setting('Deinterlace', '1'); +	    change_or_make_setting('DeletesFollowLinks', '1'); +	    change_or_make_setting('DisableFirewireReset', '0'); +	    change_or_make_setting('EITCrawIdleStart','60'); +	    change_or_make_setting('EITIgnoresSource','0'); +	    change_or_make_setting('EITTimeOffset','Auto'); +	    change_or_make_setting('EITTransportTimeout','5'); +	    change_or_make_setting('EPGEnableJumpToChannel','1'); +	    change_or_make_setting('EPGFillType','12'); +	    change_or_make_setting('EnableDVDBookmark','1'); +	    change_or_make_setting('EndOfRecordingExitPrompt','1'); +	    change_or_make_setting('GalleryDir', $SQL_DirPics); +	    change_or_make_setting('GalleryRecursiveSlideshow', '1'); +	    change_or_make_setting('HaltCommand', 'sudo /sbin/halt'); +	    change_or_make_setting('HostAudiotype','ALSA'); +	    change_or_make_setting('HostMiro','1'); +	    change_or_make_setting('HostXine','1'); +	    change_or_make_setting('Hostpluginmythappletrailers','1'); +	    change_or_make_setting('Hostpluginmytharchive','1'); +	    change_or_make_setting('Hostpluginmythbrowser','1'); +	    change_or_make_setting('Hostpluginmythcontrols','1'); +	    change_or_make_setting('Hostpluginmythflix','1'); +	    change_or_make_setting('Hostpluginmythgallery','1'); +	    change_or_make_setting('Hostpluginmythgame','1'); +	    change_or_make_setting('HostpluginmythgameFceu','1'); +	    change_or_make_setting('HostpluginmythgameMame','1'); +	    change_or_make_setting('HostpluginmythgameMame','1'); +	    change_or_make_setting('HostpluginmythgameROMDB','1'); +	    change_or_make_setting('HostpluginmythgameXE','1'); +	    change_or_make_setting('HostpluginmythgameZsnes','1'); +	    change_or_make_setting('HostpluginmythgameZsnes','1'); +	    change_or_make_setting('Hostpluginmythmovietime','1'); +	    change_or_make_setting('Hostpluginmythmusic','1'); +	    change_or_make_setting('Hostpluginmythnews','1'); +	    change_or_make_setting('Hostpluginmythphone','1'); +	    change_or_make_setting('Hostpluginmythsmolt','1'); +	    change_or_make_setting('Hostpluginmythstream','1'); +	    change_or_make_setting('Hostpluginmythvideo','1'); +	    change_or_make_setting('Hostpluginmythvideo_dvdcss','0'); +	    change_or_make_setting('Hostpluginmythvideo_dvdcss','0'); +	    change_or_make_setting('Hostpluginmythvodka','1'); +	    change_or_make_setting('Hostpluginmythweather','1'); +	    change_or_make_setting('JobAllowCommFlag', '1'); +	    change_or_make_setting('JobAllowTranscode', '1'); +	    change_or_make_setting('JobAllowUserJob1', '1'); +	    change_or_make_setting('JobAllowUserJob2', '2'); +	    change_or_make_setting('JobQueueCPU','0'); +	    change_or_make_setting('JobQueueCheckFrequency','60'); +	    change_or_make_setting('JobQueueCommFlagCommand','mythcommflag'); +	    change_or_make_setting('JobQueueMaxSimultaneousJobs','1'); +	    change_or_make_setting('JobQueueTranscodeCommand','mythtranscode'); +	    change_or_make_setting('JobQueueWindowEnd','23:59'); +	    change_or_make_setting('JobQueueWindowStart','00:00'); +	    change_or_make_setting('JobsRunOnRecordHost','0'); +	    change_or_make_setting('LiveTVInAllPrograms','1'); +	    change_or_make_setting('MasterMixerVolume','100'); +	    change_or_make_setting('MasterServerIP', '127.0.0.1'); +	    change_or_make_setting('MasterServerPort', '6543'); +	    change_or_make_setting('MediaChangeEvents','1'); +	    change_or_make_setting('MonitorDrives', '1'); +	    change_or_make_setting('MusicLocation', $SQL_DirMusic); +	    change_or_make_setting('MythArchivePng2yuvCmd', 'png2yuv'); # ??? still used? +	    change_or_make_setting('MythArchiveShareDir','/myth/archive/'); +	    change_or_make_setting('MythArchiveTempDir', $SQL_DirTmp); +	    change_or_make_setting('MythFillDatabaseArgs', '--quiet'); +	    change_or_make_setting('MythFillDatabaseLog', '/var/log/mythtv/mythfilldatabase.log'); +	    change_or_make_setting('MythFillDatabasePath', '/usr/bin/nice -n 19 /usr/bin/mythfilldatabase'); +	    change_or_make_setting('MythFillEnabled', '1'); +	    change_or_make_setting('MythTVtv', $SQL_DirTV); +	    change_or_make_setting('NetworkControlEnabled', '1'); +	    change_or_make_setting('PCMMixerVolume', '50'); +	    change_or_make_setting('PVR350VideoDev', '/dev/video16'); +	    change_or_make_setting('PlayBoxShading', '0'); +	    change_or_make_setting('PlayMode', 'none'); +	    change_or_make_setting('PlaybackExitPrompt', '2'); +	    change_or_make_setting('PlaybackPreviewLowCPU', '1'); +#	    change_or_make_setting('PlaybackReturnPrompt', '1'); +#	    change_or_make_setting('PlaybackReturnPrompt', '2'); +	    change_or_make_setting('RebootCommand', 'sudo /sbin/reboot'); +	    change_or_make_setting('RecordFilePrefix',$SQL_DirTV); +	    change_or_make_setting('SelectChangesChannel', '1'); +	    change_or_make_setting('ServerHaltCommand', 'sudo /sbin/halt -p'); +	    change_or_make_setting('ShowWholeTree', '1'); +	    change_or_make_setting('SmartChannelChange', '1'); +	    change_or_make_setting('StartupSecsBeforeRecording', '120'); +	    change_or_make_setting('TruncateDeletesSlowly', '1'); +	    change_or_make_setting('UseOutputPictureControls', '1'); +	    change_or_make_setting('UserJob1', 'myth2ipod -cut \"%DIR%\" \"%FILE%\"'); +	    change_or_make_setting('UserJob2', 'myt2xvid3 -cut \"%DIR%\" \"%FILE%\"'); +	    change_or_make_setting('UserJobDesc1', 'Encode for iPod'); +	    change_or_make_setting('UserJobDesc2', 'Transcode to XviD'); +	    change_or_make_setting('UserJobDesc3', 'User Job #3'); +	    change_or_make_setting('UserJobDesc4', 'User Job #4'); +	    change_or_make_setting('VCDPlayerCommand', 'mplayer vcd:\/\/ -cdrom-device %d -fs -zoom -vo xv -vf pp=lb'); +	    change_or_make_setting('VideoArtworkDir', "$SQL_DirVideo/.covers"); +	    change_or_make_setting('VideoBrowserNoDB', '1'); +	    change_or_make_setting('VideoDefaultPlayer', 'mplayer-resumer.pl -fs -zoom -vo xv %s'); +	    change_or_make_setting('VideoGalleryNoDB', '1'); +	    change_or_make_setting('VideoStartupDir', $SQL_DirVideo); +	    change_or_make_setting('VideoTreeNoDB', '1'); +	    change_or_make_setting('VisualMode','BumpScope;Gears;Goom;MonoScope;Squares;StereoScope;Synaesthesia;LibVisual-bumpscope;LibVisual-corona;LibVisual-infinite;AlbumArt'); +	    change_or_make_setting('weatherbackgroundfetch', '1'); +	    change_or_make_setting('WebBrowserCommand','/usr/bin/mythbrowser'); +	    change_or_make_setting('WebBrowserHideScrollbars','0'); +	    change_or_make_setting('WebBrowserScrollMode','1'); +	    change_or_make_setting('WebBrowserScrollSpeed','4'); +	    change_or_make_setting('WebBrowserZoomLevel','20'); +	    change_or_make_setting('WebcamDevice','/dev/video'); +	    change_or_make_setting('WOLbackendCommand',''); +	    change_or_make_setting('WOLbackendConnectRetry','5'); +	    change_or_make_setting('WOLslaveBackendsCommand',''); +	    change_or_make_setting('WakeupTimeFormat','hh:mm yyyy-MM-dd'); +	    change_or_make_setting('WatchTVGuide','0'); +	    change_or_make_setting('WeatherDBSchemaVer','1000'); +	    change_or_make_setting('WebBrowserCommand','/usr/bin/mythbrowser'); +	    change_or_make_setting('WebBrowserHideScrollbars','0'); +	    change_or_make_setting('WebBrowserScrollMode','1'); +	    change_or_make_setting('WebBrowserScrollSpeed','4'); +	    change_or_make_setting('WebBrowserZoomLevel','20'); +	    change_or_make_setting('XineramaScreen','0'); +	    change_or_make_setting('blockSDWUwithoutClient','1'); +	    change_or_make_setting('idleWaitForRecordingTime','15'); +	    change_or_make_setting('mythdvd.DVDPlayerCommand', 'Internal'); +	    change_or_make_setting('mythvideo.VideoTreeRemember', '1'); +	    change_or_make_setting('mythfilldatabaseLastRunStart',''); +	    change_or_make_setting('mythfilldatabaseLastRunEnd',''); +	    change_or_make_setting('mythfilldatabaseLastRunStatus',''); + +	    # +	    # customexample table +	    # +	    change_or_make_entry("customexample", [["fromclause", ""], ["whereclause", "program.category_type = \"movie\" AND program.airdate >= YEAR(DATE_SUB(NOW(), INTERVAL 1 YEAR)) AND program.stars > 0.5 "], ["search", "1"]], [["rulename", "New Flix"]]); + +#	    # As much of MythWeather as we can automate for now +	    my $units = 0; +	    my $metric_units = do_query("SELECT * FROM settings WHERE value='SIUnits' AND data='YES'"); +	    if ($metric_units) { +		$units=0; +	    } else { +		$units=1; +	    } +#	    change_or_make_entry("weatherscreens", [["draworder", "0"], ["container", "Six Day Forecast"], ["units", $units]], [["screen_id", 1]]); +#	    change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "6dlocation"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]); +#	    for (my $increment=0; $increment < 6; $increment++) { +#		change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "date-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]); +#		change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "high-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]); +#		change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "icon-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]); +#		change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "low-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]); +#	    } +#	    change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "updatetime"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]); +# +#	    change_or_make_entry("weathersourcesettings", [["sourceid", "1"], ["source_name", "BBC-Current-XML"], ["update_timeout", "7200"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/bbccurrentxml.pl"], ["author", "Stuart Morgan"], ["version", "0.1"], ["email", "stuart\@tase.co.uk"], ["types", "cclocation,station_id,copyright,observation_time,weather,temp,relative_humidity,wind_dir,pressure,visibility,weather_icon,appt,wind_spdgst"]]); +#	    change_or_make_entry("weathersourcesettings", [["sourceid", "2"], ["source_name", "BBC-3day-XML"], ["update_timeout", "21600"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/bbcthreedayxml.pl"], ["author", "Stuart Morgan"], ["version", "0.1"], ["email", "stuart\@tase.co.uk"], ["types", "3dlocation,station_id,copyright,weather_icon,date-0,icon-0,low-0,high-0,date-1,icon-1,low-1,high-1,date-2,icon-2,low-2,high-2,updatetime"]]); +#	    change_or_make_entry("weathersourcesettings", [["sourceid", "3"], ["source_name", "ENVCAN"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/ca_envcan/envcan.pl"], ["author", "Joe Ripley"], ["version", "0.4"], ["email", "vitaminjoe\@gmail.com"], ["types", "cclocation,station_id,copyright,observation_time,observation_time_rfc822,weather,temp,relative_humidity,wind_dir,wind_degrees,wind_speed,wind_gust,pressure,dewpoint,heat_index,windchill,visibility,weather_icon,appt,wind_spdgst,3dlocation,6dlocation,date-0,icon-0,low-0,high-0,date-1,icon-1,low-1,high-1,date-2,icon-2,low-2,high-2,updatetime,date-3,icon-3,low-3,high-3,date-4,icon-4,low-4,high-4,date-5,icon-5,low-5,high-5"]]); +#	    change_or_make_entry("weathersourcesettings", [["sourceid", "4"], ["source_name", "NDFD-6_day"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/ndfd.pl"], ["author", "Lucien Dunning"], ["version", "0.1"], ["email", "ldunning\@gmail.com"], ["types", "3dlocation,6dlocation,updatetime,high-0,high-1,high-2,high-3,high-4,high-5,low-0,low-1,low-2,low-3,low-4,low-5,icon-0,icon-1,icon-2,icon-3,icon-4,icon-5,date-0,date-1,date-2,date-3,date-4,date-5"]]); +#	    change_or_make_entry("weathersourcesettings", [["sourceid", "5"], ["source_name", "NDFD-18_hour"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/ndfd18.pl"], ["author", "Lucien Dunning"], ["version", "0.1"], ["email", "ldunning\@gmail.com"], ["types", "18hrlocation,updatetime,temp-0,temp-1,temp-2,temp-3,temp-4,temp-5,18icon-0,18icon-1,18icon-2,18icon-3,18icon-4,18icon-5,pop-0,pop-1,pop-2,pop-3,pop-4,pop-5,time-0,time-1,time-2,time-3,time-4,time-5"]]); +#	    change_or_make_entry("weathersourcesettings", [["sourceid", "6"], ["source_name", "NWS-Alerts"], ["update_timeout", "600"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/nws-alert.pl"], ["author", "Lucien Dunning"], ["version", "0.1"], ["email", "ldunning\@gmail.com"], ["types", "swlocation,updatetime,alerts"]]); +#	    change_or_make_entry("weathersourcesettings", [["sourceid", "7"], ["source_name", "NWS-XML"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/nwsxml.pl"], ["author", "Lucien Dunning"], ["version", "0.2"], ["email", "ldunning\@gmail.com"], ["types", "cclocation,station_id,latitude,longitude,observation_time,observation_time_rfc822,weather,temperature_string,temp,relative_humidity,wind_string,wind_dir,wind_degrees,wind_speed,wind_gust,pressure_string,pressure,dewpoint_string,dewpoint,heat_index_string,heat_index,windchill_string,windchill,visibility,weather_icon,appt,wind_spdgst"]]); +	     +	    my $ipaddress = execute_shell_command("ifconfig | grep inet.addr | head -1"); +	    $ipaddress =~ s/.*inet addr:(\d+.\d+.\d+.\d+)\s.*/$1/g; + +	    # Change from the generic IP address to the real one. +	    do_query("UPDATE settings SET data='$ipaddress' where data='127.0.0.1'"); +	    do_query("UPDATE settings SET data='$ipaddress' where data='MythTVip'"); # ??? needed? +	     +	    my $hostname = execute_shell_command("hostname") || "localhost"; +	    # one table at a time, replace hostname with our actual hostname +	    # ??? can this be done all at once in MySQL? +	    foreach my $table ("capturecard", "inuseprograms", "jobqueue", "jumppoints", "keybindings", "music_playlists", +			       "musicplaylist", "recorded", "settings", "weatherscreens") { +		do_query("UPDATE $table SET hostname='$hostname'"); +	    } + +	    # Some entries in 'settings' should stay NULL:  http://www.mythtv.org/wiki/index.php/Settings_table +	    # There are fewer entries that stay NULL than there are that should have the hostname set, so while +	    # it duplicates some effort to change them from NULL to the hostname and them back to NULL, it's +	    # easier to maintain and more future-proof. +	    foreach my $entry ("mythfilldatabaseLastRunStart", "mythfilldatabaseLastRunEnd", "mythfilldatabaseLastRunStatus", +			       "DataDirectMessage", "HaveRepeats", "DBSchemaVer", "DefaultTranscoder", "MythFillSuggestedRunTime", +			       "MythFillGrabberSuggestsTime", "MasterServerIP", "MasterServerPort", "TVFormat", "VbiFormat", "FreqTable", +			       "TimeOffset", "MasterBackendOverride", "DeletesFollowLinks", "HDRingbufferSize", "EITTransportTimeout", +			       "EITIgnoresSource", "EITCrawIdleStart", "startupCommand", "blockSDWUwithoutClient", "idleWaitForRecordingTime", +			       "StartupSecsBeforeRecording", "WakeupTimeFormat", "SetWakeuptimeCommand", "ServerHaltCommand", "preSDWUCheckCommand", +			       "WOLbackendConnectRetry", "WOLbackendCommand", "WOLslaveBackendsCommand", "JobsRunOnRecordHost", +			       "AutoCommflagWhileRecording", "JobQueueCommFlagCommand", "JobQueueTranscodeCommand", +			       "AutoTranscodeBeforeAutoCommflag", "SaveTranscoding", "UserJobDesc1", "UserJob1", "UserJobDesc2", "UserJob2", +			       "UserJobDesc3", "UserJob3", "UserJobDesc4", "UserJob4", "PreviewPixmapOffset", "AllRecGroupPassword", +			       "MaximumCommercialSkip", "CommSkipAllBlanks", "LastFreeCard", "LiveTVPriority", "AutoExpireMethod", +			       "AutoExpireDefault", "RerecordWatched", "AutoExpireWatchedPriority", "AutoExpireLiveTVMaxAge", +			       "AutoExpireDayPriority", "AutoExpireExtraSpace", "AutoExpireInsteadOfDelete", "DeletedFifoOrder", +			       "CommercialSkipMethod", "AggressiveCommDetect", "AutoCommercialFlag", "AutoTranscode", "AutoRunUserJob1", +			       "AutoRunUserJob2", "AutoRunUserJob3", "AutoRunUserJob4", "OverTimeCategory", "CategoryOverTime", +			       "EPGEnableJumpToChannel", "LogEnabled", "MythFillEnabled", "MythFillDatabasePath", "MythFillDatabaseArgs", +			       "MythFillDatabaseLog", "MythFillPeriod", "MythFillMinHour", "MythFillMaxHour", "SchedMoveHigher", "SchedOpenEnd", +			       "ComplexPriority", "PrefInputPriority", "SingleRecordRecPriority", "FindOneRecordRecPriority", "ArchiveDBSchemaVer", +			       "FlixDBSchemaVer", "GalleryDBSchemaVer", "GameDBSchemaVer", "MusicDBSchemaVer", "PhoneDBSchemaVer", +			       "mythvideo.DBSchemaVer", "WeatherDBSchemaVer") { +		do_query("UPDATE settings SET hostname=NULL WHERE value='$entry'"); +	    } +	     +	    change_or_make_setting('MasterBackendOverride','1'); # I don't remember why, but making the hostname NULL is important here +	    do_query("UPDATE settings SET hostname=NULL WHERE value='MasterBackendOverride'"); +	     +	    # storagegroup +	    change_or_make_entry("storagegroup", [["groupname", "Default"], ["hostname", $hostname], ["dirname", $SQL_DirTV]], [["id", 1]]); + +	    # +	    # Websites for mythbrowser +	    # +	    #change_or_make_entry("websites", [["grp", "LinHeS"], ["dsc", ""], ["updated", ""]], [["url", "http://knoppmyth.net"]]); +	    #change_or_make_entry("websites", [["grp", "LinHeS"], ["dsc", ""], ["updated", ""]], [["url", "http://knoppmythwiki.org"]]); +	     +	    disconnect_from_db(); + +	    # Fix hostname for iPod feed URLs +	    $command = "sed -i \"s/hostname\\//$hostname\\//g\" /usr/local/bin/myth2ipod"; +	    execute_shell_command($command); +	     +	    # Fix hostname for XViD feed URLs +	    $command = "sed -i \"s/192.168.0.222\\//$hostname\\//g\" /usr/local/bin/myt2xvid3"; +	    execute_shell_command($command); + +	    # Customize default MythTV library.xml to reflect KnoppMyth's wider selection of +	    # online stream options. +	    #$command = "sed -i \"/<type>STREAM<\\/type>\$/{N; N; N; N; s/text>.*<\\/text/text>Online Streams<\\/text/; s/action>.*<\\/action/action>MENU is.xml<\\/action/; s/<depends.*depends>//; }\" /usr/share/mythtv/library.xml"; +	    $command = "/bin/cp /usr/share/mythtv/library.xml.km /usr/share/mythtv/library.xml"; +	    execute_shell_command($command); +	} else { +	    my $logger = get_logger('tweaker.script'); +	    $logger->error("Unable to connect to mythconverg database"); +	    $logger->error("Unable to implement option $option."); +	    return -1; +	} +	return 1; +    } + +    file_tweaks($option) || exit -1; +    SQL_tweaks($option) || exit -1; +} + +# Try to get a Recommendation Level for $option. +sub poll_options { +    my($option) = @_; +    recommendation_level("recommended", "These tweaks benefit all users."); +} + +# Unimplemented in 0.7 +sub check_option { +    help; +} + +# Unimplemented in 0.7 +sub count_iterations { +    help; +} + +process_parameters; diff --git a/abs/not_built/core/tweaker/bin/twk_graphics.pl b/abs/not_built/core/tweaker/bin/twk_graphics.pl new file mode 100755 index 0000000..22b6688 --- /dev/null +++ b/abs/not_built/core/tweaker/bin/twk_graphics.pl @@ -0,0 +1,149 @@ +#!/usr/bin/perl -w + +# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + +use Switch; +use Tweaker::Script; +package Tweaker::Script; + +# List all the options that this script supports.  Make sure it matches what's in +# the corresponding .tcf entry. +set_known_options( 'low', 'medium', 'high' ); + +sub check_for_GL() { +    # ??? Need to make this update a class variable instead of a temp file. +    my $fps = execute_shell_command("[ -e /tmp/fps ] && cat /tmp/fps") || -1; + +    # We think that any nVidia cards at or below NV25 are not well-supported +    # for GL.  Newer cards are NV34 or above, or have a different starting letter. +    my $generation = execute_shell_command("lspci -v | grep \"nVidia Corporation\" | grep VGA | awk -FCorporation '{ print \$2 }' | awk '{ print \$1 }'"); +    my $letters = substr($generation,0,2); +    if (("$letters" eq "NV") && ("$generation" lt "NV24")) { +	$fps = 0; +    } +     +    if ($fps == -1) { +	my $result = execute_shell_command("glxinfo | grep 'direct rendering'"); +	if ($result =~ m/direct rendering: Yes/) { +	    my $logger = get_logger('tweaker.script'); +	    $logger->info("Hardware OpenGL rendering ability detected."); +	    # Now poll the strength, returning the FPS from glxgears, run at the default resolution. +	    # I would love to be able to poll this in a way that 1) doesn't pop up a GUI window and +	    # 2) doesn't rely on manually making a database that maps video cards to performance levels. +	    $result = execute_shell_command("script -q -c \"glxgears -fullscreen &  sleep 11 ;  pkill -15 glxgears\" | grep FPS | tail -1"); +	    if ($result =~ m/ (\d+)\.\d+ FPS/) { +		$fps = $1; +		execute_shell_command("echo $fps > /tmp/fps"); +	    } +	} else { +	    $fps = 0; +	    execute_shell_command("echo $fps > /tmp/fps"); +	} +    } +    return $fps; +} + +# Try to implement the given option. +sub implement_option { +    my($option) = @_; +     +    $dbconnectionstring = get_mythtv_connection_string(); +	 +    if (connect_to_db("DBI:mysql:$dbconnectionstring")) { +	switch ($option) { +	    # List all the options that this script supports.  You can have as many as you like. +	    case "low" { +		change_or_make_setting('ThemePainter', 'Qt') || exit -1; +		change_or_make_setting('SlideshowUseOpenGL', '0') || exit -1; +		change_or_make_setting('SlideshowOpenGLTransition', 'none') || exit -1; +		change_or_make_setting('SlideshowTransition', 'none') || exit -1; +	    } +	    case "medium" { +		change_or_make_setting('ThemePainter', 'Qt') || exit -1; +		change_or_make_setting('SlideshowUseOpenGL', '1') || exit -1; +		change_or_make_setting('SlideshowOpenGLTransition', 'random (gl)') || exit -1; +		change_or_make_setting('SlideshowTransition', 'random') || exit -1; +	    } +	    case "high" { +		change_or_make_setting('ThemePainter', 'opengl') || exit -1; +		change_or_make_setting('SlideshowUseOpenGL', '1') || exit -1; +		change_or_make_setting('SlideshowOpenGLTransition', 'random (gl)') || exit -1; +		change_or_make_setting('SlideshowTransition', 'random') || exit -1; +	    } + +	    # In all cases, do the following: + +	    # enable anti-aliased fonts +	    my $qtrc="/home/mythtv/.qt/qtrc"; +	    # clean out old Xft settings +	    my $command = "sed -i 's/.*Xft=.*//g' $qtrc"; + +	    if (my $error = execute_shell_command($command)) { +		my $logger = get_logger('tweaker.script'); +		$logger->error("ERROR: $error"); +		$logger->error("ERROR: Unable to implement option $option."); +		exit(-1); +	    } else { +		# Add Xft settings +		my $command = "sed -i 's/embedFonts=true/embedFonts=true\nenableXft=true\nuseXft=true/g' $qtrc"; +		if  (my $error = execute_shell_command($command)) { +		    my $logger = get_logger('tweaker.script'); +		    $logger->error("ERROR: $error"); +		    $logger->error("ERROR: Unable to implement option $option."); +		    exit(-1); +		} else { +		    # Make sure to use an AA-capable font +		    my $command = "sed -i 's/font=.*/font=Sans Serif,12,-1,5,50,0,0,0,0,0/g' $qtrc"; +		    if  (my $error = execute_shell_command($command)) { +			my $logger = get_logger('tweaker.script'); +			$logger->error("ERROR: $error"); +			$logger->error("ERROR: Unable to implement option $option."); +			exit(-1); +		    } +		} +	    } +	} +    } else { +	exit -1; +    } +    disconnect_from_db(); +} + +# Poll the system to see what recommendationlevel the given option has on the system. +sub poll_options { +    my($option) = @_; +     +    # These are somewhat arbitrary at this point.  Note that they correspond to +    # _full screen_ glxgears results in Frames Per Second (FPS), since GL is used +    # at full screen resolution in MythTV. +    my $low_threshold = 350; # at or below $low_threshold FPS, GL is not considered good enough to use in MythTV +    my $medium_threshold = 425; # GL is pretty usable here +    my $high_threshold = 500; + +    threshold_test($option, check_for_GL(), "video card", $low_threshold, $medium_threshold, $high_threshold); +} + +# Unimplemented in 0.7 +sub check_option { +    help; +} + +# Unimplemented in 0.7 +sub count_iterations { +    help; +} + +process_parameters; diff --git a/abs/not_built/core/tweaker/bin/twk_keymap.sh b/abs/not_built/core/tweaker/bin/twk_keymap.sh new file mode 100755 index 0000000..c7f4093 --- /dev/null +++ b/abs/not_built/core/tweaker/bin/twk_keymap.sh @@ -0,0 +1,66 @@ +#!/bin/bash + +# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + +# This script is called from twk_general.pl to implement keymap standardization in KnoppMyth + +#KNOPPMYTH_SHARE=/usr/local/share/knoppmyth + +#################### +# Unify key mappings +#################### + +# Universal keybindings: +# Function	Remote Key	Keyboard Key +# ------------------------------------------ +# Skip Back	<<		PgUp +# Skip Forward	>>		PgDn +# Play		|>		l +# Pause		||		p +# Stop		[]		ESC + +#Make mplayer use keymappings that are compatible with other media player keymappings. +#NOTE: PGUP is PageUp and PGDWN is PageDown +MPLAYER_CONF=/etc/mplayer/input.conf +if [[ -f $MPLAYER_CONF ]]; then +    sed -i "s/^PGUP .*/PGUP seek -60/" $MPLAYER_CONF +    sed -i "s/^PGDWN .*/PGDWN seek +60/" $MPLAYER_CONF +    sed -i "s/^p .*/p pause/" $MPLAYER_CONF +    sed -i "s/^l .*/l pause/" $MPLAYER_CONF +else +    echo "ERROR: $MPLAYER_CONF is missing, which is unexpected." +    exit -1 +fi + +#Do the same for smplayer +SMPLAYER_CONF=/home/mythtv/.config/smplayer/smplayer.ini +if [[ -f $SMPLAYER_CONF ]]; then +    echo "INFO: $SMPLAYER_CONF found; tweaking now" +else +    echo "INFO: $SMPLAYER_CONF is missing; installing full version, then (re-)tweaking" +    sudo -u mythtv mkdir -p /home/mythtv/.config/smplayer/ +    /bin/cp $TWEAKER_ROOT/fs$SMPLAYER_CONF $SMPLAYER_CONF +fi +sed -i "s/rewind3=.*/rewind3=PgUp/" $SMPLAYER_CONF +sed -i "s/forward3=.*/forward3=PgDown/" $SMPLAYER_CONF +sed -i "s/quit=.*/quit=Esc/" $SMPLAYER_CONF +sed -i "s/pause=.*/pause=P/" $SMPLAYER_CONF +sed -i "s/play=.*/play=L/" $SMPLAYER_CONF +# Remove conflicting keybindings +sed -i "s/stop=.*/stop=/" $SMPLAYER_CONF +sed -i "s/play_or_pause=.*/play_or_pause=/" $SMPLAYER_CONF +sed -i "s/exit_fullscreen=.*/exit_fullscreen=/" $SMPLAYER_CONF +sed -i "s/pl_play=.*/pl_play=/" $SMPLAYER_CONF diff --git a/abs/not_built/core/tweaker/bin/twk_localization.pl b/abs/not_built/core/tweaker/bin/twk_localization.pl new file mode 100755 index 0000000..fc84440 --- /dev/null +++ b/abs/not_built/core/tweaker/bin/twk_localization.pl @@ -0,0 +1,72 @@ +#!/usr/bin/perl -w + +# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + +use Switch; +use Tweaker::Script; +package Tweaker::Script; + +set_known_options( 'US_English', 'GB_English' ); # Should eventually expand to handle all translations available for MythTV. + +# Try to implement the given option. +sub implement_option { +    my($option) = @_; + +    $dbconnectionstring = get_mythtv_connection_string(); +	 +    if (connect_to_db("DBI:mysql:$dbconnectionstring")) { +	# The entire planet except the US uses metric measurements. +	change_or_make_setting('SIUnits', 'YES') || exit -1; +	switch ($option) { +	    case "US_English" { +		# Uses Imperial measurements for things like weather. +		change_or_make_setting('SIUnits', 'NO') || exit -1; +		change_or_make_setting('Language', 'EN') || exit -1; +		change_or_make_setting('ISO639Language0', 'eng') || exit -1; +		change_or_make_setting('ISO639Language1', 'eng') || exit -1; +		change_or_make_setting('MythArchiveVideoFormat', 'NTSC') || exit -1; +	    } +	    case "GB_English" { +		change_or_make_setting('Language', 'EN_GB') || exit -1; +		change_or_make_setting('ISO639Language0', 'eng') || exit -1; +		change_or_make_setting('ISO639Language1', 'eng') || exit -1; +		change_or_make_setting('MythArchiveVideoFormat', 'PAL') || exit -1; +	    } +	} +    } else { +	exit -1; +    } +    disconnect_from_db(); +} + +# Try to get a Recommendation Level for $option. +sub poll_options { +    my($option) = @_; + +    recommendation_level("optional", "We don't yet have any way to know what your preferred language is.  This option is as valid as any other."); +} + +# Unimplemented in 0.7 +sub check_option { +    help; +} + +# Unimplemented in 0.7 +sub count_iterations { +    help; +} + +process_parameters; diff --git a/abs/not_built/core/tweaker/bin/twk_misc.pl b/abs/not_built/core/tweaker/bin/twk_misc.pl new file mode 100755 index 0000000..96771a6 --- /dev/null +++ b/abs/not_built/core/tweaker/bin/twk_misc.pl @@ -0,0 +1,13 @@ +# Placeholder for tweaks not yet implemented + +# Screen size / viewing distance +change_or_make_setting('chanPerPage', '4') || exit -1; +change_or_make_setting('timePerPage', '3') || exit -1; + +# Disk space / sound quality / compatibility +change_or_make_setting('DefaultRipQuality', '2') || exit -1; +change_or_make_setting('Mp3UseVBR', '1') || exit -1; + +# Localization / tuner type +# N. America +change_or_make_setting('VbiFormat', 'NTSC Closed Caption') || exit -1; diff --git a/abs/not_built/core/tweaker/bin/twk_scrub_sql.pl b/abs/not_built/core/tweaker/bin/twk_scrub_sql.pl new file mode 100755 index 0000000..c1de20b --- /dev/null +++ b/abs/not_built/core/tweaker/bin/twk_scrub_sql.pl @@ -0,0 +1,96 @@ +#!/usr/bin/perl -w + +# Copyright 2008-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + +use Switch; +use Tweaker::Script; +package Tweaker::Script; + +# List all the options that this script supports.  Make sure it matches what's in +# the corresponding .tcf entry. +set_known_options( 'scrub', 'protect' ); +my $beginning_of_user_index=65; + +# Try to implement the given option. +sub implement_option { +    my($option) = @_; + +    $dbconnectionstring = get_mythtv_connection_string(); +	 +    if (connect_to_db("DBI:mysql:$dbconnectionstring")) { + +	my @table_list = ( +	    [ 'capturecard', 'cardid' ], # tuner-related +	    [ 'cardinput', 'cardinputid' ],   # tuner-related +	    [ 'videosource', 'sourceid' ], # tuner-related + +	    [ 'dvdinput', 'intid' ], +	    [ 'dvdtranscode', 'intid' ], +	    [ 'gameplayers', 'gameplayerid' ], +	    [ 'music_smartplaylist_categories', 'categoryid' ], +	    [ 'music_smartplaylist_items', 'smartplaylistitemid' ], +	    [ 'music_smartplaylists', 'smartplaylistid' ], +	    [ 'phonedirectory', 'intid' ], +	    [ 'profilegroups', 'id' ], +	    [ 'recordingprofiles', 'id' ], +	    [ 'storagegroup', 'id' ], +	    [ 'videotypes', 'intid' ], +	    ); + +	switch ($option) { +	    case "scrub" { # delete the rows from the table +		foreach my $table (@table_list) { +		    do_query("DELETE FROM @$table[0] WHERE @$table[1] < $beginning_of_user_index;"); +		    do_query("ALTER TABLE @$table[0] AUTO_INCREMENT = 0;"); +		} +	    } +	    case "protect" { +		foreach my $table (@table_list) { +		    do_query("ALTER TABLE @$table[0] AUTO_INCREMENT = $beginning_of_user_index;"); +		} +	    } +	} +    } else { +	exit -1; +    } +    disconnect_from_db(); +} + +sub poll_options { +    my($option) = @_; +    switch ($option) { +	case "scrub" { +	    recommendation_level("recommended", "This is required to ensure that other KnoppMyth SQL Tweaks work."); +	} +	case "protect" { +	    recommendation_level("recommended", "This is required to ensure that other KnoppMyth SQL Tweaks do not clobber user-made changes."); +	} +    } +} + +# Unimplemented in 0.7 +sub check_option { +    help; +} + +# Unimplemented in 0.7 +sub count_iterations { +    help; +} + +process_parameters; + + diff --git a/abs/not_built/core/tweaker/bin/twk_tuners.pl b/abs/not_built/core/tweaker/bin/twk_tuners.pl new file mode 100755 index 0000000..22c6a23 --- /dev/null +++ b/abs/not_built/core/tweaker/bin/twk_tuners.pl @@ -0,0 +1,491 @@ +#!/usr/bin/perl -w + +# Copyright 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + +use Switch; +use Tweaker::Script; +package Tweaker::Script; + +set_known_options( 'all' ); # When Tweaker handles multiple instances of a script, this will be expanded to +# handle options for a given card, based on what it supports, e.g. ATSC, QAM, NTSC-coax, NTSC-Svideo, etc. +# The current version of this script will run once and set up defaults for all detected cards, choosing +# a default configuration based on some assumptions of common usage.  Modes in this array should be listed +# from least desirable to most desirable.  E.g. ["NTSC", "ATSC", "QAM"] + +my @capture_card_patterns = ( +    # DIGITAL +    # ------- +    # ATSC-only devices +    [ "pcHDTV hd-2000", [".*0400.*109e.*036e.*r11.*7063.*2000.*"], +      ["DVB", ["ATSC"]]], +#    [ "BBTI Air2PC v2", [".*0280.*13d0.*2103.*r02.*13d0.*2103.*"], # ??? dupe 1; mihanson +#      ["DVB", ["ATSC"]]], +     +    # DVB-T devices +    [ "DViCO FusionHDTV DVB-T Lite", [".*0400.*109e.*036e.*r11.*18ac.*db10.*"], +      # secondary device "0480" "109e" "0878" -r11 "18ac" "d500" +      ["DVB", ["DVB-T"]]], +    [ "DViCO FusionHDTV DVB-T1", [".*0400.*14f1.*8800.*18ac.*db00.*"], +      ["DVB", ["DVB-T"]]], # also has composite and S-Video in for frame grabbing +    [ "DViCO FusionHDTV DVB-T Plus", [".*0400.*14f1.*8800.*8800.*db10.*"], +      ["DVB", ["DVB-T"]]], +    [ "DViCO FusionHDTV dual Express", [".*0400.*14f1.*8852.*18ac.*db78.*"], +      ["DVB", ["DVB-T"]]], +    [ "Twinhan VisionPlus DVB-T", [".*0400.*109e.*036e.*r11.*1822.*0001.*"], # ??? dupe 2; jbman, Girkers +      ["DVB", ["DVB-T"]]], +#    [ "EU Hauppauge PVR-500 (DVB-T)", [".*0400.*4444.*0016.*0070.*e807.*"], +#      ["DVB", ["DVB-T"]]], +    [ "Avermedia A777", [".*0480.*1131.*7133.*1461.*2c05.*", ".*0480.*1131.*7134.*1461.*2c05.*"], +      ["DVB", ["DVB-T"]]], +    [ "Compro T300", [".*0480.*1131.*7134.*185b.*c900.*", ".*0480.*1131.*7134.*7134.*c900.*"], +      ["DVB", ["DVB-T"]]], + +    # DVB-C devices +    [ "Siemens DVB-C", [".*0480.*1131.*7146.*110a.*0000.*"], +      ["DVB", ["DVB-C"]]], + +    # DVB-S devices +    [ "VisionPlus 1020A", [".*0480.*109e.*0878.*1822.*0001.*"], +      ["DVB", ["DVB-S"]]], +#    [ "Technisat Skystar2", [".*0280.*13d0.*2103.*r01.*13d0.*2103.*"], # ??? dupe 1; nbdwt73, neutron68 +#      ["DVB", ["DVB-S"]]], +    [ "Twinhan 102g", [".*0400.*109e.*036e.*r11.*1822.*0001.*"], # ??? dupe 2; neutron68 +      # secondary device "0480" "109e" "0878" -r11 "1822" "0001" +      ["DVB", ["DVB-S"]]], +     +    # ATSC/QAM devices +    [ "Kworld ATSC-110", [".*0480.*1131.*7133.*17de.*"], +      ["DVB", ["ATSC", "QAM"]]], +    [ "pcHDTV hd-3000", [".*0400.*14f1.*8800.*3000.*"], +      ["DVB", ["ATSC", "QAM"]]], # the hd-3000 has several sub-devices; this pattern matches the digital tuner +    [ "BBTI HD5000AV / AirStar 2 TV", [".*0280.*13d0.*2103.*r02.*13d0.*2103.*"], # ??? dupe 1; manicmike +      ["DVB", ["ATSC", "QAM", "DVB-T"]]], +    [ "pcHDTV hd-5500", [".*0400.*14f1.*8800.*7063.*5500.*"], +      ["DVB", ["ATSC", "QAM"]]], +    [ "Hauppauge WinTV-HVR-1800", [".*0400.*14f1.*8880.*0070.*7801.*"], +      ["DVB", ["ATSC", "QAM"]]], +    [ "DViCO Fusion Express", [".*0400.*14f1.*8852.*r02.*18ac.*d500.*"], +      ["DVB", ["ATSC", "QAM"]]], + +    # card has one sub-device; this pattern matches the primary device +    [ "DViCO Fusion HDTV5 Lite", [".*0400.*109e.*036e.*r11.*18ac.*d500.*"], +      # secondary device "0480" "109e" "0878" -r11 "18ac" "d500" +      ["DVB", ["ATSC", "QAM"]]], +     +    # ANALOG +    # ------- +    # NTSC cards +    # MPEG-2 type +    [ "Hauppauge PVR-150", [".*0400.*4444.*0016.*0070.*8003.*", ".*0400.*4444.*0016.*0070.*8801.*"], +      ["MPEG", ["NTSC"]]], +    [ "Hauppauge PVR-250", [".*0200.*10ec.*8139.*1799.*5000.*", ".*0400.*4444.*0016.*0070.*4009.*", ".*0400.*4444.*0016.*0070.*f7f9.*"], +      ["MPEG", ["NTSC"]]], +    [ "Hauppauge PVR-350", [".*0400.*4444.*0803.*0070.*4000.*"], +      ["MPEG", ["NTSC"]]], + +    # NTSC/PAL cards +    # MPEG-2 type +    [ "Hauppauge PVR-500", [".*0400.*4444.*0016.*0070.*e817.*", ".*0400.*4444.*0016.*0070.*e807.*"], # look for each of two devices on the card, since it's dual-tuner +      ["MPEG", ["NTSC"]]], +     +    # Frame grabbers +#    [ "bt878-based frame grabbers", [".*0400.*109e.*036e.*", ".*0480.*109e.*0878.*"], +#      ["V4L", ["NTSC"]]], +     +    # USB patterns + +    [ "Dvico Dual Digital 4 rev2", [".* 0fe9:db98 .*"], +      ["DVB", ["DVB-T"]]], +    ); + +# "Hauppauge Nova-T 500 Dual DVB-T" + +#T:  Bus=08 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480 MxCh= 0 +#D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1 +#P:  Vendor=2040 ProdID=9941 Rev= 1.00 +#S:  Manufacturer=Hauppauge +#S:  Product=WinTV Nova-DT +#S:  SerialNumber=4027351140 +#C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=500mA +#I:* If#= 0 Alt= 0 #EPs= 4 Cls=ff(vend.) Sub=00 Prot=00 Driver=dvb_usb_dib0700 +#E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=125us +#E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms +#E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms +#E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms  + +# "Hauppauge Nova-T-500" + +#T:  Bus=08 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480 MxCh= 0 +#D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1 +#P:  Vendor=2040 ProdID=9950 Rev= 1.00 +#S:  Manufacturer=Hauppauge +#S:  Product=WinTV Nova-DT +#S:  SerialNumber=4027353863 +#C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA +#I:  If#= 0 Alt= 0 #EPs= 4 Cls=ff(vend.) Sub=00 Prot=00 Driver=dvb_usb_dib0700 +#E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=125us +#E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms +#E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms +#E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms  + +# Try to implement the given option. +sub implement_option { +    my($option) = @_; +     +    $dbconnectionstring = get_mythtv_connection_string(); +	 +    if (connect_to_db("DBI:mysql:$dbconnectionstring")) { +	my $logger = get_logger('tweaker.script'); +	 +	# Get a list of all PCI and USB devices for later processing +	my @device_list = split('\n', execute_shell_command("lspci -mn ; lsusb")); + +	# Iterate through the list of known tuner cards, then the list of known network tuners. +	# For each known tuner, configure a safe default for it if it's found.  Set up +	# well-named video sources for any mode supported by any tuner, and pick a default. + +	# Determine the recording priority for a given device using the following priority rules, +	# from top to bottom, the top being the most significant, and the bottom being the least +	# significant +	 +	# Input types in order of decreasing priority: +	# Digital cable, digital satellite, digital OTA, analog cable, analog line-in, analog OTA + +	# Device types in order of decreasing priority: +	# local device, remote device + +	# Capture types in order of decreasing priority: +	# MPEG-2 creators (or passthrough of MPEG-2), MPEG-4 creators, frame grabbers +	 +	# For example, if device1 supports a better input type than device2, device1 is always preferred. +	# Ties are broken by the next level down.  For example, if device1 and device2 both support the +	# same input type, the tie is broken based on whether it's a local or remote device.  Finally, +	# ties of input type and device type are broken by the output of the device.  It should be +	# noted that it's possible to tie in all categories, and MythTV will break ties based on the +	# order in which the devices are defined. + + +	# For the following subroutines, $relative_device_count represents which device this is in +	# the context of the total devices of its type.  $global_device_count represents which device +	# this is amongst all capture devices.  Each returns a list of row names and values +	# for the capturecard table, appropriate for the relevant type of device. +	 +	# Create an entry in the capturecard table for the given tuner. +	sub make_capturecard_SQL { +	    my($global_device_count, $relative_device_count, $cardtype, $tuner_number)=@_; +	    # $tuner_number is only used for HDHomeRuns +	    my $defaultinput=""; +	    my $hostname = execute_shell_command("hostname") || "localhost"; +	    my $checkfields = [["cardid", "$global_device_count"], +			       ["hostname", "$hostname"], +			       ["cardtype", "$cardtype"]]; +	    my $setfields; +	    my $logger = get_logger('tweaker.script'); +	     +	    # Because other devices use the /dev/video* and /dev/vbi* device +	    # files, the "device count" is used to determine which number follows the base +	    # device file name, e.g. /dev/video1, /dev/vbi1 +	    sub make_V4L_capturecard_SQL { +		my($relative_device_count)=@_; # 0-indexed +		 +		return [["videodevice", "/dev/video$relative_device_count"], +			["audiodevice", "/dev/dsp"], +			["vbidevice", "/dev/vbi$relative_device_count"], +			["audioratelimit", "0"]]; +	    } +	     +	    # Because other devices use the /dev/video* and /dev/vbi* device +	    # files, the "device count" is used to determine which number follows the base +	    # device file name, e.g. /dev/video1, /dev/vbi1 +	    sub make_MPEG_capturecard_SQL { +		my($relative_device_count, $defaultinput)=@_; # 0-indexed +		 +		return [["videodevice", "/dev/video$relative_device_count"], +			["defaultinput", $defaultinput]]; +	    } +	     +	    sub make_DVB_capturecard_SQL { +		my($relative_device_count, # 0-indexed +		   $defaultinput)=@_; +		my $logger = get_logger('tweaker.script'); + +		$logger->debug("DEFAULTINPUT: $defaultinput"); +		 +		return [["videodevice", "$relative_device_count"], # Rather than being a device file, it's a 0-indexed value indicating +			# which of the N available DVB devices this is.  Since a card can have more than one DVB device on it, there may +			# be more DVB "videodevice"s on a system than there are distinct "cardid"s. +			["defaultinput", $defaultinput], +			["dvb_on_demand", "1"]]; +	    } + +	    # special case of DVB device +	    sub make_HDHOMERUN_capturecard_SQL { +		my($hdhr_hex_id, $tuner_number, $defaultinput)=@_; + +		return [["videodevice", "$hdhr_hex_id"], +			["defaultinput", $defaultinput], +			["dvb_on_demand", "0"], +			["dbox2_port", $tuner_number] # 0 or 1 +		    ]; +	    } + +	    $logger->debug("CARD TYPE: $cardtype"); +	    switch($cardtype) { +		case "V4L" { +		    $setfields = make_V4L_capturecard_SQL($relative_device_count); +		} +		case "DVB" { +		    $defaultinput = "DVBInput"; +		    $setfields = make_DVB_capturecard_SQL($relative_device_count, $defaultinput); +		} +		case "HDHOMERUN" { +		    $defaultinput = "MPEG2TS"; +		    $setfields = make_HDHOMERUN_capturecard_SQL($relative_device_count, $tuner_number, $defaultinput); +		} +		case "MPEG" { +		    $defaultinput = "Tuner 1"; +		    $setfields = make_MPEG_capturecard_SQL($relative_device_count, $defaultinput); +		} +	    } + +	    change_or_make_entry("capturecard", $setfields, $checkfields); +	    return $defaultinput; +	} + +	# Create an entry in videosource corresponding to the sub-type of input this device takes +	# Return the sourceid for the entry we just made, which is a rough metric of desirability. +	sub verify_or_make_videosource_SQL { +	    # sub-types are NTSC, PAL, ATSC, QAM, DVB-S, DVB-T, DVB-C, etc. +	    my($sub_type)=@_; +	    my $logger = get_logger('tweaker.script'); + +	    $logger->debug("\t\t\tUpdating or adding videosource for sub-type: $sub_type"); +	     +	    switch($sub_type) { +		# North American options, from least desirable to most desirable (this is slightly arbitrary) +		case "NTSC" { +		    change_or_make_entry("videosource", [["name", "analog_broadcast"], ["freqtable", "try-all"]], [["sourceid", 1]]); +		    # This is one of two cases where a sub_type can be used in two ways.  Both videosources are made, but the preferred one is +		    # cable, the most common option. +		    change_or_make_entry("videosource", [["name", "analog_cable"], ["freqtable", "try-all"]], [["sourceid", 5]]); +		    return 5; +		} +		case "ATSC" { +		    change_or_make_entry("videosource", [["name", "digital_broadcast"], ["freqtable", "try-all"]], [["sourceid", 10]]); +		    return 10; +		} +		case "QAM" { +		    change_or_make_entry("videosource", [["name", "digital_cable"], ["freqtable", "try-all"]], [["sourceid", 20]]); +		    return 20; +		} + +		# Options for the rest of the planet +		case "PAL" { +		    change_or_make_entry("videosource", [["name", "analog_broadcast"], ["freqtable", "try-all"]], [["sourceid", 1]]); +		    # This is one of two cases where a sub_type can be used in two ways.  Both videosources are made, but the preferred one is +		    # cable, the most common option. +		    change_or_make_entry("videosource", [["name", "analog_cable"], ["freqtable", "try-all"]], [["sourceid", 5]]); +		    return 5; +		} +		case "DVB-T" { +		    change_or_make_entry("videosource", [["name", "digital_broadcast"], ["freqtable", "try-all"]], [["sourceid", 10]]); +		    return 10; +		} +		case "DVB-C" { +		    change_or_make_entry("videosource", [["name", "digital_cable"], ["freqtable", "try-all"]], [["sourceid", 20]]); +		    return 20; +		} + +		# Planet-wide options +		case "DVB-S" { +		    change_or_make_entry("videosource", [["name", "digital_satellite"], ["freqtable", "try-all"]], [["sourceid", 15]]); +		    return 15; +		} +	    } +	} + +	sub make_cardinput_SQL { +	    my($tuner_card_number, $sourceid, $inputname, $priority_modifier)=@_; + +	    change_or_make_entry("cardinput", [["sourceid", $sourceid], ["cardid", $tuner_card_number], +					       ["inputname", $inputname], ["preference", $sourceid], ["tunechan", ""], +					       ["startchan", "Please add"], ["freetoaironly", "1"], +					       ["recpriority", $sourceid+$priority_modifier]], +				 [["cardinputid", $tuner_card_number]]); +	} + +	sub max { +	    my($a, $b)=@_; +	    if ($a > $b) { +		return $a; +	    } else { +		return $b; +	    } +	} +	 +	my $global_device_count=0; + +	# Configure each supported tuner/capture device detected on the system. + +	# built-in, PCI, PCI Express, or USB +	$logger->debug("Processing built-in, PCI, PCI Express or USB devices..."); +	for my $a_device (@device_list) { +	    $logger->debug("DEVICE: $a_device"); +	    my $match=0; + +	    for my $device_data (@capture_card_patterns) { +		$logger->debug("\tIs there a @$device_data[0] at this location?"); + +		for my $patterns (@$device_data[1]) { +		    for my $pattern (@$patterns) { +			if ($match) { +			    next; +			} else { +			    $logger->debug("\t\tPATTERN: $pattern"); +			    $match += ($a_device =~ m/$pattern/i); +			    if ($match) { +				$global_device_count++; # 1-indexed +				 +				$logger->debug("\t\tfound one!"); +				# Each device has a device type (e.g. MPEG, DVB, V4L) that it supports, and a +				# list of sub_types (e.g. PAL, NTSC, DVB-S, DVB-T, DVB-C, ATSC, QAM). +				# The device type is used to configure the capturecard table and the cardinput table. +				# The sub_types are used to populate the videosource table. +				# The device type and "best" sub_type are used to set the 'sourceid' field of the cardinput table. + +				for my $typeblock (@$device_data[2]) { +				    my $device_type = @$typeblock[0]; +				    $logger->debug("\t\tDEVICE TYPE: $device_type"); # e.g. "DVB", "MPEG", etc. +				    $cardtypes{$device_type}++; +				    my $sourceid = -1; +				    for my $sub_types (@$typeblock[1]) { +					for my $sub_type (@$sub_types) { +					    $logger->debug("\t\tSUB-TYPE: $sub_type\n"); # e.g. "DVB-S", "QAM", etc. +					    # ensure that the videosource table has an entry for each sub_type +					    # that this device supports; use the "best" one for the device by +					    # default + +					    # +					    # POPULATE videosource table +					    # +					    $sourceid = max(verify_or_make_videosource_SQL($sub_type), $sourceid); +					} +				    } +				    $logger->debug("\t\t\"BEST\" SOURCE ID: $sourceid\n"); + +				    # +				    # POPULATE capturecard table +				    # +				    my $defaultinput = make_capturecard_SQL($global_device_count, $cardtypes{$device_type}-1, $device_type, -1); + +				    # +				    # POPULATE cardinput table +				    # +				    make_cardinput_SQL($global_device_count, $sourceid, $defaultinput, 0); +				} +			    } +			} +		    } +		} +	    } +	} + +	# network tuner devices +	$logger->debug("Processing network devices..."); + +	# get our IP address +	my $ip_address; +	open(SHELL, "ifconfig | grep \"inet addr\" | grep -v 127 |"); +	while(<SHELL>) { +	    my @line = split(/:| +/); +	    $ip_address = $line[3]; +	} +	close(SHELL); + +	# ??? eventually, just add LocalIPCheck.pl's code to Tweaker/Script.pm and avoid bizarre perl-to-shell-to-perl calls at this level +	my $ip_class = execute_shell_command("echo $ip_address | LocalIPCheck.pl; echo \$?"); + +	if ($ip_class > 0) { # we're on a LAN, not the internet +	    # Look for HDHomeRun, a DVB ATSC/QAM device +	    $sourceid=0; +	    $logger->debug("\tLooking for SiliconDust HDHomeRun..."); +	    open(SHELL2, "hdhomerun_config discover |"); +	    while(<SHELL2>) { +		if (m/\d+\.\d+\.\d+\.\d+/) { +		    my @line = split(/ /); +		    my $hdhr_hex_id = $line[2]; + +		    $logger->debug("\tfound $hdhr_hex_id"); +		    $global_device_count++; # 1-indexed +		    $cardtypes{"DVB"}++; +		    # +		    # POPULATE videosource table +		    # +		    for my $sub_type ("ATSC", "QAM") { +			$sourceid = max(verify_or_make_videosource_SQL($sub_type), $sourceid); +		    } +		    $logger->debug("\t\t\"BEST\" SOURCE ID: $sourceid\n"); +		     +		    # +		    # POPULATE capturecard table +		    # +		     +		    # there are two tuners per HDHomeRun +		    for (my $sub_tuner_count = 0; $sub_tuner_count < 2; $sub_tuner_count++) { +			my $defaultinput = make_capturecard_SQL($global_device_count+$sub_tuner_count, $hdhr_hex_id, "HDHOMERUN", $sub_tuner_count); +			# +			# POPULATE cardinput table +			# +			make_cardinput_SQL($global_device_count+$sub_tuner_count, $sourceid, $defaultinput, -4); # the -4 is to make it less desirable +			# than a local device +		    } +		    $global_device_count++; +		     +		} +	    } +	    close(SHELL2); +	} # else: don't scan the internet! +	 +	# Filesystem Tweaks for tuners +	# This only works with the Nova-T-500 card, but it doesn't hurt any other cards +	execute_shell_command("echo \"#switch on onboard amplifier on Nova-T-500 card\" > /etc/modprobe.d/dvb-usb-dib0700"); +	execute_shell_command("echo \"options dvb-usb-dib0700 force_lna_activation=1\" >> /etc/modprobe.d/dvb-usb-dib0700"); +    } else { +	my $logger = get_logger('tweaker.script'); +	$logger->error("Unable to connect to mythconverg database"); +	$logger->error("Unable to implement option $option."); +	return -1; +    } +} + +# Try to get a Recommendation Level for $option. +sub poll_options { +    my($option) = @_; + +    recommendation_level("recommended", "Everyone should scan for tuners to autoconfigure."); +} + +# Unimplemented in 0.7 +sub check_option { +    help; +} + +# Unimplemented in 0.7 +sub count_iterations { +    help; +} + +process_parameters; diff --git a/abs/not_built/core/tweaker/bin/twk_tuners_notes.txt b/abs/not_built/core/tweaker/bin/twk_tuners_notes.txt new file mode 100644 index 0000000..1f2e283 --- /dev/null +++ b/abs/not_built/core/tweaker/bin/twk_tuners_notes.txt @@ -0,0 +1,55 @@ +# Some PCI devices have the same lspci -mn fingerprint, yet users are identifying them as having different functions.  The example below is reported as an ATSC(DVB-T) card by one user and as a DVB-S card by two other users.  lspci -vvxxx provides more fingerprint data, and I'm trying to see if there's a definitive way to tell the cards apart from it. + +    [ "BBTI Air2PC v2", [".*0280.*13d0.*2103.*r02.*13d0.*2103.*"], # ??? dupe 1; mihanson +      ["DVB", ["ATSC"]]], +    # mihanson lspci -vvxxx info: + +#00: d0 13 03 21 07 01 00 04 02 00 80 02 00 40 00 00 +#10: 00 00 64 ed 81 70 00 00 00 00 00 00 00 00 00 00 +#20: 00 00 00 00 00 00 00 00 00 00 00 00 d0 13 03 21 +#30: 00 00 00 00 00 00 00 00 00 00 00 00 0c 01 00 00  + +#00: d0 13 03 21 07 01 00 04 02 00 80 02 00 40 00 00 +#10: 00 00 65 ed a1 70 00 00 00 00 00 00 00 00 00 00 +#20: 00 00 00 00 00 00 00 00 00 00 00 00 d0 13 03 21 +#30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 01 00 00  + +#00: d0 13 03 21 07 01 00 04 02 00 80 02 00 40 00 00 +#10: 00 00 66 ed c1 70 00 00 00 00 00 00 00 00 00 00 +#20: 00 00 00 00 00 00 00 00 00 00 00 00 d0 13 03 21 +#30: 00 00 00 00 00 00 00 00 00 00 00 00 0a 01 00 00 + +#00: d0 13 03 21 07 01 00 04 02 00 80 02 00 40 00 00 +#10: 00 00 67 ed e1 70 00 00 00 00 00 00 00 00 00 00 +#20: 00 00 00 00 00 00 00 00 00 00 00 00 d0 13 03 21 +#30: 00 00 00 00 00 00 00 00 00 00 00 00 0c 01 00 00 + +# Among the above, there are only three sections that +# differ, shown by XX: +#10: -- -- XX -- XX -- -- -- -- -- -- -- -- -- -- -- +#30: -- -- -- -- -- -- -- -- -- -- -- -- XX -- -- -- + + +    [ "Technisat Skystar2", [".*0280.*13d0.*2103.*r01.*13d0.*2103.*"], # ??? dupe 1; nbdwt73, neutron68 +      ["DVB", ["DVB-S"]]], +    # Neutron68 lspci -vvxxx info: +#00: d0 13 03 21 07 01 00 04 01 00 80 02 00 40 00 00 +#10: 00 00 ae fa 81 c8 00 00 00 00 00 00 00 00 00 00 +#20: 00 00 00 00 00 00 00 00 00 00 00 00 d0 13 03 21 +#30: 00 00 00 00 00 00 00 00 00 00 00 00 05 01 00 00 + +# when compared with mihanson's blocks, these entries differ: +#00: -- -- -- -- -- -- -- -- -- -- -- XX -- -- -- -- +#10: -- -- XX XX XX XX XX -- -- -- -- -- -- -- -- -- +#20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +#30: -- -- -- -- -- -- -- -- -- -- -- -- XX -- -- -- + +# eliminating the entries that even differ among mihanson's devices, we get: +#00: -- -- -- -- -- -- -- -- -- -- -- XX -- -- -- -- +#10: -- -- -- XX -- XX XX -- -- -- -- -- -- -- -- -- +#20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- +#30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + +# Without more feedback, it's not clear whether or not this pattern is representative +# of the differences between the DVB-S and ATSC versions of this device. + diff --git a/abs/not_built/core/tweaker/bin/twk_upgrade.pl b/abs/not_built/core/tweaker/bin/twk_upgrade.pl new file mode 100755 index 0000000..b5d09b6 --- /dev/null +++ b/abs/not_built/core/tweaker/bin/twk_upgrade.pl @@ -0,0 +1,190 @@ +#!/usr/bin/perl -w + +# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + +# +# NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE  +# +# Tweaker 0.7 is not interactive, so these post-upgrade changes are a stopgap +# measure to make sure people upgrading from R5F27 get sensible settings +# for things that MythTV 0.21 doesn't know how to handle properly.  This file +# should shrink or disappear entirely once Tweaker becomes interactive. +# +# NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE  +# + +use Switch; +use Tweaker::Script; +package Tweaker::Script; + +set_known_options( 'all' ); + +# Try to implement the given option. +sub implement_option { +    my($option) = @_; + +    $dbconnectionstring = get_mythtv_connection_string(); +	 +    if (connect_to_db("DBI:mysql:$dbconnectionstring")) { +	# use poll results from twk_cpu.pl to set playback decoder options +	my @levels = ("low", "medium", "high"); +	foreach my $level (@levels) { +	    my @results = split(/\|/, execute_shell_command("twk_cpu.pl --poll $level")); +	    foreach my $result (@results) { +		if ($result eq "recommended") { +		    if ("$level" eq "low") { +			change_or_make_setting('DefaultVideoPlaybackProfile', 'CPU--') || exit -1; # best playback defaults for weak hardware +		    } elsif ("$level" eq "medium") { +			change_or_make_setting('DefaultVideoPlaybackProfile', 'CPU+') || exit -1; # best playback defaults for average hardware +		    } elsif ("$level" eq "high") { +			change_or_make_setting('DefaultVideoPlaybackProfile', 'CPU++') || exit -1; # best playback defaults for powerful hardware +		    } +		} +	    } +	} + +	# Update visualization modes for 0.21 +	change_or_make_setting('VisualMode','BumpScope;Gears;Goom;MonoScope;Squares;StereoScope;Synaesthesia;LibVisual-bumpscope;LibVisual-corona;LibVisual-infinite;LibVisual-jakdaw;LibVisual-jess;AlbumArt'); + +	# Remove possibly obsolete and conflicting theme cache entries. +	execute_shell_command("/bin/rm -rf /home/mythtv/.mythtv/themecache/"); + +	# Fix bizarre ownership of files: +	execute_shell_command("chown -f root: /usr/bin/get_dual.sh"); +	execute_shell_command("chown -fR root: /usr/lib/krp"); +	execute_shell_command("chown -fR root: /usr/local/bin"); +	execute_shell_command("chown -f root: /usr/share/man/man1/tv_grab_au.1.gz"); +	execute_shell_command("chown -f root: /usr/share/xmltv/tv_grab_au/channel_ids"); +	execute_shell_command("chown -fR root:src /usr/src/"); + +	# Fix video problems for some nVidia users +	execute_shell_command("grep nvidia /etc/X11/xorg.conf && sed -i -e 's/^[ \t]*Option.*\"XvmcUsesTextures\".*/#REMOVEME/g' -e 's/^[ \t]*Option.*\"UseEvents\".*/#REMOVEME/g' /etc/X11/xorg.conf"); # clear out old entries, if present +	execute_shell_command("grep nvidia /etc/X11/xorg.conf && sed -i -n '1h;2,\$H;\${g;s/#REMOVEME\\n//g;p}' /etc/X11/xorg.conf"); # clear out old entries, if present +	execute_shell_command("grep nvidia /etc/X11/xorg.conf && sed -i 's/\\(^[ \t]*Driver.*\"nvidia\".*\\)/\\1\\n\tOption \"XvmcUsesTextures\" \"false\"\\n\tOption \"UseEvents\" \"true\"/g' /etc/X11/xorg.conf"); +	execute_shell_command("if [ -e /home/mythtv/.nvidia-settings-rc ] ; then sed -i -e \"s'.*XVideoTextureSyncToVBlank.*'#REMOVEME'g\" -e \"s'.*XVideoBlitterSyncToVBlank.*'#REMOVEME'g\" /home/mythtv/.nvidia-settings-rc; fi"); +	execute_shell_command("grep nvidia /etc/X11/xorg.conf && echo 0/XVideoTextureSyncToVBlank=0 >> /home/mythtv/.nvidia-settings-rc && echo 0/XVideoBlitterSyncToVBlank=0 >> /home/mythtv/.nvidia-settings-rc && sed -i -n '1h;2,\$H;\${g;s/#REMOVEME\\n//g;p}' /home/mythtv/.nvidia-settings-rc"); + + +	# Enable any digital audio out device we can. +	my $command = "amixer scontrols | grep IEC958"; +	my @results = split('\n', execute_shell_command($command)); +	foreach my $line (@results) { +	    if ($line =~ /Simple mixer control (.*),.*/i) { +		$command = "su - mythtv -c \"amixer set $1 on\""; # Tries to set all IEC958 devices to 'on' +		# but some are just placeholders and can't be turned 'on', therefore don't error out if we fail +		execute_shell_command($command); +	    } +	} +	execute_shell_command("alsactl store"); # persist the above change(s) + +	# The Chaintech AV-710 was generally configured for digital audio in R5F27 in a way that worked +	# great there but which is failing utterly in R5.5.  Try to detect this old configuration, and if +	# it's present, implement the new settings which seem to work for all digital audio devices. +	# This may only match 80% of the AV-710 users, but the rest of them can just run the necessary +	# tweaker command by hand to get the same result. +	if (execute_shell_command('lspci -mn | grep -e ".*0401.*1412.*1724.*1412.*1724"')) { +	    # found an AV-710, now see if it's configured for digital audio +	    if (do_query("SELECT * FROM settings WHERE value='AudioOutputDevice' AND data='/dev/adsp'")) { +		# The user was using this AV-710's spdif output, so give them the new good digital configuration +		execute_shell_command("twk_audio.pl --implement digital"); +	    } +	} +	change_or_make_setting('MixerDevice', 'ALSA:default') || exit -1; + +	# Undo obsolete mplayer workaround for aspect ratio +	execute_shell_command("sed -i 's/.*monitoraspect.*//g' /home/mythtv/.mplayer/config"); +	 +	my $hostname = execute_shell_command("hostname") || "localhost"; +	# one table at a time, replace hostname with our actual hostname +	# ??? can this be done all at once in MySQL? +	foreach my $table ("capturecard", "inuseprograms", "jobqueue", "jumppoints", "keybindings", "music_playlists", +			   "musicplaylist", "recorded", "settings", "weatherscreens") { +	    do_query("UPDATE $table SET hostname='$hostname'"); +	} +	 +	# Some entries in 'settings' should stay NULL:  http://www.mythtv.org/wiki/index.php/Settings_table +	# There are fewer entries that stay NULL than there are that should have the hostname set, so while +	# it duplicates some effort to change them from NULL to the hostname and them back to NULL, it's +	# easier to maintain and more future-proof. +	foreach my $entry ("mythfilldatabaseLastRunStart", "mythfilldatabaseLastRunEnd", "mythfilldatabaseLastRunStatus", +			   "DataDirectMessage", "HaveRepeats", "DBSchemaVer", "DefaultTranscoder", "MythFillSuggestedRunTime", +			   "MythFillGrabberSuggestsTime", "MasterServerIP", "MasterServerPort", "TVFormat", "VbiFormat", "FreqTable", +			   "TimeOffset", "MasterBackendOverride", "DeletesFollowLinks", "HDRingbufferSize", "EITTransportTimeout", +			   "EITIgnoresSource", "EITCrawIdleStart", "startupCommand", "blockSDWUwithoutClient", "idleWaitForRecordingTime", +			   "StartupSecsBeforeRecording", "WakeupTimeFormat", "SetWakeuptimeCommand", "ServerHaltCommand", "preSDWUCheckCommand", +			   "WOLbackendConnectRetry", "WOLbackendCommand", "WOLslaveBackendsCommand", "JobsRunOnRecordHost", +			   "AutoCommflagWhileRecording", "JobQueueCommFlagCommand", "JobQueueTranscodeCommand", +			   "AutoTranscodeBeforeAutoCommflag", "SaveTranscoding", "UserJobDesc1", "UserJob1", "UserJobDesc2", "UserJob2", +			   "UserJobDesc3", "UserJob3", "UserJobDesc4", "UserJob4", "PreviewPixmapOffset", "AllRecGroupPassword", +			   "MaximumCommercialSkip", "CommSkipAllBlanks", "LastFreeCard", "LiveTVPriority", "AutoExpireMethod", +			   "AutoExpireDefault", "RerecordWatched", "AutoExpireWatchedPriority", "AutoExpireLiveTVMaxAge", +			   "AutoExpireDayPriority", "AutoExpireExtraSpace", "AutoExpireInsteadOfDelete", "DeletedFifoOrder", +			   "CommercialSkipMethod", "AggressiveCommDetect", "AutoCommercialFlag", "AutoTranscode", "AutoRunUserJob1", +			   "AutoRunUserJob2", "AutoRunUserJob3", "AutoRunUserJob4", "OverTimeCategory", "CategoryOverTime", +			   "EPGEnableJumpToChannel", "LogEnabled", "MythFillEnabled", "MythFillDatabasePath", "MythFillDatabaseArgs", +			   "MythFillDatabaseLog", "MythFillPeriod", "MythFillMinHour", "MythFillMaxHour", "SchedMoveHigher", "SchedOpenEnd", +			   "ComplexPriority", "PrefInputPriority", "SingleRecordRecPriority", "FindOneRecordRecPriority", "ArchiveDBSchemaVer", +			   "FlixDBSchemaVer", "GalleryDBSchemaVer", "GameDBSchemaVer", "MusicDBSchemaVer", "PhoneDBSchemaVer", +			   "mythvideo.DBSchemaVer", "WeatherDBSchemaVer") { +	    do_query("UPDATE settings SET hostname=NULL WHERE value='$entry'"); +	} + +	change_or_make_setting('MythFillDatabaseLog', '/var/log/mythtv/mythfilldatabase.log'); +	change_or_make_setting('MasterBackendOverride','1'); # I don't remember why, but making the hostname NULL is important here +	do_query("UPDATE settings SET hostname=NULL WHERE value='MasterBackendOverride'"); + +	disconnect_from_db(); + +	# Fix hostname for iPod feed URLs +	$command = "sed -i \"s/hostname\\//$hostname\\//g\" /usr/local/bin/myth2ipod"; +	execute_shell_command($command); +	 +	# Fix hostname for XViD feed URLs +	$command = "sed -i \"s/192.168.0.222\\//$hostname\\//g\" /usr/local/bin/myt2xvid3"; +	execute_shell_command($command); + +	# Customize default MythTV library.xml to reflect KnoppMyth's wider selection of +	# online stream options. +	#$command = "sed -i \"/<type>STREAM<\\/type>\$/{N; N; N; N; s/text>.*<\\/text/text>Online Streams<\\/text/; s/action>.*<\\/action/action>MENU is.xml<\\/action/; s/<depends.*depends>//; }\" /usr/share/mythtv/library.xml"; +	$command = "/bin/cp /usr/share/mythtv/library.xml.km /usr/share/mythtv/library.xml"; +	execute_shell_command($command); +	 +    } else { +	my $logger = get_logger('tweaker.script'); +	$logger->error("ERROR: Unable to connect to mythconverg database"); +	$logger->error("ERROR: Unable to implement option $option."); +	exit -1; +    } +    disconnect_from_db(); +} + +# Try to get a Recommendation Level for $option. +sub poll_options { +    my($option) = @_; +    recommendation_level("recommended", "These tweaks benefit all users."); +} + +# Unimplemented in 0.7 +sub check_option { +    help; +} + +# Unimplemented in 0.7 +sub count_iterations { +    help; +} + +process_parameters; diff --git a/abs/not_built/core/tweaker/bin/twk_what_has_changed.sh b/abs/not_built/core/tweaker/bin/twk_what_has_changed.sh new file mode 100755 index 0000000..deff7cf --- /dev/null +++ b/abs/not_built/core/tweaker/bin/twk_what_has_changed.sh @@ -0,0 +1,183 @@ +#!/bin/bash + +# Copyright 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv +# and Tom Culliton of <affiliation>.  Most of restore_baseline_SQL taken from +# KnoppMyth R5F27's /usr/local/bin/KnoppMyth-run script (multiple authors) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + + +#---------------------------------------------------------------------------- +. /usr/local/bin/backupcommon || { +    echo "Can not find common settings!" +    exit 1 +} +#---------------------------------------------------------------------------- + +# Target output file for our results +DIFF_RESULTS=/tmp/database_changes.txt +LOGFILE=/var/log/twk_what_has_changed.log +WORKING_DIR=/tmp/ + +# Restore the SQL to the way it would have been after R5F27 was installed +# and before the user made any changes to MythTV settings. +# This is KnoppMyth-centric and does not apply to general MythTV distros, +# however it is possible to generalize this to apply to any MythTV distro +# including generic Linux distros in which MythTV has been installed. +# +# Preconditions: MySQL daemon is running +# +# Postconditions: 'mythconverg' is deleted and re-created, just as it +# would be during the course of a normal installation. +restore_baseline_SQL() { +    echo "restoring baseline SQL" >> $LOGFILE +    KRP_RESULT=-1 +    KRPAutoDetect.pl &> /dev/null # be quiet +    KRP_RESULT=$?; + +    # Parts from R5F27's KnoppMyth-run +    KNOPPMYTH_SQL_FILE="/usr/local/share/knoppmyth/KnoppMyth.sql" +     +    # Try to detect and configure settings for various tuner +    # and capture devices. +    /usr/local/bin/TunerConfig.sh $KNOPPMYTH_SQL_FILE >> /dev/null +    /usr/local/bin/ren_host.sh +    GlobalSQLtweaker.sh $KNOPPMYTH_SQL_FILE + +    if [[ ($KRP_RESULT != 1) && ($KRP_RESULT != 2) && ($KRP_RESULT != 3) && ($KRP_RESULT != 10) && (-n "$IS_AUS") ]]; then # not Dragon +	/usr/local/bin/epia_sql.sh +    fi +     +    # General MythTV SQL settings for all boxes +    if [ -f "/usr/local/bin/MythTV-sql" ]; then +	# Interject platform-specific SQL settings before we populate the SQL +	# database. +	if [[ ($KRP_RESULT == 1) || ($KRP_RESULT == 2) || ($KRP_RESULT == 3) || ($KRP_RESULT == 10) ]]; then # Dragon +	    DragonSQLtweaker.sh $KNOPPMYTH_SQL_FILE +	fi +	# Now use the (possibly modified) KnoppMyth.sql to populate initial +	# MythTV settings. +	 +	# This wipes out the current mythconverg and replaces it with what's in $KNOPPMYTH_SQL_FILE +	sh /usr/local/bin/MythTV-sql $KNOPPMYTH_SQL_FILE +    fi + +    echo \ +	"MythTV will re-launch in a tiny window.  If it asks you about +upgrading the schema, agree.  When the schema upgrade is complete, +exit MythTV. +You can exit MythTV immediately if you aren't asked to do a schema +upgrade." +    echo "###" +    echo "Press ENTER to re-launch MythTV." +    read CONTINUE; +    restart_mythtv "--geometry 640x480" +} + +# Call mysql and only dump the requested data in tab seperated columns +get_data () { +    mysql mythconverg -u root -sNBe "$*" +} + +# Compares $MYTHTV_EXPECTED_DB_NAME to $USERS_DB_NAME +compare_databases() { +    echo "comparing databases" >> $LOGFILE +    tables_to_compare="capturecard cardinput codecparams displayprofilegroups displayprofiles dtv_multiplex keybindings playgroups profilegroups recordingprofiles settings videotypes weatherdatalayout weatherscreens weathersourcesettings" +    hostnames=$(get_data "select distinct hostname from settings where hostname is not null")  + +    /etc/init.d/mysql start >> $LOGFILE +    # Do some MySQL magic to compare $tables_to_compare between +    # $MYTHTV_EXPECTED_DB_NAME (baseline) and $USERS_DB_NAME (user's version) +    # ??? +} + +# This is somewhat KnoppMyth-centric, though minor modification would +# make it work generally. +function restart_mythtv { +    echo "restarting MythTV" >> $LOGFILE +    EXTRA_PARAMETERS=$1 ; shift +    /etc/init.d/mythtv-backend start >> $LOGFILE +    killall mythfrontend +    # re-launches the frontend and gives the user a chance to upgrade to latest schema +    su - mythtv -c "export DISPLAY=:0.0 ; mythfrontend --logfile /var/log/mythtv/mythfrontend.log $EXTRA_PARAMETERS" >> $LOGFILE +} + +function rename_database { +    db_source=$1 ; shift +    db_target=$1 ; shift + +    echo "renaming database $db_source to $db_target" >> $LOGFILE + +    # Exit the frontend before messing with the SQL +    killall mythfrontend +    # If we stop MySQL before stopping the MythTV backend, we'll probably trigger badness +    /etc/init.d/mythtv-backend stop >> $LOGFILE +    # MySQL needs to stop before we do this. +    /etc/init.d/mysql stop >> $LOGFILE +    /bin/mv $db_source $db_target +} + +main() { +    echo -n "$0 started running: " >> $LOGFILE +    date >> $LOGFILE + +    echo "STEP 0..." +    echo "STEP 0" >> $LOGFILE +    # 0) acquire system settings +    MYTHTV_EXPECTED_DB_NAME=`grep DBName /etc/mythtv/mysql.txt | awk -F= '{ print $2 }'` +    USERS_DB_NAME="mythconverg-copy" +    /etc/init.d/mysql start >> $LOGFILE +    # MySQL needs to be running or mysqladmin won't return anything +    SQL_HOME=`mysqladmin variables | grep datadir | awk -F\| '{ print $3 }' | sed 's/ //g'` + +    echo "STEP 1..." +    echo "STEP 1" >> $LOGFILE +    # 1) rename the current MythTV MySQL database +    rename_database $SQL_HOME$MYTHTV_EXPECTED_DB_NAME $WORKING_DIR$USERS_DB_NAME + +    echo "STEP 2..." +    echo "STEP 2" >> $LOGFILE +    # 2) re-create the R5F27 baseline SQL. +    /etc/init.d/mysql start >> $LOGFILE +    restore_baseline_SQL + +    echo "STEP 3..." +    echo "STEP 3" >> $LOGFILE +    # 3) compare the fresh baseline DB with the user's modified DB, and save the +    # diffs to a text file +    # ??? + +    echo "STEP 4..." +    echo "STEP 4" >> $LOGFILE +    # 4) restore the user's database +    rename_database $WORKING_DIR$USERS_DB_NAME $SQL_HOME$MYTHTV_EXPECTED_DB_NAME +    /etc/init.d/mysql start >> $LOGFILE + +    echo "STEP 5..." +    echo "STEP 5" >> $LOGFILE +    # 5) Tell them the comparison is done, tell them where to find the results, +    # and prompt them to restart MythTV. +    echo "Your results are in $DIFF_RESULTS" +    echo "###" +    echo "Press ENTER to re-launch MythTV." +    read CONTINUE; + +    restart_mythtv "&" +    echo "DONE" +    echo -n "$0 stopped running: " >> $LOGFILE +    date >> $LOGFILE +} + +main + diff --git a/abs/not_built/core/tweaker/fs/etc/asound.conf b/abs/not_built/core/tweaker/fs/etc/asound.conf new file mode 100644 index 0000000..ffb665d --- /dev/null +++ b/abs/not_built/core/tweaker/fs/etc/asound.conf @@ -0,0 +1,15 @@ +pcm.spdifdmix { +        type dmix +        ipc_key 1337 +        slave { +                pcm "hw:0,1" +		format S32_LE +        } +} + +pcm.!default { +        type plug +        slave { +		pcm spdifdmix +        } +} diff --git a/abs/not_built/core/tweaker/fs/home/mythtv/.config/smplayer/smplayer.ini b/abs/not_built/core/tweaker/fs/home/mythtv/.config/smplayer/smplayer.ini new file mode 100644 index 0000000..9660607 --- /dev/null +++ b/abs/not_built/core/tweaker/fs/home/mythtv/.config/smplayer/smplayer.ini @@ -0,0 +1,429 @@ +[%General] +mplayer_bin=mplayer +driver\vo="xv," +driver\ao="alsa," +screenshot_directory=/home/mythtv/.config/smplayer/screenshots +dont_remember_media_settings=false +dont_remember_time_pos=false +audio_lang= +subtitle_lang= +use_direct_rendering=false +use_double_buffer=true +disable_screensaver=true +use_soft_video_eq=false +use_slices=true +autoq=6 +add_blackborders_on_fullscreen=false +use_soft_vol=true +softvol_max=110 +use_scaletempo=-1 +dont_change_volume=false +use_hwac3=false +use_audio_equalizer=true +use_volume_option=-1 +loop=false +osd=0 +file_settings_method=hash + +[drives] +dvd_device=/dev/dvd +cdrom_device=/dev/cdrom +vcd_initial_title=2 +use_dvdnav=false + +[performance] +priority=2 +frame_drop=true +hard_frame_drop=false +autosync=false +autosync_factor=100 +h264_skip_loop_filter=1 +HD_height=720 +fast_audio_change=-1 +threads=1 +cache_for_files=2000 +cache_for_streams=1000 +cache_for_dvds=0 +cache_for_vcds=1000 +cache_for_audiocds=1000 + +[subtitles] +font_file= +font_name= +use_fontconfig=false +subcp=ISO-8859-1 +use_enca=false +enca_lang=en +font_autoscale=1 +subfuzziness=1 +autoload_sub=true +use_ass_subtitles=true +ass_line_spacing=0 +use_closed_caption_subs=false +use_forced_subs_only=false +subtitles_on_screenshots=false +use_new_sub_commands=-1 +change_sub_scale_should_restart=-1 +styles\fontname=Arial +styles\fontsize=20 +styles\primarycolor=4294967295 +styles\backcolor=4278190080 +styles\outlinecolor=4278190080 +styles\bold=false +styles\italic=false +styles\halignment=2 +styles\valignment=0 +styles\borderstyle=1 +styles\outline=1 +styles\shadow=2 +styles\marginl=20 +styles\marginr=20 +styles\marginv=8 +force_ass_styles=false +user_forced_ass_style= +freetype_support=true + +[advanced] +color_key=20202 +use_mplayer_window=false +monitor_aspect= +use_idx=false +mplayer_additional_options= +mplayer_additional_video_filters= +mplayer_additional_audio_filters= +log_mplayer=true +log_smplayer=true +log_filter=.* +autosave_mplayer_log=false +mplayer_log_saveto= +repaint_video_background=false +use_edl_files=true +prefer_ipv4=true +use_short_pathnames=false +change_video_equalizer_on_startup=true +use_pausing_keep_force=true +correct_pts=-1 +actions_to_run= + +[gui] +fullscreen=false +start_in_fullscreen=false +compact_mode=false +stay_on_top=0 +size_factor=100 +resize_method=1 +style= +show_frame_counter=false +show_motion_vectors=false +mouse_left_click_function=dvdnav_mouse +mouse_right_click_function=show_context_menu +mouse_double_click_function=fullscreen +mouse_middle_click_function=mute +mouse_xbutton1_click_function= +mouse_xbutton2_click_function= +wheel_function=0 +seeking1=10 +seeking2=60 +seeking3=600 +seeking4=30 +update_while_seeking=false +time_slider_drag_delay=100 +language= +iconset= +balloon_count=5 +restore_pos_after_fullscreen=false +save_window_size_on_exit=true +close_on_finish=false +default_font= +pause_when_hidden=false +allow_video_movement=false +gui=DefaultGUI +gui_minimum_width=0 +default_size=@Size(580 440) +hide_video_window_on_audio_files=true +report_mplayer_crashes=true +reported_mplayer_is_old=false +auto_add_to_playlist=true +add_to_playlist_consecutive_files=false + +[directories] +latest_dir=/home/mythtv +last_dvd_directory= + +[defaults] +initial_sub_scale=5 +initial_sub_scale_ass=1 +initial_volume=40 +initial_contrast=0 +initial_brightness=0 +initial_hue=0 +initial_saturation=0 +initial_gamma=0 +initial_audio_equalizer=0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +initial_panscan_factor=1 +initial_sub_pos=100 +initial_volnorm=false +initial_postprocessing=false +initial_deinterlace=0 +initial_audio_channels=2 +initial_stereo_mode=0 +initial_audio_track=1 +initial_subtitle_track=1 + +[mplayer_info] +mplayer_detected_version=29134 +mplayer_user_supplied_version=-1 + +[instances] +use_single_instance=true +connection_port=8000 +use_autoport=true +temp\autoport=57685 + +[floating_control] +margin=0 +width=100 +animated=true +display_in_compact_mode=false +bypass_window_manager=true + +[history] +recents=@Invalid() +recents\max_items=10 +urls=@Invalid() +urls\max_items=10 + +[default_gui] +fullscreen_toolbar1_was_visible=false +fullscreen_toolbar2_was_visible=false +compact_toolbar1_was_visible=false +compact_toolbar2_was_visible=false +pos=@Point(0 25) +size=@Size(580 440) +toolbars_state=@ByteArray(\0\0\0\xff\0\0\x11\x95\xfd\0\0\0\x1\0\0\0\x3\xff\xff\xff\xff\xff\xff\xff\xff\xfc\x1\0\0\0\x1\xfb\0\0\0\x18\0p\0l\0\x61\0y\0l\0i\0s\0t\0\x64\0o\0\x63\0k\x2\0\0\0\x19\0\0\0\x19\0\0\x3\xc0\0\0\x1\xe0\0\0\x2\x44\0\0\x1\x36\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\x2\0\0\0\x2\0\0\0\x2\0\0\0\x10\0t\0o\0o\0l\0\x62\0\x61\0r\0\x31\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x10\0t\0o\0o\0l\0\x62\0\x61\0r\0\x32\x1\0\0\x1\xc5\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x2\0\0\0\x1a\0\x63\0o\0n\0t\0r\0o\0l\0w\0i\0\x64\0g\0\x65\0t\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0$\0\x63\0o\0n\0t\0r\0o\0l\0w\0i\0\x64\0g\0\x65\0t\0_\0m\0i\0n\0i\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0) +actions\toolbar1=open_file, open_dvd, open_url, separator, compact, fullscreen, separator, screenshot, separator, show_file_properties, show_playlist, show_preferences, separator, play_prev, play_next +actions\controlwidget=play, pause_and_frame_step, stop, separator, rewindbutton_action, timeslider_action, forwardbutton_action, separator, fullscreen, mute, volumeslider_action +actions\controlwidget_mini=play_or_pause, stop, separator, rewind1, timeslider_action, forward1, separator, mute, volumeslider_action +actions\floating_control=play, pause, stop, separator, rewindbutton_action, timeslider_action, forwardbutton_action, separator, fullscreen, mute, volumeslider_action, separator, timelabel_action + +[base_gui_plus] +show_tray_icon=false +mainwindow_visible=true +trayicon_playlist_was_visible=false +widgets_size=0 +fullscreen_playlist_was_visible=false +fullscreen_playlist_was_floating=false +compact_playlist_was_visible=false +ignore_playlist_events=false + +[playlist] +repeat=false +shuffle=false +auto_get_info=true +recursive_add_directory=false +save_playlist_in_config=true +play_files_from_start=true +latest_dir= + +[playlist_contents] +count=0 +current_item=-1 +modified=false + +[actions] +open_file=Ctrl+F +open_directory= +open_playlist= +open_vcd= +open_audio_cd= +open_dvd= +open_dvd_folder= +open_url=Ctrl+U +close=Ctrl+X +clear_recents= +play=L +play_or_pause=Media Play +pause=P +pause_and_frame_step= +stop=Media Stop +frame_step=. +rewind1=Left +rewind2=Down +rewind3=PgUp +forward1=Right +forward2=Up +forward3=PgDown +repeat= +jump_to=Ctrl+J +normal_speed=Backspace +halve_speed={ +double_speed=} +dec_speed=[ +inc_speed=] +dec_speed_4= +inc_speed_4= +dec_speed_1= +inc_speed_1= +fullscreen=F +compact=Ctrl+C +video_equalizer=Ctrl+E +screenshot=S +video_preview= +flip= +mirror= +postprocessing= +autodetect_phase= +deblock= +dering= +add_noise= +add_letterbox= +upscaling= +audio_equalizer= +mute=M +decrease_volume="9, /" +increase_volume="0, *" +dec_audio_delay=- +inc_audio_delay=+ +audio_delay= +load_audio_file= +unload_audio_file= +extrastereo_filter= +karaoke_filter= +volnorm_filter= +load_subs= +unload_subs= +dec_sub_delay=Z +inc_sub_delay=X +sub_delay= +dec_sub_pos=R +inc_sub_pos=T +dec_sub_scale=Shift+R +inc_sub_scale=Shift+T +dec_sub_step=G +inc_sub_step=Y +use_ass_lib= +use_closed_caption= +use_forced_subs_only= +show_find_sub_dialog= +upload_subtitles= +show_playlist=Ctrl+L +show_file_properties=Ctrl+I +frame_counter= +motion_vectors= +show_preferences=Ctrl+P +show_mplayer_log=Ctrl+M +show_smplayer_log=Ctrl+S +faq= +cl_options= +tips= +about_qt= +about_smplayer= +play_next=> +play_prev=< +move_up=Alt+Up +move_down=Alt+Down +move_left=Alt+Left +move_right=Alt+Right +inc_zoom=E +dec_zoom=W +reset_zoom=Shift+E +auto_zoom=Shift+W +zoom_169=Shift+A +zoom_235=Shift+S +exit_fullscreen= +next_osd=O +dec_contrast=1 +inc_contrast=2 +dec_brightness=3 +inc_brightness=4 +dec_hue=5 +inc_hue=6 +dec_saturation=7 +inc_saturation=8 +dec_gamma= +inc_gamma= +next_video= +next_audio=H +next_subtitle=J +next_chapter=@@ +prev_chapter=! +toggle_double_size=Ctrl+D +reset_video_equalizer= +reset_audio_equalizer= +show_context_menu= +next_aspect=A +osd_none= +osd_seek= +osd_timer= +osd_total= +denoise_none= +denoise_normal= +denoise_soft= +size_50= +size_75= +size_100=Ctrl+1 +size_125= +size_150= +size_175= +size_200=Ctrl+2 +size_300= +size_400= +deinterlace_none= +deinterlace_l5= +deinterlace_yadif0= +deinterlace_yadif1= +deinterlace_lb= +deinterlace_kern= +channels_stereo= +channels_surround= +channels_ful51= +stereo= +left_channel= +right_channel= +aspect_detect= +aspect_4%3A3= +aspect_5%3A4= +aspect_14%3A9= +aspect_16%3A9= +aspect_16%3A10= +aspect_2.35%3A1= +aspect_1%3A1= +aspect_none= +rotate_none= +rotate_clockwise_flip= +rotate_clockwise= +rotate_counterclockwise= +rotate_counterclockwise_flip= +on_top_always= +on_top_never= +on_top_playing= +toggle_stay_on_top= +dvdnav_up=Shift+Up +dvdnav_down=Shift+Down +dvdnav_left=Shift+Left +dvdnav_right=Shift+Right +dvdnav_menu=Shift+Return +dvdnav_select=Return +dvdnav_prev=Shift+Esc +dvdnav_mouse= +quit=Esc +show_tray_icon= +restore\hide= +pl_open= +pl_save= +pl_play= +pl_next=N +pl_prev= +pl_move_up= +pl_move_down= +pl_repeat= +pl_shuffle= +pl_preferences= +pl_add_current= +pl_add_files= +pl_add_directory= +pl_remove_selected= +pl_remove_all= +pl_edit= +show_main_toolbar=F5 +show_language_toolbar=F6 diff --git a/abs/not_built/core/tweaker/fs/var/lib/alsa/ALC888.asound.state b/abs/not_built/core/tweaker/fs/var/lib/alsa/ALC888.asound.state new file mode 100644 index 0000000..5540338 --- /dev/null +++ b/abs/not_built/core/tweaker/fs/var/lib/alsa/ALC888.asound.state @@ -0,0 +1,354 @@ +state.NVidia { +	control.1 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 2 +		comment.range '0 - 31' +		comment.dbmin -4650 +		comment.dbmax 0 +		iface MIXER +		name 'Front Playback Volume' +		value.0 25 +		value.1 25 +	} +	control.2 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 2 +		iface MIXER +		name 'Front Playback Switch' +		value.0 true +		value.1 true +	} +	control.3 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 2 +		comment.range '0 - 31' +		comment.dbmin -4650 +		comment.dbmax 0 +		iface MIXER +		name 'Surround Playback Volume' +		value.0 0 +		value.1 0 +	} +	control.4 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 2 +		iface MIXER +		name 'Surround Playback Switch' +		value.0 true +		value.1 true +	} +	control.5 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 1 +		comment.range '0 - 31' +		comment.dbmin -4650 +		comment.dbmax 0 +		iface MIXER +		name 'Center Playback Volume' +		value 0 +	} +	control.6 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 1 +		comment.range '0 - 31' +		comment.dbmin -4650 +		comment.dbmax 0 +		iface MIXER +		name 'LFE Playback Volume' +		value 0 +	} +	control.7 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'Center Playback Switch' +		value true +	} +	control.8 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'LFE Playback Switch' +		value true +	} +	control.9 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 2 +		comment.range '0 - 31' +		comment.dbmin -4650 +		comment.dbmax 0 +		iface MIXER +		name 'Side Playback Volume' +		value.0 0 +		value.1 0 +	} +	control.10 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 2 +		iface MIXER +		name 'Side Playback Switch' +		value.0 true +		value.1 true +	} +	control.11 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 2 +		iface MIXER +		name 'Headphone Playback Switch' +		value.0 true +		value.1 true +	} +	control.12 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 2 +		comment.range '0 - 31' +		comment.dbmin -3450 +		comment.dbmax 1200 +		iface MIXER +		name 'Mic Playback Volume' +		value.0 0 +		value.1 0 +	} +	control.13 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 2 +		iface MIXER +		name 'Mic Playback Switch' +		value.0 false +		value.1 false +	} +	control.14 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 2 +		comment.range '0 - 31' +		comment.dbmin -3450 +		comment.dbmax 1200 +		iface MIXER +		name 'Front Mic Playback Volume' +		value.0 0 +		value.1 0 +	} +	control.15 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 2 +		iface MIXER +		name 'Front Mic Playback Switch' +		value.0 false +		value.1 false +	} +	control.16 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 2 +		comment.range '0 - 31' +		comment.dbmin -3450 +		comment.dbmax 1200 +		iface MIXER +		name 'Line Playback Volume' +		value.0 0 +		value.1 0 +	} +	control.17 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 2 +		iface MIXER +		name 'Line Playback Switch' +		value.0 false +		value.1 false +	} +	control.18 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 2 +		comment.range '0 - 3' +		comment.dbmin 0 +		comment.dbmax 3000 +		iface MIXER +		name 'Mic Boost' +		value.0 0 +		value.1 0 +	} +	control.19 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 2 +		comment.range '0 - 3' +		comment.dbmin 0 +		comment.dbmax 3000 +		iface MIXER +		name 'Front Mic Boost' +		value.0 0 +		value.1 0 +	} +	control.20 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 2 +		comment.range '0 - 31' +		comment.dbmin -1650 +		comment.dbmax 3000 +		iface MIXER +		name 'Capture Volume' +		value.0 0 +		value.1 0 +	} +	control.21 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 2 +		iface MIXER +		name 'Capture Switch' +		value.0 true +		value.1 true +	} +	control.22 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 2 +		comment.range '0 - 31' +		comment.dbmin -1650 +		comment.dbmax 3000 +		iface MIXER +		name 'Capture Volume' +		index 1 +		value.0 0 +		value.1 0 +	} +	control.23 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 2 +		iface MIXER +		name 'Capture Switch' +		index 1 +		value.0 true +		value.1 true +	} +	control.24 { +		comment.access 'read write' +		comment.type ENUMERATED +		comment.count 1 +		comment.item.0 Mic +		comment.item.1 'Front Mic' +		comment.item.2 Line +		iface MIXER +		name 'Input Source' +		value Mic +	} +	control.25 { +		comment.access 'read write' +		comment.type ENUMERATED +		comment.count 1 +		comment.item.0 Mic +		comment.item.1 'Front Mic' +		comment.item.2 Line +		iface MIXER +		name 'Input Source' +		index 1 +		value Mic +	} +	control.26 { +		comment.access read +		comment.type IEC958 +		comment.count 1 +		iface MIXER +		name 'IEC958 Playback Con Mask' +		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' +	} +	control.27 { +		comment.access read +		comment.type IEC958 +		comment.count 1 +		iface MIXER +		name 'IEC958 Playback Pro Mask' +		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' +	} +	control.28 { +		comment.access 'read write' +		comment.type IEC958 +		comment.count 1 +		iface MIXER +		name 'IEC958 Playback Default' +		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' +	} +	control.29 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'IEC958 Playback Switch' +		value false +	} +	control.30 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'IEC958 Default PCM Playback Switch' +		value true +	} +	control.31 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'IEC958 Capture Switch' +		value false +	} +	control.32 { +		comment.access read +		comment.type IEC958 +		comment.count 1 +		iface MIXER +		name 'IEC958 Capture Default' +		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' +	} +	control.33 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 1 +		comment.range '0 - 31' +		comment.dbmin -4650 +		comment.dbmax 0 +		iface MIXER +		name 'Master Playback Volume' +		value 31 +	} +	control.34 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'Master Playback Switch' +		value true +	} +	control.35 { +		comment.access 'read write user' +		comment.type INTEGER +		comment.count 2 +		comment.range '0 - 255' +		comment.tlv '0000000100000008ffffec1400000014' +		comment.dbmin -5100 +		comment.dbmax 0 +		iface MIXER +		name 'PCM Playback Volume' +		value.0 163 +		value.1 163 +	} +} diff --git a/abs/not_built/core/tweaker/fs/var/lib/alsa/AV710.asound.state b/abs/not_built/core/tweaker/fs/var/lib/alsa/AV710.asound.state new file mode 100644 index 0000000..7e57108 --- /dev/null +++ b/abs/not_built/core/tweaker/fs/var/lib/alsa/AV710.asound.state @@ -0,0 +1,567 @@ +state.AV710 { +	control.1 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'Master Playback Switch' +		value true +	} +	control.2 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 2 +		comment.range '0 - 31' +		comment.dbmin -4650 +		comment.dbmax 0 +		iface MIXER +		name 'Master Playback Volume' +		value.0 22 +		value.1 22 +	} +	control.3 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'Center Playback Switch' +		value false +	} +	control.4 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 1 +		comment.range '0 - 31' +		comment.dbmin -4650 +		comment.dbmax 0 +		iface MIXER +		name 'Center Playback Volume' +		value 31 +	} +	control.5 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'LFE Playback Switch' +		value false +	} +	control.6 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 1 +		comment.range '0 - 31' +		comment.dbmin -4650 +		comment.dbmax 0 +		iface MIXER +		name 'LFE Playback Volume' +		value 0 +	} +	control.7 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 2 +		iface MIXER +		name 'Surround Playback Switch' +		value.0 false +		value.1 false +	} +	control.8 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 2 +		comment.range '0 - 31' +		comment.dbmin -4650 +		comment.dbmax 0 +		iface MIXER +		name 'Surround Playback Volume' +		value.0 0 +		value.1 0 +	} +	control.9 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'Headphone Playback Switch' +		value true +	} +	control.10 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 2 +		comment.range '0 - 31' +		comment.dbmin -4650 +		comment.dbmax 0 +		iface MIXER +		name 'Headphone Playback Volume' +		value.0 22 +		value.1 22 +	} +	control.11 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'Master Mono Playback Switch' +		value true +	} +	control.12 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 1 +		comment.range '0 - 31' +		comment.dbmin -4650 +		comment.dbmax 0 +		iface MIXER +		name 'Master Mono Playback Volume' +		value 25 +	} +	control.13 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'PC Speaker Playback Switch' +		value false +	} +	control.14 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 1 +		comment.range '0 - 15' +		comment.dbmin -4500 +		comment.dbmax 0 +		iface MIXER +		name 'PC Speaker Playback Volume' +		value 0 +	} +	control.15 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'Phone Playback Switch' +		value false +	} +	control.16 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 1 +		comment.range '0 - 31' +		comment.dbmin -3450 +		comment.dbmax 1200 +		iface MIXER +		name 'Phone Playback Volume' +		value 0 +	} +	control.17 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'Mic Playback Switch' +		value false +	} +	control.18 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 1 +		comment.range '0 - 31' +		comment.dbmin -3450 +		comment.dbmax 1200 +		iface MIXER +		name 'Mic Playback Volume' +		value 0 +	} +	control.19 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'Mic Boost (+20dB)' +		value false +	} +	control.20 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'Line Playback Switch' +		value false +	} +	control.21 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 2 +		comment.range '0 - 31' +		comment.dbmin -3450 +		comment.dbmax 1200 +		iface MIXER +		name 'Line Playback Volume' +		value.0 0 +		value.1 0 +	} +	control.22 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'CD Playback Switch' +		value true +	} +	control.23 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 2 +		comment.range '0 - 31' +		comment.dbmin -3450 +		comment.dbmax 1200 +		iface MIXER +		name 'CD Playback Volume' +		value.0 25 +		value.1 25 +	} +	control.24 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'Video Playback Switch' +		value false +	} +	control.25 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 2 +		comment.range '0 - 31' +		comment.dbmin -3450 +		comment.dbmax 1200 +		iface MIXER +		name 'Video Playback Volume' +		value.0 0 +		value.1 0 +	} +	control.26 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'Aux Playback Switch' +		value false +	} +	control.27 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 2 +		comment.range '0 - 31' +		comment.dbmin -3450 +		comment.dbmax 1200 +		iface MIXER +		name 'Aux Playback Volume' +		value.0 0 +		value.1 0 +	} +	control.28 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'PCM Playback Switch' +		value true +	} +	control.29 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 2 +		comment.range '0 - 31' +		comment.dbmin -3450 +		comment.dbmax 1200 +		iface MIXER +		name 'PCM Playback Volume' +		value.0 22 +		value.1 22 +	} +	control.30 { +		comment.access 'read write' +		comment.type ENUMERATED +		comment.count 2 +		comment.item.0 Mic +		comment.item.1 CD +		comment.item.2 Video +		comment.item.3 Aux +		comment.item.4 Line +		comment.item.5 Mix +		comment.item.6 'Mix Mono' +		comment.item.7 Phone +		iface MIXER +		name 'Capture Source' +		value.0 Line +		value.1 Line +	} +	control.31 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'Capture Switch' +		value true +	} +	control.32 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 2 +		comment.range '0 - 15' +		comment.dbmin 0 +		comment.dbmax 2250 +		iface MIXER +		name 'Capture Volume' +		value.0 0 +		value.1 0 +	} +	control.33 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name '3D Control - Switch' +		value false +	} +	control.34 { +		comment.access 'read write' +		comment.type ENUMERATED +		comment.count 1 +		comment.item.0 Mix +		comment.item.1 Mic +		iface MIXER +		name 'Mono Output Select' +		value Mix +	} +	control.35 { +		comment.access 'read write' +		comment.type ENUMERATED +		comment.count 1 +		comment.item.0 Mic1 +		comment.item.1 Mic2 +		iface MIXER +		name 'Mic Select' +		value Mic1 +	} +	control.36 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 1 +		comment.range '0 - 15' +		iface MIXER +		name '3D Control - Center' +		value 0 +	} +	control.37 { +		comment.access 'read write' +		comment.type INTEGER +		comment.count 1 +		comment.range '0 - 15' +		iface MIXER +		name '3D Control - Depth' +		value 0 +	} +	control.38 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'Alternate Level to Surround Out' +		value false +	} +	control.39 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'Downmix LFE and Center to Front' +		value false +	} +	control.40 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'Downmix Surround to Front' +		value false +	} +	control.41 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'External Amplifier' +		value true +	} +	control.42 { +		comment.access read +		comment.type BYTES +		comment.count 52 +		iface CARD +		name 'ICE1724 EEPROM' +		value '172414121c01020210c1ff0000ff0000ff0000000101010001000000000000000000000000000000ff000000ff000000ff000000' +	} +	control.43 { +		comment.access 'read write' +		comment.type ENUMERATED +		comment.count 1 +		comment.item.0 '8000' +		comment.item.1 '9600' +		comment.item.2 '11025' +		comment.item.3 '12000' +		comment.item.4 '16000' +		comment.item.5 '22050' +		comment.item.6 '24000' +		comment.item.7 '32000' +		comment.item.8 '44100' +		comment.item.9 '48000' +		comment.item.10 '64000' +		comment.item.11 '88200' +		comment.item.12 '96000' +		comment.item.13 '176400' +		comment.item.14 '192000' +		comment.item.15 'IEC958 Input' +		iface MIXER +		name 'Multi Track Internal Clock' +		value '44100' +	} +	control.44 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'Multi Track Rate Locking' +		value false +	} +	control.45 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'Multi Track Rate Reset' +		value true +	} +	control.46 { +		comment.access 'read write' +		comment.type ENUMERATED +		comment.count 1 +		comment.item.0 'PCM Out' +		comment.item.1 'H/W In 0' +		comment.item.2 'H/W In 1' +		comment.item.3 'IEC958 In L' +		comment.item.4 'IEC958 In R' +		iface MIXER +		name 'H/W Playback Route' +		value 'PCM Out' +	} +	control.47 { +		comment.access 'read write' +		comment.type ENUMERATED +		comment.count 1 +		comment.item.0 'PCM Out' +		comment.item.1 'H/W In 0' +		comment.item.2 'H/W In 1' +		comment.item.3 'IEC958 In L' +		comment.item.4 'IEC958 In R' +		iface MIXER +		name 'H/W Playback Route' +		index 1 +		value 'PCM Out' +	} +	control.48 { +		comment.access read +		comment.type INTEGER +		comment.count 22 +		comment.range '0 - 255' +		iface MIXER +		name 'Multi Track Peak' +		value.0 0 +		value.1 0 +		value.2 0 +		value.3 0 +		value.4 0 +		value.5 0 +		value.6 0 +		value.7 0 +		value.8 255 +		value.9 255 +		value.10 0 +		value.11 0 +		value.12 0 +		value.13 0 +		value.14 0 +		value.15 0 +		value.16 0 +		value.17 0 +		value.18 0 +		value.19 0 +		value.20 0 +		value.21 0 +	} +	control.49 { +		comment.access 'read write' +		comment.type ENUMERATED +		comment.count 1 +		comment.item.0 'PCM Out' +		comment.item.1 'H/W In 0' +		comment.item.2 'H/W In 1' +		comment.item.3 'IEC958 In L' +		comment.item.4 'IEC958 In R' +		iface MIXER +		name 'IEC958 Playback Route' +		value 'PCM Out' +	} +	control.50 { +		comment.access 'read write' +		comment.type ENUMERATED +		comment.count 1 +		comment.item.0 'PCM Out' +		comment.item.1 'H/W In 0' +		comment.item.2 'H/W In 1' +		comment.item.3 'IEC958 In L' +		comment.item.4 'IEC958 In R' +		iface MIXER +		name 'IEC958 Playback Route' +		index 1 +		value 'PCM Out' +	} +	control.51 { +		comment.access 'read write' +		comment.type BOOLEAN +		comment.count 1 +		iface MIXER +		name 'IEC958 Output Switch' +		value true +	} +	control.52 { +		comment.access 'read write' +		comment.type IEC958 +		comment.count 1 +		iface PCM +		device 1 +		name 'IEC958 Playback Default' +		value '0000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' +	} +	control.53 { +		comment.access read +		comment.type IEC958 +		comment.count 1 +		iface PCM +		device 1 +		name 'IEC958 Playback Con Mask' +		value '3fff000f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' +	} +	control.54 { +		comment.access read +		comment.type IEC958 +		comment.count 1 +		iface PCM +		device 1 +		name 'IEC958 Playback Pro Mask' +		value df00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +	} +} diff --git a/abs/not_built/core/tweaker/lib/Tweaker/Definitions.pm b/abs/not_built/core/tweaker/lib/Tweaker/Definitions.pm new file mode 100644 index 0000000..cbadf29 --- /dev/null +++ b/abs/not_built/core/tweaker/lib/Tweaker/Definitions.pm @@ -0,0 +1,66 @@ +# Copyright 2007 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + +package Tweaker::Definitions; +use List::Member; +use Log::Log4perl qw(:easy); + +# To install the above modules: +# -- +# sudo cpan install List::Member + +# Recommendation Levels +my $bottom = -200; # a reserved value, under which no recommendationlevel can go +my $not_available = -100; +my $unsupported = -99; +my $inadvisable = -50; +my $optional = 0; +my $recommended = 100; + +# Interactivity Levels +my $guided = "guided"; +my $minimal = "minimal"; + +# Special variables +my $null = "null"; # reserved as the script name for special Tweaks that define Tweaker behavior + +my %global_variable_hash = ( +    "bottom" => $bottom, +    "not available" => $not_available, +    "unsupported" => $unsupported, +    "inadvisable" => $inadvisable, +    "optional" => $optional, +    "recommended" => $recommended, +    "guided" => $guided, +    "minimal" => $minimal, +    "null" => $null +); + +sub get_global_variable_value { +    my ($variable) = @_; + +    my @known_variables = keys %global_variable_hash; +    if (member($variable, @known_variables) + 1) { +	if ($global_variable_hash{$variable}) { +	    return $global_variable_hash{$variable}; +	} +    } else { +	my $logger = get_logger(); +	$logger->error("No Tweaker Definition for variable named $variable"); +	return $bottom; +    } +} + +1; diff --git a/abs/not_built/core/tweaker/lib/Tweaker/Script.pm b/abs/not_built/core/tweaker/lib/Tweaker/Script.pm new file mode 100644 index 0000000..7dd2c8f --- /dev/null +++ b/abs/not_built/core/tweaker/lib/Tweaker/Script.pm @@ -0,0 +1,353 @@ +# Copyright 2007, 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + +package Tweaker::Script; + +use strict; +use DBI; +use Switch; +use Tweaker::Definitions; + +# To install the above modules: +# -- +# sudo apt-get install libdbi-perl liblog-log4perl-perl +# sudo cpan install Getopt::Lucid List::Member +# choose the defaults for all options, agree to install all dependencies + +use Getopt::Lucid qw( :all ); +# see http://search.cpan.org/~dagolden/Getopt-Lucid-0.16/lib/Getopt/Lucid.pm for usage details +use Log::Log4perl qw(get_logger); +# see http://search.cpan.org/~mschilli/Log-Log4perl-1.14/lib/Log/Log4perl.pm for usage details +# http://www.perl.com/pub/a/2002/09/11/log4perl.html is highly recommended as well + +use List::Member; + +my $dbh; # the database we connect to +my $sth; #  +my $TWEAKER_ROOT; +my @known_options; + +# Print advice on usage and invocation. +sub help () { +    my $logger = get_logger('tweaker.script'); +    $logger->fatal("USAGE:\n$0 [--check Option] [--implement Option] [--poll Option] [--iterations] [--help]"); +    $logger->fatal("Valid values for Option are: ", join(" ",@known_options)); +    $logger->fatal("Only one of the above parameters may be passed."); +    $logger->fatal("The --check and --iterations parameters are not yet supported."); +    exit; +} + +sub execute_shell_command { +    my($command) = @_; +    my $results=""; +    my $logger = get_logger('tweaker.script'); + +    open(SHELL, "$command 2>&1 |"); + +    while(<SHELL>) { +	$results=$results."".$_; +    } +    close(SHELL); +    chop($results); +    $logger->debug("Command '$command' produced output '$results'"); +    return $results; +} + +# Simple way to get the value of an environment variable from the executing shell. +sub get_environment_variable { +    my($envvar) = @_; +    open(SHELL, "echo $envvar|"); +    while(<SHELL>) { +	chop; +	return $_; +    } +    close(SHELL); +} + +sub get_mythtv_connection_string { +    # we want something like mythconverg:localhost +    my $dbname = ""; +    my $dbhostname = ""; +    open(MYSQLTXT, "< /usr/share/mythtv/mysql.txt"); +    while(<MYSQLTXT>) { +	if (/DBName=(.*)/) { +	    $dbname=$1; +	} elsif (/DBHostName=(.*)/) { +	    $dbhostname=$1; +	} +    } +    close(MYSQLTXT); +     +    return "$dbname:$dbhostname"; +} + +sub get_mythtv_authentication { +    # we want something like ['root', ''] +    my $dbusername = ""; +    my $dbpassword = ""; + +    open(MYSQLTXT, "< /usr/share/mythtv/mysql.txt"); +    while(<MYSQLTXT>) { +	if (/DBUserName=(.*)/) { +	    $dbusername=$1; +	} elsif (/DBPassword=(.*)/) { +	    $dbpassword=$1; +	} +    } +    close(MYSQLTXT); +     +    return ($dbusername, $dbpassword); +} + +# Database routines. +sub connect_to_db { +    my ($db) = @_; +    my $logger = get_logger('tweaker.script'); +    my ($dbusername, $dbpassword) = get_mythtv_authentication(); +    if (!($dbh = DBI->connect($db, $dbusername, $dbpassword))) { +	$logger->error("Couldn't connect to database: ", DBI->errstr); +	return -1; +    } +    return 1; +} + +sub disconnect_from_db { +    $dbh->disconnect; +} + +sub do_query { +    my ($query) =  @_; +    my $logger = get_logger('tweaker.script'); +    my $rv=""; +     +    $logger->debug("Processing statement: ", $query); +     +    if (!($sth = $dbh->prepare($query))) { +	$logger->error("Couldn't prepare statement: ", $dbh->errstr); +	return -1; +    } +    $rv = $sth->execute(); # Returns an integer when rows were affected; returns -1 when there's an +    # error; returns 0E0 (true) when no error but no rows affected. + +    if (!$rv) { +	$logger->error("Couldn't execute statement: ", $sth->errstr); +	return -1; +    } +    return $rv; +} + +# Make sure the option passed to this script is handled. +sub validate_option { +    my($option) = @_; + +    if (!(member($option, @known_options) + 1)) { +	my $logger = get_logger('tweaker.script'); +	$logger->fatal("Option '$option' is not known to $0."); +	$logger->fatal("Valid Options are: ", join(", ",@known_options)); +	exit -1; +    } +    return 1; +} + +# Prints out each option that the script handles, separated by '|'. +# This allows for a minimal .tcf entry. +sub get_options { +    print join("|",@known_options),"\n"; +} + +# Prints out the passed Recommendation Level first, followed by any other +# strings, separated by '|'.  This allows the author of a Tweaker Script to +# return explanatory information along with a Recommendation Level. +sub recommendation_level { +    print join("|",@_),"\n"; +} + +sub process_parameters () { +    # Accept these parameters: +    # -- +    my @parameters = ( +	Switch("help")->anycase, +	Param("check")->anycase,  # Requirement 1.1 +	Param("implement")->anycase,  # Requirement 1.2 +	Param("poll")->anycase, # Requirement 1.3 +	Switch("iterations")->anycase, # Requirement 1.4 +	Switch("getoptions")->anycase # Requirement 1.5 +	); +    my $opt = Getopt::Lucid->getopt( \@parameters ); +     +    if (!(my $TWEAKER_ROOT = get_environment_variable("\$TWEAKER_ROOT"))) { +	Log::Log4perl->easy_init(); +	my $logger = get_logger(); +	$logger->fatal("ERROR: \$TWEAKER_ROOT environment variable is not set."); +	exit -1; +    } else { +	my $log4perl_conf = "$TWEAKER_ROOT/log4perl.conf"; +	Log::Log4perl::init_and_watch($log4perl_conf,10); +	my $logger = get_logger('tweaker.script'); +	$logger->info("\$TWEAKER_ROOT is '$TWEAKER_ROOT'."); +    } + +    if ($opt->get_help > 0) { +	help; +    } +     +    my $check = $opt->get_check; +    my $implement = $opt->get_implement; +    my $poll = $opt->get_poll; +    my $iterations = $opt->get_iterations; +    my $getoptions = $opt->get_getoptions; + +    # Requirement 1.6 +    if ($check) { +	if ($implement || $poll || $iterations || $getoptions) { +	    help; +	} +	validate_option($check); # exits with an error if option is invalid +	check_option($check); # Requirement 1.1 +    } elsif ($implement) { +	if ($poll || $iterations || $getoptions) { +	    help; +	} +	validate_option($implement); # exits with an error if option is invalid +	implement_option($implement); # Requirement 1.2 +    } elsif ($poll) { +	if ($iterations || $getoptions) { +	    help; +	} +	validate_option($poll); # exits with an error if option is invalid +	poll_options($poll); # Requirement 1.3 +    } elsif ($iterations) { +	if ($getoptions) { +	    help; +	} +	#count_iterations; # Requirement 1.4 +    } elsif ($getoptions) { +	get_options; # Requirement 1.5 +    } else { +	help; +    } +} + +sub set_known_options { +    my(@options) = @_; +    @known_options = @_; +} + +# These entries may or may not already exist.  First, try updating them, and if that fails, insert them. +# Pass in array references for setfields and checkfields.  Each must +# reference an array of lists, where each list is a key, value pair, e.g. +# [["data", "somedata"], ["name", "skippy"]] +sub change_or_make_entry { +    my($table, $setfields, $checkfields) = @_; +    my $query_string = "UPDATE $table SET "; + +    my $fields=""; +    foreach my $sets (@$setfields) { +	if ($fields) { +	    $fields = $fields . ", "; +	} +	$fields = $fields . "@$sets[0]='@$sets[1]' "; +    } +    $query_string = $query_string . $fields . "WHERE "; + +    my $checkstring=""; +    foreach my $checks (@$checkfields) { +	if ($checkstring) { +	    $checkstring = $checkstring . "AND "; +	} +	$checkstring = $checkstring . "@$checks[0]='@$checks[1]' "; +    } +    $query_string = $query_string . $checkstring; +     +    my $rv = do_query($query_string); +    if (($rv == 0E0) || ($rv < 1)) { # UPDATE didn't apply; do an insert +	my $fields=""; +	my $values=""; +	foreach my $sets (@$setfields) { +	    if ($fields) { +		$fields = $fields . ", "; +		$values = $values . ", "; +	    } +	    $fields = $fields . "@$sets[0]"; +	    $values = $values . "'@$sets[1]'"; +	} +	foreach my $sets (@$checkfields) { +	    if ($fields) { +		$fields = $fields . ", "; +		$values = $values . ", "; +	    } +	    $fields = $fields . "@$sets[0]"; +	    $values = $values . "'@$sets[1]'"; +	} +	 +	$query_string = "INSERT INTO $table (". $fields . ") VALUES (" . $values . ")"; +	 +	$rv = do_query($query_string); +    } +    return $rv; +} + +# We update so many entries in the settings table that a subroutine makes coding and readability easier. +sub change_or_make_setting { +    my($value, $data) = @_; + +    return(change_or_make_entry("settings", [["data", $data]], [["value", $value]])); +} + +# Benchmark-driven tests for low, medium, or high "performance" often look the same. +# If your test falls into this pattern, you can use this subroutine to simplify your +# Tweaker Script's poll_options subroutine. +# NOTE: This only handles options for low, medium, or high right now. +# NOTE: You don't have to use this!  Only use it if your poll_options subroutine +# would look like this anyway.  Don't shoehorn it to fit! +sub threshold_test { +    my($option, $benchmark_number, $name_of_benchmarked_device, $low_threshold, $medium_threshold, $high_threshold) = @_; +    # e.g. ("medium", 512, "video card", 350, 425, 500) + +    my $logger = get_logger('tweaker.script'); +    $logger->debug("Threshold test for option '$option' ($name_of_benchmarked_device) with benchmark of $benchmark_number, where: low = $low_threshold, medium = $medium_threshold, high = $high_threshold"); +     +    switch ($option) { +	case "low" { +	    if ($benchmark_number <= $low_threshold) { +		recommendation_level("recommended", "Your $name_of_benchmarked_device seems to be unable to handle higher usage than this."); +	    } elsif ($benchmark_number <= $medium_threshold) { +		recommendation_level("optional", "Your $name_of_benchmarked_device seems to be able to handle higher usage than this, but select this option if you want to reduce overall $name_of_benchmarked_device usage."); +	    } elsif ($benchmark_number >= $high_threshold) { +		recommendation_level("optional", "Your $name_of_benchmarked_device seems to be quite capable of this setting, but select this option if you want to reduce overall $name_of_benchmarked_device usage."); +	    } +	} +	case "medium" { +	    if ($benchmark_number <= $low_threshold) { +		recommendation_level("inadvisable", "Your $name_of_benchmarked_device seems to be unable to handle this usage level, but you are free to try."); +	    } elsif ($benchmark_number <= $medium_threshold) { +		recommendation_level("recommended", "Your $name_of_benchmarked_device seems to be unable to handle higher usage than this."); +	    } elsif ($benchmark_number >= $high_threshold) { +		recommendation_level("optional", "Your $name_of_benchmarked_device seems to be able to handle higher usage than this, but select this option if you want to reduce overall $name_of_benchmarked_device usage."); +	    } +	} +	case "high" { +	    if ($benchmark_number <= $low_threshold) { +		recommendation_level("inadvisable", "Your $name_of_benchmarked_device seems to be unable to handle this usage level, and it is not recommended that you try."); +	    } elsif ($benchmark_number <= $medium_threshold) { +		recommendation_level("inadvisable", "Your $name_of_benchmarked_device seems to be unable to handle this usage level, but you are free to try."); +	    } elsif ($benchmark_number >= $high_threshold) { +		recommendation_level("recommended", "Your $name_of_benchmarked_device seems to be quite capable of this setting."); +	    } +	} +    } +} + +1; diff --git a/abs/not_built/core/tweaker/log4perl.conf b/abs/not_built/core/tweaker/log4perl.conf new file mode 100644 index 0000000..3c0a5bb --- /dev/null +++ b/abs/not_built/core/tweaker/log4perl.conf @@ -0,0 +1,13 @@ +log4perl.logger                  = FATAL, ScreenLogger +log4perl.logger.tweaker          = INFO, FileLogger +log4perl.logger.tweaker.script   = WARN, FileLogger + +log4perl.appender.ScreenLogger = Log::Dispatch::Screen +log4perl.appender.ScreenLogger.Threshold = FATAL +log4perl.appender.ScreenLogger.layout   = Log::Log4perl::Layout::PatternLayout +log4perl.appender.ScreenLogger.layout.ConversionPattern=<%p> %F{1} - %m%n + +log4perl.appender.FileLogger          = Log::Log4perl::Appender::File +log4perl.appender.FileLogger.filename = /var/log/tweaker.log +log4perl.appender.FileLogger.layout   = Log::Log4perl::Layout::PatternLayout +log4perl.appender.FileLogger.layout.ConversionPattern=%d <%p> %F{1}:%L %M - %m%n diff --git a/abs/not_built/core/tweaker/tcf/EXAMPLE.tcf b/abs/not_built/core/tweaker/tcf/EXAMPLE.tcf new file mode 100644 index 0000000..0064fba --- /dev/null +++ b/abs/not_built/core/tweaker/tcf/EXAMPLE.tcf @@ -0,0 +1,38 @@ +<!-- This is an example TCF.  See TCFProgrammingSpecifications.odt for details. +     //--> +<tweak name = "Put a human-readable name for the tweak here.  Make sure it's unique."> <!-- REQUIRED //--> +  <description>Put a human-readable description of the tweak here.</description> <!-- OPTIONAL but usually a good idea, unless the user +										      will never see the description. +										      //--> +  <complexity>Put a complexity level here.</complexity> <!-- OPTIONAL human-readable assessment of how complex this Tweak is to understand. +							     A complete list of complexity levels is listed in tweaker-core.tcf +							     //--> +  <script>twk_EXAMPLE.pl</script> <!-- REQUIRED: An executable script in the $PATH of the shell that invoked Tweaker. +				       For consistency, adhere to the naming convention by beginning the script name with +				       'twk_'.  You can make the tweaker script in any language you wish, but Perl is +				       supported well. +				       //--> +  <alwaysaskuser>boolean</alwaysaskuser> <!-- OPTIONAL field with values: yes, no - not used in Tweaker v0.7 +					 //--> +  <options> <!-- REQUIRED //--> +    <option name = "Human-readable name for this option"> <!-- REQUIRED: Option names must match those handled in the +							       corresponding tweaker script. +							       //--> +      <description>Human-readable description of what this option does.</description> <!-- OPTIONAL //--> +      <complexity>Put a complexity level here.</complexity> <!-- OPTIONAL human-readable assessment of how complex this Tweak is to +								 understand.  A complete list of complexity levels is listed in +								 tweaker-core.tcf +								 //--> +      <recommendationlevel>recommendationlevel</recommendationlevel> <!-- OPTIONAL human-readable recommendation level for this tweak. +									  If this field is absent, the script will be run to acquire +									  the recommendationlevel.  The default recommendationlevel +									  is $optional if it cannot otherwise be determined.  For a +									  complete list of recommendation levels, see Tweaker/Definitions.pm +									  //--> +    </option> +    <!-- Put any additional options here.  If you only have one option and it ends up with a recommendationlevel at or above $optional, +	 it will be selected automatically.  Otherwise, the option with the highest recommendationlevel above $optional will be selected. +	 //--> +  </options> +</tweak> +<!-- Put any additional tweaks here. //--> diff --git a/abs/not_built/core/tweaker/tcf/focus.tcf b/abs/not_built/core/tweaker/tcf/focus.tcf new file mode 100644 index 0000000..353662c --- /dev/null +++ b/abs/not_built/core/tweaker/tcf/focus.tcf @@ -0,0 +1,113 @@ +<tweak name = "SQL table scrubber"> +	<script>twk_scrub_sql.pl</script> +	<description>Scrubs the sections of mythconverg that KnoppMyth controls, preparing for the Tweaks below.</description> +	<options> +		<option name = "scrub"> +			<description>Everyone should run this, or some the Tweaks below may fail.</description> +			<recommendationlevel>recommended</recommendationlevel> +		</option> +	</options> +</tweak> +<tweak name = "Audio"> +	<script>twk_audio.pl</script> +	<description>Configures MythTV, xine, and mplayer to output audio the way you want.</description> +	<options> +		<option name = "analogstereo"> +			<description>Suitable for output to headphones, amplified speakers, or analog inputs on a receiver.</description> +			<recommendationlevel>recommended</recommendationlevel> +		</option> +		<option name = "analogsurround"> +			<description>Suitable for direct output to multiple individual speakers.</description> +		</option> +		<option name = "digital"> +			<description>The best option if your hardware supports it.  Sends audio directly to a reciever to be processed.</description> +		</option> +	</options> +</tweak> +<tweak name = "CPU"> +	<script>twk_cpu.pl</script> +	<description>Configures MythTV to use CPU-appropriate features and themes.</description> +	<options> +		<option name = "low"> +			<description>Uses the least amount of CPU but enables the fewest extra options.</description> +		</option> +		<option name = "medium"> +			<description>Uses a moderate amount of CPU and enables typical extra options.</description> +		</option> +		<option name = "high"> +			<description>Uses the most amount of CPU of the above options but enables the most extra options.</description> +		</option> +	</options> +</tweak> +<tweak name = "RAM"> +	<script>twk_RAM.pl</script> +	<description>Configures MythTV to use the right-sized RAM cache for various options.</description> +	<options> +		<option name = "low"> +			<description>Uses the least amount of RAM but may cause buffering delays.</description> +		</option> +		<option name = "medium"> +			<description>Uses a moderate amount of RAM as a tradeoff between buffering and RAM usage.</description> +		</option> +		<option name = "high"> +			<description>Uses the most amount of RAM to reduce buffering and improve performance.</description> +		</option> +	</options> +</tweak> +<tweak name = "graphics"> +	<script>twk_graphics.pl</script> +	<description>Configures MythTV to use graphical options that are appropriate for your video card.</description> +	<options> +		<option name = "low"> +			<description>Puts little stress on the video card.</description> +		</option> +		<option name = "medium"> +			<description>Puts the video card to work a bit and enables some eye candy.</description> +		</option> +		<option name = "high"> +			<description>Puts the video card hardest to work and enables more eye candy.</description> +		</option> +	</options> +</tweak> +<tweak name = "localization"> +	<script>twk_localization.pl</script> +	<description>Configures the system to use your native language, system of measurements, etc.</description> +	<options> +		<option name = "US_English"> +			<description>This is for most North Americans.  Any units seen are in imperial units, such as Fahrenheit, pounds, feet, etc.</description> +		</option> +		<option name = "GB_English"> +			<description>This is for most UK residents.  Any units seen are in metric, such as Celsius, kilograms, meters, etc.</description> +		</option> +	</options> +</tweak> +<tweak name = "Tuner Configuration"> +	<script>twk_tuners.pl</script> +	<description>Recommended for everyone.</description> +	<options> +		<option name = "all"> +			<description>Detects and auto-configures many tuner devices.</description> +			<recommendationlevel>recommended</recommendationlevel> +		</option> +	</options> +</tweak> +<tweak name = "KnoppMyth Customizations"> +	<script>twk_general.pl</script> +	<description>Recommended for everyone.</description> +	<options> +		<option name = "all"> +			<description>Changes made to the MythTV and KnoppMyth baseline settings for integration and functionality.</description> +			<recommendationlevel>recommended</recommendationlevel> +		</option> +	</options> +</tweak> +<tweak name = "SQL table protecter"> +	<script>twk_scrub_sql.pl</script> +	<description>Protects the sections of mythconverg that KnoppMyth controls, keeping our changes separate from user-made changes.</description> +	<options> +		<option name = "protect"> +			<description>Everyone should run this, or user-made changes might get clobbered.</description> +			<recommendationlevel>recommended</recommendationlevel> +		</option> +	</options> +</tweak> diff --git a/abs/not_built/core/tweaker/tcf/os.tcf b/abs/not_built/core/tweaker/tcf/os.tcf new file mode 100644 index 0000000..e70f4ee --- /dev/null +++ b/abs/not_built/core/tweaker/tcf/os.tcf @@ -0,0 +1,10 @@ +<tweak name = "Linux-related Customizations"> +	<script>twk_linux.pl</script> +	<description>Recommended for everyone.</description> +	<options> +		<option name = "all"> +			<description>Changes made to the Linux baseline settings for integration and functionality.</description> +			<recommendationlevel>recommended</recommendationlevel> +		</option> +	</options> +</tweak> diff --git a/abs/not_built/core/tweaker/tcf/tcf.dtd b/abs/not_built/core/tweaker/tcf/tcf.dtd new file mode 100644 index 0000000..64ce67e --- /dev/null +++ b/abs/not_built/core/tweaker/tcf/tcf.dtd @@ -0,0 +1,11 @@ +<!ELEMENT tcf (tweak+)> +<!ELEMENT tweak (description?, complexity?, script, alwaysaskuser?, options)> +  <!ATTLIST tweak name CDATA #REQUIRED> +<!ELEMENT description (#PCDATA)> +<!ELEMENT complexity (#PCDATA)> +<!ELEMENT script (#PCDATA)> +<!ELEMENT alwaysaskuser (#PCDATA)> +<!ELEMENT options (option+)> +<!ELEMENT option (description?, complexity?, recommendationlevel?)> +  <!ATTLIST option name CDATA #REQUIRED> +<!ELEMENT recommendationlevel (#PCDATA)> diff --git a/abs/not_built/core/tweaker/tcf/tweaker-core.tcf b/abs/not_built/core/tweaker/tcf/tweaker-core.tcf new file mode 100644 index 0000000..88d8608 --- /dev/null +++ b/abs/not_built/core/tweaker/tcf/tweaker-core.tcf @@ -0,0 +1,47 @@ +<?xml version="1.0" ?> +<!DOCTYPE tcf SYSTEM "/usr/LH/tweaker/tcf/tcf.dtd" [ +<!--	  <!ENTITY os SYSTEM "/usr/LH/tweaker/tcf/os.tcf"> //--> +<!--	  <!ENTITY distro SYSTEM "/usr/LH/tweaker/tcf/distro.tcf"> //--> +	  <!ENTITY focus SYSTEM "/usr/LH/tweaker/tcf/focus.tcf"> +	  <!ENTITY userland SYSTEM "/usr/LH/tweaker/tcf/userland.tcf"> +	  ]> +<tcf> +  <tweak name = "Complexity Level"> +    <description>Some configuration options require more understanding than others.</description> +    <complexity>basic</complexity> +    <script>null</script> +    <options> +      <option name = "Basic"> +	<description>Show only the most basic configuration options.  This is best for new Users.</description> +	<recommendationlevel>recommended</recommendationlevel> +      </option> +      <option name = "Intermediate"> +	<description>Show the basic configuration options as well as the options that veteran Users will understand.</description> +      </option> +      <option name = "Advanced"> +	<description>Show all configuration options, including those that only advanced Users will understand.</description> +	<recommendationlevel>inadvisable</recommendationlevel> +      </option> +    </options> +  </tweak> +  <tweak name = "Interactivity"> +    <description>Tweaker can guess answers to some configuration options.  Interactivity determines whether or not these guesses are used automatically, or whether you have a chance to intervene.</description> +    <complexity>basic</complexity> +    <script>null</script> +    <options> +      <option name = "Minimal"> +	<description>Show only the most basic configuration options.  This is best for new Users.</description> +	<recommendationlevel>inadvisable</recommendationlevel> +      </option> +      <option name = "Guided"> +	<description>Show the basic configuration options as well as the options that veteran Users will understand.</description> +	<recommendationlevel>recommended</recommendationlevel> +      </option> +    </options> +  </tweak> +  &os; +  &distro; +  &focus; +  &userland; +</tcf> + diff --git a/abs/not_built/core/tweaker/tcf/userland.tcf b/abs/not_built/core/tweaker/tcf/userland.tcf new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/abs/not_built/core/tweaker/tcf/userland.tcf diff --git a/abs/not_built/core/tweaker/tweaker.install b/abs/not_built/core/tweaker/tweaker.install new file mode 100644 index 0000000..fc4ba07 --- /dev/null +++ b/abs/not_built/core/tweaker/tweaker.install @@ -0,0 +1,39 @@ +# This is a default template for a post-install scriptlet.  You can +# remove any functions you don't need (and this header). + +# arg 1:  the new package version +pre_install() { +/bin/true +} + +# arg 1:  the new package version +post_install() { +	touch /var/log/tweaker.log +	chmod 777 /var/log/tweaker.log +} + +# arg 1:  the new package version +# arg 2:  the old package version +pre_upgrade() { +  /bin/true +} + +# arg 1:  the new package version +# arg 2:  the old package version +post_upgrade() { +  /bin/true +} + +# arg 1:  the old package version +pre_remove() { +  /bin/true +} + +# arg 1:  the old package version +post_remove() { +  /bin/true +} + +op=$1 +shift +$op $* diff --git a/abs/not_built/core/tweaker/tweaker.sh b/abs/not_built/core/tweaker/tweaker.sh new file mode 100644 index 0000000..8cb36eb --- /dev/null +++ b/abs/not_built/core/tweaker/tweaker.sh @@ -0,0 +1,4 @@ +#!/bin/bash + export TWEAKER_ROOT=/usr/LH/tweaker + export PATH=$PATH:$TWEAKER_ROOT/bin + export PERL5LIB=$TWEAKER_ROOT/lib:$PERL5LIB
\ No newline at end of file diff --git a/abs/not_built/core/v4l-dvb/PKGBUILD b/abs/not_built/core/v4l-dvb/PKGBUILD new file mode 100644 index 0000000..f19c2fa --- /dev/null +++ b/abs/not_built/core/v4l-dvb/PKGBUILD @@ -0,0 +1,49 @@ +# Maintainer: Cecil Watson<knoppmyth@gmail.com> + +pkgname=v4l-dvb +_kernver=`uname -r` +pkgver=20120904 +pkgrel=1 +pkgdesc="V4L-DVB device drivers (newer than those included in kernel26)" +arch=('i686' 'x86_64') +url="http://linuxtv.org/" +license=('GPL2') +depends=('kernel26') +makedepends=('git' 'kernel26-headers' 'perl-proc-processtable' 'patchutils') +options=(!makeflags) +install=v4l-dvb.install +_gitroot="git://linuxtv.org/media_build.git" +_gitname="media_build" + +build() { +  cd "${srcdir}" +  msg "Connecting to GIT server...." + +  if [ -d "${srcdir}/${_gitname}" ] ; then +     cd ${_gitname} && git pull --rebase +  else +    git clone ${_gitroot} +  fi + +  msg "GIT checkout done or server timeout" +  msg "Starting make..." + +  cd "${srcdir}/${_gitname}/linux" +  make download untar +  cd .. + +#  Build with 3.0-ARCH kernel +#  sed -i -e "s/KERNELRELEASE\ :=/KERNELRELEASE\ :=\ ${_kernver}/" \ +#    -e "s/\$(KERNELRELEASE)/${_kernver}/" \ +#    "${srcdir}/${_gitname}"/v4l/Makefile{,.sound} + +  make +} + +package() { +  cd "${srcdir}/${_gitname}" +  make DESTDIR="${pkgdir}/lib/modules/$_kernver/updates" install +  # compress new kernel modules +  find ${pkgdir}/lib/modules/$_kernver/updates/ -not -name 'media.ko' -name '*.ko' -exec gzip '{}' \; +} +md5sums=() diff --git a/abs/not_built/core/v4l-dvb/v4l-dvb.install b/abs/not_built/core/v4l-dvb/v4l-dvb.install new file mode 100644 index 0000000..f7b7197 --- /dev/null +++ b/abs/not_built/core/v4l-dvb/v4l-dvb.install @@ -0,0 +1,12 @@ +post_install() { +    echo ">>> Running depmod..." +    depmod +} + +post_upgrade() { +    post_install +} + +post_remove() { +    echo ">>> v4l-dvb has been removed" +} diff --git a/abs/not_built/core/vbetool/PKGBUILD b/abs/not_built/core/vbetool/PKGBUILD new file mode 100644 index 0000000..244babc --- /dev/null +++ b/abs/not_built/core/vbetool/PKGBUILD @@ -0,0 +1,31 @@ +# $Id: PKGBUILD 19227 2008-11-17 22:22:42Z thayer $ +# Contributor: Christian Storm <Christian.Storm@gmx.DE> +# Contributor: James Rayner <james@archlinux.org> +# Maintainer: Thayer Williams <thayer@archlinux.org> + +pkgname=vbetool +pkgver=1.1 +pkgrel=1 +pkgdesc="vbetool uses lrmi in order to run code from the video BIOS" +url="http://www.srcf.ucam.org/~mjg59/vbetool/" +license=('GPL2') +arch=('i686' 'x86_64') +depends=('zlib' 'libx86') +makedepends=('pciutils') +source=(http://www.codon.org.uk/~mjg59/vbetool/download/vbetool-${pkgver}.tar.gz) +md5sums=('ffb03b118867a02296d7449019ad8846') + +build() { +  cd $srcdir/$pkgname-$pkgver +  if [ "${CARCH}" = "x86_64" ]; then +    ./configure --prefix=/usr --without-x86emu || return 1 +  else +    ./configure --prefix=/usr || return 1 +  fi +  make LIBS=-lpci || return 1 +} +package() { +  cd $srcdir/$pkgname-$pkgver +  make DESTDIR=$pkgdir install || return 1 +} + diff --git a/abs/not_built/core/vdpauinfo-legacy/PKGBUILD b/abs/not_built/core/vdpauinfo-legacy/PKGBUILD new file mode 100644 index 0000000..d58c672 --- /dev/null +++ b/abs/not_built/core/vdpauinfo-legacy/PKGBUILD @@ -0,0 +1,26 @@ +# It is not expected that vdpau will work with the 71xx nVidia drivers, but we still want +# 'vdpinfo' to return something when users run it, even if the real 'vdpinfo' won't build +# for their nVidia driver version. + +pkgname=vdpauinfo-legacy +pkgver=1 +pkgrel=5 +pkgdesc="tells the user they can't handle vdpau" +license=('GPLv2') +arch=('i686' 'x86_64') +#depends=('') +# Just let the dependency on the right nvidia and nvidia-utils versions +# handle conflicts via those packages conflicts. +conflicts=(vdpauinfo) +provides=('vpinfo' 'vdpauinfo') +source=(vdpauinfo) +md5sums=() + +build() { +    LH_ROOT=/usr/LH +    mkdir -p $startdir/pkg/$LH_ROOT/bin/ + +    cd $startdir +    install -m0755 -D vdpauinfo $startdir/pkg/$LH_ROOT/bin/ +} +md5sums=('502f0a21bd1232e5a6bccb17cd63116d') diff --git a/abs/not_built/core/vdpauinfo-legacy/vdpauinfo b/abs/not_built/core/vdpauinfo-legacy/vdpauinfo new file mode 100755 index 0000000..9b237dc --- /dev/null +++ b/abs/not_built/core/vdpauinfo-legacy/vdpauinfo @@ -0,0 +1,2 @@ +#!/bin/bash +echo "vdpau is unsupported" diff --git a/abs/not_built/core/xf86-input-acecad/LICENSE b/abs/not_built/core/xf86-input-acecad/LICENSE new file mode 100644 index 0000000..cb245d3 --- /dev/null +++ b/abs/not_built/core/xf86-input-acecad/LICENSE @@ -0,0 +1,24 @@ +This package was downloaded from +http://xorg.freedesktop.org/releases/individual/driver/ + +Copyright (c) 2001 Edouard TISSERANT <tissered@esstin.u-nancy.fr> +Parts inspired from Shane Watts <shane@bofh.asn.au> XFree86 3 Acecad Driver +Thanks to Emily, from AceCad, For giving me documents. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL +THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/abs/not_built/core/xf86-input-acecad/PKGBUILD b/abs/not_built/core/xf86-input-acecad/PKGBUILD new file mode 100644 index 0000000..b95dbec --- /dev/null +++ b/abs/not_built/core/xf86-input-acecad/PKGBUILD @@ -0,0 +1,27 @@ +# $Id: PKGBUILD 88560 2010-08-24 08:42:15Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-input-acecad +pkgver=1.4.0 +pkgrel=3 +pkgdesc="X.Org acecad tablet input driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('sysfsutils') +makedepends=('xorg-server-devel') +conflicts=('xorg-server<1.9.0') +options=('!libtool') +groups=('xorg-input-drivers') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 LICENSE) +md5sums=('51247dc0d73185e35bec326283bc49a5' +         '6f401ccbe91e2938b01d5a85df350a7c') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-input-aiptek/PKGBUILD b/abs/not_built/core/xf86-input-aiptek/PKGBUILD new file mode 100644 index 0000000..70ba0ca --- /dev/null +++ b/abs/not_built/core/xf86-input-aiptek/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 88563 2010-08-24 08:45:36Z jgc $ +#Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-input-aiptek +pkgver=1.3.1 +pkgrel=1 +pkgdesc="X.Org Aiptek USB Digital Tablet input driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc') +makedepends=('pkgconfig' 'xorg-server-devel') +conflicts=('xorg-server<1.9.0') +options=('!libtool') +groups=('xorg-input-drivers') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('8466910dd3877502eb97468db4deab98d49125bb') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-input-synaptics/10-synaptics.conf b/abs/not_built/core/xf86-input-synaptics/10-synaptics.conf new file mode 100644 index 0000000..7e456ed --- /dev/null +++ b/abs/not_built/core/xf86-input-synaptics/10-synaptics.conf @@ -0,0 +1,8 @@ +Section "InputClass" +        Identifier "touchpad catchall" +        Driver "synaptics" +        MatchIsTouchpad "on" +	      Option "TapButton1" "1" +	      Option "TapButton2" "2" +	      Option "TapButton3" "3" +EndSection diff --git a/abs/not_built/core/xf86-input-synaptics/PKGBUILD b/abs/not_built/core/xf86-input-synaptics/PKGBUILD new file mode 100644 index 0000000..670fd87 --- /dev/null +++ b/abs/not_built/core/xf86-input-synaptics/PKGBUILD @@ -0,0 +1,39 @@ +# $Id: PKGBUILD 89499 2010-09-01 12:06:39Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +# Contributor: Tobias Powalowski  <tpowa@archlinux.org> +# Contributor: Thomas Bächler <thomas@archlinux.org> +# Contributor: Alexander Baldeck <alexander@archlinux.org> + +pkgname=xf86-input-synaptics +pkgver=1.3.0 +pkgrel=1 +pkgdesc="synaptics driver for notebook touchpads" +arch=(i686 x86_64) +license=('custom') +url="http://xorg.freedesktop.org/" +depends=('libxtst') +makedepends=('xorg-server-devel' 'libxi' 'libx11') +conflicts=('xorg-server<1.9.0') +replaces=('synaptics') +provides=('synaptics') +conflicts=('synaptics') +groups=('xorg-input-drivers') +options=(!libtool) +backup=('etc/X11/xorg.conf.d/10-synaptics.conf') +source=(http://xorg.freedesktop.org/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 +        10-synaptics.conf) +sha1sums=('132fff19a3a1768e7ab403f44ebc28e0480a4120' +          '70ddc39abc03c3b5b8071b70b5553f84e01d78b2') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install +  install -m755 -d "${pkgdir}/etc/X11/xorg.conf.d" +  install -m644 "${srcdir}/10-synaptics.conf" "${pkgdir}/etc/X11/xorg.conf.d/" +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" + +  rm -rf "${pkgdir}/usr/share/X11" +} diff --git a/abs/not_built/core/xf86-input-wacom/70-wacom.rules b/abs/not_built/core/xf86-input-wacom/70-wacom.rules new file mode 100644 index 0000000..67e5580 --- /dev/null +++ b/abs/not_built/core/xf86-input-wacom/70-wacom.rules @@ -0,0 +1,8 @@ +ACTION!="add|change", GOTO="wacom_end" + +# Match all wacom tablets with a serial ID starting with WACf +ATTRS{id}=="WACf*" ENV{NAME}="Serial Wacom Tablet", ENV{SUBSYSTEM}="input", ENV{ID_INPUT}="1", ENV{ID_INPUT_TABLET}="1" +ATTRS{id}=="FUJ*" ENV{NAME}="Serial Wacom Tablet", ENV{SUBSYSTEM}="input", ENV{ID_INPUT}="1", ENV{ID_INPUT_TABLET}="1" + +LABEL="wacom_end" + diff --git a/abs/not_built/core/xf86-input-wacom/PKGBUILD b/abs/not_built/core/xf86-input-wacom/PKGBUILD new file mode 100644 index 0000000..5296159 --- /dev/null +++ b/abs/not_built/core/xf86-input-wacom/PKGBUILD @@ -0,0 +1,30 @@ +# $Id: PKGBUILD 88601 2010-08-24 09:13:17Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +# Contributor: M Rawash <mrawash@gmail.com> + +pkgname=xf86-input-wacom +pkgver=0.10.8 +pkgrel=2 +pkgdesc="X.Org Wacom tablet driver" +arch=('i686' 'x86_64') +url="http://linuxwacom.sourceforge.net/" +license=('GPL') +backup=('etc/X11/xorg.conf.d/50-wacom.conf') +depends=('libxi') +makedepends=('xorg-server-devel' 'libxext' 'libxi') +conflicts=('xorg-server<1.9.0') +options=(!libtool) +source=(http://downloads.sourceforge.net/project/linuxwacom/${pkgname}/${pkgname}-${pkgver}.tar.bz2 +        70-wacom.rules) +md5sums=('e2bcc125070a16a7e3608d074d5d27dc' +         '4d3665bb2ef8a8190734640dffa4c6f7') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr --with-xorg-conf-dir=/etc/X11/xorg.conf.d +  make +  make DESTDIR="${pkgdir}" install + +  install -m755 -d "${pkgdir}/lib/udev/rules.d" +  install -m644 "${srcdir}/70-wacom.rules"  "${pkgdir}/lib/udev/rules.d/" +} diff --git a/abs/not_built/core/xf86-video-apm/PKGBUILD b/abs/not_built/core/xf86-video-apm/PKGBUILD new file mode 100644 index 0000000..dc79a62 --- /dev/null +++ b/abs/not_built/core/xf86-video-apm/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 88609 2010-08-24 09:19:57Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-apm +pkgver=1.2.3 +pkgrel=1 +pkgdesc="X.org Alliance ProMotion video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc') +makedepends=('xorg-server-devel') +conflicts=('xorg-server<1.9.0') +groups=('xorg-video-drivers') +options=('!libtool') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('1fa7180cf985a74132f8d5b39a0bf9df08713fac') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-ark/PKGBUILD b/abs/not_built/core/xf86-video-ark/PKGBUILD new file mode 100644 index 0000000..03b715a --- /dev/null +++ b/abs/not_built/core/xf86-video-ark/PKGBUILD @@ -0,0 +1,27 @@ +# $Id: PKGBUILD 88612 2010-08-24 09:22:30Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-ark +pkgver=0.7.3 +pkgrel=1 +pkgdesc="X.org ark video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc') +makedepends=('xorg-server-devel') +conflicts=('xorg-server<1.9.0') +options=('!libtool') +groups=('xorg-video-drivers') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('56901ec6097a83433689f208268281f9c98c238b') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install + +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-ast/PKGBUILD b/abs/not_built/core/xf86-video-ast/PKGBUILD new file mode 100644 index 0000000..8cfbaa9 --- /dev/null +++ b/abs/not_built/core/xf86-video-ast/PKGBUILD @@ -0,0 +1,25 @@ +# $Id: $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-ast +pkgver=0.91.10 +pkgrel=1 +pkgdesc="X.org ASPEED AST Graphics video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc') +makedepends=('xorg-server-devel') +options=('!libtool') +groups=('xorg-video-drivers') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('a90624e63f33fdcb50ccefcdeebb34052f341ef3') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-ati/PKGBUILD b/abs/not_built/core/xf86-video-ati/PKGBUILD new file mode 100644 index 0000000..a708fc3 --- /dev/null +++ b/abs/not_built/core/xf86-video-ati/PKGBUILD @@ -0,0 +1,31 @@ +# $Id: PKGBUILD 92040 2010-09-28 17:24:55Z andyrtr $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +# Contributor: Alexander Baldeck <alexander@archlinux.org> + +pkgname=xf86-video-ati +pkgver=6.13.2 +pkgrel=1 +pkgdesc="X.org ati video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=(libpciaccess libdrm udev pixman ati-dri) +makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa') +conflicts=('xorg-server<1.9.0') +groups=('xorg-video-drivers') +options=('!libtool') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +md5sums=('a8f92fe3c458e511f4e2ead7f92c02b0') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr --enable-dri +  make +} + +package() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  make "DESTDIR=${pkgdir}" install +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-chips/PKGBUILD b/abs/not_built/core/xf86-video-chips/PKGBUILD new file mode 100644 index 0000000..b0bab50 --- /dev/null +++ b/abs/not_built/core/xf86-video-chips/PKGBUILD @@ -0,0 +1,28 @@ +# $Id: PKGBUILD 88618 2010-08-24 09:46:46Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +# Contributor: Alexander Baldeck <alexander@archlinux.org> + +pkgname=xf86-video-chips +pkgver=1.2.3 +pkgrel=1 +pkgdesc="X.org Chips and Technologies video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=(glibc) +makedepends=('xorg-server-devel') +conflicts=('xorg-server<1.9.0') +groups=('xorg-video-drivers') +options=('!libtool') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('79d1592dacbdd5ff0419dcb2fef2a2ca541dd329') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install + +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-cirrus/LICENSE b/abs/not_built/core/xf86-video-cirrus/LICENSE new file mode 100644 index 0000000..bb283cf --- /dev/null +++ b/abs/not_built/core/xf86-video-cirrus/LICENSE @@ -0,0 +1,22 @@ +This package was downloaded from +http://xorg.freedesktop.org/releases/individual/driver/ + +Copyright 2000 by Egbert Eich + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of Alan Hourihane not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission.  Alan Hourihane makes no representations +about the suitability of this software for any purpose.  It is provided +"as is" without express or implied warranty. + +EGBERT EICH DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. diff --git a/abs/not_built/core/xf86-video-cirrus/PKGBUILD b/abs/not_built/core/xf86-video-cirrus/PKGBUILD new file mode 100644 index 0000000..06d6510 --- /dev/null +++ b/abs/not_built/core/xf86-video-cirrus/PKGBUILD @@ -0,0 +1,28 @@ +# $Id: PKGBUILD 88621 2010-08-24 09:48:53Z jgc $ +#Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-cirrus +pkgver=1.3.2 +pkgrel=4 +pkgdesc="X.org Cirrus Logic video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc') +makedepends=('xorg-server-devel') +conflicts=('xorg-server<1.9.0') +groups=('xorg-video-drivers') +options=('!libtool') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 +        LICENSE) +md5sums=('8195d03ed0be0975c03441e66a9f53b3' +         'b9b570ac5c03f1fbe3e0cee5fe884b82') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-dummy/PKGBUILD b/abs/not_built/core/xf86-video-dummy/PKGBUILD new file mode 100644 index 0000000..06386c7 --- /dev/null +++ b/abs/not_built/core/xf86-video-dummy/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 88624 2010-08-24 09:52:29Z jgc $ +#Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-dummy +pkgver=0.3.4 +pkgrel=2 +pkgdesc="X.org dummy video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc') +makedepends=('xorg-server-devel' 'xf86dgaproto') +conflicts=('xorg-server<1.9.0') +groups=('xorg-video-drivers') +options=('!libtool') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('876ed7165ea2821bbddd73232a1ce0b79c1f14ff') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-fbdev/PKGBUILD b/abs/not_built/core/xf86-video-fbdev/PKGBUILD new file mode 100644 index 0000000..2208c59 --- /dev/null +++ b/abs/not_built/core/xf86-video-fbdev/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 88627 2010-08-24 09:55:20Z jgc $ +#Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-fbdev +pkgver=0.4.2 +pkgrel=2 +pkgdesc="X.org framebuffer video driver" +arch=(i686 x86_64) +license=('custom') +url="http://xorg.freedesktop.org/" +depends=('glibc') +makedepends=('xorg-server-devel') +conflicts=('xorg-server<1.9.0') +groups=('xorg-video-drivers') +options=('!libtool') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('c8562f997d56c9fec50df6ca9892f39f43ff4c2c') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-geode/PKGBUILD b/abs/not_built/core/xf86-video-geode/PKGBUILD new file mode 100644 index 0000000..6763518 --- /dev/null +++ b/abs/not_built/core/xf86-video-geode/PKGBUILD @@ -0,0 +1,30 @@ +# $Id: PKGBUILD 99349 2010-11-14 16:06:37Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-geode +pkgver=2.11.10 +pkgrel=1 +pkgdesc="X.org AMD/Geode LX & NX video driver" +# there is no 64bit geode +arch=(i686) +license=('custom') +url="http://xorg.freedesktop.org/" +depends=('glibc') +makedepends=('xorg-server-devel') +conflicts=('xorg-server<1.9.0') +options=('!libtool') +conflicts=('xf86-video-amd') +replaces=('xf86-video-amd') +groups=('xorg-video-drivers') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('01d739983e1449bac89c2c1f639ad3d6562b4fa4') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install + +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-glint/LICENSE b/abs/not_built/core/xf86-video-glint/LICENSE new file mode 100644 index 0000000..b4ca2d4 --- /dev/null +++ b/abs/not_built/core/xf86-video-glint/LICENSE @@ -0,0 +1,84 @@ +This package was downloaded from +http://xorg.freedesktop.org/releases/individual/driver/ + +Copyright 1998-2001 by Alan Hourihane, Wigan, England. + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of Alan Hourihane not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission.  Alan Hourihane makes no representations +about the suitability of this software for any purpose.  It is provided +"as is" without express or implied warranty. + +ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + +Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sub license, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Copyright (C) 1998-2000 Michael H. Schimek <m.schimek@netway.at> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + +Copyright 2000-2001 by Sven Luther <luther@dpt-info.u-strasbg.fr>. + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of Sven Luther not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. Sven Luther makes no representations +about the suitability of this software for any purpose. It is provided +"as is" without express or implied warranty. + +SVEN LUTHER DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL SVEN LUTHER BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. diff --git a/abs/not_built/core/xf86-video-glint/PKGBUILD b/abs/not_built/core/xf86-video-glint/PKGBUILD new file mode 100644 index 0000000..f622429 --- /dev/null +++ b/abs/not_built/core/xf86-video-glint/PKGBUILD @@ -0,0 +1,28 @@ +# $Id: PKGBUILD 88630 2010-08-24 09:57:19Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-glint +pkgver=1.2.4 +pkgrel=4 +pkgdesc="X.org GLINT/Permedia video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc') +makedepends=('xorg-server-devel' 'xf86dgaproto') +conflicts=('xorg-server<1.9.0') +options=('!libtool') +groups=('xorg-video-drivers') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 +        LICENSE) +md5sums=('960df34e129faa411e58c0d6b56d79a3' +         '996937b1e1d13f721b0e467fb8824780') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr --disable-dri +  make +  make DESTDIR="${pkgdir}" install +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-i128/PKGBUILD b/abs/not_built/core/xf86-video-i128/PKGBUILD new file mode 100644 index 0000000..4f51b9d --- /dev/null +++ b/abs/not_built/core/xf86-video-i128/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 88633 2010-08-24 10:05:56Z jgc $ +# Maintainer:Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-i128 +pkgver=1.3.4 +pkgrel=1 +pkgdesc="X.org Number 9 I128 video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc') +makedepends=('xorg-server-devel') +conflicts=('xorg-server<1.9.0') +groups=('xorg-video-drivers') +options=('!libtool') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('d5f755dc964eaa067b4efcafafd00814a60df775') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-i740/LICENSE b/abs/not_built/core/xf86-video-i740/LICENSE new file mode 100644 index 0000000..1aace06 --- /dev/null +++ b/abs/not_built/core/xf86-video-i740/LICENSE @@ -0,0 +1,47 @@ +This package was downloaded from +http://xorg.freedesktop.org/releases/individual/driver/ + +Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sub license, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +Copyright 2001 by Patrick LERDA +Portions Copyright by Stephen Blackheath + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of Patrick LERDA not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission.  Patrick LERDA makes no representations +about the suitability of this software for any purpose.  It is provided +"as is" without express or implied warranty. + +PATRICK LERDA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL PATRICK LERDA BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. diff --git a/abs/not_built/core/xf86-video-i740/PKGBUILD b/abs/not_built/core/xf86-video-i740/PKGBUILD new file mode 100644 index 0000000..8e9be2d --- /dev/null +++ b/abs/not_built/core/xf86-video-i740/PKGBUILD @@ -0,0 +1,28 @@ +# $Id: PKGBUILD 88636 2010-08-24 10:10:42Z jgc $ +#Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-i740 +pkgver=1.3.2 +pkgrel=4 +pkgdesc="X.org Intel i740 video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc') +makedepends=('xorg-server-devel') +conflicts=('xorg-server<1.9.0') +groups=('xorg-video-drivers') +options=('!libtool') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 +        LICENSE) +md5sums=('4ac1318788f62159965f15131c869e7a' +         '23a6d421e7529393969df8b65e88d607') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-mach64/LICENSE b/abs/not_built/core/xf86-video-mach64/LICENSE new file mode 100644 index 0000000..1aa2df6 --- /dev/null +++ b/abs/not_built/core/xf86-video-mach64/LICENSE @@ -0,0 +1,209 @@ +Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting documentation, and +that the name of Marc Aurele La France not be used in advertising or +publicity pertaining to distribution of the software without specific, +written prior permission.  Marc Aurele La France makes no representations +about the suitability of this software for any purpose.  It is provided +"as-is" without express or implied warranty. + +MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.  IN NO +EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + +Copyright 2000 Gareth Hughes +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL +GARETH HUGHES BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +(c) 2004 Adam Jackson.  Standard MIT license applies. + +Copyright 1999-2000 Precision Insight, Inc., Cedar Park, Texas. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL +PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario, +Precision Insight, Inc., Cedar Park, Texas, and +VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation on the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, +and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NON-INFRINGEMENT.  IN NO EVENT SHALL ATI, PRECISION INSIGHT, VA LINUX +SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Copyright 2003 Alex Deucher. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation on the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, +and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NON-INFRINGEMENT.  IN NO EVENT SHALL ALEX DEUCHER, OR ANY OTHER +CONTRIBUTORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +/* + * Copyright 2000 Gareth Hughes + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL + * GARETH HUGHES BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * Authors: + *	Gareth Hughes <gareth@valinux.com> + *	Leif Delgass <ldelgass@retinalburn.net> + *	José Fonseca <j_r_fonseca@yahoo.co.uk> + */ + +/* + * Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., + *                                                Cedar Park, Texas. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * on the rights to use, copy, modify, merge, publish, distribute, sub + * license, and/or sell copies of the Software, and to permit persons to whom + * the Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL + * ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + * USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * Authors: + *   Gareth Hughes <gareth@valinux.com> + *   Leif Delgass <ldelgass@retinalburn.net> + *   Jose Fonseca <j_r_fonseca@yahoo.co.uk> + */ + +/* + * Mesa 3-D graphics library + * Version:  3.5 + * + * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * Authors: + *    Keith Whitwell <keithw@valinux.com> + * + * Modified for mach64 by: + *    Leif Delgass <ldelgass@retinalburn.net> + *    José Fonseca <j_r_fonseca@yahoo.co.uk> + */ diff --git a/abs/not_built/core/xf86-video-mach64/PKGBUILD b/abs/not_built/core/xf86-video-mach64/PKGBUILD new file mode 100644 index 0000000..88b2c34 --- /dev/null +++ b/abs/not_built/core/xf86-video-mach64/PKGBUILD @@ -0,0 +1,27 @@ +# $Id: PKGBUILD 88640 2010-08-24 10:35:32Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +pkgname=xf86-video-mach64 +pkgver=6.8.2 +pkgrel=4 +pkgdesc="X.org mach64 video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc' 'mach64-dri') +makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa') +conflicts=('xorg-server<1.9.0') +groups=('xorg-video-drivers') +options=('!libtool') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 +       LICENSE) +md5sums=('6c0522b2b72a0a47c48d718443616651' +         '901824dae8053c63ef9d313cdaa129a0') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr --enable-dri +  make +  make DESTDIR="${pkgdir}" install +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-mga/PKGBUILD b/abs/not_built/core/xf86-video-mga/PKGBUILD new file mode 100644 index 0000000..0170f6c --- /dev/null +++ b/abs/not_built/core/xf86-video-mga/PKGBUILD @@ -0,0 +1,27 @@ +# $Id: PKGBUILD 88643 2010-08-24 10:39:07Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-mga +pkgver=1.4.13 +pkgrel=1 +pkgdesc="X.org mga video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc' 'mga-dri') +makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa') +conflicts=('xorg-server<1.9.0') +options=('!libtool' 'force') +groups=('xorg-video-drivers') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('55aa185cf381def4b5905c8b93694b8dfbd5c378') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr --enable-dri +  make +  make DESTDIR="${pkgdir}" install + +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-neomagic/PKGBUILD b/abs/not_built/core/xf86-video-neomagic/PKGBUILD new file mode 100644 index 0000000..5d5bd1f --- /dev/null +++ b/abs/not_built/core/xf86-video-neomagic/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 88646 2010-08-24 12:07:27Z jgc $ +#Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-neomagic +pkgver=1.2.5 +pkgrel=2 +pkgdesc="X.org neomagic video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc') +makedepends=('xorg-server-devel' 'xf86dgaproto') +conflicts=('xorg-server<1.9.0') +groups=('xorg-video-drivers') +options=('!libtool') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('02c994e2eae191b50a8cd556e5b52d82725073b3') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install +  install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-nouveau/PKGBUILD b/abs/not_built/core/xf86-video-nouveau/PKGBUILD new file mode 100644 index 0000000..fb4c542 --- /dev/null +++ b/abs/not_built/core/xf86-video-nouveau/PKGBUILD @@ -0,0 +1,41 @@ +# $Id: PKGBUILD 88739 2010-08-24 17:39:17Z jgc $ +# Maintainer: Andreas Radke <andyrtr@archlinux.org> +# Contributor: buddabrod <buddabrod@gmail.com> + +pkgname=xf86-video-nouveau +_gitdate=20100819 +pkgver=0.0.16_git${_gitdate} # see configure.ac +pkgrel=1 +pkgdesc="Open Source 3D acceleration driver for nVidia cards (experimental)" +arch=('i686' 'x86_64') +url="http://nouveau.freedesktop.org/wiki/" +license=('GPL') #and MIT, not yet a license file, see http://nouveau.freedesktop.org/wiki/FAQ#head-09f75d03eb30011c754038a3893119a70745de4e +depends=('libdrm' 'udev') +optdepends=('nouveau-dri:	highly experimental gallium3d features') +makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto') +conflicts=('xorg-server<1.9.0') +options=('!libtool') +install=${pkgname}.install +source=(ftp://ftp.archlinux.org/other/$pkgname/xf86-video-nouveau-${_gitdate}.tar.bz2) +md5sums=('31672103e8275bb00df061f362c7f8bb') + +# source PKGBUILD && mksource +mksource() { +	mkdir /tmp/${pkgname}-${_gitdate} +	pushd /tmp/${pkgname}-${_gitdate} +	git clone -v --depth 1 git://anongit.freedesktop.org/nouveau/xf86-video-nouveau +	cd xf86-video-nouveau +	git archive --prefix=xf86-video-nouveau-${_gitdate}/ --format=tar HEAD | bzip2 > /tmp/${pkgname}-${_gitdate}/${pkgname}-${_gitdate}.tar.bz2 +	popd +} + +build() { +  cd ${srcdir}/xf86-video-nouveau-${_gitdate} +  ./autogen.sh --prefix=/usr +  make +} + +package() { +  cd ${srcdir}/xf86-video-nouveau-${_gitdate} +  make DESTDIR=${pkgdir} install +} diff --git a/abs/not_built/core/xf86-video-nouveau/xf86-video-nouveau.install b/abs/not_built/core/xf86-video-nouveau/xf86-video-nouveau.install new file mode 100644 index 0000000..027154f --- /dev/null +++ b/abs/not_built/core/xf86-video-nouveau/xf86-video-nouveau.install @@ -0,0 +1,16 @@ +post_install () { +   cat << _EOF +  ==> make sure you use KernelModeSetting (KMS) +  ==> see http://wiki.archlinux.org/index.php/Nouveau#KMS for more +_EOF +} + +post_upgrade() { +  if [ "`vercmp $2 0.0.15_git20100117-1`" -lt 0 ]; then +    cat << _EOF +  ==> ATTENTION: Usermode support has been dropped +  ==> make sure you use KernelModeSetting (KMS) +  ==> see http://wiki.archlinux.org/index.php/Nouveau#KMS for more +_EOF + fi +} diff --git a/abs/not_built/core/xf86-video-nv/PKGBUILD b/abs/not_built/core/xf86-video-nv/PKGBUILD new file mode 100644 index 0000000..d9f6bfd --- /dev/null +++ b/abs/not_built/core/xf86-video-nv/PKGBUILD @@ -0,0 +1,27 @@ +# $Id: PKGBUILD 88649 2010-08-24 12:12:40Z jgc $ +# Maintainer:Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-nv +pkgver=2.1.18 +pkgrel=1 +pkgdesc="X.org nv video driver" +arch=(i686 x86_64) +license=('custom') +url="http://xorg.freedesktop.org/" +depends=('glibc') +makedepends=('xorg-server-devel') +conflicts=('xorg-server<1.9.0') +options=('!libtool') +groups=('xorg-video-drivers') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('d35b2fa5a26a507a9cc95b69243d9fd0c0f32aa2') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install + +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-openchrome/LICENSE.txt b/abs/not_built/core/xf86-video-openchrome/LICENSE.txt new file mode 100644 index 0000000..dff1dc3 --- /dev/null +++ b/abs/not_built/core/xf86-video-openchrome/LICENSE.txt @@ -0,0 +1,26 @@ +/* + * Copyright 2005-2007 The Openchrome Project  [openchrome.org] + * Copyright 2004-2006 Luc Verhaegen. + * Copyright 2004-2005 The Unichrome Project  [unichrome.sf.net] + * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved. + * Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sub license, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ diff --git a/abs/not_built/core/xf86-video-openchrome/PKGBUILD b/abs/not_built/core/xf86-video-openchrome/PKGBUILD new file mode 100644 index 0000000..7d009a9 --- /dev/null +++ b/abs/not_built/core/xf86-video-openchrome/PKGBUILD @@ -0,0 +1,35 @@ +# $Id: PKGBUILD 88694 2010-08-24 13:35:43Z jgc $ +# Contributor: Paul Mattal <paul@mattal.com> +# Maintainer: Juergen Hoetzel <juergen@hoetzel.info> + +pkgname=xf86-video-openchrome +pkgver=0.2.904 +pkgrel=4 +pkgdesc="X.Org Openchrome drivers" +arch=(i686 x86_64) +license=('custom') +url="http://www.openchrome.org" +depends=('libdrm' 'libxvmc' 'unichrome-dri') +makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa' 'libxvmc') +replaces=('openchrome' 'xf86-video-via') +options=('!libtool' 'force' '!makeflags') +conflicts=('xf86-video-via' 'xf86-video-unichrome' 'openchrome' 'xorg-server<1.9.0') +source=(http://xorg.freedesktop.org/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 +        drm_stdint.patch +        svn-r839.patch +        LICENSE.txt) +md5sums=('f2481d98ef54febf5bffbb88a2a2426d' +         'bc516400ffc3df5d0dfe604f6245dd32' +         '5aed4aa44dd5a6d3e2da9baad73ac0ab' +         'addb3cf2671f4cf7e91156952de1627f') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  patch -Np1 -i "${srcdir}/svn-r839.patch" +  patch -Np0 -i "${srcdir}/drm_stdint.patch" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 "${srcdir}/LICENSE.txt" "${pkgdir}/usr/share/licenses/${pkgname}/COPYING" +} diff --git a/abs/not_built/core/xf86-video-openchrome/drm_stdint.patch b/abs/not_built/core/xf86-video-openchrome/drm_stdint.patch new file mode 100644 index 0000000..226a015 --- /dev/null +++ b/abs/not_built/core/xf86-video-openchrome/drm_stdint.patch @@ -0,0 +1,10 @@ +--- src/via_xvmc.h.orig	2010-03-07 01:46:34.000000000 +0100 ++++ src/via_xvmc.h	2010-03-07 01:46:45.000000000 +0100 +@@ -26,6 +26,7 @@ + #ifndef _VIA_XVMC_H + #define _VIA_XVMC_H 1 +  ++#include <stdint.h> + #include "via_drm.h" +  + /* diff --git a/abs/not_built/core/xf86-video-openchrome/svn-r839.patch b/abs/not_built/core/xf86-video-openchrome/svn-r839.patch new file mode 100644 index 0000000..8e5f056 --- /dev/null +++ b/abs/not_built/core/xf86-video-openchrome/svn-r839.patch @@ -0,0 +1,1447 @@ +diff -ruN xf86-video-openchrome-0.2.904/ChangeLog ../openchrome/xf86-video-openchrome-0.2.904/ChangeLog +--- xf86-video-openchrome-0.2.904/ChangeLog	2009-10-03 22:48:55.000000000 +0200 ++++ ../openchrome/xf86-video-openchrome-0.2.904/ChangeLog	2010-03-07 01:09:00.000000000 +0100 +@@ -1,3 +1,52 @@ ++2010-02-10  Bartosz Kosiorek  <gang65@poczta.onet.pl> ++ ++	Fix bug with suspend and VT switch on VX800 and 64bit systems ++ ++	* src/via_driver.h: ++	* src/via_video.c: (viaResetVideo), (viaSaveVideo), ++	(viaRestoreVideo), (viaExitVideo): ++	* src/via_video.h: ++ ++2010-01-24  Bartosz Kosiorek  <gang65@poczta.onet.pl> ++ ++	Fix starting address restore and save (initial 64-bit support) ++ ++	* src/via_crtc.c: (ViaFirstCRTCSetMode), ++	(ViaFirstCRTCSetStartingAddress): ++	* src/via_dri.c: (VIADRIAgpInit): ++	* src/via_driver.c: (VIASave), (VIARestore): ++	* src/via_driver.h: ++ ++2009-12-04  Bartosz Kosiorek  <gang65@poczta.onet.pl> ++ ++	Enable new mode switch for VM800 chipsets ++ ++	* src/via_driver.c: (VIASetupDefaultOptions): ++ ++2009-11-21  Bartosz Kosiorek  <gang65@poczta.onet.pl> ++ ++	Add option to enable unaccelerated RandR rotation ("SWRandR"). ++        The accelerated option "HWRandR" is currently not implemented. ++ ++	* src/openchrome.man: ++	* src/via_driver.c: (VIAPreInit): ++ ++2009-11-20  Bartosz Kosiorek  <gang65@poczta.onet.pl> ++ ++	Enabled new mode switch for PM800 chipset,  ++        to resolve many bugs with resolution detecting and changing ++        (eg. switching to console) ++ ++	* src/via_driver.c: (VIASetupDefaultOptions), (VIAPreInit): ++ ++2009-11-07  Bartosz Kosiorek  <gang65@poczta.onet.pl> ++ ++	Add more comments to ViaSetSecondaryFIFO, add panel scale support for  ++ 	CLE266 and KM400, fix bug with malloc. ++ ++	* src/via_bandwidth.c: (ViaSetSecondaryFIFO): ++	* src/via_panel.c: (ViaPanelScale), (ViaPanelGetNativeDisplayMode): ++ + 2009-09-26  Bartosz Kosiorek  <gang65@poczta.onet.pl> +  + 	Save/restore ECK Clock Synthesizer +diff -ruN xf86-video-openchrome-0.2.904/man/openchrome.man ../openchrome/xf86-video-openchrome-0.2.904/man/openchrome.man +--- xf86-video-openchrome-0.2.904/man/openchrome.man	2009-10-09 01:12:41.000000000 +0200 ++++ ../openchrome/xf86-video-openchrome-0.2.904/man/openchrome.man	2010-03-07 01:09:00.000000000 +0100 +@@ -59,7 +59,7 @@ + .BI "Option \*qAccelMethod\*q  \*q" string \*q + The driver supports "XAA" and "EXA" acceleration methods.  The default + method is XAA, since EXA is still experimental.  Contrary to XAA, EXA +-implements acceleration for screen uploads and downlads (if DRI is ++implements acceleration for screen uploads and downloads (if DRI is + enabled) and for the Render/Composite extension. + .TP + .BI "Option \*qActiveDevice\*q  \*q" string \*q +@@ -81,7 +81,7 @@ + no room for DRI textures, they will be allocated from the DRI part of + VRAM (see the option "MaxDRIMem").  The default amount of AGP is + 32768 kB.  Note that the AGP aperture set in the BIOS must be able +-to accomodate the amount of AGP memory specified here.  Otherwise no ++to accommodate the amount of AGP memory specified here.  Otherwise no + AGP memory will be available.  It is safe to set a very large AGP + aperture in the BIOS. + .TP +@@ -159,9 +159,16 @@ + system.  The sizes 640x480, 800x600, 1024x768, 1280x1024, and 1400x1050 + are supported. + .TP ++.BI "Option \*qRotationType\*q  \*q" string \*q ++Enabled rotation by using RandR. The driver only support unaccelerated ++RandR rotations "SWRandR". Hardware rotations "HWRandR" is currently  ++unimplemented. ++.TP + .BI "Option \*qRotate\*q  \*q" string \*q + Rotates the display either clockwise ("CW"), counterclockwise ("CCW") and +-upside-down ("UD"). Rotation is only supported unaccelerated. ++upside-down ("UD"). Rotation is only supported unaccelerated.  Adding  ++option "Rotate", enables RandR rotation feature.  The RandR allows  ++clients to dynamically change X screens. + .TP + .BI "Option \*qShadowFB\*q  \*q" boolean \*q + Enables the use of a shadow frame buffer.  This is required when +diff -ruN xf86-video-openchrome-0.2.904/src/svnversion.h ../openchrome/xf86-video-openchrome-0.2.904/src/svnversion.h +--- xf86-video-openchrome-0.2.904/src/svnversion.h	2009-10-09 01:19:04.000000000 +0200 ++++ ../openchrome/xf86-video-openchrome-0.2.904/src/svnversion.h	2010-03-07 01:09:15.000000000 +0100 +@@ -1 +1 @@ +-#define BUILDCOMMENT "(openchrome 0.2.904 release)" ++#define BUILDCOMMENT "(development build, at svn revision 839)" +diff -ruN xf86-video-openchrome-0.2.904/src/via_accel.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_accel.c +--- xf86-video-openchrome-0.2.904/src/via_accel.c	2009-10-03 22:48:55.000000000 +0200 ++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_accel.c	2010-03-07 01:09:00.000000000 +0100 +@@ -1210,7 +1210,8 @@ +  +     /* General acceleration flags. */ +     xaaptr->Flags = (PIXMAP_CACHE | +-                     OFFSCREEN_PIXMAPS | LINEAR_FRAMEBUFFER | ++                     OFFSCREEN_PIXMAPS |  ++                     LINEAR_FRAMEBUFFER | +                      MICROSOFT_ZERO_LINE_BIAS | 0); +  +     if (pScrn->bitsPerPixel == 8) +@@ -1228,14 +1229,17 @@ +  +     xaaptr->Sync = viaAccelSync; +  ++    /* ScreenToScreen copies */ +     xaaptr->SetupForScreenToScreenCopy = viaSetupForScreenToScreenCopy; +     xaaptr->SubsequentScreenToScreenCopy = viaSubsequentScreenToScreenCopy; +     xaaptr->ScreenToScreenCopyFlags = NO_PLANEMASK | ROP_NEEDS_SOURCE; +  ++    /* Solid filled rectangles */ +     xaaptr->SetupForSolidFill = viaSetupForSolidFill; +     xaaptr->SubsequentSolidFillRect = viaSubsequentSolidFillRect; +     xaaptr->SolidFillFlags = NO_PLANEMASK | ROP_NEEDS_SOURCE; +  ++    /* Mono 8x8 pattern fills */ +     xaaptr->SetupForMono8x8PatternFill = viaSetupForMono8x8PatternFill; +     xaaptr->SubsequentMono8x8PatternFillRect = +             viaSubsequentMono8x8PatternFillRect; +@@ -1244,6 +1248,7 @@ +                                        HARDWARE_PATTERN_PROGRAMMED_ORIGIN | +                                        BIT_ORDER_IN_BYTE_MSBFIRST | 0); +  ++    /* Color 8x8 pattern fills */ +     xaaptr->SetupForColor8x8PatternFill = viaSetupForColor8x8PatternFill; +     xaaptr->SubsequentColor8x8PatternFillRect = +             viaSubsequentColor8x8PatternFillRect; +@@ -1252,12 +1257,14 @@ +                                         HARDWARE_PATTERN_PROGRAMMED_BITS | +                                         HARDWARE_PATTERN_PROGRAMMED_ORIGIN | 0); +  ++    /* Solid lines */ +     xaaptr->SetupForSolidLine = viaSetupForSolidLine; +     xaaptr->SubsequentSolidTwoPointLine = viaSubsequentSolidTwoPointLine; +     xaaptr->SubsequentSolidHorVertLine = viaSubsequentSolidHorVertLine; +     xaaptr->SolidBresenhamLineErrorTermBits = 14; +     xaaptr->SolidLineFlags = NO_PLANEMASK | ROP_NEEDS_SOURCE; +  ++    /* Dashed line */ +     xaaptr->SetupForDashedLine = viaSetupForDashedLine; +     xaaptr->SubsequentDashedTwoPointLine = viaSubsequentDashedTwoPointLine; +     xaaptr->DashPatternMaxLength = 8; +@@ -1266,35 +1273,42 @@ +                                LINE_PATTERN_POWER_OF_2_ONLY | +                                LINE_PATTERN_MSBFIRST_LSBJUSTIFIED | 0); +  ++    /* CPU to Screen color expansion */ +     xaaptr->ScanlineCPUToScreenColorExpandFillFlags = NO_PLANEMASK | +-            CPU_TRANSFER_PAD_DWORD | +-            SCANLINE_PAD_DWORD | +-            BIT_ORDER_IN_BYTE_MSBFIRST | +-            LEFT_EDGE_CLIPPING | ROP_NEEDS_SOURCE | 0; ++           				 	CPU_TRANSFER_PAD_DWORD | ++						SCANLINE_PAD_DWORD | ++            					BIT_ORDER_IN_BYTE_MSBFIRST | ++            					LEFT_EDGE_CLIPPING |  ++            					ROP_NEEDS_SOURCE | 0; +  +     xaaptr->SetupForScanlineCPUToScreenColorExpandFill = +             viaSetupForCPUToScreenColorExpandFill; +     xaaptr->SubsequentScanlineCPUToScreenColorExpandFill = +             viaSubsequentScanlineCPUToScreenColorExpandFill; +     xaaptr->ColorExpandBase = pVia->BltBase; +-    xaaptr->ColorExpandRange = VIA_MMIO_BLTSIZE; ++    if (pVia->Chipset == VIA_VX800 || pVia->Chipset == VIA_VX855) ++        xaaptr->ColorExpandRange = VIA_MMIO_BLTSIZE; ++    else ++        xaaptr->ColorExpandRange = (64 * 1024); +  ++    /* ImageWrite */ +     xaaptr->ImageWriteFlags = (NO_PLANEMASK | +                                CPU_TRANSFER_PAD_DWORD | +                                SCANLINE_PAD_DWORD | +                                BIT_ORDER_IN_BYTE_MSBFIRST | +-                               LEFT_EDGE_CLIPPING | ROP_NEEDS_SOURCE | 0); ++                               LEFT_EDGE_CLIPPING |  ++			       ROP_NEEDS_SOURCE | 0); +                                // SYNC_AFTER_IMAGE_WRITE | 0); +  +     /* +      * Most Unichromes are much faster using processor-to-framebuffer writes +      * than when using the 2D engine for this. +-     * test with x11perf -shmput500! ++     * test with "x11perf -shmput500" ++     * Example: K8M890 chipset; with GPU=86.3/sec; without GPU=132.0/sec ++     * TODO Check speed for other chipsets +      */ +  +     switch (pVia->Chipset) { +-        case VIA_K8M800: +-        case VIA_K8M890: +         case VIA_P4M900: +         case VIA_VX800: +         case VIA_VX855: +diff -ruN xf86-video-openchrome-0.2.904/src/via_bandwidth.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_bandwidth.c +--- xf86-video-openchrome-0.2.904/src/via_bandwidth.c	2009-10-03 22:48:55.000000000 +0200 ++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_bandwidth.c	2010-03-07 01:09:00.000000000 +0100 +@@ -194,6 +194,7 @@ +             else +                 ViaSeqMask(hwp, 0x22, 0x00, 0x1F);  /* 128/4 = overflow = 0 */ +             break; ++        /* PM800/PM880/CN400 */ +         case VIA_PM800: +             hwp->writeSeq(hwp, 0x17, 0x5F);     /* 95 */ +             ViaSeqMask(hwp, 0x16, 0x20, 0xBF);  /* 32 */ +@@ -204,9 +205,10 @@ +             else +                 ViaSeqMask(hwp, 0x22, 0x1F, 0x1F);  /* 31 */ +             break; ++        /* P4M800Pro/VN800/CN700 */  +         case VIA_VM800: +             hwp->writeSeq(hwp, 0x17, 0x2F); +-            ViaSeqMask(hwp, 0x16, 0x14, 0xBF); ++            ViaSeqMask(hwp, 0x16, 0x14, 0xBF);  /* 80/4    = 20  = 0x14 */ +             ViaSeqMask(hwp, 0x18, 0x08, 0xBF); +  +             if ((mode->HDisplay >= 1400) && (pScrn->bitsPerPixel == 32)) +@@ -215,40 +217,51 @@ +                 ViaSeqMask(hwp, 0x22, 0x00, 0x1F); +             break; +         case VIA_K8M890: +-            hwp->writeSeq(hwp, 0x16, 0x92); +-            hwp->writeSeq(hwp, 0x17, 0xB3); +-            hwp->writeSeq(hwp, 0x18, 0x8A); ++            /* depth location: {SR17,0,7} */ ++            hwp->writeSeq(hwp, 0x17, 0xB3);    /* 360/2-1 = 179 = 0xB3 */ ++            /* Formula (x & 0x3F) | ((x & 0x40) << 1) */ ++            /* threshold location: {SR16,0,5},{SR16,7,7} */ ++            ViaSeqMask(hwp, 0x16, 0x92, 0xBF); /* 328/4   = 82  = 0x52 */ ++            /* high threshold location: {SR18,0,5},{SR18,7,7} */ ++            ViaSeqMask(hwp, 0x18, 0x8A, 0xBF); /* 296/4   = 74  = 0x4A */ ++            /* display queue expire num location: {SR22,0,4}. */ ++            ViaSeqMask(hwp, 0x22, 0x1F, 0x1F); /* 124/4   = 31  = 0x1F */ +             break; +         case VIA_P4M900: +-            ViaSeqMask(hwp, 0x17, 0x2F, 0xFF); +-            ViaSeqMask(hwp, 0x16, 0x13, 0x3F); +-            ViaSeqMask(hwp, 0x16, 0x00, 0x80); +-            ViaSeqMask(hwp, 0x18, 0x13, 0x3F); +-            ViaSeqMask(hwp, 0x18, 0x00, 0x80); ++            /* location: {SR17,0,7} */ ++            hwp->writeSeq(hwp, 0x17, 0x2F);    /* 96/2-1  = 47  = 0x2F */ ++            /* location: {SR16,0,5},{SR16,7,7} */ ++            ViaSeqMask(hwp, 0x16, 0x13, 0xBF); /* 76/4    = 19  = 0x13 */ ++            /* location: {SR18,0,5},{SR18,7,7} */ ++            ViaSeqMask(hwp, 0x18, 0x13, 0xBF); /* 76/4    = 19  = 0x13 */ ++            /* location: {SR22,0,4}. */ ++            ViaSeqMask(hwp, 0x22, 0x08, 0x1F); /* 32/4    = 8   = 0x08 */ +             break; +         case VIA_P4M890: +-            hwp->writeSeq(hwp, 0x16, 0x13); +-            hwp->writeSeq(hwp, 0x17, 0x2F); +-            hwp->writeSeq(hwp, 0x18, 0x53); +-            hwp->writeSeq(hwp, 0x22, 0x10); ++            hwp->writeSeq(hwp, 0x17, 0x2F);      /* 96/2-1  = 47  = 0x2F */ ++            ViaSeqMask(hwp, 0x16, 0x13, 0xBF);   /* 76/4    = 19  = 0x13 */ ++            ViaSeqMask(hwp, 0x18, 0x10, 0xBF);   /* 64/4    = 16  = 0x10 */ ++            ViaSeqMask(hwp, 0x22, 0x08, 0x1F);   /* 32/4    = 8   = 0x08 */ +             break; +         case VIA_CX700: +-            hwp->writeSeq(hwp, 0x16, 0x26); +             hwp->writeSeq(hwp, 0x17, 0x5F); +-            hwp->writeSeq(hwp, 0x18, 0x66); +-            hwp->writeSeq(hwp, 0x22, 0x1F); ++            ViaSeqMask(hwp, 0x16, 0x20, 0xBF);   /* 128/4  = 32  = 0x20 */ ++            ViaSeqMask(hwp, 0x18, 0x20, 0xBF);   /* 128/4  = 32  = 0x20 */ ++            ViaSeqMask(hwp, 0x22, 0x1F, 0x1F);   /* 124/4  = 31  = 0x1F */ +             break; +         case VIA_VX800: +-            hwp->writeSeq(hwp, 0x16, 0x26); /* 152/4   = 38 */ +-            hwp->writeSeq(hwp, 0x17, 0x5F); /* 192/2-1 = 95 */ ++            hwp->writeSeq(hwp, 0x17, 0x5F); /* 192/2-1 = 95   = 0x5F */ ++            hwp->writeSeq(hwp, 0x16, 0x26); /* 152/4   = 38   = 0x26 */ +             hwp->writeSeq(hwp, 0x18, 0x26); /* 152/4   = 38 */  +             hwp->writeSeq(hwp, 0x22, 0x10); /*  64/4   = 16 */ +             break; +         case VIA_VX855: +-              hwp->writeSeq(hwp, 0x16, 0x50); /* 320/4   = 80 */ +-              hwp->writeSeq(hwp, 0x17, 0xC7); /* 400/2-1 = 199 */ +-              hwp->writeSeq(hwp, 0x18, 0x50); /* 320/4   = 80 */ +-              hwp->writeSeq(hwp, 0x22, 0x28); /* 160/4   = 40 */ ++            hwp->writeSeq(hwp, 0x17, 0xC7); /* 400/2-1 = 199  = 0xC7 */ ++            /* TODO Formula for SR16 is: (0x50 & 0x3F) | ((0x50 & 0x40) << 1) = 0x90 */ ++            hwp->writeSeq(hwp, 0x16, 0x50); /* 320/4   = 80   = 0x50 */ ++            hwp->writeSeq(hwp, 0x18, 0x50); /* 320/4   = 80   = 0x50 */ ++            hwp->writeSeq(hwp, 0x22, 0x28); /* 160/4   = 40   = 0x28 */ ++            break; +         default: +             xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "ViaSetPrimaryFIFO: " +                        "Chipset %d not implemented\n", pVia->Chipset); +@@ -371,7 +384,38 @@ +                 ViaCrtcMask(hwp, 0x94, 0x20, 0x7F); +             break; +         case VIA_P4M890: ++            /* depth location: {CR68,4,7},{CR94,7,7},{CR95,7,7} */ ++            ViaCrtcMask(hwp, 0x68, 0xB0, 0xF0); /* 96/8-1 = 11  = 0x0B */ ++            ViaCrtcMask(hwp, 0x94, 0x00, 0x80); ++            ViaCrtcMask(hwp, 0x95, 0x00, 0x80); ++ ++            /* location: {CR68,0,3},{CR95,4,6} */ ++            ViaCrtcMask(hwp, 0x68, 0x03, 0x0F); /* 76/4   = 19  = 0x13 */ ++            ViaCrtcMask(hwp, 0x95, 0x10, 0x70); ++ ++            /* location: {CR92,0,3},{CR95,0,2} */ ++            ViaCrtcMask(hwp, 0x92, 0x00, 0x0F); /* 64/4   = 16  = 0x10 */ ++            ViaCrtcMask(hwp, 0x95, 0x01, 0x07); ++ ++            /* location: {CR94,0,6} */ ++            ViaCrtcMask(hwp, 0x94, 0x08, 0x7F); /* 32/4   = 8   = 0x08 */ ++            break; +         case VIA_K8M890: ++            /* Display Queue Depth, location: {CR68,4,7},{CR94,7,7},{CR95,7,7} */ ++            ViaCrtcMask(hwp, 0x68, 0xC0, 0xF0); /* 360/8-1 = 44  = 0x2C; 0x2C << 4 = 0xC0 */ ++            ViaCrtcMask(hwp, 0x94, 0x00, 0x80); /* 0x2C << 3 = 0x00 */ ++            ViaCrtcMask(hwp, 0x95, 0x80, 0x80); /* 0x2C << 2 = 0x80 */ ++ ++            /* Display Queue Read Threshold 1, location: {CR68,0,3},{CR95,4,6} */ ++            ViaCrtcMask(hwp, 0x68, 0x02, 0x0F); /* 328/4   = 82  = 0x52 */ ++            ViaCrtcMask(hwp, 0x95, 0x50, 0x70); ++ ++            /* location: {CR92,0,3},{CR95,0,2} */ ++            ViaCrtcMask(hwp, 0x92, 0x0A, 0x0F); /* 296/4   = 74  = 0x4A */ ++            ViaCrtcMask(hwp, 0x95, 0x04, 0x07); /* 0x4A >> 4 = 0x04 */ ++ ++            /* Display Expire Number Bits, location: {CR94,0,6} */ ++            ViaCrtcMask(hwp, 0x94, 0x1F, 0x7F); /* 124/4   = 31  = 0x1F */ +             break; +         case VIA_P4M900: +             ViaCrtcMask(hwp, 0x68, 0xB0, 0xF0); +diff -ruN xf86-video-openchrome-0.2.904/src/via_crtc.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_crtc.c +--- xf86-video-openchrome-0.2.904/src/via_crtc.c	2009-10-03 22:48:55.000000000 +0200 ++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_crtc.c	2010-03-07 01:09:00.000000000 +0100 +@@ -234,8 +234,8 @@ +     /* Primary starting address -> 0x00, adjustframe does the rest */ +     hwp->writeCrtc(hwp, 0x0C, 0x00); +     hwp->writeCrtc(hwp, 0x0D, 0x00); +-    hwp->writeCrtc(hwp, 0x34, 0x00); +     ViaCrtcMask(hwp, 0x48, 0x00, 0x03); /* is this even possible on CLE266A ? */ ++    hwp->writeCrtc(hwp, 0x34, 0x00); +  +     /* vertical sync start : 2047 */ +     temp = mode->CrtcVSyncStart; +@@ -331,15 +331,20 @@ +     CARD32 Base; +     CARD32 tmp; +  ++    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "ViaFirstCRTCSetStartingAddress\n")); ++ +     Base = (y * pScrn->displayWidth + x) * (pScrn->bitsPerPixel / 8); +     Base = Base >> 1; +  +     hwp->writeCrtc(hwp, 0x0C, (Base & 0xFF00) >> 8); +     hwp->writeCrtc(hwp, 0x0D, Base & 0xFF); +-    hwp->writeCrtc(hwp, 0x34, (Base & 0xFF0000) >> 16); +- ++    /* FIXME The proper starting address for CR48 is 0x1F - Bits[28:24] */ +     if (!(pVia->Chipset == VIA_CLE266 && CLE266_REV_IS_AX(pVia->ChipRev))) +         ViaCrtcMask(hwp, 0x48, Base >> 24, 0x0F); ++    /* CR34 are fire bits. Must be writed after CR0C CR0D CR48.  */ ++    hwp->writeCrtc(hwp, 0x34, (Base & 0xFF0000) >> 16); ++ ++ + } +  + void +diff -ruN xf86-video-openchrome-0.2.904/src/via_cursor.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_cursor.c +--- xf86-video-openchrome-0.2.904/src/via_cursor.c	2009-10-03 22:48:55.000000000 +0200 ++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_cursor.c	2010-03-07 01:09:00.000000000 +0100 +@@ -145,9 +145,12 @@ +     infoPtr->ShowCursor = viaShowCursor; +     infoPtr->UseHWCursor = viaUseHWCursor; +  ++    /* ARGB Cursor init */ +     infoPtr->UseHWCursorARGB = viaUseHWCursorARGB; +-	if (pVia->CursorARGBSupported) ++    if (pVia->CursorARGBSupported) { ++        DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "HWCursor ARGB enabled\n")); +     	infoPtr->LoadCursorARGB = viaLoadCursorARGB; ++    } +  +     /* Set cursor location in frame buffer. */ +     VIASETREG(VIA_REG_CURSOR_MODE, pVia->cursorOffset); +@@ -284,7 +287,7 @@ + } +  + /* +- * ARGB Cursor ++ * display the current cursor +  */ +  + void +@@ -319,13 +322,19 @@ +             */ +  +             /* Duoview */ +-	    if (pVia->CursorPipe) ++	    if (pVia->CursorPipe) { ++                /* Mono Cursor Display Path [bit31]: Secondary */ ++                /* FIXME For CLE266 nad KM400 try to enable 32x32 cursor size [bit1] */ +                 VIASETREG(VIA_REG_ALPHA_CONTROL, 0xF6000005); +-            else ++            } else { ++                /* Mono Cursor Display Path [bit31]: Primary */ +                 VIASETREG(VIA_REG_ALPHA_CONTROL, 0x76000005); ++            } +     } + } +  ++ ++/* hide the current cursor */ + void + viaHideCursor(ScrnInfoPtr pScrn) + { +@@ -350,10 +359,16 @@ +          +         default: +              temp = VIAGETREG(VIA_REG_ALPHA_CONTROL); ++             /* Hardware cursor disable [bit0] */ +              VIASETREG(VIA_REG_ALPHA_CONTROL, temp & 0xFFFFFFFA); +     } + } +  ++/* ++    Set the cursor position to (x,y).  X and/or y may be negative ++    indicating that the cursor image is partially offscreen on ++    the left and/or top edges of the screen. ++*/ + static void + viaSetCursorPosition(ScrnInfoPtr pScrn, int x, int y) + { +@@ -409,6 +424,15 @@ +             && pCurs->bits->height <= pVia->CursorMaxHeight); + } +  ++/* ++    If the driver is unable to use a hardware cursor for reasons ++    other than the cursor being larger than the maximum specified ++    in the MaxWidth or MaxHeight field below, it can supply the ++    UseHWCursor function.  If UseHWCursor is provided by the driver, ++    it will be called whenever the cursor shape changes or the video ++    mode changes.  This is useful for when the hardware cursor cannot ++    be used in interlaced or doublescan modes. ++*/ + static Bool + viaUseHWCursor(ScreenPtr pScreen, CursorPtr pCurs) + { +@@ -423,8 +447,11 @@ +             && pCurs->bits->height <= pVia->CursorMaxHeight); + } +  ++/* ++    Load Mono Cursor Image  ++*/ + static void +-viaLoadCursorImage(ScrnInfoPtr pScrn, unsigned char *s) ++viaLoadCursorImage(ScrnInfoPtr pScrn, unsigned char *src) + { +     VIAPtr pVia = VIAPTR(pScrn); +     CARD32 temp; +@@ -439,7 +466,7 @@ +     if (pVia->CursorARGBSupported) { + #define ARGB_PER_CHUNK	(8 * sizeof (chunk) / 2) + 		for (i = 0; i < (pVia->CursorMaxWidth * pVia->CursorMaxHeight / ARGB_PER_CHUNK); i++) { +-		    chunk = *s++; ++		    chunk = *src++; + 		    for (j = 0; j < ARGB_PER_CHUNK; j++, chunk >>= 2) + 			*dst++ = mono_cursor_color[chunk & 3]; + 		} +@@ -447,7 +474,7 @@ + 		pVia->CursorFG = mono_cursor_color[3]; + 		pVia->CursorBG = mono_cursor_color[2]; +     } else { +-	memcpy(dst, (CARD8*)s, pVia->CursorSize); ++	memcpy(dst, (CARD8*)src, pVia->CursorSize); +     } +     switch(pVia->Chipset) { +         case VIA_CX700: +@@ -471,11 +498,17 @@ +     } + } +  ++/* ++    Set the cursor foreground and background colors.  In 8bpp, fg and ++    bg are indicies into the current colormap unless the  ++    HARDWARE_CURSOR_TRUECOLOR_AT_8BPP flag is set.  In that case ++    and in all other bpps the fg and bg are in 8-8-8 RGB format. ++*/ ++ + static void + viaSetCursorColors(ScrnInfoPtr pScrn, int bg, int fg) + { +     VIAPtr pVia = VIAPTR(pScrn); +-    CARD32 control = pVia->CursorRegControl; +     CARD32 pixel; +     CARD32 temp; +     CARD32 *dst; +@@ -487,12 +520,10 @@ +     fg |= 0xff000000; +     bg |= 0xff000000; +  ++    /* Don't recolour the image if we don't have to. */ +     if (fg == pVia->CursorFG && bg == pVia->CursorBG) + 	return; +  +-    temp = VIAGETREG(control); +-    VIASETREG(control, temp & 0xFFFFFFFE); +- +     dst = (CARD32*)pVia->cursorMap; +     for (i = 0; i < pVia->CursorMaxWidth * pVia->CursorMaxHeight; i++, dst++) + 	if ((pixel = *dst)) +@@ -517,7 +548,8 @@ +              } +              break;         +         default: +-             VIASETREG(control, temp); ++             temp = VIAGETREG(VIA_REG_ALPHA_CONTROL); ++             VIASETREG(VIA_REG_ALPHA_CONTROL, temp & 0xFFFFFFFE); +     } + } +  +diff -ruN xf86-video-openchrome-0.2.904/src/via_dri.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_dri.c +--- xf86-video-openchrome-0.2.904/src/via_dri.c	2009-10-03 22:48:55.000000000 +0200 ++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_dri.c	2010-03-07 01:09:00.000000000 +0100 +@@ -267,6 +267,11 @@ +     pVIADRI = pDRIInfo->devPrivate; +     pVia->agpSize = 0; +  ++/* For AMD64 */ ++#ifdef __x86_64__ ++    return FALSE; ++#endif ++ +     if (drmAgpAcquire(pVia->drmFD) < 0) { +         xf86DrvMsg(pScreen->myNum, X_ERROR, "[drm] drmAgpAcquire failed %d\n", +                    errno); +diff -ruN xf86-video-openchrome-0.2.904/src/via_driver.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_driver.c +--- xf86-video-openchrome-0.2.904/src/via_driver.c	2009-10-09 00:46:15.000000000 +0200 ++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_driver.c	2010-03-07 01:09:00.000000000 +0100 +@@ -178,8 +178,8 @@ +     {VIA_P4M900,   "P4M900/VN896/CN896"}, +     {VIA_CX700,    "CX700/VX700"}, +     {VIA_P4M890,   "P4M890"}, +-    {VIA_VX800,    "VX800"}, +-    {VIA_VX855,    "VX855"}, ++    {VIA_VX800,    "VX800/VX820"}, ++    {VIA_VX855,    "VX855/VX875"}, +     {-1,            NULL } + }; +  +@@ -215,6 +215,7 @@ +     OPTION_EXA_SCRATCH_SIZE, +     OPTION_SWCURSOR, +     OPTION_SHADOW_FB, ++    OPTION_ROTATION_TYPE, +     OPTION_ROTATE, +     OPTION_VIDEORAM, +     OPTION_ACTIVEDEVICE, +@@ -253,6 +254,7 @@ +     {OPTION_EXA_SCRATCH_SIZE,    "ExaScratchSize",   OPTV_INTEGER, {0}, FALSE}, +     {OPTION_SWCURSOR,            "SWCursor",         OPTV_BOOLEAN, {0}, FALSE}, +     {OPTION_SHADOW_FB,           "ShadowFB",         OPTV_BOOLEAN, {0}, FALSE}, ++    {OPTION_ROTATION_TYPE,       "RotationType",     OPTV_ANYSTR,  {0}, FALSE}, +     {OPTION_ROTATE,              "Rotate",           OPTV_ANYSTR,  {0}, FALSE}, +     {OPTION_VIDEORAM,            "VideoRAM",         OPTV_INTEGER, {0}, FALSE}, +     {OPTION_ACTIVEDEVICE,        "ActiveDevice",     OPTV_ANYSTR,  {0}, FALSE}, +@@ -307,6 +309,7 @@ + { +     static Bool setupDone = FALSE; +  ++    /* Only be loaded once */ +     if (!setupDone) { +         setupDone = TRUE; +         xf86AddDriver(&VIA, module, +@@ -339,6 +342,7 @@ +     if (pScrn->driverPrivate) +         return TRUE; +  ++    /* allocate VIARec */ +     pScrn->driverPrivate = xnfcalloc(sizeof(VIARec), 1); +     VIAPtr pVia = ((VIARec *) (pScrn->driverPrivate)); +  +@@ -455,7 +459,6 @@ + { +     ScrnInfoPtr scrn = NULL; +     EntityInfoPtr entity; +-    DevUnion *private; +  +     scrn = xf86ConfigPciEntity(scrn, 0, entity_num, VIAPciChipsets, +                                NULL, NULL, NULL, NULL, NULL); +@@ -652,6 +655,12 @@ +     vbeInfoPtr pVbe; +  +     if (xf86LoadSubModule(pScrn, "vbe")) { ++        /* FIXME This line should be replaced to: ++ ++           pVbe = VBEExtendedInit(NULL, index, 0); ++ ++           for XF86 version > 4.2.99 ++        */ +         pVbe = VBEInit(NULL, index); +         ConfiguredMonitor = vbeDoEDID(pVbe, NULL); +         vbeFree(pVbe); +@@ -664,7 +673,7 @@ +     VIAPtr pVia = VIAPTR(pScrn); +     VIABIOSInfoPtr pBIOSInfo = pVia->pBIOSInfo; +  +-    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIASetupDefaultOptions\n")); ++    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIASetupDefaultOptions - Setting up default chipset options.\n")); +  +     pVia->shadowFB = FALSE; +     pVia->NoAccel = FALSE; +@@ -688,6 +697,9 @@ + #ifdef HAVE_DEBUG +     pVia->PrintVGARegs = FALSE; + #endif ++ ++    /* Disable vertical interpolation because the size of */ ++    /* line buffer (limited to 800) is too small to do interpolation. */ +     pVia->swov.maxWInterp = 800; +     pVia->swov.maxHInterp = 600; +     pVia->useLegacyVBE = TRUE; +@@ -713,11 +725,14 @@ +             pVia->UseLegacyModeSwitch = TRUE; +             break; +         case VIA_PM800: ++            /* Use new mode switch to resolve many resolution and display bugs (switch to console) */ ++            /* FIXME The video playing (XV) is not working correctly after turn on new mode switch */ +             pVia->VideoEngine = VIDEO_ENGINE_CME; +-            pVia->UseLegacyModeSwitch = TRUE; +             break; +         case VIA_VM800: +-            pVia->UseLegacyModeSwitch = TRUE; ++            /* New mode switch resolve bug with gamma set #282 */ ++            /* and with Xv after hibernate #240                */ ++            /* FIXME Add panel support for this chipset        */ +             break; +         case VIA_K8M890: +             pVia->VideoEngine = VIDEO_ENGINE_CME; +@@ -1050,19 +1065,13 @@ +         xf86DrvMsg(pScrn->scrnIndex, from, +                    "Probed amount of VideoRAM = %d kB\n", pScrn->videoRam); +  +-    xf86DrvMsg(pScrn->scrnIndex, X_INFO, +-               "Setting up default chipset options.\n"); +     if (!VIASetupDefaultOptions(pScrn)) { +         VIAFreeRec(pScrn); +         return FALSE; +     } +  +-    xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Reading config file...\n"); +     xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, VIAOptions); +  +-    xf86DrvMsg(pScrn->scrnIndex, X_INFO, +-               "Starting to parse config file options...\n"); +- +     if (xf86GetOptValInteger(VIAOptions, OPTION_VIDEORAM, &pScrn->videoRam)) +         xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, +                    "Setting amount of VideoRAM to %d kB\n", pScrn->videoRam); +@@ -1100,6 +1109,31 @@ +     } +  +     /* When rotating, switch shadow framebuffer on and acceleration off. */ ++    if ((s = xf86GetOptValString(VIAOptions, OPTION_ROTATION_TYPE))) { ++        if (!xf86NameCmp(s, "SWRandR")) { ++            pVia->shadowFB = TRUE; ++            pVia->NoAccel = TRUE; ++            pVia->RandRRotation = TRUE; ++            pVia->rotate = RR_Rotate_0; ++            xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Rotating screen " ++                       "RandR enabled, acceleration disabled\n"); ++        } else if (!xf86NameCmp(s, "HWRandR")) { ++            pVia->shadowFB = TRUE; ++            pVia->NoAccel = TRUE; ++            pVia->RandRRotation = TRUE; ++            pVia->rotate = RR_Rotate_0; ++            xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Hardware accelerated " ++                       "rotating screen is not implemented. Using SW RandR.\n"); ++        } else { ++            xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "\"%s\" is not a valid" ++                       "value for Option \"RotationType\".\n", s); ++            xf86DrvMsg(pScrn->scrnIndex, X_INFO, ++                       "Valid options are \"SWRandR\" and \"HWRandR\".\n"); ++        } ++    } ++ ++ ++    /* When rotating, switch shadow framebuffer on and acceleration off. */ +     if ((s = xf86GetOptValString(VIAOptions, OPTION_ROTATE))) { +         if (!xf86NameCmp(s, "CW")) { +             pVia->shadowFB = TRUE; +@@ -1498,6 +1532,7 @@ +         } +     } +  ++    /* Initialize the colormap */ +     Gamma zeros = { 0.0, 0.0, 0.0 }; +     if (!xf86SetGamma(pScrn, zeros)) { +         VIAFreeRec(pScrn); +@@ -1561,9 +1596,8 @@ +  +     if (pBIOSInfo->Panel->IsActive && +         ((pVia->Chipset == VIA_K8M800) || +-         (pVia->Chipset == VIA_PM800) || +          (pVia->Chipset == VIA_VM800))) { +-        xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Panel on K8M800, PM800 and " ++        xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Panel on K8M800 and " +                    "VM800 is currently not supported.\n"); +         xf86DrvMsg(pScrn->scrnIndex, X_WARNING, +                    "Using VBE to set modes to work around this.\n"); +@@ -1621,7 +1655,7 @@ +          * +          * CLE266A: primary AdjustFrame can use only 24 bits, so we are limited +          * to 12x11 bits; 4080x2048 (~2:1), 3344x2508 (4:3), or 2896x2896 (1:1). +-         * Test CLE266Cx, KM400, KM400A, K8M800, PM800, CN400 please. ++         * TODO Test CLE266Cx, KM400, KM400A, K8M800, CN400 please. +          * +          * We should be able to limit the memory available for a mode to 32 MB, +          * but xf86ValidateModes (or miScanLineWidth) fails to catch this +@@ -1629,13 +1663,14 @@ +          */ +  +         /* Select valid modes from those available. */ +-        i = xf86ValidateModes(pScrn, pScrn->monitor->Modes,     /* availModes */ +-                              pScrn->display->modes,    /* modeNames */ +-                              clockRanges,      /* list of clock ranges */ ++        i = xf86ValidateModes(pScrn,  ++			      pScrn->monitor->Modes,     /* List of modes available for the monitor */ ++                              pScrn->display->modes,     /* List of mode names that the screen is requesting */ ++                              clockRanges,               /* list of clock ranges */ +                               NULL,     /* list of line pitches */ +                               256,      /* minimum line pitch */ +                               3344,     /* maximum line pitch */ +-                              32 * 8,   /* pitch inc (bits) */ ++                              16 * 8,   /* pitch increment (in bits), we just want 16 bytes alignment */ +                               128,      /* min height */ +                               2508,     /* max height */ +                               pScrn->display->virtualX, /* virtual width */ +@@ -1650,6 +1685,7 @@ +             return FALSE; +         } +  ++        /* This function deletes modes in the modes field of the ScrnInfoRec that have been marked as invalid. */ +         xf86PruneDriverModes(pScrn); +  +         if (i == 0 || pScrn->modes == NULL) { +@@ -1662,9 +1698,17 @@ +     /* Set up screen parameters. */ +     pVia->Bpp = pScrn->bitsPerPixel >> 3; +     pVia->Bpl = pScrn->displayWidth * pVia->Bpp; ++ ++    /* This function fills in the Crtc fields for all the modes in the modes field of the ScrnInfoRec. */ +     xf86SetCrtcForModes(pScrn, INTERLACE_HALVE_V); ++ ++    /* Set the current mode to the first in the list */ +     pScrn->currentMode = pScrn->modes; ++ ++    /* Print the list of modes being used */     +     xf86PrintModes(pScrn); ++ ++    /* Set display resolution */ +     xf86SetDpi(pScrn, 0, 0); +  + #ifdef USE_FB +@@ -1935,7 +1979,9 @@ +         Regs->SR17 = hwp->readSeq(hwp, 0x17); +         Regs->SR18 = hwp->readSeq(hwp, 0x18); +         Regs->SR19 = hwp->readSeq(hwp, 0x19); ++        /* PCI Bus Control */ +         Regs->SR1A = hwp->readSeq(hwp, 0x1A); ++ +         Regs->SR1B = hwp->readSeq(hwp, 0x1B); +         Regs->SR1C = hwp->readSeq(hwp, 0x1C); +         Regs->SR1D = hwp->readSeq(hwp, 0x1D); +@@ -1977,40 +2023,56 @@ +                 Regs->SR4C = hwp->readSeq(hwp, 0x4C); +                 break; +         } +-        DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, +-              "Non-Primary Adapter! saving VGA_SR_MODE only !!\n")); +         DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Crtc...\n")); +  +         Regs->CR13 = hwp->readCrtc(hwp, 0x13); +  +         Regs->CR32 = hwp->readCrtc(hwp, 0x32); +         Regs->CR33 = hwp->readCrtc(hwp, 0x33); +-        Regs->CR34 = hwp->readCrtc(hwp, 0x34); ++ +         Regs->CR35 = hwp->readCrtc(hwp, 0x35); +         Regs->CR36 = hwp->readCrtc(hwp, 0x36); +  ++ ++ ++        /* Starting Address */ ++        /* Start Address High */ ++        Regs->CR0C = hwp->readCrtc(hwp, 0x0C); ++        /* Start Address Low */ ++        Regs->CR0D = hwp->readCrtc(hwp, 0x0D); ++        /* Starting Address Overflow Bits[28:24] */ +         Regs->CR48 = hwp->readCrtc(hwp, 0x48); ++        /* CR34 are fire bits. Must be writed after CR0C CR0D CR48.  */ ++        /* Starting Address Overflow Bits[23:16] */ ++        Regs->CR34 = hwp->readCrtc(hwp, 0x34); ++ ++ +         Regs->CR49 = hwp->readCrtc(hwp, 0x49); +  +         DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "TVSave...\n")); +         if (pBIOSInfo->TVI2CDev) +             ViaTVSave(pScrn); +  +-        /* Save LCD control registers. */ ++        /* Save LCD control registers (from CR 0x50 to 0x93). */ +         for (i = 0; i < 68; i++) +             Regs->CRTCRegs[i] = hwp->readCrtc(hwp, i + 0x50); +  +         if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) { +- +-            Regs->CRA0 = hwp->readCrtc(hwp, 0xA0); +-            Regs->CRA1 = hwp->readCrtc(hwp, 0xA1); +-            Regs->CRA2 = hwp->readCrtc(hwp, 0xA2); +- ++            /* LVDS Channel 2 Function Select 0 / DVI Function Select */  +             Regs->CR97 = hwp->readCrtc(hwp, 0x97); ++            /* LVDS Channel 1 Function Select 0 */ +             Regs->CR99 = hwp->readCrtc(hwp, 0x99); ++            /* Digital Video Port 1 Function Select 0 */ +             Regs->CR9B = hwp->readCrtc(hwp, 0x9B); ++            /* Power Now Control 4 */ +             Regs->CR9F = hwp->readCrtc(hwp, 0x9F); +  ++            /* Horizontal Scaling Initial Value */ ++            Regs->CRA0 = hwp->readCrtc(hwp, 0xA0); ++            /* Vertical Scaling Initial Value */ ++            Regs->CRA1 = hwp->readCrtc(hwp, 0xA1); ++            /* Scaling Enable Bit */ ++            Regs->CRA2 = hwp->readCrtc(hwp, 0xA2); +         } +  +         /* Save TMDS status */ +@@ -2098,11 +2160,19 @@ +     hwp->writeSeq(hwp, 0x45, Regs->SR45); +     hwp->writeSeq(hwp, 0x46, Regs->SR46); +  ++    /* Reset VCK PLL */ ++    hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) | 0x02); /* Set SR40[1] to 1 */ ++    hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) & 0xFD); /* Set SR40[1] to 0 */ ++ +     /* ECK Clock Synthesizer: */ +     hwp->writeSeq(hwp, 0x47, Regs->SR47); +     hwp->writeSeq(hwp, 0x48, Regs->SR48); +     hwp->writeSeq(hwp, 0x49, Regs->SR49); +  ++    /* Reset ECK PLL */ ++    hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) | 0x01); /* Set SR40[0] to 1 */ ++    hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) & 0xFE); /* Set SR40[0] to 0 */ ++ +     switch (pVia->Chipset) { +         case VIA_CLE266: +         case VIA_KM400: +@@ -2112,6 +2182,10 @@ +             hwp->writeSeq(hwp, 0x4A, Regs->SR4A); +             hwp->writeSeq(hwp, 0x4B, Regs->SR4B); +             hwp->writeSeq(hwp, 0x4C, Regs->SR4C); ++ ++            /* Reset LCK PLL */ ++            hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) | 0x04); /* Set SR40[2] to 1 */ ++            hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) & 0xFB); /* Set SR40[2] to 0 */ +             break; +     } +  +@@ -2127,14 +2201,23 @@ +     hwp->writeCrtc(hwp, 0x32, Regs->CR32); +     /* HSYNCH Adjuster */ +     hwp->writeCrtc(hwp, 0x33, Regs->CR33); +-    /* Starting Address Overflow */ +-    hwp->writeCrtc(hwp, 0x34, Regs->CR34); +     /* Extended Overflow */ +     hwp->writeCrtc(hwp, 0x35, Regs->CR35); +     /*Power Management 3 (Monitor Control) */ +     hwp->writeCrtc(hwp, 0x36, Regs->CR36); +  ++    /* Starting Address */ ++    /* Start Address High */ ++    hwp->writeCrtc(hwp, 0x0C, Regs->CR0C); ++    /* Start Address Low */ ++    hwp->writeCrtc(hwp, 0x0D, Regs->CR0D); ++    /* Starting Address Overflow Bits[28:24] */ +     hwp->writeCrtc(hwp, 0x48, Regs->CR48); ++    /* CR34 are fire bits. Must be writed after CR0C CR0D CR48.  */ ++    /* Starting Address Overflow Bits[23:16] */ ++    hwp->writeCrtc(hwp, 0x34, Regs->CR34); ++     ++ +     hwp->writeCrtc(hwp, 0x49, Regs->CR49); +  +     /* Restore LCD control registers. */ +@@ -2453,7 +2536,6 @@ + VIALoadRgbLut(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors, +               VisualPtr pVisual) + { +-    VIAPtr pVia = VIAPTR(pScrn); +     vgaHWPtr hwp = VGAHWPTR(pScrn); +  +     int i, j, index; +@@ -2880,7 +2962,6 @@ + VIAWriteMode(ScrnInfoPtr pScrn, DisplayModePtr mode) + { +     VIAPtr pVia = VIAPTR(pScrn); +-    VIABIOSInfoPtr pBIOSInfo = pVia->pBIOSInfo; +  +     DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIAWriteMode\n")); +  +@@ -3033,9 +3114,7 @@ + VIAAdjustFrame(int scrnIndex, int x, int y, int flags) + { +     ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; +-    vgaHWPtr hwp = VGAHWPTR(pScrn); +     VIAPtr pVia = VIAPTR(pScrn); +-    CARD32 Base; +  +     DEBUG(xf86DrvMsg(scrnIndex, X_INFO, "VIAAdjustFrame %dx%d\n", x, y)); +  +@@ -3173,7 +3252,6 @@ + static void + VIADPMS(ScrnInfoPtr pScrn, int mode, int flags) + { +-    vgaHWPtr hwp = VGAHWPTR(pScrn); +     VIAPtr pVia = VIAPTR(pScrn); +     VIABIOSInfoPtr pBIOSInfo = pVia->pBIOSInfo; +  +diff -ruN xf86-video-openchrome-0.2.904/src/via_driver.h ../openchrome/xf86-video-openchrome-0.2.904/src/via_driver.h +--- xf86-video-openchrome-0.2.904/src/via_driver.h	2009-10-09 01:09:22.000000000 +0200 ++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_driver.h	2010-03-07 01:09:00.000000000 +0100 +@@ -130,6 +130,7 @@ +     CARD8   SR4A, SR4B, SR4C; +  +     /*   extended CRTC registers */ ++    CARD8   CR0C, CR0D; +     CARD8   CR13, CR30, CR31, CR32, CR33, CR34, CR35, CR36; +     CARD8   CR37, CR38, CR39, CR3A, CR40, CR41, CR42, CR43; +     CARD8   CR44, CR45, CR46, CR47, CR48, CR49, CR4A; +@@ -418,10 +419,10 @@ +     Bool                PrintVGARegs; +     Bool                PrintTVRegs; +     Bool                I2CScan; ++#endif /* HAVE_DEBUG */ +      +     Bool                UseLegacyModeSwitch ; +     video_via_regs*     VideoRegs ; +-#endif /* HAVE_DEBUG */ + } VIARec, *VIAPtr; +  + #define VIAPTR(p) ((VIAPtr)((p)->driverPrivate)) +diff -ruN xf86-video-openchrome-0.2.904/src/via_id.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_id.c +--- xf86-video-openchrome-0.2.904/src/via_id.c	2009-10-07 23:30:39.000000000 +0200 ++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_id.c	2010-03-07 01:09:00.000000000 +0100 +@@ -152,6 +152,7 @@ +     {"MSI PM8PM",                             VIA_VM800,   0x1462, 0x7222, VIA_DEVICE_CRT}, +     {"Twinhead M6",                           VIA_VM800,   0x14FF, 0xA007, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, +     {"RoverBook Partner W500",                VIA_VM800,   0x1509, 0x4330, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, ++    {"FIC PTM800Pro LF",                      VIA_VM800,   0x1509, 0x601A, VIA_DEVICE_CRT}, +     {"Clevo/RoverBook Voyager V511L",         VIA_VM800,   0x1558, 0x0662, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, +     {"Clevo M5xxS",                           VIA_VM800,   0x1558, 0x5406, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, +     {"Biostar P4M80-M4 / P4VMA-M",            VIA_VM800,   0x1565, 0x1202, VIA_DEVICE_CRT}, +@@ -170,6 +171,7 @@ +     {"Asustek M2V-MX SE",                     VIA_K8M890,  0x1043, 0x8297, VIA_DEVICE_CRT}, +     {"Foxconn K8M890M2MA-RS2H",               VIA_K8M890,  0x105B, 0x0C84, VIA_DEVICE_CRT}, +     {"Shuttle FX22V1",                        VIA_K8M890,  0x1297, 0x3080, VIA_DEVICE_CRT}, ++    {"MSI K8M890M2-V",                        VIA_K8M890,  0x1462, 0x7139, VIA_DEVICE_CRT}, +     {"MSI K9VGM-V",                           VIA_K8M890,  0x1462, 0x7253, VIA_DEVICE_CRT}, +     {"Averatec 226x",                         VIA_K8M890,  0x14FF, 0xA002, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, +     {"Fujitsu/Siemens Amilo La 1703",         VIA_K8M890,  0x1734, 0x10D9, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, +@@ -189,6 +191,7 @@ +     {"MSI P4M900M / P4M900M2-F/L",            VIA_P4M900,  0x1462, 0x7255, VIA_DEVICE_CRT}, +     {"MSI P4M900M3-L",                        VIA_P4M900,  0x1462, 0x7387, VIA_DEVICE_CRT}, +     {"Twinhead H12V",                         VIA_P4M900,  0x14FF, 0xA00F, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, ++    {"Twinhead K15V",                         VIA_P4M900,  0x14FF, 0xA012, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, +     {"Everex NC1501/NC1503",                  VIA_P4M900,  0x1509, 0x1E30, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, +     {"Clevo M660SE",                          VIA_P4M900,  0x1558, 0x0664, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, +     {"Clevo M660SR",                          VIA_P4M900,  0x1558, 0x0669, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, +@@ -224,6 +227,7 @@ +  +     /*** VX800 ***/ +     {"VIA Epia M700",                         VIA_VX800,   0x1106, 0x1122, VIA_DEVICE_CRT}, ++    {"Guillemot-Hercules ECafe EC900B",       VIA_VX800,   0x1106, 0x3349, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, +     {"VIA OpenBook",                          VIA_VX800,   0x1170, 0x0311, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, /* VIA OpenBook eNote VBE8910 */ +     {"Samsung NC20",                          VIA_VX800,   0x144d, 0xc04e, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, +     {"Quanta DreamBook Light IL1",            VIA_VX800,   0x152d, 0x0771, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, +@@ -231,6 +235,7 @@ +  +     /*** VX855 ***/ +     {"VIA VT8562C",                           VIA_VX855,   0x1106, 0x5122, VIA_DEVICE_CRT}, ++    {"OLPC XO 1.5",                           VIA_VX855,   0x152D, 0x0833, VIA_DEVICE_LCD}, +  +     /* keep this */ +     {NULL,                                    VIA_UNKNOWN, 0x0000, 0x0000, VIA_DEVICE_NONE} +diff -ruN xf86-video-openchrome-0.2.904/src/via_mode.h ../openchrome/xf86-video-openchrome-0.2.904/src/via_mode.h +--- xf86-video-openchrome-0.2.904/src/via_mode.h	2009-10-07 23:31:47.000000000 +0200 ++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_mode.h	2010-03-07 01:09:00.000000000 +0100 +@@ -54,50 +54,50 @@ +     CARD16 UniChrome; +     union pllparams UniChromePro; + } ViaDotClocks[] = { +-    {  25200, 0x513C, /* 0xa79004 */ { 1, 4, 6, 169 } }, +-    {  25312, 0xC763, /* 0xc49005 */ { 1, 4, 7, 198 } }, +-    {  26591, 0x471A, /* 0xce9005 */ { 1, 4, 7, 208 } }, +-    {  31500, 0xC558, /* 0xae9003 */ { 1, 4, 5, 176 } }, +-    {  31704, 0x471F, /* 0xaf9002 */ { 1, 4, 4, 177 } }, +-    {  32663, 0xC449, /* 0x479000 */ { 1, 4, 2,  73 } }, +-    {  33750, 0x4721, /* 0x959002 */ { 1, 4, 4, 151 } }, +-    {  35500, 0x5877, /* 0x759001 */ { 1, 4, 3, 119 } }, +-    {  36000, 0x5879, /* 0x9f9002 */ { 1, 4, 4, 161 } }, +-    {  39822, 0xC459, /* 0x578c02 */ { 1, 3, 4,  89 } }, +-    {  40000, 0x515F, /* 0x848c04 */ { 1, 3, 6, 134 } }, +-    {  41164, 0x4417, /* 0x2c8c00 */ { 1, 3, 2,  46 } }, +-    {  46981, 0x5069, /* 0x678c02 */ { 1, 3, 4, 105 } }, +-    {  49500, 0xC353, /* 0xa48c04 */ { 3, 3, 5, 138 } }, +-    {  50000, 0xC354, /* 0x368c00 */ { 1, 3, 2,  56 } }, +-    {  56300, 0x4F76, /* 0x3d8c00 */ { 1, 3, 2,  63 } }, +-    {  57275,      0, /* 0x3e8c00 */ { 1, 3, 5, 157 } }, /* For XO 1.5 no need for a unichrome clock */ +-    {  57284, 0x4E70, /* 0x3e8c00 */ { 1, 3, 2,  64 } }, +-    {  64995, 0x0D3B, /* 0x6b8c01 */ { 1, 3, 3, 109 } }, +-    {  65000, 0x0D3B, /* 0x6b8c01 */ { 1, 3, 3, 109 } }, /* Slightly unstable on PM800 */ +-    {  65028, 0x866D, /* 0x6b8c01 */ { 1, 3, 3, 109 } }, +-    {  74480, 0x156E, /* 0x288800 */ { 1, 2, 2,  42 } }, +-    {  75000, 0x156E, /* 0x288800 */ { 1, 2, 2,  42 } }, +-    {  78800, 0x442C, /* 0x2a8800 */ { 1, 2, 2,  44 } }, +-    {  81135, 0x0622, /* 0x428801 */ { 1, 2, 3,  68 } }, +-    {  81613, 0x4539, /* 0x708803 */ { 1, 2, 5, 114 } }, +-    {  94500, 0x4542, /* 0x4d8801 */ { 1, 2, 3,  79 } }, +-    { 108000, 0x0B53, /* 0x778802 */ { 1, 2, 4, 121 } }, +-    { 108280, 0x4879, /* 0x778802 */ { 1, 2, 4, 121 } }, +-    { 122000, 0x0D6F, /* 0x428800 */ { 1, 2, 2,  68 } }, +-    { 122726, 0x073C, /* 0x878802 */ { 1, 2, 4, 137 } }, +-    { 135000, 0x0742, /* 0x6f8801 */ { 1, 2, 3, 113 } }, +-    { 148500, 0x0853, /* 0x518800 */ { 1, 2, 2,  83 } }, +-    { 155800, 0x0857, /* 0x558402 */ { 1, 1, 4,  87 } },  +-    { 157500, 0x422C, /* 0x2a8400 */ { 1, 1, 2,  44 } }, +-    { 161793, 0x4571, /* 0x6f8403 */ { 1, 1, 5, 113 } },  +-    { 162000, 0x0A71, /* 0x6f8403 */ { 1, 1, 5, 113 } }, +-    { 175500, 0x4231, /* 0x2f8400 */ { 1, 1, 2,  49 } }, +-    { 189000, 0x0542, /* 0x4d8401 */ { 1, 1, 3,  79 } }, +-    { 202500, 0x0763, /* 0x6F8402 */ { 1, 1, 4, 113 } }, +-    { 204800, 0x0764, /* 0x548401 */ { 1, 1, 3,  86 } }, +-    { 218300, 0x043D, /* 0x3b8400 */ { 1, 1, 2,  61 } }, +-    { 229500, 0x0660, /* 0x3e8400 */ { 1, 1, 2,  64 } }, /* Not tested on Pro } */ +-    {      0,      0,                { 0, 0, 0,   0 } } ++    {  25200, 0x513C, /* 0xa79004 */ { { 1, 4, 6, 169 } } }, ++    {  25312, 0xC763, /* 0xc49005 */ { { 1, 4, 7, 198 } } }, ++    {  26591, 0x471A, /* 0xce9005 */ { { 1, 4, 7, 208 } } }, ++    {  31500, 0xC558, /* 0xae9003 */ { { 1, 4, 5, 176 } } }, ++    {  31704, 0x471F, /* 0xaf9002 */ { { 1, 4, 4, 177 } } }, ++    {  32663, 0xC449, /* 0x479000 */ { { 1, 4, 2,  73 } } }, ++    {  33750, 0x4721, /* 0x959002 */ { { 1, 4, 4, 151 } } }, ++    {  35500, 0x5877, /* 0x759001 */ { { 1, 4, 3, 119 } } }, ++    {  36000, 0x5879, /* 0x9f9002 */ { { 1, 4, 4, 161 } } }, ++    {  39822, 0xC459, /* 0x578c02 */ { { 1, 3, 4,  89 } } }, ++    {  40000, 0x515F, /* 0x848c04 */ { { 1, 3, 6, 134 } } }, ++    {  41164, 0x4417, /* 0x2c8c00 */ { { 1, 3, 2,  46 } } }, ++    {  46981, 0x5069, /* 0x678c02 */ { { 1, 3, 4, 105 } } }, ++    {  49500, 0xC353, /* 0xa48c04 */ { { 3, 3, 5, 138 } } }, ++    {  50000, 0xC354, /* 0x368c00 */ { { 1, 3, 2,  56 } } }, ++    {  56300, 0x4F76, /* 0x3d8c00 */ { { 1, 3, 2,  63 } } }, ++    {  57275,      0, /* 0x3e8c00 */ { { 1, 3, 5, 157 } } }, /* For XO 1.5 no need for a unichrome clock */ ++    {  57284, 0x4E70, /* 0x3e8c00 */ { { 1, 3, 2,  64 } } }, ++    {  64995, 0x0D3B, /* 0x6b8c01 */ { { 1, 3, 3, 109 } } }, ++    {  65000, 0x0D3B, /* 0x6b8c01 */ { { 1, 3, 3, 109 } } }, /* Slightly unstable on PM800 */ ++    {  65028, 0x866D, /* 0x6b8c01 */ { { 1, 3, 3, 109 } } }, ++    {  74480, 0x156E, /* 0x288800 */ { { 1, 2, 2,  42 } } }, ++    {  75000, 0x156E, /* 0x288800 */ { { 1, 2, 2,  42 } } }, ++    {  78800, 0x442C, /* 0x2a8800 */ { { 1, 2, 2,  44 } } }, ++    {  81135, 0x0622, /* 0x428801 */ { { 1, 2, 3,  68 } } }, ++    {  81613, 0x4539, /* 0x708803 */ { { 1, 2, 5, 114 } } }, ++    {  94500, 0x4542, /* 0x4d8801 */ { { 1, 2, 3,  79 } } }, ++    { 108000, 0x0B53, /* 0x778802 */ { { 1, 2, 4, 121 } } }, ++    { 108280, 0x4879, /* 0x778802 */ { { 1, 2, 4, 121 } } }, ++    { 122000, 0x0D6F, /* 0x428800 */ { { 1, 2, 2,  68 } } }, ++    { 122726, 0x073C, /* 0x878802 */ { { 1, 2, 4, 137 } } }, ++    { 135000, 0x0742, /* 0x6f8801 */ { { 1, 2, 3, 113 } } }, ++    { 148500, 0x0853, /* 0x518800 */ { { 1, 2, 2,  83 } } }, ++    { 155800, 0x0857, /* 0x558402 */ { { 1, 1, 4,  87 } } },  ++    { 157500, 0x422C, /* 0x2a8400 */ { { 1, 1, 2,  44 } } }, ++    { 161793, 0x4571, /* 0x6f8403 */ { { 1, 1, 5, 113 } } },  ++    { 162000, 0x0A71, /* 0x6f8403 */ { { 1, 1, 5, 113 } } }, ++    { 175500, 0x4231, /* 0x2f8400 */ { { 1, 1, 2,  49 } } }, ++    { 189000, 0x0542, /* 0x4d8401 */ { { 1, 1, 3,  79 } } }, ++    { 202500, 0x0763, /* 0x6F8402 */ { { 1, 1, 4, 113 } } }, ++    { 204800, 0x0764, /* 0x548401 */ { { 1, 1, 3,  86 } } }, ++    { 218300, 0x043D, /* 0x3b8400 */ { { 1, 1, 2,  61 } } }, ++    { 229500, 0x0660, /* 0x3e8400 */ { { 1, 1, 2,  64 } } }, /* Not tested on Pro } */ ++    {      0,      0,                { { 0, 0, 0,   0 } } } + }; +  + /* +diff -ruN xf86-video-openchrome-0.2.904/src/via_panel.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_panel.c +--- xf86-video-openchrome-0.2.904/src/via_panel.c	2009-10-03 22:48:55.000000000 +0200 ++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_panel.c	2010-03-07 01:09:00.000000000 +0100 +@@ -171,12 +171,18 @@ +                      resWidth, resHeight, panelWidth, panelHeight)); +  +     if (resWidth < panelWidth) { +-        /* FIXME: It is different for chipset < K8M800 */ +-        horScalingFactor = ((resWidth - 1) * 4096) / (panelWidth - 1); ++        /* Load Horizontal Scaling Factor */ ++        if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) { ++            horScalingFactor = ((resWidth - 1) * 4096) / (panelWidth - 1); ++             ++            /* Horizontal scaling enabled */ ++            cra2 = 0xC0; ++            cr9f = horScalingFactor & 0x0003;          /* HSCaleFactor[1:0] at CR9F[1:0] */ ++	} else { ++            /* TODO: Need testing */ ++            horScalingFactor = ((resWidth - 1) * 1024) / (panelWidth - 1); ++        } +  +-        /* Horizontal scaling enabled */ +-        cra2 = 0xC0; +-        cr9f = horScalingFactor & 0x0003;          /* HSCaleFactor[1:0] at CR9F[1:0] */ +         cr77 = (horScalingFactor & 0x03FC) >> 2;   /* HSCaleFactor[9:2] at CR77[7:0] */ +         cr79 = (horScalingFactor & 0x0C00) >> 10;  /* HSCaleFactor[11:10] at CR79[5:4] */ +         cr79 <<= 4; +@@ -184,11 +190,18 @@ +     } +  +     if (resHeight < panelHeight) { +-        verScalingFactor = ((resHeight - 1) * 2048) / (panelHeight - 1); ++        /* Load Vertical Scaling Factor */ ++        if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) { ++            verScalingFactor = ((resHeight - 1) * 2048) / (panelHeight - 1); ++ ++            /* Vertical scaling enabled */ ++            cra2 |= 0x08; ++            cr79 |= ((verScalingFactor & 0x0001) << 3);       /* VSCaleFactor[0] at CR79[3] */ ++        } else { ++            /* TODO: Need testing */ ++            verScalingFactor = ((resHeight - 1) * 1024) / (panelHeight - 1); ++        } +  +-        /* Vertical scaling enabled */ +-        cra2 |= 0x08; +-        cr79 |= ((verScalingFactor & 0x0001) << 3);       /* VSCaleFactor[0] at CR79[3] */ +         cr78 |= (verScalingFactor & 0x01FE) >> 1;         /* VSCaleFactor[8:1] at CR78[7:0] */ +         cr79 |= ((verScalingFactor & 0x0600) >> 9) << 6;  /* VSCaleFactor[10:9] at CR79[7:6] */ +         scaling = TRUE; +@@ -203,12 +216,18 @@ +         ViaCrtcMask(hwp, 0x77, cr77, 0xFF); +         ViaCrtcMask(hwp, 0x78, cr78, 0xFF); +         ViaCrtcMask(hwp, 0x79, cr79, 0xF8); +-        ViaCrtcMask(hwp, 0x9F, cr9f, 0x03); ++        if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) { ++            ViaCrtcMask(hwp, 0x9F, cr9f, 0x03); ++        } +         ViaCrtcMask(hwp, 0x79, 0x03, 0x03); +-    } else ++    } else { ++        /*  Disable panel scale */ +         ViaCrtcMask(hwp, 0x79, 0x00, 0x01); +- +-    ViaCrtcMask(hwp, 0xA2, cra2, 0xC8); ++    } ++     ++    if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) { ++        ViaCrtcMask(hwp, 0xA2, cra2, 0xC8); ++    } +  +     /* Horizontal scaling selection: interpolation */ +     // ViaCrtcMask(hwp, 0x79, 0x02, 0x02); +@@ -233,14 +252,14 @@ +  +     if (panelMode->Width && panelMode->Height) { +  +-        /* TODO: fix refresh rate and check malloc */ ++        /* TODO: fix refresh rate */ +         DisplayModePtr p = malloc( sizeof(DisplayModeRec) ) ; +-        memset(p, 0, sizeof(DisplayModeRec)); ++        if (p) { ++            memset(p, 0, sizeof(DisplayModeRec)); +  +-        float refresh = 60.0f ; ++            float refresh = 60.0f ; +  +-        /* The following code is borrowed from xf86SetModeCrtc. */ +-        if (p) { ++            /* The following code is borrowed from xf86SetModeCrtc. */ +             viaTimingCvt(p, panelMode->Width, panelMode->Height, refresh, FALSE, TRUE); +             p->CrtcHDisplay = p->HDisplay; +             p->CrtcHSyncStart = p->HSyncStart; +@@ -256,9 +275,13 @@ +             p->CrtcVBlankEnd = max(p->CrtcVSyncEnd, p->CrtcVTotal); +             p->CrtcHBlankStart = min(p->CrtcHSyncStart, p->CrtcHDisplay); +             p->CrtcHBlankEnd = max(p->CrtcHSyncEnd, p->CrtcHTotal); +- ++             ++            pVia->pBIOSInfo->Panel->NativeDisplayMode = p; ++        } else { ++            xf86DrvMsg(pScrn->scrnIndex, X_ERROR, ++                     "Out of memory. Size: %d bytes\n", sizeof(DisplayModeRec)); +         } +-        pVia->pBIOSInfo->Panel->NativeDisplayMode = p; ++         +     } else { +         xf86DrvMsg(pScrn->scrnIndex, X_WARNING, +                    "Invalid panel dimension (%dx%d)\n", panelMode->Width, +@@ -339,22 +362,22 @@ + ViaPanelGetSizeFromEDID(ScrnInfoPtr pScrn, xf86MonPtr pMon, +                         int *width, int *height) + { +-    int i, max = 0, vsize; ++    int i, max_hsize = 0, vsize = 0; +  +     DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIAGetPanelSizeFromEDID\n")); +  +     /* !!! Why are we not checking VESA modes? */ +  +     /* checking standard timings */ +-    for (i = 0; i < 8; i++) ++    for (i = 0; i < STD_TIMINGS; i++) +         if ((pMon->timings2[i].hsize > 256) +-            && (pMon->timings2[i].hsize > max)) { +-            max = pMon->timings2[i].hsize; ++            && (pMon->timings2[i].hsize > max_hsize)) { ++            max_hsize = pMon->timings2[i].hsize; +             vsize = pMon->timings2[i].vsize; +         } +  +-    if (max != 0) { +-        *width = max; ++    if (max_hsize != 0) { ++        *width = max_hsize; +         *height = vsize; +         return TRUE; +     } +@@ -369,14 +392,14 @@ +             struct detailed_timings timing = pMon->det_mon[i].section.d_timings; +  +             /* ignore v_active for now */ +-            if ((timing.clock > 15000000) && (timing.h_active > max)) { +-                max = timing.h_active; ++            if ((timing.clock > 15000000) && (timing.h_active > max_hsize)) { ++                max_hsize = timing.h_active; +                 vsize = timing.v_active; +             } +         } +  +-    if (max != 0) { +-        *width = max; ++    if (max_hsize != 0) { ++        *width = max_hsize; +         *height = vsize; +         return TRUE; +     } +diff -ruN xf86-video-openchrome-0.2.904/src/via_video.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_video.c +--- xf86-video-openchrome-0.2.904/src/via_video.c	2009-10-08 01:39:13.000000000 +0200 ++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_video.c	2010-03-07 01:09:00.000000000 +0100 +@@ -466,8 +466,8 @@ +  +     viaVidEng->video1_ctl = 0; +     viaVidEng->video3_ctl = 0; +-    viaVidEng->compose = 0x80000000; +-    viaVidEng->compose = 0x40000000; ++    viaVidEng->compose = V1_COMMAND_FIRE; ++    viaVidEng->compose = V3_COMMAND_FIRE; +     viaVidEng->color_key = 0x821; +     viaVidEng->snd_color_key = 0x821; +  +@@ -479,16 +479,16 @@ +     VIAPtr pVia = VIAPTR(pScrn); +     vmmtr viaVidEng = (vmmtr) pVia->VidMapBase; +      ++    DBG_DD(ErrorF(" via_video.c : viaSaveVideo : \n")); +     /* Save video registers */ +-    /* TODO: Identify which registers should be saved and restored */ +     memcpy(pVia->VideoRegs, (void*)viaVidEng, sizeof(video_via_regs)); +  +     pVia->dwV1 = ((vmmtr) viaVidEng)->video1_ctl; +     pVia->dwV3 = ((vmmtr) viaVidEng)->video3_ctl; +     viaVidEng->video1_ctl = 0; +     viaVidEng->video3_ctl = 0; +-    viaVidEng->compose = 0x80000000; +-    viaVidEng->compose = 0x40000000; ++    viaVidEng->compose = V1_COMMAND_FIRE; ++    viaVidEng->compose = V3_COMMAND_FIRE; + } +  + void +@@ -496,16 +496,65 @@ + { +     VIAPtr pVia = VIAPTR(pScrn); +     vmmtr viaVidEng = (vmmtr) pVia->VidMapBase; ++    video_via_regs  *localVidEng = pVia->VideoRegs; ++ +      ++    DBG_DD(ErrorF(" via_video.c : viaRestoreVideo : \n")); +     /* Restore video registers */ +-    /* TODO: Identify which registers should be saved and restored */ +-    memcpy((void*)viaVidEng, pVia->VideoRegs, sizeof(video_via_regs)); +- ++    /* flush restored video engines' setting to VidMapBase */ ++     ++    viaVidEng->alphawin_hvstart = localVidEng->alphawin_hvstart; ++    viaVidEng->alphawin_size   = localVidEng->alphawin_size; ++    viaVidEng->alphawin_ctl    = localVidEng->alphawin_ctl; ++    viaVidEng->alphafb_stride  = localVidEng->alphafb_stride; ++    viaVidEng->color_key       = localVidEng->color_key; ++    viaVidEng->alphafb_addr    = localVidEng->alphafb_addr; ++    viaVidEng->chroma_low      = localVidEng->chroma_low; ++    viaVidEng->chroma_up       = localVidEng->chroma_up; ++ ++    if (pVia->ChipId != PCI_CHIP_VT3314) ++    { ++        /*VT3314 only has V3*/ ++        viaVidEng->video1_ctl      = localVidEng->video1_ctl; ++        viaVidEng->video1_fetch    = localVidEng->video1_fetch; ++        viaVidEng->video1y_addr1   = localVidEng->video1y_addr1; ++        viaVidEng->video1_stride   = localVidEng->video1_stride; ++        viaVidEng->video1_hvstart  = localVidEng->video1_hvstart; ++        viaVidEng->video1_size     = localVidEng->video1_size; ++        viaVidEng->video1y_addr2   = localVidEng->video1y_addr2; ++        viaVidEng->video1_zoom     = localVidEng->video1_zoom; ++        viaVidEng->video1_mictl    = localVidEng->video1_mictl; ++        viaVidEng->video1y_addr0   = localVidEng->video1y_addr0; ++        viaVidEng->video1_fifo     = localVidEng->video1_fifo; ++        viaVidEng->video1y_addr3   = localVidEng->video1y_addr3; ++        viaVidEng->v1_source_w_h   = localVidEng->v1_source_w_h ; ++        viaVidEng->video1_CSC1     = localVidEng->video1_CSC1; ++        viaVidEng->video1_CSC2     = localVidEng->video1_CSC2; ++    } ++    viaVidEng->snd_color_key   = localVidEng->snd_color_key; ++    viaVidEng->v3alpha_prefifo = localVidEng->v3alpha_prefifo; ++    viaVidEng->v3alpha_fifo    = localVidEng->v3alpha_fifo; ++    viaVidEng->video3_CSC2     = localVidEng->video3_CSC2; ++    viaVidEng->video3_CSC2     = localVidEng->video3_CSC2; ++    viaVidEng->v3_source_width = localVidEng->v3_source_width; ++    viaVidEng->video3_ctl      = localVidEng->video3_ctl; ++    viaVidEng->video3_addr0    = localVidEng->video3_addr0; ++    viaVidEng->video3_addr1    = localVidEng->video3_addr1; ++    viaVidEng->video3_stride   = localVidEng->video3_stride; ++    viaVidEng->video3_hvstart  = localVidEng->video3_hvstart; ++    viaVidEng->video3_size     = localVidEng->video3_size; ++    viaVidEng->v3alpha_fetch   = localVidEng->v3alpha_fetch; ++    viaVidEng->video3_zoom     = localVidEng->video3_zoom; ++    viaVidEng->video3_mictl    = localVidEng->video3_mictl; ++    viaVidEng->video3_CSC1     = localVidEng->video3_CSC1; ++    viaVidEng->video3_CSC2     = localVidEng->video3_CSC2;     ++    viaVidEng->compose         = localVidEng->compose; ++     +     viaVidEng->video1_ctl = pVia->dwV1; +     viaVidEng->video3_ctl = pVia->dwV3; +-    viaVidEng->compose = 0x80000000; +-    viaVidEng->compose = 0x40000000; +- ++    if (pVia->ChipId != PCI_CHIP_VT3314) ++        viaVidEng->compose = V1_COMMAND_FIRE; ++    viaVidEng->compose = V3_COMMAND_FIRE; + } +  + void +@@ -524,8 +573,8 @@ +  +     viaVidEng->video1_ctl = 0; +     viaVidEng->video3_ctl = 0; +-    viaVidEng->compose = 0x80000000; +-    viaVidEng->compose = 0x40000000; ++    viaVidEng->compose = V1_COMMAND_FIRE; ++    viaVidEng->compose = V3_COMMAND_FIRE; +  +     /* +      * Free all adaptor info allocated in viaInitVideo. +@@ -561,7 +610,7 @@ +     XF86VideoAdaptorPtr *adaptors, *newAdaptors; +     int num_adaptors, num_new; +  +-    DBG_DD(ErrorF(" via_video.c : viaInitVideo : \n")); ++    DBG_DD(ErrorF(" via_video.c : viaInitVideo, Screen[%d]\n", pScrn->scrnIndex)); +  +     allAdaptors = NULL; +     newAdaptors = NULL; +@@ -832,7 +881,7 @@ +     DevUnion *pdevUnion; +     int i, j, usedPorts, numPorts; +  +-    DBG_DD(ErrorF(" via_video.c : viaSetupImageVideo: \n")); ++    DBG_DD(ErrorF(" via_video.c : viaSetupAdaptors (viaSetupImageVideo): \n")); +  +     xvBrightness = MAKE_ATOM("XV_BRIGHTNESS"); +     xvContrast = MAKE_ATOM("XV_CONTRAST"); +@@ -1042,6 +1091,8 @@ +         } +  +     } else { ++        DBG_DD(ErrorF(" via_video.c : viaGetPortAttribute : is not supported the attribute\n")); ++         +         /*return BadMatch */; +     } +     return Success; +@@ -1498,6 +1549,7 @@ +  +     DBG_DD(ErrorF(" via_video.c : viaQueryImageAttributes : FourCC=0x%x, ", +             id)); ++    DBG_DD(ErrorF(" via_video.c : Screen[%d],  w=%d, h=%d\n", pScrn->scrnIndex, *w, *h)); +  +     if ((!w) || (!h)) +         return 0; +@@ -1513,6 +1565,7 @@ +  +     switch (id) { +         case FOURCC_YV12: /*Planar format : YV12 -4:2:0 */ ++        case FOURCC_I420: +             *h = (*h + 1) & ~1; +             size = *w; +             if (pVia->useDmaBlit) +diff -ruN xf86-video-openchrome-0.2.904/src/via_video.h ../openchrome/xf86-video-openchrome-0.2.904/src/via_video.h +--- xf86-video-openchrome-0.2.904/src/via_video.h	2009-10-03 22:48:55.000000000 +0200 ++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_video.h	2010-03-07 01:09:00.000000000 +0100 +@@ -44,6 +44,10 @@ +  + #define VIDEO_BPP 2 +  ++ ++#define V1_COMMAND_FIRE               0x80000000  /* V1 commands fire */ ++#define V3_COMMAND_FIRE               0x40000000  /* V3 commands fire */ ++ + typedef struct + { +     CARD32 interruptflag;	       /* 200 */ +@@ -89,7 +93,7 @@ +     CARD32 video3_ctl;		       /* 2a0 */ +     CARD32 video3_addr0;	       /* 2a4 */ +     CARD32 video3_addr1;	       /* 2a8 */ +-    CARD32 video3_stribe;	       /* 2ac */ ++    CARD32 video3_stride;	       /* 2ac */ +     CARD32 video3_hvstart;	       /* 2b0 */ +     CARD32 video3_size;		       /* 2b4 */ +     CARD32 v3alpha_fetch;	       /* 2b8 */ diff --git a/abs/not_built/core/xf86-video-r128/LICENSE b/abs/not_built/core/xf86-video-r128/LICENSE new file mode 100644 index 0000000..229a261 --- /dev/null +++ b/abs/not_built/core/xf86-video-r128/LICENSE @@ -0,0 +1,219 @@ + +Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting documentation, and +that the name of Marc Aurele La France not be used in advertising or +publicity pertaining to distribution of the software without specific, +written prior permission.  Marc Aurele La France makes no representations +about the suitability of this software for any purpose.  It is provided +"as-is" without express or implied warranty. + +MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.  IN NO +EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + +Copyright 2000 Gareth Hughes +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL +GARETH HUGHES BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +(c) 2004 Adam Jackson.  Standard MIT license applies. + +Copyright 1999-2000 Precision Insight, Inc., Cedar Park, Texas. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL +PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario, +Precision Insight, Inc., Cedar Park, Texas, and +VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation on the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, +and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NON-INFRINGEMENT.  IN NO EVENT SHALL ATI, PRECISION INSIGHT, VA LINUX +SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Copyright 2003 Alex Deucher. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation on the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, +and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NON-INFRINGEMENT.  IN NO EVENT SHALL ALEX DEUCHER, OR ANY OTHER +CONTRIBUTORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + + +/************************************************************************** + +Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc., +                                               Cedar Park, Texas. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + *   Kevin E. Martin <martin@valinux.com> + *   Gareth Hughes <gareth@valinux.com> + * + */ + +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and +                     VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario, + *                      Precision Insight, Inc., Cedar Park, Texas, and + *                      VA Linux Systems Inc., Fremont, California. + * + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation on the rights to use, copy, modify, merge, + * publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial + * portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NON-INFRINGEMENT.  IN NO EVENT SHALL ATI, PRECISION INSIGHT, VA LINUX + * SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * Authors: + *   Kevin E. Martin <martin@valinux.com> + *   Rickard E. Faith <faith@valinux.com> + *   Daryll Strauss <daryll@valinux.com> + *   Gareth Hughes <gareth@valinux.com> + * + */ + diff --git a/abs/not_built/core/xf86-video-r128/PKGBUILD b/abs/not_built/core/xf86-video-r128/PKGBUILD new file mode 100644 index 0000000..a50e88d --- /dev/null +++ b/abs/not_built/core/xf86-video-r128/PKGBUILD @@ -0,0 +1,28 @@ +# $Id: PKGBUILD 88652 2010-08-24 12:20:07Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +pkgname=xf86-video-r128 +pkgver=6.8.1 +pkgrel=4 +pkgdesc="X.org ati Rage128 video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc' 'r128-dri') +makedepends=('xorg-server-devel' 'xf86driproto' 'libdrm' 'mesa') +conflicts=('xorg-server<1.9.0') +groups=('xorg-video-drivers') +options=('!libtool') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 +       LICENSE) +md5sums=('2b90854a62a4d45d652062f582dc8d13' +         '97ad034bea2a153f4418a6bb0c77acf4') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr  --enable-dri +  make +  make DESTDIR="${pkgdir}" install + +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-rendition/PKGBUILD b/abs/not_built/core/xf86-video-rendition/PKGBUILD new file mode 100644 index 0000000..fe6f54a --- /dev/null +++ b/abs/not_built/core/xf86-video-rendition/PKGBUILD @@ -0,0 +1,28 @@ +# $Id: PKGBUILD 88658 2010-08-24 12:33:11Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-rendition +pkgver=4.2.4 +pkgrel=2 +pkgdesc="X.org Rendition video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc') +makedepends=('xorg-server-devel') +conflicts=('xorg-server<1.9.0') +options=('!libtool' '!strip') +groups=('xorg-video-drivers') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('16148c25183f7829c22bc9dfdb588c1a16bf4565') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" + +  strip --strip-unneeded "${pkgdir}/usr/lib/xorg/modules/drivers/rendition_drv.so" +} diff --git a/abs/not_built/core/xf86-video-s3/LICENSE b/abs/not_built/core/xf86-video-s3/LICENSE new file mode 100644 index 0000000..a4c8d5d --- /dev/null +++ b/abs/not_built/core/xf86-video-s3/LICENSE @@ -0,0 +1,25 @@ +This package was downloaded from +http://xorg.freedesktop.org/releases/individual/driver/ + +     Copyright 2001  Ani Joshi <ajoshi@unixbox.com> + +     XFree86 4.x driver for S3 chipsets + + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting documentation and +that the name of Ani Joshi not be used in advertising or +publicity pertaining to distribution of the software without specific, +written prior permission.  Ani Joshi makes no representations +about the suitability of this software for any purpose.  It is provided +"as-is" without express or implied warranty. + +ANI JOSHI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL ANI JOSHI BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. diff --git a/abs/not_built/core/xf86-video-s3/PKGBUILD b/abs/not_built/core/xf86-video-s3/PKGBUILD new file mode 100644 index 0000000..74ce9a2 --- /dev/null +++ b/abs/not_built/core/xf86-video-s3/PKGBUILD @@ -0,0 +1,29 @@ +# $Id: PKGBUILD 88661 2010-08-24 12:47:55Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-s3 +pkgver=0.6.3 +pkgrel=3 +pkgdesc="X.org S3 video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc') +makedepends=('xorg-server-devel') +conflicts=('xorg-server<1.9.0') +options=('!libtool') +groups=('xorg-video-drivers') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 +        LICENSE) +md5sums=('5eb06d88533fb327d067928faeb20860' +         '6b2bea29522da7cbb81cadde3235024d') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install + +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" +} diff --git a/abs/not_built/core/xf86-video-s3virge/LICENSE b/abs/not_built/core/xf86-video-s3virge/LICENSE new file mode 100644 index 0000000..23c2aea --- /dev/null +++ b/abs/not_built/core/xf86-video-s3virge/LICENSE @@ -0,0 +1,25 @@ +This package was downloaded from +http://xorg.freedesktop.org/releases/individual/driver/ + +Copyright (C) 1994-2000 The XFree86 Project, Inc.  All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- +NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE +XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the XFree86 Project shall not +be used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from the XFree86 Project. diff --git a/abs/not_built/core/xf86-video-s3virge/PKGBUILD b/abs/not_built/core/xf86-video-s3virge/PKGBUILD new file mode 100644 index 0000000..c500c2c --- /dev/null +++ b/abs/not_built/core/xf86-video-s3virge/PKGBUILD @@ -0,0 +1,28 @@ +# $Id: PKGBUILD 88664 2010-08-24 12:56:04Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +# Contributor: Alexander Baldeck <alexander@archlinux.org> +pkgname=xf86-video-s3virge +pkgver=1.10.4 +pkgrel=3 +pkgdesc="X.org S3 Virge video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc') +makedepends=('pkgconfig' 'xorg-server-devel') +conflicts=('xorg-server<1.9.0') +options=(!libtool) +groups=('xorg-video-drivers') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 +        LICENSE) +md5sums=('6517bbbf808c700502d51acdc44662f8' 'c0a38dfcd6288eff39322f7c584b8d1e') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install + +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-savage/LICENSE b/abs/not_built/core/xf86-video-savage/LICENSE new file mode 100644 index 0000000..72598e8 --- /dev/null +++ b/abs/not_built/core/xf86-video-savage/LICENSE @@ -0,0 +1,97 @@ +Copyright (C) 1994-2000 The XFree86 Project, Inc.  All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- +NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the XFree86 Project shall not +be used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from the XFree86 Project. + + +Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved. +Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sub license, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +VIA, S3 GRAPHICS, AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +/* + * Copyright 2005  Felix Kuehling + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sub license, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NON-INFRINGEMENT. IN NO EVENT SHALL FELIX KUEHLING BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/************************************************************************** + +Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and +                     VA Linux Systems Inc., Fremont, California. + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ diff --git a/abs/not_built/core/xf86-video-savage/PKGBUILD b/abs/not_built/core/xf86-video-savage/PKGBUILD new file mode 100644 index 0000000..0450131 --- /dev/null +++ b/abs/not_built/core/xf86-video-savage/PKGBUILD @@ -0,0 +1,29 @@ +# $Id: PKGBUILD 88667 2010-08-24 13:00:40Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-savage +pkgver=2.3.1 +pkgrel=4 +pkgdesc="X.org savage video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc' 'savage-dri') +makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa') +conflicts=('xorg-server<1.9.0') +options=(!libtool !makeflags) +groups=('xorg-video-drivers') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 +        LICENSE) +md5sums=('66c319f610e3699c3de0f3ef630abb32' +         '0f485840d3cee0a8d9952c0cd34f64c3') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr --enable-dri +  make +  make DESTDIR="${pkgdir}" install + +  install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-siliconmotion/PKGBUILD b/abs/not_built/core/xf86-video-siliconmotion/PKGBUILD new file mode 100644 index 0000000..63900c6 --- /dev/null +++ b/abs/not_built/core/xf86-video-siliconmotion/PKGBUILD @@ -0,0 +1,28 @@ +# $Id: PKGBUILD 88670 2010-08-24 13:02:33Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +# Contributor: Alexander Baldeck <alexander@archlinux.org> + +pkgname=xf86-video-siliconmotion +pkgver=1.7.4 +pkgrel=2 +pkgdesc="X.org siliconmotion video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc') +makedepends=('xorg-server-devel') +conflicts=('xorg-server<1.9.0') +options=('!libtool') +groups=('xorg-video-drivers') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('3c0fd42fbd301e66104e4b9190796d102a034787') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install + +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-sis/PKGBUILD b/abs/not_built/core/xf86-video-sis/PKGBUILD new file mode 100644 index 0000000..ef457ec --- /dev/null +++ b/abs/not_built/core/xf86-video-sis/PKGBUILD @@ -0,0 +1,27 @@ +# $Id: PKGBUILD 88682 2010-08-24 13:15:49Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-sis +pkgver=0.10.3 +pkgrel=2 +pkgdesc="X.org SiS video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc' 'sis-dri') +makedepends=('xorg-server-devel' 'xf86dgaproto' 'libdrm' 'xf86driproto' 'mesa') +conflicts=('xorg-server<1.9.0') +options=('!libtool') +groups=('xorg-video-drivers') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('158673747e240b0c33499685a32d46bdaead7cd5') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr --enable-dri +  make +  make DESTDIR="${pkgdir}" install + +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-sisusb/PKGBUILD b/abs/not_built/core/xf86-video-sisusb/PKGBUILD new file mode 100644 index 0000000..3146df0 --- /dev/null +++ b/abs/not_built/core/xf86-video-sisusb/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 88685 2010-08-24 13:17:12Z jgc $ +#Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-sisusb +pkgver=0.9.4 +pkgrel=2 +pkgdesc="X.org SiS USB video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc') +makedepends=('xorg-server-devel') +conflicts=('xorg-server<1.9.0') +groups=('xorg-video-drivers') +options=('!libtool') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('600fd49dffe00121f9042555fea55948653d1a7e') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-tdfx/LICENSE b/abs/not_built/core/xf86-video-tdfx/LICENSE new file mode 100644 index 0000000..08b1add --- /dev/null +++ b/abs/not_built/core/xf86-video-tdfx/LICENSE @@ -0,0 +1,160 @@ +Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sub license, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +/* + * Copyright 2000 VA Linux Systems Inc., Fremont, California. + * + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL + * VA LINUX SYSTEMS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + + +/* + * GLX Hardware Device Driver for Intel i810 + * Copyright (C) 1999 Keith Whitwell + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL + * KEITH WHITWELL, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM,  + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR  + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE  + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + */ +  + +/* + * GLX Hardware Device Driver for Intel tdfx + * Copyright (C) 1999 Keith Whitwell + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL + * KEITH WHITWELL, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM,  + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR  + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE  + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + */ + + +/* + * Mesa 3-D graphics library + * Version:  4.1 + * + * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* Authors: + *    Keith Whitwell <keith@tungstengraphics.com> + *    Daniel Borca <dborca@users.sourceforge.net> + */ + + +/* + * Mesa 3-D graphics library + * Version:  5.1 + * + * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* Authors: + *    Keith Whitwell + *    Daniel Borca + */ diff --git a/abs/not_built/core/xf86-video-tdfx/PKGBUILD b/abs/not_built/core/xf86-video-tdfx/PKGBUILD new file mode 100644 index 0000000..88a96fc --- /dev/null +++ b/abs/not_built/core/xf86-video-tdfx/PKGBUILD @@ -0,0 +1,29 @@ +# $Id: PKGBUILD 88679 2010-08-24 13:12:20Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-tdfx +pkgver=1.4.3 +pkgrel=4 +pkgdesc="X.org tdfx video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc' 'tdfx-dri') +makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa') +conflicts=('xorg-server<1.9.0') +options=(!libtool) +groups=('xorg-video-drivers') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 +        LICENSE) +md5sums=('8161bbf2b100c21b609163f0010766b3' +         '978e9486ffd4e4164c12dc68c84186e1') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr --enable-dri +  make +  make DESTDIR="${pkgdir}" install + +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-trident/PKGBUILD b/abs/not_built/core/xf86-video-trident/PKGBUILD new file mode 100644 index 0000000..80aa2e6 --- /dev/null +++ b/abs/not_built/core/xf86-video-trident/PKGBUILD @@ -0,0 +1,27 @@ +# $Id: PKGBUILD 88676 2010-08-24 13:07:06Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-trident +pkgver=1.3.4 +pkgrel=2 +pkgdesc="X.org Trident video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc') +makedepends=('xorg-server-devel' 'xf86dgaproto') +conflicts=('xorg-server<1.9.0') +groups=('xorg-video-drivers') +options=(!libtool) +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('7c40f5c02bddf399862782b708941e79302318af') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install + +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1 +} diff --git a/abs/not_built/core/xf86-video-tseng/PKGBUILD b/abs/not_built/core/xf86-video-tseng/PKGBUILD new file mode 100644 index 0000000..4fbcf23 --- /dev/null +++ b/abs/not_built/core/xf86-video-tseng/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 88673 2010-08-24 13:04:05Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-tseng +pkgver=1.2.4 +pkgrel=2 +pkgdesc="X.org tseng video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc') +makedepends=('xorg-server-devel') +conflicts=('xorg-server<1.9.0') +groups=('xorg-video-drivers') +options=('!libtool') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('1b45f55657b2c92f30abb0769cae57fca98d93b7') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-unichrome/LICENSE b/abs/not_built/core/xf86-video-unichrome/LICENSE new file mode 100644 index 0000000..f400766 --- /dev/null +++ b/abs/not_built/core/xf86-video-unichrome/LICENSE @@ -0,0 +1,23 @@ +Copyright (c) 2004-2007 Luc Verhaegen. All Rights Reserved. +Copyright (c) 2004-2005 The Unichrome Project. All Rights Reserved. +Copyright (c) 1998-2003 VIA Technologies, Inc. All Rights Reserved. +Copyright (c) 2001-2003 S3 Graphics, Inc. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sub license, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/abs/not_built/core/xf86-video-unichrome/PKGBUILD b/abs/not_built/core/xf86-video-unichrome/PKGBUILD new file mode 100644 index 0000000..b2aa60e --- /dev/null +++ b/abs/not_built/core/xf86-video-unichrome/PKGBUILD @@ -0,0 +1,30 @@ +# $Id: PKGBUILD 88691 2010-08-24 13:31:22Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> +pkgname=xf86-video-unichrome +pkgver=0.2.7 +pkgrel=4 +_gitversion=cd12cce88ff886031c23c743569fba97eccace4e +pkgdesc="Unichrome video drivers for X.Org" +arch=(i686 x86_64) +url="http://unichrome.sf.net/" +license=('custom') +depends=('glibc' 'unichrome-dri') +makedepends=('xorg-server-devel' 'libx11' 'libdrm' 'xf86driproto' 'mesa' 'libxvmc') +options=('!libtool') +conflicts=('xf86-video-via' 'openchrome' 'xf86-video-openchrome' 'xorg-server<1.9.0') +source=(http://cgit.freedesktop.org/~libv/${pkgname}/snapshot/${pkgname}-${_gitversion}.tar.bz2 +        drm-include.patch +        LICENSE) +md5sums=('c64332e6c386ed9a580116e131f288f4' +         '4a9bf2e3ef338c170a2f58988ebb97dc' +         '6ea7d64c87c5c32201a1e38e3336e44a') + +build() { +  cd "${srcdir}/${pkgname}-${_gitversion}" +  patch -Np0 -i "${srcdir}/drm-include.patch" +  ./autogen.sh --prefix=/usr --enable-dri +  make +  make DESTDIR="${pkgdir}" install +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-unichrome/drm-include.patch b/abs/not_built/core/xf86-video-unichrome/drm-include.patch new file mode 100644 index 0000000..edfe9a8 --- /dev/null +++ b/abs/not_built/core/xf86-video-unichrome/drm-include.patch @@ -0,0 +1,11 @@ +--- src/via_memory.h.orig	2010-05-09 16:17:00.143352805 +0200 ++++ src/via_memory.h	2010-05-09 16:17:14.433351301 +0200 +@@ -30,7 +30,7 @@ +  + /* don't include local via_drm.h when using modular */ + #ifdef HAVE_CONFIG_H +-#include "drm/via_drm.h" ++#include <via_drm.h> + #else + #include "via_drm.h" + #endif diff --git a/abs/not_built/core/xf86-video-v4l/LICENSE b/abs/not_built/core/xf86-video-v4l/LICENSE new file mode 100644 index 0000000..535595b --- /dev/null +++ b/abs/not_built/core/xf86-video-v4l/LICENSE @@ -0,0 +1,826 @@ +This package was downloaded from +http://xorg.freedesktop.org/releases/individual/driver/ + +                                  Licenses + +                            The X.Org Foundation + +                                 March 2004 + +1.  Introduction + +The X.org Foundation X Window System distribution is a compilation of code +and documentation from many sources.  This document is intended primarily as +a guide to the licenses used in the distribution: you must check each file +and/or package for precise redistribution terms. None-the-less, this summary +may be useful to many users.  No software incorporating the XFree86 1.1 +license has been incorporated. + +This document is based on the compilation from XFree86. + +2.  XFree86 License + +XFree86 code without an explicit copyright is covered by the following copy- +right/license: + +Copyright (C) 1994-2003 The XFree86 Project, Inc.  All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is fur- +nished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- +NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE +XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- +NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the XFree86 Project shall not +be used in advertising or otherwise to promote the sale, use or other deal- +ings in this Software without prior written authorization from the XFree86 +Project. + +3.  Other Licenses + +Portions of code are covered by the following licenses/copyrights.  See indi- +vidual files for the copyright dates. + +3.1  X/MIT Copyrights + +3.1.1  X Consortium + +Copyright (C) <date> X Consortium + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is fur- +nished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- +NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE X +CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from the X Consortium. + +X Window System is a trademark of X Consortium, Inc. + +3.1.2  The Open Group + +Copyright <date>  The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting documentation. + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- +NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from The Open Group. + +3.2  Berkeley-based copyrights: + +o + +3.2.1  General + +Redistribution and use in source and binary forms, with or without modifica- +tion, are permitted provided that the following conditions are met: + +  1.  Redistributions of source code must retain the above copyright notice, +      this list of conditions and the following disclaimer. + +  2.  Redistributions in binary form must reproduce the above copyright +      notice, this list of conditions and the following disclaimer in the +      documentation and/or other materials provided with the distribution. + +  3.  The name of the author may not be used to endorse or promote products +      derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER- +CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO +EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- +CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH- +ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. + +3.2.2  UCB/LBL + +Copyright (c) 1993 The Regents of the University of California.  All rights +reserved. + +This software was developed by the Computer Systems Engineering group at +Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and contributed to +Berkeley. + +All advertising materials mentioning features or use of this software must +display the following acknowledgement: This product includes software devel- +oped by the University of California, Lawrence Berkeley Laboratory. + +Redistribution and use in source and binary forms, with or without modifica- +tion, are permitted provided that the following conditions are met: + +  1.  Redistributions of source code must retain the above copyright notice, +      this list of conditions and the following disclaimer. + +  2.  Redistributions in binary form must reproduce the above copyright +      notice, this list of conditions and the following disclaimer in the +      documentation and/or other materials provided with the distribution. + +  3.  All advertising materials mentioning features or use of this software +      must display the following acknowledgement: This product includes soft- +      ware developed by the University of California, Berkeley and its con- +      tributors. + +  4.  Neither the name of the University nor the names of its contributors +      may be used to endorse or promote products derived from this software +      without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DIS- +CLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +3.2.3  The NetBSD Foundation, Inc. + +Copyright (c) 2003 The NetBSD Foundation, Inc.  All rights reserved. + +This code is derived from software contributed to The NetBSD Foundation by +Ben Collver <collver1@attbi.com> + +Redistribution and use in source and binary forms, with or without modifica- +tion, are permitted provided that the following conditions are met: + +  1.   Redistributions of source code must retain the above copyright notice, +      this list of conditions and the following disclaimer. + +  2.   Redistributions in binary form must reproduce the above copyright +      notice, this list of conditions and the following disclaimer in the +      documentation and/or other materials provided with the distribution. + +  3.   All advertising materials mentioning features or use of this software +      must display the following acknowledgement: This product includes soft- +      ware developed by the NetBSD Foundation, Inc. and its contributors. + +  4.   Neither the name of The NetBSD Foundation nor the names of its con- +      tributors may be used to endorse or promote products derived from this +      software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSE- +QUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAM- +AGE. + +3.2.4  Theodore Ts'o. + +Copyright Theodore Ts'o, 1994, 1995, 1996, 1997, 1998, 1999.  All rights +reserved. + +Redistribution and use in source and binary forms, with or without modifica- +tion, are permitted provided that the following conditions are met: + +  1.  Redistributions of source code must retain the above copyright notice, +      and the entire permission notice in its entirety, including the dis- +      claimer of warranties. + +  2.  Redistributions in binary form must reproduce the above copyright +      notice, this list of conditions and the following disclaimer in the +      documentation and/or other materials provided with the distribution. + +  3.  he name of the author may not be used to endorse or promote products +      derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE, ALL OF WHICH ARE HEREBY DISCLAIMED.  IN NO +EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- +CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH- +ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF NOT +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +3.2.5  Theo de Raadt and Damien Miller + +Copyright (c) 1995,1999 Theo de Raadt.  All rights reserved.  Copyright (c) +2001-2002 Damien Miller.  All rights reserved. + +Redistribution and use in source and binary forms, with or without modifica- +tion, are permitted provided that the following conditions are met: + +  1.   Redistributions of source code must retain the above copyright notice, +      this list of conditions and the following disclaimer. + +  2.   Redistributions in binary form must reproduce the above copyright +      notice, this list of conditions and the following disclaimer in the +      documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER- +CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO +EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- +CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH- +ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. + +3.2.6  Todd C. Miller + +Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com> + +Permission to use, copy, modify, and distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright +notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MER- +CHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER +RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CON- +TRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +3.2.7  Thomas Winischhofer + +Copyright (C) 2001-2004 Thomas Winischhofer + +Redistribution and use in source and binary forms, with or without modifica- +tion, are permitted provided that the following conditions are met: + +  1.   Redistributions of source code must retain the above copyright notice, +      this list of conditions and the following disclaimer. + +  2.   Redistributions in binary form must reproduce the above copyright +      notice, this list of conditions and the following disclaimer in the +      documentation and/or other materials provided with the distribution. + +  3.   The name of the author may not be used to endorse or promote products +      derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESSED OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- +CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH- +ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. + +3.3  NVIDIA Corp + +Copyright (c) 1996 NVIDIA, Corp.  All rights reserved. + +NOTICE TO USER: The source code is copyrighted under U.S. and international +laws.  NVIDIA, Corp. of Sunnyvale, California owns the copyright and as +design patents pending on the design and interface of the NV chips.  Users +and possessors of this source code are hereby granted a nonexclusive, roy- +alty-free copyright and design patent license to use this code in individual +and commercial software. + +Any use of this source code must include, in the user documentation and +internal comments to the code, notices to the end user as follows: + +Copyright (c) 1996 NVIDIA, Corp.  NVIDIA design patents pending in the U.S. +and foreign countries. + +NVIDIA, CORP.  MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOURCE +CODE FOR ANY PURPOSE.  IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WAR- +RANTY OF ANY KIND.  NVIDIA, CORP. DISCLAIMS ALL WARRANTIES WITH REGARD TO +THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE.  IN NO EVENT SHALL NVIDIA, CORP.  BE LIABLE +FOR ANY SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY DAM- +AGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE. + +3.4  GLX Public License + +GLX PUBLIC LICENSE (Version 1.0 (2/11/99)) ("License") + +Subject to any third party claims, Silicon Graphics, Inc. ("SGI") hereby +grants permission to Recipient (defined below), under Recipient's copyrights +in the Original Software (defined below), to use, copy, modify, merge, pub- +lish, distribute, sublicense and/or sell copies of Subject Software (defined +below), and to permit persons to whom the Subject Software is furnished in +accordance with this License to do the same, subject to all of the following +terms and conditions, which Recipient accepts by engaging in any such use, +copying, modifying, merging, publishing, distributing, sublicensing or sell- +ing: + +1. Definitions. + +     (a) "Original Software" means source code of computer software code +     which is described in Exhibit A as Original Software. + +     (b) "Modifications" means any addition to or deletion from the sub- +     stance or structure of either the Original Software or any previous +     Modifications. When Subject Software is released as a series of +     files, a Modification means (i) any addition to or deletion from +     the contents of a file containing Original Software or previous +     Modifications and (ii) any new file that contains any part of the +     Original Code or previous Modifications. + +     (c) "Subject Software" means the Original Software or Modifications +     or the combination of the Original Software and Modifications, or +     portions of any of the foregoing. + +     (d) "Recipient" means an individual or a legal entity exercising +     rights under, and complying with all of the terms of, this License. +     For legal entities, "Recipient" includes any entity which controls, +     is controlled by, or is under common control with Recipient. For +     purposes of this definition, "control" of an entity means (a) the +     power, direct or indirect, to direct or manage such entity, or (b) +     ownership of fifty percent (50%) or more of the outstanding shares +     or beneficial ownership of such entity. + +2. Redistribution of Source Code Subject to These Terms. Redistributions of +Subject Software in source code form must retain the notice set forth in +Exhibit A, below, in every file. A copy of this License must be included in +any documentation for such Subject Software where the recipients' rights +relating to Subject Software are described. Recipient may distribute the +source code version of Subject Software under a license of Recipient's +choice, which may contain terms different from this License, provided that +(i) Recipient is in compliance with the terms of this License, and (ii) the +license terms include this Section 2 and Sections 3, 4, 7, 8, 10, 12 and 13 +of this License, which terms may not be modified or superseded by any other +terms of such license. If Recipient distributes the source code version under +a different license Recipient must make it absolutely clear that any terms +which differ from this License are offered by Recipient alone, not by SGI. +Recipient hereby agrees to indemnify SGI for any liability incurred by SGI as +a result of any such terms Recipient offers. + +3. Redistribution in Executable Form. The notice set forth in Exhibit A must +be conspicuously included in any notice in an executable version of Subject +Software, related documentation or collateral in which Recipient describes +the user's rights relating to the Subject Software. Recipient may distribute +the executable version of Subject Software under a license of Recipient's +choice, which may contain terms different from this License, provided that +(i) Recipient is in compliance with the terms of this License, and (ii) the +license terms include this Section 3 and Sections 4, 7, 8, 10, 12 and 13 of +this License, which terms may not be modified or superseded by any other +terms of such license. If Recipient distributes the executable version under +a different license Recipient must make it absolutely clear that any terms +which differ from this License are offered by Recipient alone, not by SGI. +Recipient hereby agrees to indemnify SGI for any liability incurred by SGI as +a result of any such terms Recipient offers. + +4. Termination. This License and the rights granted hereunder will terminate +automatically if Recipient fails to comply with terms herein and fails to +cure such breach within 30 days of the breach. Any sublicense to the Subject +Software which is properly granted shall survive any termination of this +License absent termination by the terms of such sublicense. Provisions which, +by their nature, must remain in effect beyond the termination of this License +shall survive. + +5. No Trademark Rights. This License does not grant any rights to use any +trade name, trademark or service mark whatsoever. No trade name, trademark or +service mark of SGI may be used to endorse or promote products derived from +the Subject Software without prior written permission of SGI. + +6. No Other Rights. This License does not grant any rights with respect to +the OpenGL API or to any software or hardware implementation thereof or to +any other software whatsoever, nor shall any other rights or licenses not +expressly granted hereunder arise by implication, estoppel or otherwise with +respect to the Subject Software. Title to and ownership of the Original Soft- +ware at all times remains with SGI. All rights in the Original Software not +expressly granted under this License are reserved. + +7. Compliance with Laws; Non-Infringement. Recipient shall comply with all +applicable laws and regulations in connection with use and distribution of +the Subject Software, including but not limited to, all export and import +control laws and regulations of the U.S. government and other countries. +Recipient may not distribute Subject Software that (i) in any way infringes +(directly or contributorily) the rights (including patent, copyright, trade +secret, trademark or other intellectual property rights of any kind) of any +other person or entity or (ii) breaches any representation or warranty, +express, implied or statutory, which under any applicable law it might be +deemed to have been distributed. + +8. Claims of Infringement. If Recipient at any time has knowledge of any one +or more third party claims that reproduction, modification, use, distribu- +tion, import or sale of Subject Software (including particular functionality +or code incorporated in Subject Software) infringes the third party's intel- +lectual property rights, Recipient must place in a well-identified web page +bearing the title "LEGAL" a description of each such claim and a description +of the party making each such claim in sufficient detail that a user of the +Subject Software will know whom to contact regarding the claim. Also, upon +gaining such knowledge of any such claim, Recipient must conspicuously +include the URL for such web page in the Exhibit A notice required under Sec- +tions 2 and 3, above, and in the text of any related documentation, license +agreement or collateral in which Recipient describes end user's rights relat- +ing to the Subject Software. If Recipient obtains such knowledge after it +makes Subject Software available to any other person or entity, Recipient +shall take other steps (such as notifying appropriate mailing lists or news- +groups) reasonably calculated to inform those who received the Subject Soft- +ware that new knowledge has been obtained. + +9. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, +WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT +LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS, MER- +CHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON- INFRINGING. SGI ASSUMES NO +RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE +PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY SER- +VICING, REPAIR OR CORRECTION.  THIS DISCLAIMER OF WARRANTY CONSTITUTES AN +ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED +HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +10. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THE- +ORY, WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIA- +BILITY), CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR +ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY +CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK +STOPPAGE, LOSS OF DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER +COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF +THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY +TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SGI's NEGLIGENCE TO +THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO +NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, +SO THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO RECIPIENT. + +11. Indemnity. Recipient shall be solely responsible for damages arising, +directly or indirectly, out of its utilization of rights under this License. +Recipient will defend, indemnify and hold harmless Silicon Graphics, Inc. +from and against any loss, liability, damages, costs or expenses (including +the payment of reasonable attorneys fees) arising out of Recipient's use, +modification, reproduction and distribution of the Subject Software or out of +any representation or warranty made by Recipient. + +12. U.S. Government End Users. The Subject Software is a "commercial item" +consisting of "commercial computer software" as such terms are defined in +title 48 of the Code of Federal Regulations and all U.S.  Government End +Users acquire only the rights set forth in this License and are subject to +the terms of this License. + +13. Miscellaneous. This License represents the complete agreement concerning +subject matter hereof. If any provision of this License is held to be unen- +forceable, such provision shall be reformed so as to achieve as nearly as +possible the same economic effect as the original provision and the remainder +of this License will remain in effect. This License shall be governed by and +construed in accordance with the laws of the United States and the State of +California as applied to agreements entered into and to be performed entirely +within California between California residents. Any litigation relating to +this License shall be subject to the exclusive jurisdiction of the Federal +Courts of the Northern District of California (or, absent subject matter +jurisdiction in such courts, the courts of the State of California), with +venue lying exclusively in Santa Clara County, California, with the losing +party responsible for costs, including without limitation, court costs and +reasonable attorneys fees and expenses. The application of the United Nations +Convention on Contracts for the International Sale of Goods is expressly +excluded. Any law or regulation which provides that the language of a con- +tract shall be construed against the drafter shall not apply to this License. + +Exhibit A + +The contents of this file are subject to Sections 2, 3, 4, 7, 8, 10, 12 and +13 of the GLX Public License Version 1.0 (the "License"). You may not use +this file except in compliance with those sections of the License. You may +obtain a copy of the License at Silicon Graphics, Inc., attn: Legal Services, +2011 N. Shoreline Blvd., Mountain View, CA 94043 or at +http://www.sgi.com/software/opensource/glx/license.html. + +Software distributed under the License is distributed on an "AS IS" basis. +ALL WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED +WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF NON- +INFRINGEMENT. See the License for the specific language governing rights and +limitations under the License. + +The Original Software is GLX version 1.2 source code, released February, +1999. The developer of the Original Software is Silicon Graphics, Inc.  Those +portions of the Subject Software created by Silicon Graphics, Inc.  are Copy- +right (c) 1991-9 Silicon Graphics, Inc. All Rights Reserved. + +3.5  CID Font Code Public License + +CID FONT CODE PUBLIC LICENSE (Version 1.0 (3/31/99))("License") + +Subject to any applicable third party claims, Silicon Graphics, Inc. ("SGI") +hereby grants permission to Recipient (defined below), under SGI's copyrights +in the Original Software (defined below), to use, copy, modify, merge, pub- +lish, distribute, sublicense and/or sell copies of Subject Software (defined +below) in both source code and executable form, and to permit persons to whom +the Subject Software is furnished in accordance with this License to do the +same, subject to all of the following terms and conditions, which Recipient +accepts by engaging in any such use, copying, modifying, merging, publica- +tion, distributing, sublicensing or selling: + +1. Definitions. + +     a. "Original Software" means source code of computer software code +     that is described in Exhibit A as Original Software. + +     b. "Modifications" means any addition to or deletion from the sub- +     stance or structure of either the Original Software or any previous +     Modifications. When Subject Software is released as a series of +     files, a Modification means (i) any addition to or deletion from +     the contents of a file containing Original Software or previous +     Modifications and (ii) any new file that contains any part of the +     Original Code or previous Modifications. + +     c. "Subject Software" means the Original Software or Modifications +     or the combination of the Original Software and Modifications, or +     portions of any of the foregoing. + +     d. "Recipient" means an individual or a legal entity exercising +     rights under the terms of this License. For legal entities, "Recip- +     ient" includes any entity that controls, is controlled by, or is +     under common control with Recipient. For purposes of this defini- +     tion, "control" of an entity means (i) the power, direct or indi- +     rect, to direct or manage such entity, or (ii) ownership of fifty +     percent (50%) or more of the outstanding shares or beneficial own- +     ership of such entity. + +     e. "Required Notice" means the notice set forth in Exhibit A to +     this License. + +     f. "Accompanying Technology" means any software or other technology +     that is not a Modification and that is distributed or made publicly +     available by Recipient with the Subject Software.  Separate soft- +     ware files that do not contain any Original Software or any previ- +     ous Modification shall not be deemed a Modification, even if such +     software files are aggregated as part of a product, or in any +     medium of storage, with any file that does contain Original Soft- +     ware or any previous Modification. + +2. License Terms. All distribution of the Subject Software must be made sub- +ject to the terms of this License. A copy of this License and the Required +Notice must be included in any documentation for Subject Software where +Recipient's rights relating to Subject Software and/or any Accompanying Tech- +nology are described. Distributions of Subject Software in source code form +must also include the Required Notice in every file distributed. In addition, +a ReadMe file entitled "Important Legal Notice" must be distributed with each +distribution of one or more files that incorporate Subject Software. That +file must be included with distributions made in both source code and exe- +cutable form. A copy of the License and the Required Notice must be included +in that file.  Recipient may distribute Accompanying Technology under a +license of Recipient's choice, which may contain terms different from this +License, provided that (i) Recipient is in compliance with the terms of this +License, (ii) such other license terms do not modify or supersede the terms +of this License as applicable to the Subject Software, (iii) Recipient hereby +indemnifies SGI for any liability incurred by SGI as a result of the distri- +bution of Accompanying Technology or the use of other license terms. + +3. Termination. This License and the rights granted hereunder will terminate +automatically if Recipient fails to comply with terms herein and fails to +cure such breach within 30 days of the breach. Any sublicense to the Subject +Software that is properly granted shall survive any termination of this +License absent termination by the terms of such sublicense. Provisions which, +by their nature, must remain in effect beyond the termination of this License +shall survive. + +4. Trademark Rights. This License does not grant any rights to use any trade +name, trademark or service mark whatsoever. No trade name, trademark or ser- +vice mark of SGI may be used to endorse or promote products derived from or +incorporating any Subject Software without prior written permission of SGI. + +5. No Other Rights. No rights or licenses not expressly granted hereunder +shall arise by implication, estoppel or otherwise. Title to and ownership of +the Original Software at all times remains with SGI. All rights in the Origi- +nal Software not expressly granted under this License are reserved. + +6. Compliance with Laws; Non-Infringement. Recipient shall comply with all +applicable laws and regulations in connection with use and distribution of +the Subject Software, including but not limited to, all export and import +control laws and regulations of the U.S. government and other countries. +Recipient may not distribute Subject Software that (i) in any way infringes +(directly or contributorily) the rights (including patent, copyright, trade +secret, trademark or other intellectual property rights of any kind) of any +other person or entity, or (ii) breaches any representation or warranty, +express, implied or statutory, which under any applicable law it might be +deemed to have been distributed. + +7. Claims of Infringement. If Recipient at any time has knowledge of any one +or more third party claims that reproduction, modification, use, distribu- +tion, import or sale of Subject Software (including particular functionality +or code incorporated in Subject Software) infringes the third party's intel- +lectual property rights, Recipient must place in a well-identified web page +bearing the title "LEGAL" a description of each such claim and a description +of the party making each such claim in sufficient detail that a user of the +Subject Software will know whom to contact regarding the claim. Also, upon +gaining such knowledge of any such claim, Recipient must conspicuously +include the URL for such web page in the Required Notice, and in the text of +any related documentation, license agreement or collateral in which Recipient +describes end user's rights relating to the Subject Software. If Recipient +obtains such knowledge after it makes Subject Software available to any other +person or entity, Recipient shall take other steps (such as notifying appro- +priate mailing lists or newsgroups) reasonably calculated to provide such +knowledge to those who received the Subject Software. + +8. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, +WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT +LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS, MER- +CHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. SGI ASSUMES NO +RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE +PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY SER- +VICING, REPAIR OR CORRECTION.  THIS DISCLAIMER OF WARRANTY CONSTITUTES AN +ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED +HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +9. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, +WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIABILITY), +CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SUBJECT SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SUBJECT SOFTWARE. SOME JURISDICTIONS DO NOT +ALLOW THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES, SO THIS EXCLUSION AND +LIMITATION MAY NOT APPLY TO RECIPIENT TO THE EXTENT SO DISALLOWED. + +10. Indemnity. Recipient shall be solely responsible for damages arising, +directly or indirectly, out of its utilization of rights under this License. +Recipient will defend, indemnify and hold SGI and its successors and assigns +harmless from and against any loss, liability, damages, costs or expenses +(including the payment of reasonable attorneys fees) arising out of (Recipi- +ent's use, modification, reproduction and distribution of the Subject Soft- +ware or out of any representation or warranty made by Recipient. + +11. U.S. Government End Users. The Subject Software is a "commercial item" +consisting of "commercial computer software" as such terms are defined in +title 48 of the Code of Federal Regulations and all U.S. Government End Users +acquire only the rights set forth in this License and are subject to the +terms of this License. + +12. Miscellaneous. This License represents the complete agreement concerning +subject matter hereof. If any provision of this License is held to be unen- +forceable by any judicial or administrative authority having proper jurisdic- +tion with respect thereto, such provision shall be reformed so as to achieve +as nearly as possible the same economic effect as the original provision and +the remainder of this License will remain in effect. This License shall be +governed by and construed in accordance with the laws of the United States +and the State of California as applied to agreements entered into and to be +performed entirely within California between California residents. Any liti- +gation relating to this License shall be subject to the exclusive jurisdic- +tion of the Federal Courts of the Northern District of California (or, absent +subject matter jurisdiction in such courts, the courts of the State of Cali- +fornia), with venue lying exclusively in Santa Clara County, California, with +the losing party responsible for costs, including without limitation, court +costs and reasonable attorneys fees and expenses. The application of the +United Nations Convention on Contracts for the International Sale of Goods is +expressly excluded. Any law or regulation that provides that the language of +a contract shall be construed against the drafter shall not apply to this +License. + +Exhibit A + +Copyright (c) 1994-1999 Silicon Graphics, Inc. + +The contents of this file are subject to the CID Font Code Public License +Version 1.0 (the "License"). You may not use this file except in compliance +with the License. You may obtain a copy of the License at Silicon Graphics, +Inc., attn: Legal Services, 2011 N. Shoreline Blvd., Mountain View, CA 94043 +or at http://www.sgi.com/software/opensource/cid/license.html + +Software distributed under the License is distributed on an "AS IS" basis. +ALL WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED +WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF NON- +INFRINGEMENT. See the License for the specific language governing rights and +limitations under the License. + +The Original Software (as defined in the License) is CID font code that was +developed by Silicon Graphics, Inc. Those portions of the Subject Software +(as defined in the License) that were created by Silicon Graphics, Inc. are +Copyright (c) 1994-1999 Silicon Graphics, Inc. All Rights Reserved. + +[NOTE: When using this text in connection with Subject Software delivered +solely in object code form, Recipient may replace the words "this file" with +"this software" in both the first and second sentences.] + +3.6  Bitstream Vera Fonts Copyright + +The fonts have a generous copyright, allowing derivative works (as long as +"Bitstream" or "Vera" are not in the names), and full redistribution (so long +as they are not *sold* by themselves). They can be be bundled, redistributed +and sold with any software. + +The fonts are distributed under the following copyright: + +Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is +a trademark of Bitstream, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of the fonts accompanying this license ("Fonts") and associated documentation +files (the "Font Software"), to reproduce and distribute the Font Software, +including without limitation the rights to use, copy, merge, publish, dis- +tribute, and/or sell copies of the Font Software, and to permit persons to +whom the Font Software is furnished to do so, subject to the following condi- +tions: + +The above copyright and trademark notices and this permission notice shall be +included in all copies of one or more of the Font Software typefaces. + +The Font Software may be modified, altered, or added to, and in particular +the designs of glyphs or characters in the Fonts may be modified and addi- +tional glyphs or characters may be added to the Fonts, only if the fonts are +renamed to names not containing either the words "Bitstream" or the word +"Vera". + +This License becomes null and void to the extent applicable to Fonts or Font +Software that has been modified and is distributed under the "Bitstream Vera" +names. + +The Font Software may be sold as part of a larger software package but no +copy of one or more of the Font Software typefaces may be sold by itself. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, +TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDA- +TION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GEN- +ERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR +INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFT- +WARE. + +Except as contained in this notice, the names of Gnome, the Gnome Foundation, +and Bitstream Inc., shall not be used in advertising or otherwise to promote +the sale, use or other dealings in this Font Software without prior written +authorization from the Gnome Foundation or Bitstream Inc., respectively. For +further information, contact: fonts at gnome dot org. + +3.7  Bigelow & Holmes Inc and URW++ GmbH Luxi font license + +Luxi fonts copyright (c) 2001 by Bigelow & Holmes Inc. Luxi font instruction +code copyright (c) 2001 by URW++ GmbH. All Rights Reserved. Luxi is a regis- +tered trademark of Bigelow & Holmes Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of these Fonts and associated documentation files (the "Font Software"), to +deal in the Font Software, including without limitation the rights to use, +copy, merge, publish, distribute, sublicense, and/or sell copies of the Font +Software, and to permit persons to whom the Font Software is furnished to do +so, subject to the following conditions: + +The above copyright and trademark notices and this permission notice shall be +included in all copies of one or more of the Font Software. + +The Font Software may not be modified, altered, or added to, and in particu- +lar the designs of glyphs or characters in the Fonts may not be modified nor +may additional glyphs or characters be added to the Fonts. This License +becomes null and void when the Fonts or Font Software have been modified. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, +TRADEMARK, OR OTHER RIGHT.  IN NO EVENT SHALL BIGELOW & HOLMES INC. OR URW++ +GMBH. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GEN- +ERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR +INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFT- +WARE. + +Except as contained in this notice, the names of Bigelow & Holmes Inc. and +URW++ GmbH. shall not be used in advertising or otherwise to promote the +sale, use or other dealings in this Font Software without prior written +authorization from Bigelow & Holmes Inc. and URW++ GmbH. + +For further information, contact: + +info@urwpp.de or design@bigelowandholmes.com + +     $Id: LICENSE,v 1.3 2004/09/03 23:41:21 kem Exp $ diff --git a/abs/not_built/core/xf86-video-v4l/PKGBUILD b/abs/not_built/core/xf86-video-v4l/PKGBUILD new file mode 100644 index 0000000..338e96a --- /dev/null +++ b/abs/not_built/core/xf86-video-v4l/PKGBUILD @@ -0,0 +1,27 @@ +# $Id: PKGBUILD 88557 2010-08-24 08:40:12Z jgc $ +#Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-v4l +pkgver=0.2.0 +pkgrel=6 +pkgdesc="X.org v4l video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc') +makedepends=('xorg-server-devel') +conflicts=('xorg-server<1.9.0') +groups=('xorg-video-drivers') +options=('!libtool') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 LICENSE) +md5sums=('2251ae2a0a905764941cd7b098e85ad1' +         '7d4d018f6bbff7e42672d1aabc75c5cf') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-voodoo/PKGBUILD b/abs/not_built/core/xf86-video-voodoo/PKGBUILD new file mode 100644 index 0000000..c0520d8 --- /dev/null +++ b/abs/not_built/core/xf86-video-voodoo/PKGBUILD @@ -0,0 +1,26 @@ +# $Id: PKGBUILD 88548 2010-08-24 08:33:41Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-voodoo +pkgver=1.2.4 +pkgrel=2 +pkgdesc="X.org 3dfx Voodoo1/Voodoo2 2D video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc') +makedepends=('xorg-server-devel' 'xf86dgaproto') +conflicts=('xorg-server<1.9.0') +groups=('xorg-video-drivers') +options=('!libtool') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('7ecd232cc0b7fe507e18e08799791eefa9fdaf48') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" +} diff --git a/abs/not_built/core/xf86-video-xgi/PKGBUILD b/abs/not_built/core/xf86-video-xgi/PKGBUILD new file mode 100644 index 0000000..a4de300 --- /dev/null +++ b/abs/not_built/core/xf86-video-xgi/PKGBUILD @@ -0,0 +1,25 @@ +# $Id: $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-xgi +pkgver=1.6.0 +pkgrel=1 +pkgdesc="X.org XGI video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc') +makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'glproto' 'mesa' 'xf86dgaproto') +options=('!libtool') +groups=('xorg-video-drivers') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('826f14d6ba799cd2aae9f0c818f84cf8b75f1ddb') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86-video-xgixp/PKGBUILD b/abs/not_built/core/xf86-video-xgixp/PKGBUILD new file mode 100644 index 0000000..56acbc5 --- /dev/null +++ b/abs/not_built/core/xf86-video-xgixp/PKGBUILD @@ -0,0 +1,25 @@ +# $Id: $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86-video-xgixp +pkgver=1.8.0 +pkgrel=1 +pkgdesc="X.org XGIXP video driver" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('glibc') +makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa') +options=('!libtool') +groups=('xorg-video-drivers') +source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('67caeaa4c746572160208fe23c7257f62cb442a3') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +} diff --git a/abs/not_built/core/xf86bigfontproto/PKGBUILD b/abs/not_built/core/xf86bigfontproto/PKGBUILD new file mode 100644 index 0000000..ad7c8eb --- /dev/null +++ b/abs/not_built/core/xf86bigfontproto/PKGBUILD @@ -0,0 +1,25 @@ +# $Id: PKGBUILD 50992 2009-09-04 12:38:04Z jgc $ +#Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xf86bigfontproto +pkgver=1.2.0 +pkgrel=1 +pkgdesc="X11 Big Fonts extension wire protocol" +arch=(any) +url="http://xorg.freedesktop.org/" +license=('custom') +source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2) +sha1sums=('312a2ea708b257520c1af4393b69d73a393a478f') + +build() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  ./configure --prefix=/usr || return 1 +  make || return 1 +} +package() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  make DESTDIR="${pkgdir}" install || return 1 +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1 +} + diff --git a/abs/not_built/core/xmlrpc-c/PKGBUILD b/abs/not_built/core/xmlrpc-c/PKGBUILD new file mode 100644 index 0000000..02a386c --- /dev/null +++ b/abs/not_built/core/xmlrpc-c/PKGBUILD @@ -0,0 +1,39 @@ +# $Id: $ +# Contributor: Pierre Schmitz <pierre@archlinux.de> +# Contributor: Vitaliy Berdinskikh <skipper13@root.ua> +# Maintainer: Daenyth <Daenyth+Arch [at] gmail [dot] com> + +pkgname=xmlrpc-c +pkgver=1858 +pkgrel=1 +pkgdesc='This library provides a modular implementation of XML-RPC for C and C++' +arch=('i686' 'x86_64') +url='http://xmlrpc-c.sourceforge.net/' +license=('custom:xmlrpc-c') +depends=('curl' 'libxml2' 'gcc-libs' 'zlib') +makedepends=('libtool') +options=('!makeflags' '!libtool') +source=("ftp://ftp.archlinux.org/other/$pkgname/$pkgname-$pkgver.tar.bz2") +md5sums=('2bd41d1827ebd12ca8f0b9ef0b015228') + +build() { +	[ "${CARCH}" = "x86_64" ] && export CFLAGS="${CFLAGS} -fPIC" + +	cd $srcdir/$pkgname +	./configure --prefix=/usr \ +		--enable-libxml2-backend \ +		--disable-cgi-server \ +		--disable-abyss-server \ +		--disable-libwww-client \ +		--disable-wininet-client + +	make CFLAGS_PERSONAL="${CFLAGS}" || return 1 +} +package() { +	cd $srcdir/$pkgname +	make DESTDIR=$pkgdir install + +	install -m 644 -D doc/COPYING $pkgdir/usr/share/licenses/${pkgname}/COPYING +  mv $pkgdir/usr/man $pkgdir/usr/share/man +} +# vim:set ts=2 sw=2 et: diff --git a/abs/not_built/core/xorg-apps/LICENSE b/abs/not_built/core/xorg-apps/LICENSE new file mode 100644 index 0000000..e188a3b --- /dev/null +++ b/abs/not_built/core/xorg-apps/LICENSE @@ -0,0 +1,1354 @@ + +luit: + +Copyright (c) 2001 by Juliusz Chroboczek +Copyright (c) 2002 by Tomohiro KUBOTA + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +oclock: + +Copyright 1989, 1998  The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from The Open Group. + +  +  Copyright 2005  Red Hat, Inc. +  +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that +  copyright notice and this permission notice appear in supporting +  documentation, and that the name of Red Hat not be used in +  advertising or publicity pertaining to distribution of the software without +  specific, written prior permission.  Red Hat makes no +  representations about the suitability of this software for any purpose.  It +  is provided "as is" without express or implied warranty. +  +  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +  PERFORMANCE OF THIS SOFTWARE. + +x11perf: + +Copyright 1988, 1989 by Digital Equipment Corporation, Maynard, Massachusetts. + +                        All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its  +documentation for any purpose and without fee is hereby granted,  +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in  +supporting documentation, and that the name of Digital not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission.   + +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + +  +  Copyright 2005  Red Hat, Inc. +  +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that +  copyright notice and this permission notice appear in supporting +  documentation, and that the name of Red Hat not be used in +  advertising or publicity pertaining to distribution of the software without +  specific, written prior permission.  Red Hat makes no +  representations about the suitability of this software for any purpose.  It +  is provided "as is" without express or implied warranty. +  +  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +  PERFORMANCE OF THIS SOFTWARE. + + +xbiff: + +Copyright (c) 1988  X Consortium + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from the X Consortium. + + +  Copyright 2005  Red Hat, Inc. +  +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that +  copyright notice and this permission notice appear in supporting +  documentation, and that the name of Red Hat not be used in +  advertising or publicity pertaining to distribution of the software without +  specific, written prior permission.  Red Hat makes no +  representations about the suitability of this software for any purpose.  It +  is provided "as is" without express or implied warranty. +  +  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +  PERFORMANCE OF THIS SOFTWARE. + + +xcalc: +Copyright (c) 1989, 1994  X Consortium + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from the X Consortium. + +------------------------------------------------------------------------------ + +Copyright 2005 Red Hat, Inc. + +Permission to use, copy, modify, distribute, and sell this software +and its documentation for any purpose is hereby granted without fee, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Red Hat not be used in +advertising or publicity pertaining to distribution of the software +without specific, written prior permission.  Red Hat makes no +representations about the suitability of this software for any +purpose.  It is provided "as is" without express or implied warranty. + +RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF +USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + + + +xclipboard: +  +  Copyright 2005  Red Hat, Inc. +  +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that +  copyright notice and this permission notice appear in supporting +  documentation, and that the name of Red Hat not be used in +  advertising or publicity pertaining to distribution of the software without +  specific, written prior permission.  Red Hat makes no +  representations about the suitability of this software for any purpose.  It +  is provided "as is" without express or implied warranty. +  +  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +  PERFORMANCE OF THIS SOFTWARE. + +Copyright 1989, 1998  The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from The Open Group. + + +xclock: + +Copyright 1987, 1988, 1998  The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from The Open Group. + + +Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts. + +                        All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its  +documentation for any purpose and without fee is hereby granted,  +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in  +supporting documentation, and that the name of Digital not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission.   + +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + +******************************************************************/ +/* + * Copyright 2004 Sun Microsystems, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of Sun Microsystems, Inc. nor the names of its + *    contributors may be used to endorse or promote products derived from + *    this software without specific prior written permission. + * + * This software is provided "AS IS," without a warranty of any kind. + * + * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, + * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. + * SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES OR + * LIABILITIES  SUFFERED BY LICENSEE AS A RESULT OF  OR RELATING TO USE, + * MODIFICATION OR DISTRIBUTION OF THE SOFTWARE OR ITS DERIVATIVES. + * IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, + * PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, + * INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE + * THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE + * SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + * + +  Copyright 2005  Red Hat, Inc. +  +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that +  copyright notice and this permission notice appear in supporting +  documentation, and that the name of Red Hat not be used in +  advertising or publicity pertaining to distribution of the software without +  specific, written prior permission.  Red Hat makes no +  representations about the suitability of this software for any purpose.  It +  is provided "as is" without express or implied warranty. +  +  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +  PERFORMANCE OF THIS SOFTWARE. + + +xconsole: +  +  Copyright 2005  Red Hat, Inc. +  +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that +  copyright notice and this permission notice appear in supporting +  documentation, and that the name of Red Hat not be used in +  advertising or publicity pertaining to distribution of the software without +  specific, written prior permission.  Red Hat makes no +  representations about the suitability of this software for any purpose.  It +  is provided "as is" without express or implied warranty. +  +  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +  PERFORMANCE OF THIS SOFTWARE. + +Copyright 1990, 1998  The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from The Open Group. + + +xcursorgen: +Copyright (C) 2002 Manish Singh + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of Manish Singh not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission.  Manish Singh makes no +representations about the suitability of this software for any purpose.  It +is provided "as is" without express or implied warranty. + +MANISH SINGH DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL MANISH SINGH BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + + +xedit: + +Copyright (c) 1987, 1993 +     The Regents of the University of California.  All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright +   notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright +   notice, this list of conditions and the following disclaimer in the +   documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software +   must display the following acknowledgement: +     This product includes software developed by the University of +     California, Berkeley and its contributors. +4. Neither the name of the University nor the names of its contributors +   may be used to endorse or promote products derived from this software +   without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + + +Copyright (c) 1994 +	The Regents of the University of California.  All rights reserved. + +This code is derived from software contributed to Berkeley by +Jan-Simon Pendry. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright +   notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright +   notice, this list of conditions and the following disclaimer in the +   documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software +   must display the following acknowledgement: +	This product includes software developed by the University of +	California, Berkeley and its contributors. +4. Neither the name of the University nor the names of its contributors +   may be used to endorse or promote products derived from this software +   without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + + + +			  COPYRIGHT 1987 +		   DIGITAL EQUIPMENT CORPORATION +		       MAYNARD, MASSACHUSETTS +			ALL RIGHTS RESERVED. + +THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE AND +SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. +DIGITAL MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THIS SOFTWARE FOR +ANY PURPOSE.  IT IS SUPPLIED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. + +IF THE SOFTWARE IS MODIFIED IN A MANNER CREATING DERIVATIVE COPYRIGHT RIGHTS, +APPROPRIATE LEGENDS MAY BE PLACED ON THE DERIVATIVE WORK IN ADDITION TO THAT +SET FORTH ABOVE. + + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, provided +that the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of Digital Equipment Corporation not be +used in advertising or publicity pertaining to distribution of the software +without specific, written prior permission. + +Copyright 2004 Roland Mainz <roland.mainz@nrubsig.org> + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from The Open Group. + + +Copyright (c) 1999-2002 by The XFree86 Project, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL +THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Except as contained in this notice, the name of the XFree86 Project shall +not be used in advertising or otherwise to promote the sale, use or other +dealings in this Software without prior written authorization from the +XFree86 Project. + + +Copyright (c) 2007 Paulo Cesar Pereira de Andrade + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + + +xeyes: +Copyright (c) 1991  X Consortium + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from the X Consortium. + +  Copyright 2005  Red Hat, Inc. +  +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that +  copyright notice and this permission notice appear in supporting +  documentation, and that the name of Red Hat not be used in +  advertising or publicity pertaining to distribution of the software without +  specific, written prior permission.  Red Hat makes no +  representations about the suitability of this software for any purpose.  It +  is provided "as is" without express or implied warranty. +  +  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +  PERFORMANCE OF THIS SOFTWARE. + + +xkill: +  +  Copyright 2005  Red Hat, Inc. +  +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that +  copyright notice and this permission notice appear in supporting +  documentation, and that the name of Red Hat not be used in +  advertising or publicity pertaining to distribution of the software without +  specific, written prior permission.  Red Hat makes no +  representations about the suitability of this software for any purpose.  It +  is provided "as is" without express or implied warranty. +  +  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +  PERFORMANCE OF THIS SOFTWARE. + +Copyright 1988, 1998  The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from The Open Group. + + +xload: +  +  Copyright 2005  Red Hat, Inc. +  +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that +  copyright notice and this permission notice appear in supporting +  documentation, and that the name of Red Hat not be used in +  advertising or publicity pertaining to distribution of the software without +  specific, written prior permission.  Red Hat makes no +  representations about the suitability of this software for any purpose.  It +  is provided "as is" without express or implied warranty. +  +  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +  PERFORMANCE OF THIS SOFTWARE. + +Copyright (c) 1989  X Consortium + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from the X Consortium. + + +xlogo: + +Copyright 1988, 1994, 1998  The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from The Open Group. + +  Copyright 2005  Red Hat, Inc. +  +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that +  copyright notice and this permission notice appear in supporting +  documentation, and that the name of Red Hat not be used in +  advertising or publicity pertaining to distribution of the software without +  specific, written prior permission.  Red Hat makes no +  representations about the suitability of this software for any purpose.  It +  is provided "as is" without express or implied warranty. +  +  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +  PERFORMANCE OF THIS SOFTWARE. + +Copyright 2004 Roland Mainz <roland.mainz@nrubsig.org> + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from The Open Group. + + +xmag: +Copyright 1989, 1998  The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from The Open Group. + + * Copyright (C) 1999 The XFree86 Project, Inc.  All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE + * XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of the XFree86 Project shall + * not be used in advertising or otherwise to promote the sale, use or other + * dealings in this Software without prior written authorization from the + * XFree86 Project. + +  Copyright 2005  Red Hat, Inc. +  +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that +  copyright notice and this permission notice appear in supporting +  documentation, and that the name of Red Hat not be used in +  advertising or publicity pertaining to distribution of the software without +  specific, written prior permission.  Red Hat makes no +  representations about the suitability of this software for any purpose.  It +  is provided "as is" without express or implied warranty. +  +  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +  PERFORMANCE OF THIS SOFTWARE. + + +xman: +  Copyright 2005  Red Hat, Inc. +  +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that +  copyright notice and this permission notice appear in supporting +  documentation, and that the name of Red Hat not be used in +  advertising or publicity pertaining to distribution of the software without +  specific, written prior permission.  Red Hat makes no +  representations about the suitability of this software for any purpose.  It +  is provided "as is" without express or implied warranty. +  +  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +  PERFORMANCE OF THIS SOFTWARE. + +Copyright (c) 1987, 1988  X Consortium +Copyright (c) 1991  X Consortium + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from the X Consortium. + +Copyright 2004 Roland Mainz <roland.mainz@nrubsig.org> + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from The Open Group. + + +xmessage: +  +  Copyright 2005  Red Hat, Inc. +  +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that +  copyright notice and this permission notice appear in supporting +  documentation, and that the name of Red Hat not be used in +  advertising or publicity pertaining to distribution of the software without +  specific, written prior permission.  Red Hat makes no +  representations about the suitability of this software for any purpose.  It +  is provided "as is" without express or implied warranty. +  +  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +  PERFORMANCE OF THIS SOFTWARE. + + * Copyright (C) 2003 The XFree86 Project, Inc.  All Rights Reserved. + *  + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + *  + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + *  + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT.  IN NO EVENT SHALL THE XFREE86 PROJECT BE LIABLE + * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *  + * Except as contained in this notice, the name of the XFree86 Project + * shall not be used in advertising or otherwise to promote the sale, + * use or other dealings in this Software without prior written + * authorization from the XFree86 Project. + +Copyright (c) 1988, 1991, 1994  X Consortium + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from the X Consortium. + + +xmh: +  Copyright 2005  Red Hat, Inc. +  +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that +  copyright notice and this permission notice appear in supporting +  documentation, and that the name of Red Hat not be used in +  advertising or publicity pertaining to distribution of the software without +  specific, written prior permission.  Red Hat makes no +  representations about the suitability of this software for any purpose.  It +  is provided "as is" without express or implied warranty. +  +  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +  PERFORMANCE OF THIS SOFTWARE. + +Copyright (c) 1989  X Consortium + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE +X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from the X Consortium. + + * + *			COPYRIGHT 1987, 1989 + *		   DIGITAL EQUIPMENT CORPORATION + *		       MAYNARD, MASSACHUSETTS + *			ALL RIGHTS RESERVED. + * + * THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE AND + * SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. + * DIGITAL MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THIS SOFTWARE FOR + * ANY PURPOSE.  IT IS SUPPLIED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. + * + * IF THE SOFTWARE IS MODIFIED IN A MANNER CREATING DERIVATIVE COPYRIGHT + * RIGHTS, APPROPRIATE LEGENDS MAY BE PLACED ON THE DERIVATIVE WORK IN + * ADDITION TO THAT SET FORTH ABOVE. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, provided + * that the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of Digital Equipment Corporation not be + * used in advertising or publicity pertaining to distribution of the software + * without specific, written prior permission. + +Copyright (c) 1987, 1988  X Consortium +Copyright (c) 1993  X Consortium + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE +X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from the X Consortium. + + +Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts. + +                        All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its  +documentation for any purpose and without fee is hereby granted,  +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in  +supporting documentation, and that the name of Digital not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission.   + +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + + +xpr: +  Copyright 2005  Red Hat, Inc. +  +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that +  copyright notice and this permission notice appear in supporting +  documentation, and that the name of Red Hat not be used in +  advertising or publicity pertaining to distribution of the software without +  specific, written prior permission.  Red Hat makes no +  representations about the suitability of this software for any purpose.  It +  is provided "as is" without express or implied warranty. +  +  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +  PERFORMANCE OF THIS SOFTWARE. + +Copyright (c) 1985  X Consortium + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from the X Consortium. + +Copyright (c) 1988 by Hewlett-Packard Company + +Permission to use, copy, modify, and distribute this software  +and its documentation for any purpose and without fee is hereby  +granted, provided that the above copyright notice appear in all  +copies and that both that copyright notice and this permission  +notice appear in supporting documentation, and that  +Hewlett-Packard not be used in advertising or publicity  +pertaining to distribution of the software without specific, written  +prior permission. + +Copyright (c) 1988  X Consortium + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from the X Consortium. + + +xwd: +  Copyright 2005  Red Hat, Inc. +  +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that +  copyright notice and this permission notice appear in supporting +  documentation, and that the name of Red Hat not be used in +  advertising or publicity pertaining to distribution of the software without +  specific, written prior permission.  Red Hat makes no +  representations about the suitability of this software for any purpose.  It +  is provided "as is" without express or implied warranty. +  +  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +  PERFORMANCE OF THIS SOFTWARE. + + * Copyright 2007 Kim woelders + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting documentation, and + * that the name of the copyright holders not be used in advertising or + * publicity pertaining to distribution of the software without specific, + * written prior permission.  The copyright holders make no representations + * about the suitability of this software for any purpose.  It is provided "as + * is" without express or implied warranty. + * + * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + +Copyright 1993, 1998  The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from The Open Group. + +Copyright 1994 Hewlett-Packard Co. +Copyright 1996, 1998  The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from The Open Group. + + +xwud: +  +  Copyright 2005  Red Hat, Inc. +  +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that +  copyright notice and this permission notice appear in supporting +  documentation, and that the name of Red Hat not be used in +  advertising or publicity pertaining to distribution of the software without +  specific, written prior permission.  Red Hat makes no +  representations about the suitability of this software for any purpose.  It +  is provided "as is" without express or implied warranty. +  +  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +  PERFORMANCE OF THIS SOFTWARE. + +Copyright 1985, 1986, 1988, 1998  The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from The Open Group. diff --git a/abs/not_built/core/xorg-apps/PKGBUILD b/abs/not_built/core/xorg-apps/PKGBUILD new file mode 100644 index 0000000..a80ceb5 --- /dev/null +++ b/abs/not_built/core/xorg-apps/PKGBUILD @@ -0,0 +1,16 @@ +# $Id: PKGBUILD 96980 2010-10-25 20:36:12Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xorg-apps +pkgver=7.6 +pkgrel=1 +pkgdesc="Transition package depending on various X.Org applications" +arch=(any) +url="http://xorg.freedesktop.org/" +license=('GPL') +depends=('xorg-luit' 'xorg-xpr' 'xorg-xwd' 'xorg-xwud' 'xorg-x11perf' 'xorg-xcursorgen' 'xorg-xkill') +#removed: oclock xclock xbiff xclipboard xconsole xeyes xload xlogo xmag xmessage xcalc xman xedit + +build() { +  return 0 +} diff --git a/abs/not_built/core/xorg-fonts-75dpi/PKGBUILD b/abs/not_built/core/xorg-fonts-75dpi/PKGBUILD new file mode 100644 index 0000000..52954d7 --- /dev/null +++ b/abs/not_built/core/xorg-fonts-75dpi/PKGBUILD @@ -0,0 +1,41 @@ +# $Id: PKGBUILD 71681 2010-03-08 12:06:26Z jgc $ +# Maintainer: Alexander Baldeck <alexander@archlinux.org> +# Contributor: Jan de Groot <jgc@archlinux.org> +pkgname=xorg-fonts-75dpi +pkgver=1.0.1 +pkgrel=4 +pkgdesc="X.org 75dpi fonts" +arch=(any) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=(xorg-fonts-encodings xorg-fonts-alias xorg-font-utils fontconfig) +groups=('xorg') +install=xfonts.install +source=(${url}/releases/individual/font/font-adobe-75dpi-1.0.1.tar.bz2 +        ${url}/releases/individual/font/font-adobe-utopia-75dpi-1.0.2.tar.bz2 +        ${url}/releases/individual/font/font-bh-75dpi-1.0.1.tar.bz2 +        ${url}/releases/individual/font/font-bh-lucidatypewriter-75dpi-1.0.1.tar.bz2 +        ${url}/releases/individual/font/font-bitstream-75dpi-1.0.1.tar.bz2) +md5sums=('a47681c97bd012196691c95e34d400f1' +         '71dffebeeb702d10876555c361fb69cf' +         '53785d2688392aec5cba79fc0ddb23a2' +         '6397062f2b346ce5bbe5472f3353a9a9' +         'aed54fb53d2d24aff10c92985286d1e5') + +build() { +  cd "${srcdir}" +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  for dir in *; do +    if [ -d "${dir}" ]; then +      pushd "${dir}" +      ./configure --prefix=/usr \ +          --with-fontdir=/usr/share/fonts/75dpi || return 1 +      make || return 1 +      make DESTDIR="${pkgdir}" install || return 1 +      install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.${dir%-75dpi-*}" || return 1 +      popd +    fi +  done +  rm -f "${pkgdir}"/usr/share/fonts/75dpi/fonts.* +} + diff --git a/abs/not_built/core/xorg-fonts-75dpi/xfonts.install b/abs/not_built/core/xorg-fonts-75dpi/xfonts.install new file mode 100644 index 0000000..997982b --- /dev/null +++ b/abs/not_built/core/xorg-fonts-75dpi/xfonts.install @@ -0,0 +1,20 @@ +post_install() { +  echo -n "Updating font cache... " +  fc-cache -f > /dev/null +  mkfontscale /usr/share/fonts/75dpi +  mkfontdir /usr/share/fonts/75dpi +  echo "done." +} + +post_upgrade() { +  post_install $1 +} + +post_remove() { +  post_install $1 +} + +op=$1 +shift + +$op $* diff --git a/abs/not_built/core/xorg-res-utils/LICENSE.listres b/abs/not_built/core/xorg-res-utils/LICENSE.listres new file mode 100644 index 0000000..0c5bb16 --- /dev/null +++ b/abs/not_built/core/xorg-res-utils/LICENSE.listres @@ -0,0 +1,42 @@ +Copyright (c) 1989  X Consortium + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE +X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from the X Consortium. + +  Copyright 2005  Red Hat, Inc. +  +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that +  copyright notice and this permission notice appear in supporting +  documentation, and that the name of Red Hat not be used in +  advertising or publicity pertaining to distribution of the software without +  specific, written prior permission.  Red Hat makes no +  representations about the suitability of this software for any purpose.  It +  is provided "as is" without express or implied warranty. +  +  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +  PERFORMANCE OF THIS SOFTWARE. diff --git a/abs/not_built/core/xorg-res-utils/LICENSE.viewres b/abs/not_built/core/xorg-res-utils/LICENSE.viewres new file mode 100644 index 0000000..0c5bb16 --- /dev/null +++ b/abs/not_built/core/xorg-res-utils/LICENSE.viewres @@ -0,0 +1,42 @@ +Copyright (c) 1989  X Consortium + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE +X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from the X Consortium. + +  Copyright 2005  Red Hat, Inc. +  +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that +  copyright notice and this permission notice appear in supporting +  documentation, and that the name of Red Hat not be used in +  advertising or publicity pertaining to distribution of the software without +  specific, written prior permission.  Red Hat makes no +  representations about the suitability of this software for any purpose.  It +  is provided "as is" without express or implied warranty. +  +  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +  PERFORMANCE OF THIS SOFTWARE. diff --git a/abs/not_built/core/xorg-res-utils/PKGBUILD b/abs/not_built/core/xorg-res-utils/PKGBUILD new file mode 100644 index 0000000..33966f5 --- /dev/null +++ b/abs/not_built/core/xorg-res-utils/PKGBUILD @@ -0,0 +1,38 @@ +# $Id: PKGBUILD 36734 2009-04-27 03:02:17Z eric $ +# Maintainer: Alexander Baldeck <alexander@archlinux.org> +# Contributor: Jan de Groot <jgc@archlinux.org> +pkgname=xorg-res-utils +pkgver=1.0.3 +pkgrel=4 +pkgdesc="X.Org X11 resource utilities" +arch=('i686' 'x86_64') +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('libxaw') +makedepends=('pkgconfig') +groups=('xorg') +source=(${url}/releases/individual/app/appres-1.0.1.tar.bz2 +        ${url}/releases/individual/app/editres-1.0.3.tar.bz2 +        ${url}/releases/individual/app/listres-1.0.1.tar.bz2 +        ${url}/releases/individual/app/viewres-1.0.1.tar.bz2 +        LICENSE.listres LICENSE.viewres) +md5sums=('420e6cdf38bb771ec8b00228bf09e8ff' 'a25f931cc6c8d03daaed434f5db5df2d'\ +         '827a1ac5adf9aadd0c13b54a897e297b' 'cdbed540daf7975b56000420c9aa5bf9'\ +         '9c9b17ae5e9be0c570dabe9e54f54f6d' '9c9b17ae5e9be0c570dabe9e54f54f6d') + +build() { +  cd ${srcdir} +  for i in *; do +    if [ -d "${i}" ]; then +      pushd "${i}" +      ./configure --prefix=/usr --mandir=/usr/share/man --disable-xprint +      make || return 1 +      make DESTDIR=${pkgdir} install || return 1 +      install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.${i%-*} +      popd +    fi +  done +#Replacing stub license files +  install -D -m644 "${srcdir}/LICENSE.listres" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.listres" +  install -D -m644 "${srcdir}/LICENSE.viewres" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.viewres" +} diff --git a/abs/not_built/core/xorg-utils/LICENSE.xdpyinfo b/abs/not_built/core/xorg-utils/LICENSE.xdpyinfo new file mode 100644 index 0000000..495dd2b --- /dev/null +++ b/abs/not_built/core/xorg-utils/LICENSE.xdpyinfo @@ -0,0 +1,26 @@ +  Copyright 1988, 1998  The Open Group +  Copyright 2005 Hitachi, Ltd. +   +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that +  copyright notice and this permission notice appear in supporting +  documentation. +   +  The above copyright notice and this permission notice shall be included in +  all copies or substantial portions of the Software. +   +  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE +  OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +  AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +   +  Except as contained in this notice, the name of The Open Group shall not be +  used in advertising or otherwise to promote the sale, use or other dealings +  in this Software without prior written authorization from The Open Group. +   * +   * Author:  Jim Fulton, MIT X Consortium +   */ + diff --git a/abs/not_built/core/xorg-utils/LICENSE.xfd b/abs/not_built/core/xorg-utils/LICENSE.xfd new file mode 100644 index 0000000..2ac6c9d --- /dev/null +++ b/abs/not_built/core/xorg-utils/LICENSE.xfd @@ -0,0 +1,25 @@ +  Copyright 1989, 1998  The Open Group +   +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that +  copyright notice and this permission notice appear in supporting +  documentation. +   +  The above copyright notice and this permission notice shall be included in +  all copies or substantial portions of the Software. +   +  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE +  OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +  AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +   +  Except as contained in this notice, the name of The Open Group shall not be +  used in advertising or otherwise to promote the sale, use or other dealings +  in this Software without prior written authorization from The Open Group. +   * * +   * Author:  Jim Fulton, MIT X Consortium +   */ + diff --git a/abs/not_built/core/xorg-utils/LICENSE.xlsfonts b/abs/not_built/core/xorg-utils/LICENSE.xlsfonts new file mode 100644 index 0000000..a9a4bd3 --- /dev/null +++ b/abs/not_built/core/xorg-utils/LICENSE.xlsfonts @@ -0,0 +1,22 @@ +  Copyright 1989, 1998  The Open Group +   +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that +  copyright notice and this permission notice appear in supporting +  documentation. +   +  The above copyright notice and this permission notice shall be included in +  all copies or substantial portions of the Software. +   +  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE +  OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +  AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +   +  Except as contained in this notice, the name of The Open Group shall not be +  used in advertising or otherwise to promote the sale, use or other dealings +  in this Software without prior written authorization from The Open Group. + diff --git a/abs/not_built/core/xorg-utils/LICENSE.xprop b/abs/not_built/core/xorg-utils/LICENSE.xprop new file mode 100644 index 0000000..b94017f --- /dev/null +++ b/abs/not_built/core/xorg-utils/LICENSE.xprop @@ -0,0 +1,45 @@ +  Copyright 1990, 1998  The Open Group +  Copyright (c) 2000  The XFree86 Project, Inc. +   +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that +  copyright notice and this permission notice appear in supporting +  documentation. +     +  The above copyright notice and this permission notice shall be included +  in all copies or substantial portions of the Software. +   +  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +  IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +  OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +  ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +  OTHER DEALINGS IN THE SOFTWARE. +   +  Except as contained in this notice, the name of The Open Group shall +  not be used in advertising or otherwise to promote the sale, use or +  other dealings in this Software without prior written authorization +  from The Open Group. + +  Copyright 2007 Kim woelders +  +  Permission to use, copy, modify, distribute, and sell this software and its +  documentation for any purpose is hereby granted without fee, provided that +  the above copyright notice appear in all copies and that both that copyright +  notice and this permission notice appear in supporting documentation, and +  that the name of the copyright holders not be used in advertising or +  publicity pertaining to distribution of the software without specific, +  written prior permission.  The copyright holders make no representations +  about the suitability of this software for any purpose.  It is provided "as +  is" without express or implied warranty. +  +  THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +  EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR +  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +  OF THIS SOFTWARE. + diff --git a/abs/not_built/core/xorg-utils/PKGBUILD b/abs/not_built/core/xorg-utils/PKGBUILD new file mode 100644 index 0000000..8040687 --- /dev/null +++ b/abs/not_built/core/xorg-utils/PKGBUILD @@ -0,0 +1,56 @@ +# $Id: PKGBUILD 96495 2010-10-21 21:13:19Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xorg-utils +pkgver=7.6 +pkgrel=6 +pkgdesc="Collection of client utilities used to query the X server" +arch=('i686' 'x86_64') +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('libxxf86dga' 'libxi' 'libxtst' 'libxinerama' 'libxv' +         'libdmx' 'libxft' 'libxaw>=1.0.6' 'libgl' 'libxcomposite' 'xcb-util') +makedepends=('pkgconfig' 'mesa' 'glproto' 'xorg-util-macros') +groups=('xorg') +source=(${url}/releases/individual/app/xdpyinfo-1.2.0.tar.bz2 +        ${url}/releases/individual/app/xdriinfo-1.0.3.tar.bz2 +        ${url}/releases/individual/app/xev-1.0.4.tar.bz2 +        ${url}/releases/individual/app/xfd-1.1.0.tar.bz2 +        ${url}/releases/individual/app/xfontsel-1.0.3.tar.bz2 +        ${url}/releases/individual/app/xlsatoms-1.1.0.tar.bz2 +        ${url}/releases/individual/app/xlsclients-1.1.1.tar.bz2 +        ${url}/releases/individual/app/xlsfonts-1.0.3.tar.bz2 +        ${url}/releases/individual/app/xprop-1.1.0.tar.bz2 +        ${url}/releases/individual/app/xvinfo-1.1.0.tar.bz2 +        ${url}/releases/individual/app/xwininfo-1.1.0.tar.bz2 +        LICENSE.xprop +        LICENSE.xlsfonts) +md5sums=('c52fda7bbc80e74b7839f29298cb1d77' +         'cb304d1ce562ac48b68eedeba38c662f' +         '5f98c0a2725a33d60ef4956befe078fb' +         '17d8ef0d490301158f8abf7641cca243' +         '299fabe7d7be92b6572d814895ce3bb1' +         'c543ccb6489b629d427810d9a57d0724' +         '6d42621616da0c720f640d23873604ce' +         'bf6f3e7074479839d5182ffed735d2be' +         'f0bacbd30f0dd1c1e9ccafe97687b7a4' +         '8cc299b2cb636b5f7fe672610789d3d4' +         '932cb1393dee3caaf26f3515f640d783' +         '801f9850b29dad506e995d011efe2914' +         '345d6e65d71fdde292cc27f93c15e4a1') + +build() { +  cd "${srcdir}" +  for i in *; do +    if [ -d "${i}" ]; then +      pushd "${i}" +      ./configure --prefix=/usr --mandir=/usr/share/man --without-xprint || return 1 +      make || return 1 +      make DESTDIR="${pkgdir}" install || return 1 +      install -D -m644 COPYING "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE.${i%-*} || return 1 +      popd +    fi +  done +# Replacing stub license files +  install -D -m644 "${srcdir}"/LICENSE.* "${pkgdir}/usr/share/licenses/${pkgname}/"  || return 1 +} diff --git a/abs/not_built/core/xorg-xkb-utils/LICENSE.setxkbmap b/abs/not_built/core/xorg-xkb-utils/LICENSE.setxkbmap new file mode 100644 index 0000000..78f516a --- /dev/null +++ b/abs/not_built/core/xorg-xkb-utils/LICENSE.setxkbmap @@ -0,0 +1,22 @@ +   Copyright (c) 1996 by Silicon Graphics Computer Systems, Inc. +   +   Permission to use, copy, modify, and distribute this +   software and its documentation for any purpose and without +   fee is hereby granted, provided that the above copyright +   notice appear in all copies and that both that copyright +   notice and this permission notice appear in supporting +   documentation, and that the name of Silicon Graphics not be  +   used in advertising or publicity pertaining to distribution  +   of the software without specific prior written permission. +   Silicon Graphics makes no representation about the suitability  +   of this software for any purpose. It is provided "as is" +   without any express or implied warranty. +    +   SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS  +   SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY  +   AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON +   GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL  +   DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,  +   DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE  +   OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH +   THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/abs/not_built/core/xorg-xkb-utils/LICENSE.xkbevd b/abs/not_built/core/xorg-xkb-utils/LICENSE.xkbevd new file mode 100644 index 0000000..a43337e --- /dev/null +++ b/abs/not_built/core/xorg-xkb-utils/LICENSE.xkbevd @@ -0,0 +1,22 @@ +  Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc. +  +  Permission to use, copy, modify, and distribute this +  software and its documentation for any purpose and without +  fee is hereby granted, provided that the above copyright +  notice appear in all copies and that both that copyright +  notice and this permission notice appear in supporting +  documentation, and that the name of Silicon Graphics not be  +  used in advertising or publicity pertaining to distribution  +  of the software without specific prior written permission. +  Silicon Graphics makes no representation about the suitability  +  of this software for any purpose. It is provided "as is" +  without any express or implied warranty. +   +  SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS  +  SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY  +  AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON +  GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL  +  DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,  +  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE  +  OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH +  THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/abs/not_built/core/xorg-xkb-utils/LICENSE.xkbutils b/abs/not_built/core/xorg-xkb-utils/LICENSE.xkbutils new file mode 100644 index 0000000..a43337e --- /dev/null +++ b/abs/not_built/core/xorg-xkb-utils/LICENSE.xkbutils @@ -0,0 +1,22 @@ +  Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc. +  +  Permission to use, copy, modify, and distribute this +  software and its documentation for any purpose and without +  fee is hereby granted, provided that the above copyright +  notice appear in all copies and that both that copyright +  notice and this permission notice appear in supporting +  documentation, and that the name of Silicon Graphics not be  +  used in advertising or publicity pertaining to distribution  +  of the software without specific prior written permission. +  Silicon Graphics makes no representation about the suitability  +  of this software for any purpose. It is provided "as is" +  without any express or implied warranty. +   +  SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS  +  SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY  +  AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON +  GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL  +  DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,  +  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE  +  OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH +  THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/abs/not_built/core/xorg-xkb-utils/PKGBUILD b/abs/not_built/core/xorg-xkb-utils/PKGBUILD new file mode 100644 index 0000000..e6a1e09 --- /dev/null +++ b/abs/not_built/core/xorg-xkb-utils/PKGBUILD @@ -0,0 +1,42 @@ +# $Id: PKGBUILD 61601 2009-12-19 21:31:47Z jgc $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xorg-xkb-utils +pkgver=7.5 +pkgrel=3 +pkgdesc="X.org keyboard utilities" +arch=('i686' 'x86_64') +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('libxaw>=1.0.5' 'libxkbfile') +makedepends=(pkgconfig inputproto) +source=(${url}/releases/individual/app/xkbutils-1.0.2.tar.bz2 +        ${url}/releases/individual/app/xkbcomp-1.1.1.tar.bz2 +        ${url}/releases/individual/app/xkbevd-1.1.0.tar.bz2 +        ${url}/releases/individual/app/setxkbmap-1.1.0.tar.bz2 +        ${url}/releases/individual/app/xkbprint-1.0.2.tar.bz2 +        LICENSE.setxkbmap LICENSE.xkbevd LICENSE.xkbutils) +md5sums=('369a21641b7ca983d6641298e51d97f8' +         '38c387bacdc01038c8ac280588792bcf' +         '8d3c1485c2dd62ea7395a37377958a39' +         '2f902e0a89aaf2b19e06e7f26c6efb3a' +         '3d3eb10466442354d6b73b503b9829db' +         '7c20baa6a26c32a04b1b1d6cbaa626a7' +         '7b1fc39455375a25afe6f9594ff979ac' +         '7b1fc39455375a25afe6f9594ff979ac') + +build() { +  cd "${srcdir}" +  for i in *; do +    if [ -d "${i}" ]; then +      pushd "${i}" +      ./configure --prefix=/usr --mandir=/usr/share/man || return 1 +      make || return 1 +      make DESTDIR="${pkgdir}" install || return 1 +      install -D -m644 COPYING "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE.${i%-*}  || return 1 +      popd +    fi +  done +# Replacing stub license files +  install -D -m644 "${srcdir}"/LICENSE.* "${pkgdir}/usr/share/licenses/${pkgname}/"  || return 1 +} diff --git a/abs/not_built/core/xorg-xmessage/PKGBUILD b/abs/not_built/core/xorg-xmessage/PKGBUILD new file mode 100644 index 0000000..ca10a8d --- /dev/null +++ b/abs/not_built/core/xorg-xmessage/PKGBUILD @@ -0,0 +1,23 @@ +# $Id: $ +# Maintainer: Jan de Groot <jgc@archlinux.org> + +pkgname=xorg-xmessage +pkgver=1.0.3 +pkgrel=1 +pkgdesc="Display a message or query in a window" +arch=(i686 x86_64) +url="http://xorg.freedesktop.org/" +license=('custom') +depends=('libxaw') +makedepends=('xorg-util-macros') +source=(http://xorg.freedesktop.org/archive/individual/app/xmessage-${pkgver}.tar.bz2) +sha1sums=('a8bfefbbe7785fa0e58ed4f596f4d79ba0b4d9b2') + +build() { +  cd "${srcdir}/xmessage-${pkgver}" +  ./configure --prefix=/usr +  make +  make DESTDIR="${pkgdir}" install +  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}" +  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" +}  | 
