diff options
author | James Meyer <james.meyer@operamail.com> | 2012-12-01 18:26:09 (GMT) |
---|---|---|
committer | James Meyer <james.meyer@operamail.com> | 2012-12-01 18:26:22 (GMT) |
commit | e2c33b0fae1fa4af8bbbfc917eb8e13a3ac0cb37 (patch) | |
tree | bee3fe89f2988dd244e11791755e129aa8c03b14 /abs/not_built/core | |
parent | 8132c218cfc1f1acb1c6d12154e0d4ca075e77f2 (diff) | |
download | linhes_pkgbuild-e2c33b0fae1fa4af8bbbfc917eb8e13a3ac0cb37.zip linhes_pkgbuild-e2c33b0fae1fa4af8bbbfc917eb8e13a3ac0cb37.tar.gz linhes_pkgbuild-e2c33b0fae1fa4af8bbbfc917eb8e13a3ac0cb37.tar.bz2 |
Mass move of uncompiled packages to abs_not_built.
The will sit here for a bit, and then will be removed completely if no one claims them.
Diffstat (limited to 'abs/not_built/core')
502 files changed, 42233 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-pyserial/PKGBUILD b/abs/not_built/core/python_modules/python-pyserial/PKGBUILD new file mode 100644 index 0000000..43c5b87 --- /dev/null +++ b/abs/not_built/core/python_modules/python-pyserial/PKGBUILD @@ -0,0 +1,21 @@ +# $Id: PKGBUILD 29428 2010-10-14 09:13:52Z spupykin $ +# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com> +# Maintainer: Douglas Soares de Andrade <dsandrade@gmail.com> +# Contributor: Douglas Soares de Andrade <dsandrade@gmail.com> + +pkgname=python-pyserial +pkgver=2.5 +pkgrel=3 +pkgdesc="Multiplatform Serial Port Module for Python" +arch=('any') +url="http://pyserial.sf.net" +license=('custom:PYTHON') +depends=('python2') +source=(http://downloads.sourceforge.net/sourceforge/pyserial/pyserial-$pkgver.tar.gz) +md5sums=('34340820710239bea2ceca7f43ef8cab') + +build() { + cd $srcdir/pyserial-$pkgver + python2 setup.py install --root=$pkgdir + install -D -m644 LICENSE.txt $pkgdir/usr/share/licenses/$pkgname/LICENSE.txt +} 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}/" +} |