Binary files /tmp/p20jczZZst/anyremote-6.4/anyremote.1.gz and /tmp/NuwAbPmf1V/anyremote-6.5/anyremote.1.gz differ diff -Nru anyremote-6.4/cfg-data/Server-mode/atril.cfg anyremote-6.5/cfg-data/Server-mode/atril.cfg --- anyremote-6.4/cfg-data/Server-mode/atril.cfg 1970-01-01 00:00:00.000000000 +0000 +++ anyremote-6.5/cfg-data/Server-mode/atril.cfg 2014-07-17 17:59:34.000000000 +0000 @@ -0,0 +1,108 @@ +% +% anyremote configuration file for atril management (Server-mode) +% + +% STATUS stable +% XTEST yes +% SOUND no +% ENV no +% FBROWSER v.3i +% DEF_PRESENTATION +% ALL_IN_ONE +% MEDIACENTER presentation + +GuiAppName=Atril +GuiAppBinary=atril +GuiAppRun=echo 'U=`id -u`;P=`pgrep -l -u $U atril`; if [ "x$P" = "x" ]; then echo NOK; else echo OK; fi'|sh -s +GuiAppIcon=atril.png +GuiAppType=Application +GuiAppProtocols=Server +GuiAppDesc=Atril is a simple multi-page document viewer. It can display and print PostScript (PS), Encapsulated PostScript (EPS), DJVU, DVI, XPS and Portable Document Format (PDF) files. + +[Protocol]=Server + +(Init)=\ + Include($(CfgDir)/Utils/aliases-server.cfg);\ + Include($(CfgDir)/Utils/aliases-server-presentation.cfg);\ + Include($(CfgDir)/Utils/aliases-server-fbrowser-v3i.cfg);\ + Macro(FBROWSER_IC_INIT);\ + Make(var,open_file,by_value,);\ + Make(var,app_name,by_value,Atril);\ + Make(var,app_manage_mode,by_value,atril_manage); + +(Exit)=\ + Macro(FBROWSER_IC_EXIT); + +(Connect)=\ + Make(mode,atril); + +[Mode]=atril : default_presentation_init + +APP_IS_RUN=\ + Make(var,app_run,pgrep -l -u `id -u` atril|head -1|wc -l); + +[ModeEnd] + +[Mode]=atril_manage : default_presentation + +APP_SETUP=\ + Make(none); + +APP_START_IF=\ + Make(var,app_run,pgrep -l -u `id -u` atril|head -1|wc -l);\ + Exec(if [ "x$(app_run)" = "x0" ]; then cd "$(fbrowser_dir)";atril $(open_file)& fi 2> /dev/null); + +APP_RAISE=\ + Exec($(CfgDir)/Utils/run-or-switch-to.sh -switch atril); + +APP_QUIT=\ + Exec(pkill atril);\ + Set(title, ); + +APP_MENU=\ + Set(menu,replace,Up,Down,Rotate,Toggle Sidepanel,PowerMgmt);\ + Macro(ALLIN1MENU);\ + Macro(MEDIACENTER_MENU); + +Up=\ + Emulate(key,Up); + +Down=\ + Emulate(key,Down); + +Toggle Sidepanel=\ + Emulate(key,F9); + +Rotate=\ + Emulate(keydown,Control_L,key,Right,keyup,Control_L); + +PRES_START=\ + Emulate(key,F5); + +PRES_PREV_PAGE=\ + Emulate(key,Page_Up); + +PRES_NEXT_PAGE=\ + Emulate(key,Page_Down); + +PRES_ZOOM_IN=\ + Emulate(keydown,Control_L,key,plus,keyup,Control_L); + +PRES_ZOOM_OUT=\ + Emulate(keydown,Control_L,key,minus,keyup,Control_L); + +PRES_FIRST_PAGE=\ + Emulate(key,Home); + +PRES_LAST_PAGE=\ + Emulate(key,End); + +PRES_TOGGLE_FULLSCREEN=\ + Emulate(key,F11); + +PRES_REFRESH=\ + Emulate(keydown,Control_L,key,R,keyup,Control_L); + +[ModeEnd] + +[End] diff -Nru anyremote-6.4/cfg-data/Server-mode/eom.cfg anyremote-6.5/cfg-data/Server-mode/eom.cfg --- anyremote-6.4/cfg-data/Server-mode/eom.cfg 1970-01-01 00:00:00.000000000 +0000 +++ anyremote-6.5/cfg-data/Server-mode/eom.cfg 2014-07-17 17:59:34.000000000 +0000 @@ -0,0 +1,73 @@ +% +% anyremote configuration file for Eye-of-mate (http://mate-desktop.org/) management. (Server-mode) +% + +% STATUS stable +% XTEST yes +% SOUND no +% ENV no +% FBROWSER v.3i +% DEF_PIX_VIEWER +% ALL_IN_ONE +% MEDIACENTER photo + +GuiAppName=Eye of mate +GuiAppBinary=eom +GuiAppRun=echo 'A=`ps -ef|grep eom|grep -v grep|grep -v anyremote|grep -v edit`; if [ "x$A" = "x" ]; then echo NOK; else echo OK; fi'|sh -s +GuiAppIcon=eom.png +GuiAppType=Application +GuiAppProtocols=Server +GuiAppDesc=eom or the Eye of MATE is a simple graphics viewer for the MATE desktop which uses the gdk-pixbuf library. + +[Protocol]=Server + +(Init)=\ + Include($(CfgDir)/Utils/aliases-server.cfg);\ + Include($(CfgDir)/Utils/aliases-server-fbrowser-v3i.cfg);\ + Macro(FBROWSER_IC_INIT);\ + Include($(CfgDir)/Utils/aliases-server-pix-viewer.cfg);\ + Make(var,app_name,by_value,Eye Of Mate);\ + Make(var,open_file,by_value,);\ + Make(var,app_manage_mode,by_value,eom_manage); + +(Exit)=\ + Macro(FBROWSER_IC_EXIT); + +(Connect)=\ + Make(mode,eom_init); + +[Mode]=eom_init : default_pixviewer_init + +APP_IS_RUN=\ + Make(var,app_run,pgrep -u `id -u` eom|head -1|wc -l); + +[ModeEnd] + +[Mode]=eom_manage : default_pixviewer + +% (EnterMode) by Utils/aliases-server-pix-viewer.cfg + +APP_START_IF=\ + Make(var,app_run,pgrep -u `id -u` eom|head -1|wc -l));\ + Exec(if [ "x$(app_run)" = "x0" ]; then cd "$(fbrowser_dir)";eom $(open_file)& fi 2> /dev/null); + +APP_RAISE=\ + Exec($(CfgDir)/Utils/run-or-switch-to.sh -switch eom); + +APP_QUIT=\ + Exec(pkill -u `id -u` eom); + +APP_FULLSCREEN=Emulate(key,F11) + +PIX_PREV=Emulate(keydown,Alt_L,key,Left,keyup,Alt_L) +PIX_NEXT=Emulate(keydown,Alt_L,key,Right,keyup,Alt_L) +PIX_FIRST=Emulate(keydown,Alt_L,key,Home,keyup,Alt_L) +PIX_LAST=Emulate(keydown,Alt_L,key,End,keyup,Alt_L) +PIX_ZOOM_IN=Emulate(keydown,Control_L,key,KP_Add,keyup,Control_L) +PIX_ZOOM_OUT=Emulate(keydown,Control_L,key,minus,keyup,Control_L) +PIX_FIT=Emulate(keydown,Control_L,key,0,keyup,Control_L) +PIX_ROTATE=Emulate(keydown,Control_L,key,R,keyup,Control_L) + +[ModeEnd] + +[End] diff -Nru anyremote-6.4/cfg-data/Server-mode/evince.cfg anyremote-6.5/cfg-data/Server-mode/evince.cfg --- anyremote-6.4/cfg-data/Server-mode/evince.cfg 2014-03-02 08:16:20.000000000 +0000 +++ anyremote-6.5/cfg-data/Server-mode/evince.cfg 2014-07-17 17:59:34.000000000 +0000 @@ -14,6 +14,7 @@ GuiAppName=Evince GuiAppBinary=evince GuiAppRun=echo 'U=`id -u`;P=`pgrep -l -u $U evince|grep -v evinced`; if [ "x$P" = "x" ]; then echo NOK; else echo OK; fi'|sh -s +GuiAppIcon=evince.png GuiAppType=Application GuiAppProtocols=Server GuiAppDesc=Evince is a document viewer for multiple document formats. It currently supports pdf, postscript, djvu, tiff and dvi. diff -Nru anyremote-6.4/cfg-data/Server-mode/mediacenter.cfg anyremote-6.5/cfg-data/Server-mode/mediacenter.cfg --- anyremote-6.4/cfg-data/Server-mode/mediacenter.cfg 2014-03-02 08:16:20.000000000 +0000 +++ anyremote-6.5/cfg-data/Server-mode/mediacenter.cfg 2014-07-17 17:59:34.000000000 +0000 @@ -286,8 +286,7 @@ [Mode]=mediacenter_setup_audio : mediacenter_setup_general (EnterMode)=\ - ExecAndSet(list,replace,Choose Backend,\ - find $(CfgDir)/Server-mode/ -type f -exec grep -l 'MEDIACENTER audio' {} \;|grep -v template|grep -v svn|grep -v mediacenter|xargs -i basename {}|sed 's/.cfg//');\ + ExecAndSet(list,replace,Choose Backend,$(CfgDir)/Utils/get-installed.sh 'MEDIACENTER audio' cfg-data);\ Set(menu,replace,Choose,Help); Help($$)=\ @@ -310,8 +309,7 @@ [Mode]=mediacenter_setup_video : mediacenter_setup_general (EnterMode)=\ - ExecAndSet(list,replace,Choose Backend,\ - find $(CfgDir)/Server-mode/ -type f -exec grep -l 'MEDIACENTER video' {} \;|grep -v template|grep -v svn|grep -v mediacenter|xargs -i basename {}|sed 's/.cfg//');\ + ExecAndSet(list,replace,Choose Backend,$(CfgDir)/Utils/get-installed.sh 'MEDIACENTER video' cfg-data);\ Set(menu,replace,Choose,Help); Help($$)=\ @@ -334,8 +332,7 @@ [Mode]=mediacenter_setup_pix : mediacenter_setup_general (EnterMode)=\ - ExecAndSet(list,replace,Choose Backend,\ - find $(CfgDir)/Server-mode/ -type f -exec grep -l 'MEDIACENTER photo' {} \;|grep -v template|grep -v svn|grep -v mediacenter|xargs -i basename {}|sed 's/.cfg//');\ + ExecAndSet(list,replace,Choose Backend,$(CfgDir)/Utils/get-installed.sh 'MEDIACENTER photo' cfg-data);\ Set(menu,replace,Choose,Help); Help($$)=\ @@ -358,8 +355,7 @@ [Mode]=mediacenter_setup_presentation : mediacenter_setup_general (EnterMode)=\ - ExecAndSet(list,replace,Choose Backend,\ - find $(CfgDir)/Server-mode/ -type f -exec grep -l 'MEDIACENTER presentation' {} \;|grep -v template|grep -v svn|grep -v mediacenter|xargs -i basename {}|sed 's/.cfg//');\ + ExecAndSet(list,replace,Choose Backend,$(CfgDir)/Utils/get-installed.sh 'MEDIACENTER presentation' cfg-data);\ Set(menu,replace,Choose,Help); Help($$)=\ diff -Nru anyremote-6.4/cfg-data/Server-mode/nokia-e71.cfg anyremote-6.5/cfg-data/Server-mode/nokia-e71.cfg --- anyremote-6.4/cfg-data/Server-mode/nokia-e71.cfg 1970-01-01 00:00:00.000000000 +0000 +++ anyremote-6.5/cfg-data/Server-mode/nokia-e71.cfg 2008-01-01 00:04:04.000000000 +0000 @@ -0,0 +1,1061 @@ +% +% anyremote configuration file for getting device key codes. (Server-mode) +% +% tests for key codes in range -10 to 999, K0 to K9, *, #, 8364, LEFT, RIGHT, UP, DOWN, FIRE +% +% Hugo Raguet 2014 + +% STATUS unknown +% XTEST yes +% SOUND no +% ENV no + +GuiAppName=Nokia E71-1 test +GuiAppType=Example +GuiAppProtocols=Server +GuiAppDesc=Example of keypad handling for Nokia-E71-1 + +[Protocol]=Server + +(Connect)=\ + Set(layout,default,keypad_only); + +Cancel=Make(exit); + +K0=Set(title,K0) +K1=Set(title,K1) +K2=Set(title,K2) +K3=Set(title,K3) +K4=Set(title,K4) +K5=Set(title,K5) +K6=Set(title,K6) +K7=Set(title,K7) +K8=Set(title,K8) +K9=Set(title,K9) + +-1=Set(title,-1) +-2=Set(title,-2) +-3=Set(title,-3) +-4=Set(title,-4) +-5=Set(title,-5) +-6=Set(title,-6) +-7=Set(title,-7) +-8=Set(title,-8) +-9=Set(title,-9) +-10=Set(title,-10) + +0=Set(title,0) +1=Set(title,1) +2=Set(title,2) +3=Set(title,3) +4=Set(title,4) +5=Set(title,5) +6=Set(title,6) +7=Set(title,7) +8=Set(title,8) +9=Set(title,9) + +10=Set(title,10) +11=Set(title,11) +12=Set(title,12) +13=Set(title,13) +14=Set(title,14) +15=Set(title,15) +16=Set(title,16) +17=Set(title,17) +18=Set(title,18) +19=Set(title,19) +20=Set(title,20) +21=Set(title,21) +22=Set(title,22) +23=Set(title,23) +24=Set(title,24) +25=Set(title,25) +26=Set(title,26) +27=Set(title,27) +28=Set(title,28) +29=Set(title,29) +30=Set(title,30) +31=Set(title,31) +32=Set(title,32) +33=Set(title,33) +34=Set(title,34) +35=Set(title,35) +36=Set(title,36) +37=Set(title,37) +38=Set(title,38) +39=Set(title,39) +40=Set(title,40) +41=Set(title,41) +42=Set(title,42) +43=Set(title,43) +44=Set(title,44) +45=Set(title,45) +46=Set(title,46) +47=Set(title,47) +48=Set(title,48) +49=Set(title,49) +50=Set(title,50) +51=Set(title,51) +52=Set(title,52) +53=Set(title,53) +54=Set(title,54) +55=Set(title,55) +56=Set(title,56) +57=Set(title,57) +58=Set(title,58) +59=Set(title,59) +60=Set(title,60) +61=Set(title,61) +62=Set(title,62) +63=Set(title,63) +64=Set(title,64) +65=Set(title,65) +66=Set(title,66) +67=Set(title,67) +68=Set(title,68) +69=Set(title,69) +70=Set(title,70) +71=Set(title,71) +72=Set(title,72) +73=Set(title,73) +74=Set(title,74) +75=Set(title,75) +76=Set(title,76) +77=Set(title,77) +78=Set(title,78) +79=Set(title,79) +80=Set(title,80) +81=Set(title,81) +82=Set(title,82) +83=Set(title,83) +84=Set(title,84) +85=Set(title,85) +86=Set(title,86) +87=Set(title,87) +88=Set(title,88) +89=Set(title,89) +90=Set(title,90) +91=Set(title,91) +92=Set(title,92) +93=Set(title,93) +94=Set(title,94) +95=Set(title,95) +96=Set(title,96) +97=Set(title,97) +98=Set(title,98) +99=Set(title,99) + +100=Set(title,100) +101=Set(title,101) +102=Set(title,102) +103=Set(title,103) +104=Set(title,104) +105=Set(title,105) +106=Set(title,106) +107=Set(title,107) +108=Set(title,108) +109=Set(title,109) +110=Set(title,110) +111=Set(title,111) +112=Set(title,112) +113=Set(title,113) +114=Set(title,114) +115=Set(title,115) +116=Set(title,116) +117=Set(title,117) +118=Set(title,118) +119=Set(title,119) +120=Set(title,120) +121=Set(title,121) +122=Set(title,122) +123=Set(title,123) +124=Set(title,124) +125=Set(title,125) +126=Set(title,126) +127=Set(title,127) +128=Set(title,128) +129=Set(title,129) +130=Set(title,130) +131=Set(title,131) +132=Set(title,132) +133=Set(title,133) +134=Set(title,134) +135=Set(title,135) +136=Set(title,136) +137=Set(title,137) +138=Set(title,138) +139=Set(title,139) +140=Set(title,140) +141=Set(title,141) +142=Set(title,142) +143=Set(title,143) +144=Set(title,144) +145=Set(title,145) +146=Set(title,146) +147=Set(title,147) +148=Set(title,148) +149=Set(title,149) +150=Set(title,150) +151=Set(title,151) +152=Set(title,152) +153=Set(title,153) +154=Set(title,154) +155=Set(title,155) +156=Set(title,156) +157=Set(title,157) +158=Set(title,158) +159=Set(title,159) +160=Set(title,160) +161=Set(title,161) +162=Set(title,162) +163=Set(title,163) +164=Set(title,164) +165=Set(title,165) +166=Set(title,166) +167=Set(title,167) +168=Set(title,168) +169=Set(title,169) +170=Set(title,170) +171=Set(title,171) +172=Set(title,172) +173=Set(title,173) +174=Set(title,174) +175=Set(title,175) +176=Set(title,176) +177=Set(title,177) +178=Set(title,178) +179=Set(title,179) +180=Set(title,180) +181=Set(title,181) +182=Set(title,182) +183=Set(title,183) +184=Set(title,184) +185=Set(title,185) +186=Set(title,186) +187=Set(title,187) +188=Set(title,188) +189=Set(title,189) +190=Set(title,190) +191=Set(title,191) +192=Set(title,192) +193=Set(title,193) +194=Set(title,194) +195=Set(title,195) +196=Set(title,196) +197=Set(title,197) +198=Set(title,198) +199=Set(title,199) +200=Set(title,200) +201=Set(title,201) +202=Set(title,202) +203=Set(title,203) +204=Set(title,204) +205=Set(title,205) +206=Set(title,206) +207=Set(title,207) +208=Set(title,208) +209=Set(title,209) +210=Set(title,210) +211=Set(title,211) +212=Set(title,212) +213=Set(title,213) +214=Set(title,214) +215=Set(title,215) +216=Set(title,216) +217=Set(title,217) +218=Set(title,218) +219=Set(title,219) +220=Set(title,220) +221=Set(title,221) +222=Set(title,222) +223=Set(title,223) +224=Set(title,224) +225=Set(title,225) +226=Set(title,226) +227=Set(title,227) +228=Set(title,228) +229=Set(title,229) +230=Set(title,230) +231=Set(title,231) +232=Set(title,232) +233=Set(title,233) +234=Set(title,234) +235=Set(title,235) +236=Set(title,236) +237=Set(title,237) +238=Set(title,238) +239=Set(title,239) +240=Set(title,240) +241=Set(title,241) +242=Set(title,242) +243=Set(title,243) +244=Set(title,244) +245=Set(title,245) +246=Set(title,246) +247=Set(title,247) +248=Set(title,248) +249=Set(title,249) +250=Set(title,250) +251=Set(title,251) +252=Set(title,252) +253=Set(title,253) +254=Set(title,254) +255=Set(title,255) +256=Set(title,256) +257=Set(title,257) +258=Set(title,258) +259=Set(title,259) +260=Set(title,260) +261=Set(title,261) +262=Set(title,262) +263=Set(title,263) +264=Set(title,264) +265=Set(title,265) +266=Set(title,266) +267=Set(title,267) +268=Set(title,268) +269=Set(title,269) +270=Set(title,270) +271=Set(title,271) +272=Set(title,272) +273=Set(title,273) +274=Set(title,274) +275=Set(title,275) +276=Set(title,276) +277=Set(title,277) +278=Set(title,278) +279=Set(title,279) +280=Set(title,280) +281=Set(title,281) +282=Set(title,282) +283=Set(title,283) +284=Set(title,284) +285=Set(title,285) +286=Set(title,286) +287=Set(title,287) +288=Set(title,288) +289=Set(title,289) +290=Set(title,290) +291=Set(title,291) +292=Set(title,292) +293=Set(title,293) +294=Set(title,294) +295=Set(title,295) +296=Set(title,296) +297=Set(title,297) +298=Set(title,298) +299=Set(title,299) +300=Set(title,300) +301=Set(title,301) +302=Set(title,302) +303=Set(title,303) +304=Set(title,304) +305=Set(title,305) +306=Set(title,306) +307=Set(title,307) +308=Set(title,308) +309=Set(title,309) +310=Set(title,310) +311=Set(title,311) +312=Set(title,312) +313=Set(title,313) +314=Set(title,314) +315=Set(title,315) +316=Set(title,316) +317=Set(title,317) +318=Set(title,318) +319=Set(title,319) +320=Set(title,320) +321=Set(title,321) +322=Set(title,322) +323=Set(title,323) +324=Set(title,324) +325=Set(title,325) +326=Set(title,326) +327=Set(title,327) +328=Set(title,328) +329=Set(title,329) +330=Set(title,330) +331=Set(title,331) +332=Set(title,332) +333=Set(title,333) +334=Set(title,334) +335=Set(title,335) +336=Set(title,336) +337=Set(title,337) +338=Set(title,338) +339=Set(title,339) +340=Set(title,340) +341=Set(title,341) +342=Set(title,342) +343=Set(title,343) +344=Set(title,344) +345=Set(title,345) +346=Set(title,346) +347=Set(title,347) +348=Set(title,348) +349=Set(title,349) +350=Set(title,350) +351=Set(title,351) +352=Set(title,352) +353=Set(title,353) +354=Set(title,354) +355=Set(title,355) +356=Set(title,356) +357=Set(title,357) +358=Set(title,358) +359=Set(title,359) +360=Set(title,360) +361=Set(title,361) +362=Set(title,362) +363=Set(title,363) +364=Set(title,364) +365=Set(title,365) +366=Set(title,366) +367=Set(title,367) +368=Set(title,368) +369=Set(title,369) +370=Set(title,370) +371=Set(title,371) +372=Set(title,372) +373=Set(title,373) +374=Set(title,374) +375=Set(title,375) +376=Set(title,376) +377=Set(title,377) +378=Set(title,378) +379=Set(title,379) +380=Set(title,380) +381=Set(title,381) +382=Set(title,382) +383=Set(title,383) +384=Set(title,384) +385=Set(title,385) +386=Set(title,386) +387=Set(title,387) +388=Set(title,388) +389=Set(title,389) +390=Set(title,390) +391=Set(title,391) +392=Set(title,392) +393=Set(title,393) +394=Set(title,394) +395=Set(title,395) +396=Set(title,396) +397=Set(title,397) +398=Set(title,398) +399=Set(title,399) +400=Set(title,400) +401=Set(title,401) +402=Set(title,402) +403=Set(title,403) +404=Set(title,404) +405=Set(title,405) +406=Set(title,406) +407=Set(title,407) +408=Set(title,408) +409=Set(title,409) +410=Set(title,410) +411=Set(title,411) +412=Set(title,412) +413=Set(title,413) +414=Set(title,414) +415=Set(title,415) +416=Set(title,416) +417=Set(title,417) +418=Set(title,418) +419=Set(title,419) +420=Set(title,420) +421=Set(title,421) +422=Set(title,422) +423=Set(title,423) +424=Set(title,424) +425=Set(title,425) +426=Set(title,426) +427=Set(title,427) +428=Set(title,428) +429=Set(title,429) +430=Set(title,430) +431=Set(title,431) +432=Set(title,432) +433=Set(title,433) +434=Set(title,434) +435=Set(title,435) +436=Set(title,436) +437=Set(title,437) +438=Set(title,438) +439=Set(title,439) +440=Set(title,440) +441=Set(title,441) +442=Set(title,442) +443=Set(title,443) +444=Set(title,444) +445=Set(title,445) +446=Set(title,446) +447=Set(title,447) +448=Set(title,448) +449=Set(title,449) +450=Set(title,450) +451=Set(title,451) +452=Set(title,452) +453=Set(title,453) +454=Set(title,454) +455=Set(title,455) +456=Set(title,456) +457=Set(title,457) +458=Set(title,458) +459=Set(title,459) +460=Set(title,460) +461=Set(title,461) +462=Set(title,462) +463=Set(title,463) +464=Set(title,464) +465=Set(title,465) +466=Set(title,466) +467=Set(title,467) +468=Set(title,468) +469=Set(title,469) +470=Set(title,470) +471=Set(title,471) +472=Set(title,472) +473=Set(title,473) +474=Set(title,474) +475=Set(title,475) +476=Set(title,476) +477=Set(title,477) +478=Set(title,478) +479=Set(title,479) +480=Set(title,480) +481=Set(title,481) +482=Set(title,482) +483=Set(title,483) +484=Set(title,484) +485=Set(title,485) +486=Set(title,486) +487=Set(title,487) +488=Set(title,488) +489=Set(title,489) +490=Set(title,490) +491=Set(title,491) +492=Set(title,492) +493=Set(title,493) +494=Set(title,494) +495=Set(title,495) +496=Set(title,496) +497=Set(title,497) +498=Set(title,498) +499=Set(title,499) +500=Set(title,500) +501=Set(title,501) +502=Set(title,502) +503=Set(title,503) +504=Set(title,504) +505=Set(title,505) +506=Set(title,506) +507=Set(title,507) +508=Set(title,508) +509=Set(title,509) +510=Set(title,510) +511=Set(title,511) +512=Set(title,512) +513=Set(title,513) +514=Set(title,514) +515=Set(title,515) +516=Set(title,516) +517=Set(title,517) +518=Set(title,518) +519=Set(title,519) +520=Set(title,520) +521=Set(title,521) +522=Set(title,522) +523=Set(title,523) +524=Set(title,524) +525=Set(title,525) +526=Set(title,526) +527=Set(title,527) +528=Set(title,528) +529=Set(title,529) +530=Set(title,530) +531=Set(title,531) +532=Set(title,532) +533=Set(title,533) +534=Set(title,534) +535=Set(title,535) +536=Set(title,536) +537=Set(title,537) +538=Set(title,538) +539=Set(title,539) +540=Set(title,540) +541=Set(title,541) +542=Set(title,542) +543=Set(title,543) +544=Set(title,544) +545=Set(title,545) +546=Set(title,546) +547=Set(title,547) +548=Set(title,548) +549=Set(title,549) +550=Set(title,550) +551=Set(title,551) +552=Set(title,552) +553=Set(title,553) +554=Set(title,554) +555=Set(title,555) +556=Set(title,556) +557=Set(title,557) +558=Set(title,558) +559=Set(title,559) +560=Set(title,560) +561=Set(title,561) +562=Set(title,562) +563=Set(title,563) +564=Set(title,564) +565=Set(title,565) +566=Set(title,566) +567=Set(title,567) +568=Set(title,568) +569=Set(title,569) +570=Set(title,570) +571=Set(title,571) +572=Set(title,572) +573=Set(title,573) +574=Set(title,574) +575=Set(title,575) +576=Set(title,576) +577=Set(title,577) +578=Set(title,578) +579=Set(title,579) +580=Set(title,580) +581=Set(title,581) +582=Set(title,582) +583=Set(title,583) +584=Set(title,584) +585=Set(title,585) +586=Set(title,586) +587=Set(title,587) +588=Set(title,588) +589=Set(title,589) +590=Set(title,590) +591=Set(title,591) +592=Set(title,592) +593=Set(title,593) +594=Set(title,594) +595=Set(title,595) +596=Set(title,596) +597=Set(title,597) +598=Set(title,598) +599=Set(title,599) +600=Set(title,600) +601=Set(title,601) +602=Set(title,602) +603=Set(title,603) +604=Set(title,604) +605=Set(title,605) +606=Set(title,606) +607=Set(title,607) +608=Set(title,608) +609=Set(title,609) +610=Set(title,610) +611=Set(title,611) +612=Set(title,612) +613=Set(title,613) +614=Set(title,614) +615=Set(title,615) +616=Set(title,616) +617=Set(title,617) +618=Set(title,618) +619=Set(title,619) +620=Set(title,620) +621=Set(title,621) +622=Set(title,622) +623=Set(title,623) +624=Set(title,624) +625=Set(title,625) +626=Set(title,626) +627=Set(title,627) +628=Set(title,628) +629=Set(title,629) +630=Set(title,630) +631=Set(title,631) +632=Set(title,632) +633=Set(title,633) +634=Set(title,634) +635=Set(title,635) +636=Set(title,636) +637=Set(title,637) +638=Set(title,638) +639=Set(title,639) +640=Set(title,640) +641=Set(title,641) +642=Set(title,642) +643=Set(title,643) +644=Set(title,644) +645=Set(title,645) +646=Set(title,646) +647=Set(title,647) +648=Set(title,648) +649=Set(title,649) +650=Set(title,650) +651=Set(title,651) +652=Set(title,652) +653=Set(title,653) +654=Set(title,654) +655=Set(title,655) +656=Set(title,656) +657=Set(title,657) +658=Set(title,658) +659=Set(title,659) +660=Set(title,660) +661=Set(title,661) +662=Set(title,662) +663=Set(title,663) +664=Set(title,664) +665=Set(title,665) +666=Set(title,666) +667=Set(title,667) +668=Set(title,668) +669=Set(title,669) +670=Set(title,670) +671=Set(title,671) +672=Set(title,672) +673=Set(title,673) +674=Set(title,674) +675=Set(title,675) +676=Set(title,676) +677=Set(title,677) +678=Set(title,678) +679=Set(title,679) +680=Set(title,680) +681=Set(title,681) +682=Set(title,682) +683=Set(title,683) +684=Set(title,684) +685=Set(title,685) +686=Set(title,686) +687=Set(title,687) +688=Set(title,688) +689=Set(title,689) +690=Set(title,690) +691=Set(title,691) +692=Set(title,692) +693=Set(title,693) +694=Set(title,694) +695=Set(title,695) +696=Set(title,696) +697=Set(title,697) +698=Set(title,698) +699=Set(title,699) +700=Set(title,700) +701=Set(title,701) +702=Set(title,702) +703=Set(title,703) +704=Set(title,704) +705=Set(title,705) +706=Set(title,706) +707=Set(title,707) +708=Set(title,708) +709=Set(title,709) +710=Set(title,710) +711=Set(title,711) +712=Set(title,712) +713=Set(title,713) +714=Set(title,714) +715=Set(title,715) +716=Set(title,716) +717=Set(title,717) +718=Set(title,718) +719=Set(title,719) +720=Set(title,720) +721=Set(title,721) +722=Set(title,722) +723=Set(title,723) +724=Set(title,724) +725=Set(title,725) +726=Set(title,726) +727=Set(title,727) +728=Set(title,728) +729=Set(title,729) +730=Set(title,730) +731=Set(title,731) +732=Set(title,732) +733=Set(title,733) +734=Set(title,734) +735=Set(title,735) +736=Set(title,736) +737=Set(title,737) +738=Set(title,738) +739=Set(title,739) +740=Set(title,740) +741=Set(title,741) +742=Set(title,742) +743=Set(title,743) +744=Set(title,744) +745=Set(title,745) +746=Set(title,746) +747=Set(title,747) +748=Set(title,748) +749=Set(title,749) +750=Set(title,750) +751=Set(title,751) +752=Set(title,752) +753=Set(title,753) +754=Set(title,754) +755=Set(title,755) +756=Set(title,756) +757=Set(title,757) +758=Set(title,758) +759=Set(title,759) +760=Set(title,760) +761=Set(title,761) +762=Set(title,762) +763=Set(title,763) +764=Set(title,764) +765=Set(title,765) +766=Set(title,766) +767=Set(title,767) +768=Set(title,768) +769=Set(title,769) +770=Set(title,770) +771=Set(title,771) +772=Set(title,772) +773=Set(title,773) +774=Set(title,774) +775=Set(title,775) +776=Set(title,776) +777=Set(title,777) +778=Set(title,778) +779=Set(title,779) +780=Set(title,780) +781=Set(title,781) +782=Set(title,782) +783=Set(title,783) +784=Set(title,784) +785=Set(title,785) +786=Set(title,786) +787=Set(title,787) +788=Set(title,788) +789=Set(title,789) +790=Set(title,790) +791=Set(title,791) +792=Set(title,792) +793=Set(title,793) +794=Set(title,794) +795=Set(title,795) +796=Set(title,796) +797=Set(title,797) +798=Set(title,798) +799=Set(title,799) +800=Set(title,800) +801=Set(title,801) +802=Set(title,802) +803=Set(title,803) +804=Set(title,804) +805=Set(title,805) +806=Set(title,806) +807=Set(title,807) +808=Set(title,808) +809=Set(title,809) +810=Set(title,810) +811=Set(title,811) +812=Set(title,812) +813=Set(title,813) +814=Set(title,814) +815=Set(title,815) +816=Set(title,816) +817=Set(title,817) +818=Set(title,818) +819=Set(title,819) +820=Set(title,820) +821=Set(title,821) +822=Set(title,822) +823=Set(title,823) +824=Set(title,824) +825=Set(title,825) +826=Set(title,826) +827=Set(title,827) +828=Set(title,828) +829=Set(title,829) +830=Set(title,830) +831=Set(title,831) +832=Set(title,832) +833=Set(title,833) +834=Set(title,834) +835=Set(title,835) +836=Set(title,836) +837=Set(title,837) +838=Set(title,838) +839=Set(title,839) +840=Set(title,840) +841=Set(title,841) +842=Set(title,842) +843=Set(title,843) +844=Set(title,844) +845=Set(title,845) +846=Set(title,846) +847=Set(title,847) +848=Set(title,848) +849=Set(title,849) +850=Set(title,850) +851=Set(title,851) +852=Set(title,852) +853=Set(title,853) +854=Set(title,854) +855=Set(title,855) +856=Set(title,856) +857=Set(title,857) +858=Set(title,858) +859=Set(title,859) +860=Set(title,860) +861=Set(title,861) +862=Set(title,862) +863=Set(title,863) +864=Set(title,864) +865=Set(title,865) +866=Set(title,866) +867=Set(title,867) +868=Set(title,868) +869=Set(title,869) +870=Set(title,870) +871=Set(title,871) +872=Set(title,872) +873=Set(title,873) +874=Set(title,874) +875=Set(title,875) +876=Set(title,876) +877=Set(title,877) +878=Set(title,878) +879=Set(title,879) +880=Set(title,880) +881=Set(title,881) +882=Set(title,882) +883=Set(title,883) +884=Set(title,884) +885=Set(title,885) +886=Set(title,886) +887=Set(title,887) +888=Set(title,888) +889=Set(title,889) +890=Set(title,890) +891=Set(title,891) +892=Set(title,892) +893=Set(title,893) +894=Set(title,894) +895=Set(title,895) +896=Set(title,896) +897=Set(title,897) +898=Set(title,898) +899=Set(title,899) +900=Set(title,900) +901=Set(title,901) +902=Set(title,902) +903=Set(title,903) +904=Set(title,904) +905=Set(title,905) +906=Set(title,906) +907=Set(title,907) +908=Set(title,908) +909=Set(title,909) +910=Set(title,910) +911=Set(title,911) +912=Set(title,912) +913=Set(title,913) +914=Set(title,914) +915=Set(title,915) +916=Set(title,916) +917=Set(title,917) +918=Set(title,918) +919=Set(title,919) +920=Set(title,920) +921=Set(title,921) +922=Set(title,922) +923=Set(title,923) +924=Set(title,924) +925=Set(title,925) +926=Set(title,926) +927=Set(title,927) +928=Set(title,928) +929=Set(title,929) +930=Set(title,930) +931=Set(title,931) +932=Set(title,932) +933=Set(title,933) +934=Set(title,934) +935=Set(title,935) +936=Set(title,936) +937=Set(title,937) +938=Set(title,938) +939=Set(title,939) +940=Set(title,940) +941=Set(title,941) +942=Set(title,942) +943=Set(title,943) +944=Set(title,944) +945=Set(title,945) +946=Set(title,946) +947=Set(title,947) +948=Set(title,948) +949=Set(title,949) +950=Set(title,950) +951=Set(title,951) +952=Set(title,952) +953=Set(title,953) +954=Set(title,954) +955=Set(title,955) +956=Set(title,956) +957=Set(title,957) +958=Set(title,958) +959=Set(title,959) +960=Set(title,960) +961=Set(title,961) +962=Set(title,962) +963=Set(title,963) +964=Set(title,964) +965=Set(title,965) +966=Set(title,966) +967=Set(title,967) +968=Set(title,968) +969=Set(title,969) +970=Set(title,970) +971=Set(title,971) +972=Set(title,972) +973=Set(title,973) +974=Set(title,974) +975=Set(title,975) +976=Set(title,976) +977=Set(title,977) +978=Set(title,978) +979=Set(title,979) +980=Set(title,980) +981=Set(title,981) +982=Set(title,982) +983=Set(title,983) +984=Set(title,984) +985=Set(title,985) +986=Set(title,986) +987=Set(title,987) +988=Set(title,988) +989=Set(title,989) +990=Set(title,990) +991=Set(title,991) +992=Set(title,992) +993=Set(title,993) +994=Set(title,994) +995=Set(title,995) +996=Set(title,996) +997=Set(title,997) +998=Set(title,998) +999=Set(title,999) + +*=Set(title,*) +#=Set(title,#) + +8364=Set(title,8364) % euro sign + +LEFT=Set(title,LEFT) +RIGHT=Set(title,RIGHT) +UP=Set(title,UP) +DOWN=Set(title,DOWN) +FIRE=Set(title,FIRE) + +[End] diff -Nru anyremote-6.4/cfg-data/Utils/get-installed.sh anyremote-6.5/cfg-data/Utils/get-installed.sh --- anyremote-6.4/cfg-data/Utils/get-installed.sh 1970-01-01 00:00:00.000000000 +0000 +++ anyremote-6.5/cfg-data/Utils/get-installed.sh 2014-07-17 17:59:34.000000000 +0000 @@ -0,0 +1,27 @@ +#!/bin/sh + +# Params +# 1. Search pattern +# 2. $(CfgDir) value + +if [ "x$1" = "x" ]; then + exit 0; +fi; + +if [ "x$2" = "x" ]; then + exit 0; +fi; + +CANDIDATES=`find $2/Server-mode/ -type f -exec grep -l "$1" {} \;|grep -v template|grep -v svn|grep -v mediacenter` + +for CFGFILE in $CANDIDATES; do + + BINARY=`grep "GuiAppBinary=" $CFGFILE|sed 's/GuiAppBinary=//'` + + LOC=`which $BINARY 2> /dev/null` + + if [ "x$LOC" != "x" ]; then + APP=`echo $CFGFILE|xargs -i basename {}|sed 's/.cfg//'` + echo $APP + fi; +done diff -Nru anyremote-6.4/ChangeLog anyremote-6.5/ChangeLog --- anyremote-6.4/ChangeLog 2014-03-02 08:16:22.000000000 +0000 +++ anyremote-6.5/ChangeLog 2008-01-01 00:04:04.000000000 +0000 @@ -1,3 +1,6 @@ +* Mon Dec 08 2014 Mikhail Fedotov - 6.5 +- Avahi support. + * Sun Mar 02 2014 Mikhail Fedotov - 6.4 - Support for keyboard and mouse emulation events for Android client. @@ -248,7 +251,7 @@ Difference beetween 2.9 and 2.8 -------------------------------------------------------------------------------- New commands Include(...) and ExecAndSet(upload,...) were introduced. Now it is -possible to upload icons to Java Client. configurationfiles for Audacious, +possible to upload icons to Java Client. configurationfiles for Audacious, Banshee, BMP, Freevo, JuK, MPD, Totem, custom made RSS reader and configuration file for icon uploading were added. diff -Nru anyremote-6.4/config.guess anyremote-6.5/config.guess --- anyremote-6.4/config.guess 2014-03-02 08:17:09.000000000 +0000 +++ anyremote-6.5/config.guess 2013-01-23 17:52:37.000000000 +0000 @@ -2,13 +2,13 @@ # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -# 2011, 2012, 2013 Free Software Foundation, Inc. +# 2011, 2012 Free Software Foundation, Inc. -timestamp='2012-12-29' +timestamp='2012-06-10' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or +# 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 @@ -22,17 +22,19 @@ # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that -# program. This Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). +# the same distribution terms that you use for the rest of that program. + + +# Originally written by Per Bothner. Please send patches (context +# diff format) to and include a ChangeLog +# entry. # -# Originally written by Per Bothner. +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD -# -# Please send patches with a ChangeLog entry to config-patches@gnu.org. - me=`echo "$0" | sed -e 's,.*/,,'` @@ -53,8 +55,8 @@ Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, -2012, 2013 Free Software Foundation, Inc. +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 +Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -198,10 +200,6 @@ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; - *:Bitrig:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} - exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} @@ -304,7 +302,7 @@ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; - arm*:riscos:*:*|arm*:RISCOS:*:*) + arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) @@ -803,9 +801,6 @@ i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; - *:MINGW64*:*) - echo ${UNAME_MACHINE}-pc-mingw64 - exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; @@ -1206,9 +1201,6 @@ BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; - x86_64:Haiku:*:*) - echo x86_64-unknown-haiku - exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; @@ -1338,6 +1330,9 @@ exit ;; esac +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + eval $set_cc_for_build cat >$dummy.c <. @@ -22,12 +26,11 @@ # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that -# program. This Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). +# the same distribution terms that you use for the rest of that program. -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to . Submit a context +# diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. @@ -71,8 +74,8 @@ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, -2012, 2013 Free Software Foundation, Inc. +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 +Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -120,7 +123,7 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) @@ -153,7 +156,7 @@ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze*) + -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; @@ -256,10 +259,8 @@ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ - | arc \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ - | avr | avr32 \ - | be32 | be64 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | be32 | be64 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ @@ -272,7 +273,7 @@ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -388,8 +389,7 @@ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | microblaze-* | microblazeel-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ @@ -788,13 +788,9 @@ basic_machine=ns32k-utek os=-sysv ;; - microblaze*) + microblaze) basic_machine=microblaze-xilinx ;; - mingw64) - basic_machine=x86_64-pc - os=-mingw64 - ;; mingw32) basic_machine=i386-pc os=-mingw32 @@ -1008,7 +1004,7 @@ ;; ppc64) basic_machine=powerpc64-unknown ;; - ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown @@ -1023,11 +1019,7 @@ basic_machine=i586-unknown os=-pw32 ;; - rdos | rdos64) - basic_machine=x86_64-pc - os=-rdos - ;; - rdos32) + rdos) basic_machine=i386-pc os=-rdos ;; @@ -1360,15 +1352,15 @@ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -bitrig* | -openbsd* | -solidbsd* \ + | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ - | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -mingw32* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ diff -Nru anyremote-6.4/configure anyremote-6.5/configure --- anyremote-6.4/configure 2014-03-02 08:17:09.000000000 +0000 +++ anyremote-6.5/configure 2014-12-20 15:26:21.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for anyremote 6.4. +# Generated by GNU Autoconf 2.69 for anyremote 6.5. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -577,8 +577,8 @@ # Identity of this package. PACKAGE_NAME='anyremote' PACKAGE_TARNAME='anyremote' -PACKAGE_VERSION='6.4' -PACKAGE_STRING='anyremote 6.4' +PACKAGE_VERSION='6.5' +PACKAGE_STRING='anyremote 6.5' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -624,6 +624,8 @@ LTLIBOBJS AR_EXTRALIBS AR_EXTRAFLAGS +AVAHI_LIBS +AVAHI_CFLAGS DBUS_GLIB_LIBS DBUS_GLIB_CFLAGS DBUS_LIBS @@ -742,6 +744,7 @@ enable_glib enable_glibtest enable_dbus +enable_avahi ' ac_precious_vars='build_alias host_alias @@ -760,7 +763,9 @@ DBUS_CFLAGS DBUS_LIBS DBUS_GLIB_CFLAGS -DBUS_GLIB_LIBS' +DBUS_GLIB_LIBS +AVAHI_CFLAGS +AVAHI_LIBS' # Initialize some variables set by options. @@ -1301,7 +1306,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures anyremote 6.4 to adapt to many kinds of systems. +\`configure' configures anyremote 6.5 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1371,7 +1376,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of anyremote 6.4:";; + short | recursive ) echo "Configuration of anyremote 6.5:";; esac cat <<\_ACEOF @@ -1385,12 +1390,13 @@ do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build - --disable-bluetooth disable bluetooth support - --disable-xtest disable xtest support - --disable-iconv disable iconv support - --disable-glib disable glib support, impiles disable-dbus + --disable-bluetooth disable bluetooth support + --disable-xtest disable xtest support + --disable-iconv disable iconv support + --disable-glib disable glib support, impiles disable-dbus --disable-glibtest do not try to compile and run a test GLIB program - --disable-dbus disable dbus support + --disable-dbus disable dbus support, impiles disable-avahi + --disable-avahi disable avahi support Some influential environment variables: CC C compiler command @@ -1414,6 +1420,9 @@ C compiler flags for DBUS_GLIB, overriding pkg-config DBUS_GLIB_LIBS linker flags for DBUS_GLIB, overriding pkg-config + AVAHI_CFLAGS + C compiler flags for AVAHI, overriding pkg-config + AVAHI_LIBS linker flags for AVAHI, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. @@ -1481,7 +1490,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -anyremote configure 6.4 +anyremote configure 6.5 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1784,6 +1793,60 @@ } # ac_fn_c_check_type +# ac_fn_c_find_uintX_t LINENO BITS VAR +# ------------------------------------ +# Finds an unsigned integer type with width BITS, setting cache variable VAR +# accordingly. +ac_fn_c_find_uintX_t () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 +$as_echo_n "checking for uint$2_t... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=no" + # Order is important - never check a type that is potentially smaller + # than half of the expected target width. + for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \ + 'unsigned long long int' 'unsigned short int' 'unsigned char'; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + case $ac_type in #( + uint$2_t) : + eval "$3=yes" ;; #( + *) : + eval "$3=\$ac_type" ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if eval test \"x\$"$3"\" = x"no"; then : + +else + break +fi + done +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_find_uintX_t + # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. @@ -1900,7 +1963,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by anyremote $as_me 6.4, which was +It was created by anyremote $as_me 6.5, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2763,9 +2826,8 @@ # Define the identity of the package. - - PACKAGE=anyremote - VERSION=6.4 + PACKAGE='anyremote' + VERSION='6.5' cat >>confdefs.h <<_ACEOF @@ -2818,6 +2880,48 @@ # Checks for programs. +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -4294,8 +4398,79 @@ fi +#AC_CHECK_HEADER_STDBOOL +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 +$as_echo_n "checking for uid_t in sys/types.h... " >&6; } +if ${ac_cv_type_uid_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "uid_t" >/dev/null 2>&1; then : + ac_cv_type_uid_t=yes +else + ac_cv_type_uid_t=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 +$as_echo "$ac_cv_type_uid_t" >&6; } +if test $ac_cv_type_uid_t = no; then + +$as_echo "#define uid_t int" >>confdefs.h + + +$as_echo "#define gid_t int" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 +$as_echo_n "checking for inline... " >&6; } +if ${ac_cv_c_inline+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo () {return 0; } +$ac_kw foo_t foo () {return 0; } +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_inline=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_inline" != no && break +done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 +$as_echo "$ac_cv_c_inline" >&6; } + +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac -# Checks for library functions. ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" if test "x$ac_cv_type_pid_t" = xyes; then : @@ -4307,38 +4482,65 @@ fi -for ac_header in vfork.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "vfork.h" "ac_cv_header_vfork_h" "$ac_includes_default" -if test "x$ac_cv_header_vfork_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_VFORK_H 1 +ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" +if test "x$ac_cv_type_size_t" = xyes; then : + +else + +cat >>confdefs.h <<_ACEOF +#define size_t unsigned int _ACEOF fi -done +ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" +if test "x$ac_cv_type_ssize_t" = xyes; then : -for ac_func in fork vfork -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +else + +cat >>confdefs.h <<_ACEOF +#define ssize_t int _ACEOF fi -done -if test "x$ac_cv_func_fork" = xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5 -$as_echo_n "checking for working fork... " >&6; } -if ${ac_cv_func_fork_works+:} false; then : +ac_fn_c_find_uintX_t "$LINENO" "32" "ac_cv_c_uint32_t" +case $ac_cv_c_uint32_t in #( + no|yes) ;; #( + *) + +$as_echo "#define _UINT32_T 1" >>confdefs.h + + +cat >>confdefs.h <<_ACEOF +#define uint32_t $ac_cv_c_uint32_t +_ACEOF +;; + esac + +ac_fn_c_find_uintX_t "$LINENO" "8" "ac_cv_c_uint8_t" +case $ac_cv_c_uint8_t in #( + no|yes) ;; #( + *) + +$as_echo "#define _UINT8_T 1" >>confdefs.h + + +cat >>confdefs.h <<_ACEOF +#define uint8_t $ac_cv_c_uint8_t +_ACEOF +;; + esac + + +# Checks for library functions. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working memcmp" >&5 +$as_echo_n "checking for working memcmp... " >&6; } +if ${ac_cv_func_memcmp_working+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : - ac_cv_func_fork_works=cross + ac_cv_func_memcmp_working=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -4347,62 +4549,289 @@ main () { - /* By Ruediger Kuhlmann. */ - return fork () < 0; + /* Some versions of memcmp are not 8-bit clean. */ + char c0 = '\100', c1 = '\200', c2 = '\201'; + if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0) + return 1; + + /* The Next x86 OpenStep bug shows up only when comparing 16 bytes + or more and with at least one buffer not starting on a 4-byte boundary. + William Lewis provided this test program. */ + { + char foo[21]; + char bar[21]; + int i; + for (i = 0; i < 4; i++) + { + char *a = foo + i; + char *b = bar + i; + strcpy (a, "--------01111111"); + strcpy (b, "--------10000000"); + if (memcmp (a, b, 16) >= 0) + return 1; + } + return 0; + } ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_fork_works=yes + ac_cv_func_memcmp_working=yes else - ac_cv_func_fork_works=no + ac_cv_func_memcmp_working=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5 -$as_echo "$ac_cv_func_fork_works" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_memcmp_working" >&5 +$as_echo "$ac_cv_func_memcmp_working" >&6; } +test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in + *" memcmp.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" + ;; +esac + + +for ac_header in sys/select.h sys/socket.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF -else - ac_cv_func_fork_works=$ac_cv_func_fork -fi -if test "x$ac_cv_func_fork_works" = xcross; then - case $host in - *-*-amigaos* | *-*-msdosdjgpp*) - # Override, as these systems have only a dummy fork() stub - ac_cv_func_fork_works=no - ;; - *) - ac_cv_func_fork_works=yes - ;; - esac - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5 -$as_echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;} fi -ac_cv_func_vfork_works=$ac_cv_func_vfork -if test "x$ac_cv_func_vfork" = xyes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5 -$as_echo_n "checking for working vfork... " >&6; } -if ${ac_cv_func_vfork_works+:} false; then : + +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking types of arguments for select" >&5 +$as_echo_n "checking types of arguments for select... " >&6; } +if ${ac_cv_func_select_args+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : - ac_cv_func_vfork_works=cross -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + for ac_arg234 in 'fd_set *' 'int *' 'void *'; do + for ac_arg1 in 'int' 'size_t' 'unsigned long int' 'unsigned int'; do + for ac_arg5 in 'struct timeval *' 'const struct timeval *'; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Thanks to Paul Eggert for this test. */ $ac_includes_default -#include -#ifdef HAVE_VFORK_H -# include +#ifdef HAVE_SYS_SELECT_H +# include #endif -/* On some sparc systems, changes by the child to local and incoming - argument registers are propagated back to the parent. The compiler +#ifdef HAVE_SYS_SOCKET_H +# include +#endif + +int +main () +{ +extern int select ($ac_arg1, + $ac_arg234, $ac_arg234, $ac_arg234, + $ac_arg5); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_select_args="$ac_arg1,$ac_arg234,$ac_arg5"; break 3 +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done + done +done +# Provide a safe default value. +: "${ac_cv_func_select_args=int,int *,struct timeval *}" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_select_args" >&5 +$as_echo "$ac_cv_func_select_args" >&6; } +ac_save_IFS=$IFS; IFS=',' +set dummy `echo "$ac_cv_func_select_args" | sed 's/\*/\*/g'` +IFS=$ac_save_IFS +shift + +cat >>confdefs.h <<_ACEOF +#define SELECT_TYPE_ARG1 $1 +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define SELECT_TYPE_ARG234 ($2) +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define SELECT_TYPE_ARG5 ($3) +_ACEOF + +rm -f conftest* + +for ac_header in unistd.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" +if test "x$ac_cv_header_unistd_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_UNISTD_H 1 +_ACEOF + +fi + +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working chown" >&5 +$as_echo_n "checking for working chown... " >&6; } +if ${ac_cv_func_chown_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + ac_cv_func_chown_works=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +#include + +int +main () +{ + char *f = "conftest.chown"; + struct stat before, after; + + if (creat (f, 0600) < 0) + return 1; + if (stat (f, &before) < 0) + return 1; + if (chown (f, (uid_t) -1, (gid_t) -1) == -1) + return 1; + if (stat (f, &after) < 0) + return 1; + return ! (before.st_uid == after.st_uid && before.st_gid == after.st_gid); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_chown_works=yes +else + ac_cv_func_chown_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +rm -f conftest.chown + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_chown_works" >&5 +$as_echo "$ac_cv_func_chown_works" >&6; } +if test $ac_cv_func_chown_works = yes; then + +$as_echo "#define HAVE_CHOWN 1" >>confdefs.h + +fi + +for ac_header in vfork.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "vfork.h" "ac_cv_header_vfork_h" "$ac_includes_default" +if test "x$ac_cv_header_vfork_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_VFORK_H 1 +_ACEOF + +fi + +done + +for ac_func in fork vfork +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + +if test "x$ac_cv_func_fork" = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5 +$as_echo_n "checking for working fork... " >&6; } +if ${ac_cv_func_fork_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + ac_cv_func_fork_works=cross +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* By Ruediger Kuhlmann. */ + return fork () < 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_fork_works=yes +else + ac_cv_func_fork_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5 +$as_echo "$ac_cv_func_fork_works" >&6; } + +else + ac_cv_func_fork_works=$ac_cv_func_fork +fi +if test "x$ac_cv_func_fork_works" = xcross; then + case $host in + *-*-amigaos* | *-*-msdosdjgpp*) + # Override, as these systems have only a dummy fork() stub + ac_cv_func_fork_works=no + ;; + *) + ac_cv_func_fork_works=yes + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5 +$as_echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;} +fi +ac_cv_func_vfork_works=$ac_cv_func_vfork +if test "x$ac_cv_func_vfork" = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5 +$as_echo_n "checking for working vfork... " >&6; } +if ${ac_cv_func_vfork_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + ac_cv_func_vfork_works=cross +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Thanks to Paul Eggert for this test. */ +$ac_includes_default +#include +#ifdef HAVE_VFORK_H +# include +#endif +/* On some sparc systems, changes by the child to local and incoming + argument registers are propagated back to the parent. The compiler is told about this with #include , but some compilers (e.g. gcc -O) don't grok . Test for this by using a static variable whose address is put into a register that is @@ -4520,6 +4949,68 @@ fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 +$as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } +if ${ac_cv_func_lstat_dereferences_slashed_symlink+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f conftest.sym conftest.file +echo >conftest.file +if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then + if test "$cross_compiling" = yes; then : + ac_cv_func_lstat_dereferences_slashed_symlink=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +struct stat sbuf; + /* Linux will dereference the symlink and fail, as required by POSIX. + That is better in the sense that it means we will not + have to compile and use the lstat wrapper. */ + return lstat ("conftest.sym/", &sbuf) == 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_lstat_dereferences_slashed_symlink=yes +else + ac_cv_func_lstat_dereferences_slashed_symlink=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +else + # If the `ln -s' command failed, then we probably don't even + # have an lstat function. + ac_cv_func_lstat_dereferences_slashed_symlink=no +fi +rm -f conftest.sym conftest.file + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 +$as_echo "$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; } + +test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && + +cat >>confdefs.h <<_ACEOF +#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 +_ACEOF + + +if test "x$ac_cv_func_lstat_dereferences_slashed_symlink" = xno; then + case " $LIBOBJS " in + *" lstat.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS lstat.$ac_objext" + ;; +esac + +fi + for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" @@ -4587,144 +5078,74 @@ fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working memcmp" >&5 -$as_echo_n "checking for working memcmp... " >&6; } -if ${ac_cv_func_memcmp_working+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : - ac_cv_func_memcmp_working=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ - - /* Some versions of memcmp are not 8-bit clean. */ - char c0 = '\100', c1 = '\200', c2 = '\201'; - if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0) - return 1; - - /* The Next x86 OpenStep bug shows up only when comparing 16 bytes - or more and with at least one buffer not starting on a 4-byte boundary. - William Lewis provided this test program. */ - { - char foo[21]; - char bar[21]; - int i; - for (i = 0; i < 4; i++) - { - char *a = foo + i; - char *b = bar + i; - strcpy (a, "--------01111111"); - strcpy (b, "--------10000000"); - if (memcmp (a, b, 16) >= 0) - return 1; - } - return 0; - } - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_func_memcmp_working=yes -else - ac_cv_func_memcmp_working=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_memcmp_working" >&5 -$as_echo "$ac_cv_func_memcmp_working" >&6; } -test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in - *" memcmp.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" - ;; -esac - - -for ac_header in sys/select.h sys/socket.h +for ac_header in stdlib.h do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" +if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define HAVE_STDLIB_H 1 _ACEOF fi done -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking types of arguments for select" >&5 -$as_echo_n "checking types of arguments for select... " >&6; } -if ${ac_cv_func_select_args+:} false; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible realloc" >&5 +$as_echo_n "checking for GNU libc compatible realloc... " >&6; } +if ${ac_cv_func_realloc_0_nonnull+:} false; then : $as_echo_n "(cached) " >&6 else - for ac_arg234 in 'fd_set *' 'int *' 'void *'; do - for ac_arg1 in 'int' 'size_t' 'unsigned long int' 'unsigned int'; do - for ac_arg5 in 'struct timeval *' 'const struct timeval *'; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "$cross_compiling" = yes; then : + ac_cv_func_realloc_0_nonnull=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -$ac_includes_default -#ifdef HAVE_SYS_SELECT_H -# include -#endif -#ifdef HAVE_SYS_SOCKET_H -# include +#if defined STDC_HEADERS || defined HAVE_STDLIB_H +# include +#else +char *realloc (); #endif int main () { -extern int select ($ac_arg1, - $ac_arg234, $ac_arg234, $ac_arg234, - $ac_arg5); +return ! realloc (0, 0); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_func_select_args="$ac_arg1,$ac_arg234,$ac_arg5"; break 3 +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_realloc_0_nonnull=yes +else + ac_cv_func_realloc_0_nonnull=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done - done -done -# Provide a safe default value. -: "${ac_cv_func_select_args=int,int *,struct timeval *}" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_select_args" >&5 -$as_echo "$ac_cv_func_select_args" >&6; } -ac_save_IFS=$IFS; IFS=',' -set dummy `echo "$ac_cv_func_select_args" | sed 's/\*/\*/g'` -IFS=$ac_save_IFS -shift +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_realloc_0_nonnull" >&5 +$as_echo "$ac_cv_func_realloc_0_nonnull" >&6; } +if test $ac_cv_func_realloc_0_nonnull = yes; then : -cat >>confdefs.h <<_ACEOF -#define SELECT_TYPE_ARG1 $1 -_ACEOF +$as_echo "#define HAVE_REALLOC 1" >>confdefs.h +else + $as_echo "#define HAVE_REALLOC 0" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define SELECT_TYPE_ARG234 ($2) -_ACEOF + case " $LIBOBJS " in + *" realloc.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS realloc.$ac_objext" + ;; +esac -cat >>confdefs.h <<_ACEOF -#define SELECT_TYPE_ARG5 ($3) -_ACEOF +$as_echo "#define realloc rpl_realloc" >>confdefs.h + +fi -rm -f conftest* -for ac_func in isascii select strchr strstr +for ac_func in bzero gethostbyname gettimeofday inet_ntoa isascii memset mkdir regcomp select socket strchr strdup strerror strrchr strstr strtol do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -5562,8 +5983,6 @@ AR_EXTRALIBS="$AR_EXTRALIBS -lpthread" fi - - # Check whether --enable-dbus was given. if test "${enable_dbus+set}" = set; then : enableval=$enable_dbus; @@ -5724,6 +6143,90 @@ AR_EXTRAFLAGS="$AR_EXTRAFLAGS $DBUS_CFLAGS $DBUSG_CFLAGS -DUSE_DBUS=1" AR_EXTRALIBS="$AR_EXTRALIBS $DBUS_LIBS $DBUSG_LIBS" +else + enable_avahi=no +fi + +# Check whether --enable-avahi was given. +if test "${enable_avahi+set}" = set; then : + enableval=$enable_avahi; +fi + + +if test x"$enable_avahi" != xno; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AVAHI" >&5 +$as_echo_n "checking for AVAHI... " >&6; } + +if test -n "$AVAHI_CFLAGS"; then + pkg_cv_AVAHI_CFLAGS="$AVAHI_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"avahi-client >= 0.6\""; } >&5 + ($PKG_CONFIG --exists --print-errors "avahi-client >= 0.6") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_AVAHI_CFLAGS=`$PKG_CONFIG --cflags "avahi-client >= 0.6" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$AVAHI_LIBS"; then + pkg_cv_AVAHI_LIBS="$AVAHI_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"avahi-client >= 0.6\""; } >&5 + ($PKG_CONFIG --exists --print-errors "avahi-client >= 0.6") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_AVAHI_LIBS=`$PKG_CONFIG --libs "avahi-client >= 0.6" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + AVAHI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "avahi-client >= 0.6" 2>&1` + else + AVAHI_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "avahi-client >= 0.6" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$AVAHI_PKG_ERRORS" >&5 + + echo "Can not find avahi ! Install avahi headers or use --disable-avahi";exit +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + echo "Can not find avahi ! Install avahi headers or use --disable-avahi";exit +else + AVAHI_CFLAGS=$pkg_cv_AVAHI_CFLAGS + AVAHI_LIBS=$pkg_cv_AVAHI_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + AR_EXTRAFLAGS="$AR_EXTRAFLAGS $AVAHI_CFLAGS -DUSE_AVAHI=1" + AR_EXTRALIBS="$AR_EXTRALIBS $AVAHI_LIBS" fi AR_EXTRAFLAGS="$AR_EXTRAFLAGS -DDATADIR=\\\"${datadir}\\\"" @@ -6299,7 +6802,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by anyremote $as_me 6.4, which was +This file was extended by anyremote $as_me 6.5, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -6356,7 +6859,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -anyremote config.status 6.4 +anyremote config.status 6.5 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -Nru anyremote-6.4/configure.ac anyremote-6.5/configure.ac --- anyremote-6.4/configure.ac 1970-01-01 00:00:00.000000000 +0000 +++ anyremote-6.5/configure.ac 2008-01-01 00:04:04.000000000 +0000 @@ -0,0 +1,164 @@ +# +# anyRemote - a bluetooth remote for your PC. +# +# Copyright (C) 2007-2014 Mikhail Fedotov +# +# 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. +# + +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.63) + +AC_INIT([anyremote],[6.5]) +AC_CONFIG_SRCDIR([src/main.c]) +AM_INIT_AUTOMAKE + +# Checks for programs. +AC_PROG_AWK +AC_PROG_CC + +# Checks for libraries. + +# Checks for header files. +AC_HEADER_STDC +AC_HEADER_SYS_WAIT + +CFLAGS="$CFLAGS -I/usr/local/include -Wall -D_REENTRANT -O2 -g" + +AC_CHECK_HEADERS([fcntl.h stdlib.h string.h sys/ioctl.h sys/time.h termios.h unistd.h glib.h]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_HEADER_TIME +#AC_CHECK_HEADER_STDBOOL +AC_TYPE_UID_T +AC_C_INLINE +AC_TYPE_PID_T +AC_TYPE_SIZE_T +AC_TYPE_SSIZE_T +AC_TYPE_UINT32_T +AC_TYPE_UINT8_T + +# Checks for library functions. +AC_FUNC_MEMCMP +AC_FUNC_SELECT_ARGTYPES +AC_FUNC_CHOWN +AC_FUNC_FORK +AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK +AC_FUNC_MALLOC +AC_FUNC_REALLOC +AC_CHECK_FUNCS([bzero gethostbyname gettimeofday inet_ntoa isascii memset mkdir regcomp select socket strchr strdup strerror strrchr strstr strtol]) + +AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + +#AC_CONFIG_FILES([Makefile +# src/Makefile]) + + +AC_CANONICAL_HOST + +AC_ARG_ENABLE(bluetooth, + [ --disable-bluetooth disable bluetooth support]) + +case "$host_os" in +linux*) + if test x"$enable_bluetooth" != xno; then + AC_CHECK_HEADERS([bluetooth/bluetooth.h], [], [echo "Can not find bluetooth.h ! Install bluez-dev package or use --disable-bluetooth";exit]) + AR_EXTRAFLAGS="$AR_EXTRAFLAGS -DUSE_BLUEZ=1" + AR_EXTRALIBS="$AR_EXTRALIBS -lbluetooth" + fi + ;; +freebsd*) + if test x"$enable_bluetooth" != xno; then + AC_CHECK_HEADERS([bluetooth.h], [], [echo "Can not find bluetooth.h ! Install it or use --disable-bluetooth";exit]) + AR_EXTRAFLAGS="$AR_EXTRAFLAGS -DUSE_BT_FBSD=1" + AR_EXTRALIBS="$AR_EXTRALIBS -lbluetooth -lsdp" + fi + ;; +esac + +AC_ARG_ENABLE(xtest, + [ --disable-xtest disable xtest support]) + +if test x"$enable_xtest" != xno; then + AC_CHECK_HEADERS([X11/extensions/XTest.h], [], [echo "Can not find XTest.h ! Install it or use --disable-xtest";exit]) + AR_EXTRAFLAGS="$AR_EXTRAFLAGS -DUSE_XTEST=1" + AR_EXTRALIBS="$AR_EXTRALIBS -lX11 -lXtst" +fi + +AC_ARG_ENABLE(iconv, + [ --disable-iconv disable iconv support]) + +if test x"$enable_iconv" != xno; then + AC_CHECK_HEADERS([iconv.h], [], [echo "Can not find iconv.h ! Install it or use --disable-iconv";exit]) + AR_EXTRAFLAGS="$AR_EXTRAFLAGS -DUSE_ICONV=1" +fi + +AC_ARG_ENABLE(glib, + [ --disable-glib disable glib support, impiles disable-dbus]) + +if test x"$enable_glib" != xno; then + + AC_CHECK_LIB(gthread-2.0, g_thread_init) + + PKG_CHECK_MODULES([GLIB], [glib-2.0], [], [echo "Can not find glib !";exit]) + AM_PATH_GLIB_2_0(,,,gthread) + + AR_EXTRAFLAGS="$AR_EXTRAFLAGS $GLIB_CFLAGS -DUSE_GLIB=1" + AR_EXTRALIBS="$AR_EXTRALIBS $GLIB_LIBS" +else + enable_dbus=no + AR_EXTRALIBS="$AR_EXTRALIBS -lpthread" +fi + +AC_ARG_ENABLE(dbus, + [ --disable-dbus disable dbus support, impiles disable-avahi]) + +if test x"$enable_dbus" != xno; then + PKG_CHECK_MODULES([DBUS], [dbus-1 >= 0.61], [], [echo "Can not find dbus-1 ! Install it or use --disable-dbus";exit]) + PKG_CHECK_MODULES([DBUS_GLIB], [dbus-glib-1], [], [echo "Can not find dbus-glib-1 ! Install it or use --disable-dbus";exit]) + + DBUS_CFLAGS="`$PKG_CONFIG --cflags dbus-1`" + DBUS_LIBS="`$PKG_CONFIG --libs dbus-1`" + + DBUSG_CFLAGS="`$PKG_CONFIG --cflags dbus-glib-1`" + # anyRemote do not needs gobject-2.0, but dbus-glib does + #DBUSG_LIBS="-ldbus-glib-1" + DBUSG_LIBS="`$PKG_CONFIG --libs dbus-glib-1`" + + AR_EXTRAFLAGS="$AR_EXTRAFLAGS $DBUS_CFLAGS $DBUSG_CFLAGS -DUSE_DBUS=1" + AR_EXTRALIBS="$AR_EXTRALIBS $DBUS_LIBS $DBUSG_LIBS" +else + enable_avahi=no +fi + +AC_ARG_ENABLE(avahi, + [ --disable-avahi disable avahi support]) + +if test x"$enable_avahi" != xno; then + PKG_CHECK_MODULES(AVAHI, [avahi-client >= 0.6], [], [echo "Can not find avahi ! Install avahi headers or use --disable-avahi";exit]) + AR_EXTRAFLAGS="$AR_EXTRAFLAGS $AVAHI_CFLAGS -DUSE_AVAHI=1" + AR_EXTRALIBS="$AR_EXTRALIBS $AVAHI_LIBS" +fi + +AR_EXTRAFLAGS="$AR_EXTRAFLAGS -DDATADIR=\\\"${datadir}\\\"" + +AC_SUBST(AR_EXTRAFLAGS) +AC_SUBST(AR_EXTRALIBS) + +AC_CONFIG_FILES([Makefile + src/Makefile]) +AC_OUTPUT diff -Nru anyremote-6.4/configure.in anyremote-6.5/configure.in --- anyremote-6.4/configure.in 2014-03-02 08:16:22.000000000 +0000 +++ anyremote-6.5/configure.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,142 +0,0 @@ -# -# anyRemote - a bluetooth remote for your PC. -# -# Copyright (C) 2007-2014 Mikhail Fedotov -# -# 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. -# - -# -*- Autoconf -*- -# Process this file with autoconf to produce a configure script. - -AC_PREREQ(2.59) - -AC_INIT(anyremote,6.4) -AC_CONFIG_SRCDIR([src/main.c]) -AM_INIT_AUTOMAKE(anyremote, AC_PACKAGE_VERSION) - -# Checks for programs. -AC_PROG_CC - -# Checks for libraries. - -# Checks for header files. -AC_HEADER_STDC -AC_HEADER_SYS_WAIT - -CFLAGS="$CFLAGS -I/usr/local/include -Wall -D_REENTRANT -O2 -g" - -AC_CHECK_HEADERS([fcntl.h stdlib.h string.h sys/ioctl.h sys/time.h termios.h unistd.h glib.h]) - -# Checks for typedefs, structures, and compiler characteristics. -AC_HEADER_TIME - -# Checks for library functions. -AC_FUNC_FORK -AC_FUNC_MALLOC -AC_FUNC_MEMCMP -AC_FUNC_SELECT_ARGTYPES -AC_CHECK_FUNCS([isascii select strchr strstr]) - -AC_PATH_PROG(PKG_CONFIG, pkg-config, no) - -#AC_CONFIG_FILES([Makefile -# src/Makefile]) - - -AC_CANONICAL_HOST - -AC_ARG_ENABLE(bluetooth, - [ --disable-bluetooth disable bluetooth support]) - -case "$host_os" in -linux*) - if test x"$enable_bluetooth" != xno; then - AC_CHECK_HEADERS([bluetooth/bluetooth.h], [], [echo "Can not find bluetooth.h ! Install bluez-dev package or use --disable-bluetooth";exit]) - AR_EXTRAFLAGS="$AR_EXTRAFLAGS -DUSE_BLUEZ=1" - AR_EXTRALIBS="$AR_EXTRALIBS -lbluetooth" - fi - ;; -freebsd*) - if test x"$enable_bluetooth" != xno; then - AC_CHECK_HEADERS([bluetooth.h], [], [echo "Can not find bluetooth.h ! Install it or use --disable-bluetooth";exit]) - AR_EXTRAFLAGS="$AR_EXTRAFLAGS -DUSE_BT_FBSD=1" - AR_EXTRALIBS="$AR_EXTRALIBS -lbluetooth -lsdp" - fi - ;; -esac - -AC_ARG_ENABLE(xtest, - [ --disable-xtest disable xtest support]) - -if test x"$enable_xtest" != xno; then - AC_CHECK_HEADERS([X11/extensions/XTest.h], [], [echo "Can not find XTest.h ! Install it or use --disable-xtest";exit]) - AR_EXTRAFLAGS="$AR_EXTRAFLAGS -DUSE_XTEST=1" - AR_EXTRALIBS="$AR_EXTRALIBS -lX11 -lXtst" -fi - -AC_ARG_ENABLE(iconv, - [ --disable-iconv disable iconv support]) - -if test x"$enable_iconv" != xno; then - AC_CHECK_HEADERS([iconv.h], [], [echo "Can not find iconv.h ! Install it or use --disable-iconv";exit]) - AR_EXTRAFLAGS="$AR_EXTRAFLAGS -DUSE_ICONV=1" -fi - -AC_ARG_ENABLE(glib, - [ --disable-glib disable glib support, impiles disable-dbus]) - -if test x"$enable_glib" != xno; then - - AC_CHECK_LIB(gthread-2.0, g_thread_init) - - PKG_CHECK_MODULES([GLIB], [glib-2.0], [], [echo "Can not find glib !";exit]) - AM_PATH_GLIB_2_0(,,,gthread) - - AR_EXTRAFLAGS="$AR_EXTRAFLAGS $GLIB_CFLAGS -DUSE_GLIB=1" - AR_EXTRALIBS="$AR_EXTRALIBS $GLIB_LIBS" -else - enable_dbus=no - AR_EXTRALIBS="$AR_EXTRALIBS -lpthread" -fi - - - -AC_ARG_ENABLE(dbus, - [ --disable-dbus disable dbus support]) - -if test x"$enable_dbus" != xno; then - PKG_CHECK_MODULES([DBUS], [dbus-1 >= 0.61], [], [echo "Can not find dbus-1 ! Install it or use --disable-dbus";exit]) - PKG_CHECK_MODULES([DBUS_GLIB], [dbus-glib-1], [], [echo "Can not find dbus-glib-1 ! Install it or use --disable-dbus";exit]) - - DBUS_CFLAGS="`$PKG_CONFIG --cflags dbus-1`" - DBUS_LIBS="`$PKG_CONFIG --libs dbus-1`" - - DBUSG_CFLAGS="`$PKG_CONFIG --cflags dbus-glib-1`" - # anyRemote do not needs gobject-2.0, but dbus-glib does - #DBUSG_LIBS="-ldbus-glib-1" - DBUSG_LIBS="`$PKG_CONFIG --libs dbus-glib-1`" - - AR_EXTRAFLAGS="$AR_EXTRAFLAGS $DBUS_CFLAGS $DBUSG_CFLAGS -DUSE_DBUS=1" - AR_EXTRALIBS="$AR_EXTRALIBS $DBUS_LIBS $DBUSG_LIBS" -fi - -AR_EXTRAFLAGS="$AR_EXTRAFLAGS -DDATADIR=\\\"${datadir}\\\"" - -AC_SUBST(AR_EXTRAFLAGS) -AC_SUBST(AR_EXTRALIBS) - -AC_OUTPUT([Makefile - src/Makefile]) diff -Nru anyremote-6.4/debian/changelog anyremote-6.5/debian/changelog --- anyremote-6.4/debian/changelog 2014-04-15 19:04:04.000000000 +0000 +++ anyremote-6.5/debian/changelog 2015-04-26 11:13:16.000000000 +0000 @@ -1,3 +1,13 @@ +anyremote (6.5-1) unstable; urgency=medium + + * New upstream release + * Updated Standards-Version: 3.9.6 (no changes needed) + * Adjusted years in debian/copyright + * Dropped typo.patch, now included upstream + * Made dh handle dh-autoreconf and autotools-dev automatically + + -- Philipp Huebner Mon, 30 Mar 2015 18:57:14 +0200 + anyremote (6.4-1) unstable; urgency=medium * New upstream release diff -Nru anyremote-6.4/debian/control anyremote-6.5/debian/control --- anyremote-6.4/debian/control 2014-04-15 18:56:00.000000000 +0000 +++ anyremote-6.5/debian/control 2015-03-30 17:16:33.000000000 +0000 @@ -4,11 +4,14 @@ Maintainer: Philipp Huebner Uploaders: Juan Angulo Moreno Homepage: http://anyremote.sourceforge.net -Build-Depends: debhelper (>= 9), autotools-dev, +Build-Depends: debhelper (>= 9), autotools-dev, dh-autoreconf, + libavahi-client-dev, libavahi-common-dev, libbluetooth-dev [linux-any], libx11-dev, libglib2.0-dev, libdbus-1-dev, libdbus-glib-1-dev, libxtst-dev, x11proto-xext-dev -Standards-Version: 3.9.5 +Standards-Version: 3.9.6 +Vcs-Git: git://anonscm.debian.org/users/debalance/anyremote.git +Vcs-Browser: https://anonscm.debian.org/cgit/users/debalance/anyremote.git Package: anyremote Architecture: any diff -Nru anyremote-6.4/debian/copyright anyremote-6.5/debian/copyright --- anyremote-6.4/debian/copyright 2014-04-15 19:03:42.000000000 +0000 +++ anyremote-6.5/debian/copyright 2015-03-30 15:41:15.000000000 +0000 @@ -9,7 +9,7 @@ Copyright: - © 2006-2014 Mikhail Fedotov + © 2006-2015 Mikhail Fedotov License: @@ -33,6 +33,6 @@ The Debian packaging is © 2008-2009 Juan Angulo Moreno - © 2009-2014 Philipp Huebner + © 2009-2015 Philipp Huebner and is licensed under the GPL-2, see above. diff -Nru anyremote-6.4/debian/patches/series anyremote-6.5/debian/patches/series --- anyremote-6.4/debian/patches/series 2013-05-06 12:34:40.000000000 +0000 +++ anyremote-6.5/debian/patches/series 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -typo.patch diff -Nru anyremote-6.4/debian/patches/typo.patch anyremote-6.5/debian/patches/typo.patch --- anyremote-6.4/debian/patches/typo.patch 2013-03-12 00:12:51.000000000 +0000 +++ anyremote-6.5/debian/patches/typo.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -Description: correct a tiny spelling error -Author: Philipp Huebner -Index: anyremote-6.2/src/utils.c -=================================================================== ---- anyremote-6.2.orig/src/utils.c 2013-03-12 00:53:06.176838451 +0100 -+++ anyremote-6.2/src/utils.c 2013-03-12 00:53:57.217568615 +0100 -@@ -427,7 +427,7 @@ - printf(" -name if bluetooth connection is used, allows one to specify SDP service name\n"); - printf(" -password ask password on connect\n"); - printf(" password should be stored in $HOME/.anyRemote/password file in a plain text\n"); -- printf(" -u|--user if started from root, allows to set effective user ID to specified user\n\n"); -+ printf(" -u|--user if started from root, allows one to set effective user ID to specified user\n\n"); - - } - diff -Nru anyremote-6.4/debian/rules anyremote-6.5/debian/rules --- anyremote-6.4/debian/rules 2013-03-12 00:30:18.000000000 +0000 +++ anyremote-6.5/debian/rules 2015-03-30 16:47:01.000000000 +0000 @@ -1,26 +1,9 @@ #!/usr/bin/make -f -# -*- makefile -*- -# Sample debian/rules that uses debhelper. -# This file was originally written by Joey Hess and Craig Small. -# As a special exception, when this file is copied by dh-make into a -# dh-make output file, you may use that output file without restriction. -# This special exception was added by Craig Small in version 0.37 of dh-make. - -# Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 %: - dh $@ --without perl - -override_dh_auto_configure: - cp -f /usr/share/misc/config.sub config.sub - cp -f /usr/share/misc/config.guess config.guess - dh_auto_configure + dh $@ --without perl --with autotools-dev --with autoreconf override_dh_fixperms: dh_fixperms find . -name *.sh -type f -exec chmod 755 {} \; - -override_dh_auto_clean: - rm -f config.sub config.guess - dh_auto_clean diff -Nru anyremote-6.4/depcomp anyremote-6.5/depcomp --- anyremote-6.4/depcomp 2014-03-02 08:17:09.000000000 +0000 +++ anyremote-6.5/depcomp 2013-01-23 17:52:38.000000000 +0000 @@ -1,9 +1,9 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2013-05-30.07; # UTC +scriptversion=2012-03-27.16; # UTC -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-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 @@ -27,9 +27,9 @@ case $1 in '') - echo "$0: No command. Try '$0 --help' for more information." 1>&2 - exit 1; - ;; + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] @@ -56,65 +56,11 @@ ;; esac -# Get the directory component of the given path, and save it in the -# global variables '$dir'. Note that this directory component will -# be either empty or ending with a '/' character. This is deliberate. -set_dir_from () -{ - case $1 in - */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; - *) dir=;; - esac -} - -# Get the suffix-stripped basename of the given path, and save it the -# global variable '$base'. -set_base_from () -{ - base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` -} - -# If no dependency file was actually created by the compiler invocation, -# we still have to create a dummy depfile, to avoid errors with the -# Makefile "include basename.Plo" scheme. -make_dummy_depfile () -{ - echo "#dummy" > "$depfile" -} - -# Factor out some common post-processing of the generated depfile. -# Requires the auxiliary global variable '$tmpdepfile' to be set. -aix_post_process_depfile () -{ - # If the compiler actually managed to produce a dependency file, - # post-process it. - if test -f "$tmpdepfile"; then - # Each line is of the form 'foo.o: dependency.h'. - # Do two passes, one to just change these to - # $object: dependency.h - # and one to simply output - # dependency.h: - # which is needed to avoid the deleted-header problem. - { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" - sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" - } > "$depfile" - rm -f "$tmpdepfile" - else - make_dummy_depfile - fi -} - # A tabulation character. tab=' ' # A newline character. nl=' ' -# Character ranges might be problematic outside the C locale. -# These definitions help. -upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ -lower=abcdefghijklmnopqrstuvwxyz -digits=0123456789 -alpha=${upper}${lower} if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 @@ -128,9 +74,6 @@ rm -f "$tmpdepfile" -# Avoid interferences from the environment. -gccflag= dashmflag= - # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case @@ -142,32 +85,32 @@ fi if test "$depmode" = dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=-xM - depmode=dashmstdout + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then - # This is just like msvisualcpp but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u='sed s,\\\\,/,g' - depmode=msvisualcpp + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then - # This is just like msvc7 but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u='sed s,\\\\,/,g' - depmode=msvc7 + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 fi if test "$depmode" = xlc; then - # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. - gccflag=-qmakedep=gcc,-MF - depmode=gcc + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations. + gccflag=-qmakedep=gcc,-MF + depmode=gcc fi case "$depmode" in @@ -190,7 +133,8 @@ done "$@" stat=$? - if test $stat -ne 0; then + if test $stat -eq 0; then : + else rm -f "$tmpdepfile" exit $stat fi @@ -198,17 +142,13 @@ ;; gcc) -## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. -## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. -## (see the conditional assignment to $gccflag above). ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). Also, it might not be -## supported by the other compilers which use the 'gcc' depmode. +## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then @@ -216,14 +156,15 @@ fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? - if test $stat -ne 0; then + if test $stat -eq 0; then : + else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" - # The second -e expression handles DOS-style file names with drive - # letters. + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the "deleted header file" problem. @@ -232,15 +173,15 @@ ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. + tr ' ' "$nl" < "$tmpdepfile" | ## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" + sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -258,7 +199,8 @@ "$@" -MDupdate "$tmpdepfile" fi stat=$? - if test $stat -ne 0; then + if test $stat -eq 0; then : + else rm -f "$tmpdepfile" exit $stat fi @@ -266,6 +208,7 @@ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" + # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in @@ -273,15 +216,19 @@ # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ - | tr "$nl" ' ' >> "$depfile" + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr "$nl" ' ' >> "$depfile" echo >> "$depfile" + # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> "$depfile" + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" else - make_dummy_depfile + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; @@ -299,8 +246,9 @@ # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. - set_dir_from "$object" - set_base_from "$object" + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u @@ -313,7 +261,9 @@ "$@" -M fi stat=$? - if test $stat -ne 0; then + + if test $stat -eq 0; then : + else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi @@ -322,113 +272,65 @@ do test -f "$tmpdepfile" && break done - aix_post_process_depfile - ;; - -tcc) - # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 - # FIXME: That version still under development at the moment of writing. - # Make that this statement remains true also for stable, released - # versions. - # It will wrap lines (doesn't matter whether long or short) with a - # trailing '\', as in: - # - # foo.o : \ - # foo.c \ - # foo.h \ - # - # It will put a trailing '\' even on the last line, and will use leading - # spaces rather than leading tabs (at least since its commit 0394caf7 - # "Emit spaces for -MD"). - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependent.h'. + # Do two passes, one to just change these to + # '$object: dependent.h' and one to simply 'dependent.h:'. + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" fi - rm -f "$depfile" - # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. - # We have to change lines of the first kind to '$object: \'. - sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" - # And for each line of the second kind, we have to emit a 'dep.h:' - # dummy dependency, to avoid the deleted-header problem. - sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; -## The order of this option in the case statement is important, since the -## shell code in configure will try each of these formats in the order -## listed in this file. A plain '-MD' option would be understood by many -## compilers, so we must ensure this comes after the gcc and icc options. -pgcc) - # Portland's C compiler understands '-MD'. - # Will always output deps to 'file.d' where file is the root name of the - # source file under compilation, even if file resides in a subdirectory. - # The object file name does not affect the name of the '.d' file. - # pgcc 10.2 will output +icc) + # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'. + # However on + # $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # ICC 7.0 will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using '\' : + # and will wrap long lines using '\': # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... - set_dir_from "$object" - # Use the source, not the object, to determine the base name, since - # that's sadly what pgcc will do too. - set_base_from "$source" - tmpdepfile=$base.d - - # For projects that build the same source file twice into different object - # files, the pgcc approach of using the *source* file root name can cause - # problems in parallel builds. Use a locking strategy to avoid stomping on - # the same $tmpdepfile. - lockdir=$base.d-lock - trap " - echo '$0: caught signal, cleaning up...' >&2 - rmdir '$lockdir' - exit 1 - " 1 2 13 15 - numtries=100 - i=$numtries - while test $i -gt 0; do - # mkdir is a portable test-and-set. - if mkdir "$lockdir" 2>/dev/null; then - # This process acquired the lock. - "$@" -MD - stat=$? - # Release the lock. - rmdir "$lockdir" - break - else - # If the lock is being held by a different process, wait - # until the winning process is done or we timeout. - while test -d "$lockdir" && test $i -gt 0; do - sleep 1 - i=`expr $i - 1` - done - fi - i=`expr $i - 1` - done - trap - 1 2 13 15 - if test $i -le 0; then - echo "$0: failed to acquire lock after $numtries attempts" >&2 - echo "$0: check lockdir '$lockdir'" >&2 - exit 1 - fi - - if test $stat -ne 0; then + # tcc 0.9.26 (FIXME still under development at the moment of writing) + # will emit a similar output, but also prepend the continuation lines + # with horizontal tabulation characters. + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" - # Each line is of the form `foo.o: dependent.h', - # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Each line is of the form 'foo.o: dependent.h', + # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'. # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ - | sed -e 's/$/ :/' >> "$depfile" + # '$object: dependent.h' and one to simply 'dependent.h:'. + sed -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \ + < "$tmpdepfile" > "$depfile" + sed ' + s/[ '"$tab"'][ '"$tab"']*/ /g + s/^ *// + s/ *\\*$// + s/^[^:]*: *// + /^$/d + /:$/d + s/$/ :/ + ' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; @@ -439,8 +341,9 @@ # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. - set_dir_from "$object" - set_base_from "$object" + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d @@ -451,7 +354,8 @@ "$@" +Maked fi stat=$? - if test $stat -ne 0; then + if test $stat -eq 0; then : + else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi @@ -461,61 +365,76 @@ test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" + sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ - s/^ *// - s/ \\*$// - s/$/:/ - p - }' "$tmpdepfile" >> "$depfile" + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" else - make_dummy_depfile + echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) - # The Tru64 compiler uses -MD to generate dependencies as a side - # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in 'foo.d' instead, so we check for that too. - # Subdirectories are respected. - set_dir_from "$object" - set_base_from "$object" - - if test "$libtool" = yes; then - # Libtool generates 2 separate objects for the 2 libraries. These - # two compilations output dependencies in $dir.libs/$base.o.d and - # in $dir$base.o.d. We have to check for both files, because - # one of the two compilations can be disabled. We should prefer - # $dir$base.o.d over $dir.libs/$base.o.d because the latter is - # automatically cleaned when .libs/ is deleted, while ignoring - # the former would cause a distcleancheck panic. - tmpdepfile1=$dir$base.o.d # libtool 1.5 - tmpdepfile2=$dir.libs/$base.o.d # Likewise. - tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 - "$@" -Wc,-MD - else - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir$base.d - tmpdepfile3=$dir$base.d - "$@" -MD - fi - - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - exit $stat - fi + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in 'foo.d' instead, so we check for that too. + # Subdirectories are respected. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + + if test "$libtool" = yes; then + # With Tru64 cc, shared objects can also be used to make a + # static library. This mechanism is used in libtool 1.4 series to + # handle both shared and static libraries in a single compilation. + # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. + # + # With libtool 1.5 this exception was removed, and libtool now + # generates 2 separate objects for the 2 libraries. These two + # compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 + tmpdepfile2=$dir$base.o.d # libtool 1.5 + tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 + tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.o.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + tmpdepfile4=$dir$base.d + "$@" -MD + fi - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - do - test -f "$tmpdepfile" && break - done - # Same post-processing that is required for AIX mode. - aix_post_process_depfile - ;; + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; msvc7) if test "$libtool" = yes; then @@ -526,7 +445,8 @@ "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" - if test $stat -ne 0; then + if test "$stat" = 0; then : + else rm -f "$tmpdepfile" exit $stat fi @@ -552,7 +472,6 @@ G p }' >> "$depfile" - echo >> "$depfile" # make sure the fragment doesn't end with a backslash rm -f "$tmpdepfile" ;; @@ -604,14 +523,13 @@ # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | - sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" + sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this sed invocation - # correctly. Breaking it into two sed invocations is a workaround. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" + tr ' ' "$nl" < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -664,12 +582,10 @@ # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process the last invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed '1,2d' "$tmpdepfile" \ - | tr ' ' "$nl" \ - | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" + sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; @@ -705,10 +621,10 @@ esac done - "$@" -E \ - | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - | sed '$ s: \\$::' > "$tmpdepfile" + "$@" -E | + sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" @@ -740,15 +656,15 @@ shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; + set fnord "$@" + shift + shift + ;; *) - set fnord "$@" "$arg" - shift - shift - ;; + set fnord "$@" "$arg" + shift + shift + ;; esac done "$@" -E 2>/dev/null | diff -Nru anyremote-6.4/doc-html/conf-server-ex.html anyremote-6.5/doc-html/conf-server-ex.html --- anyremote-6.4/doc-html/conf-server-ex.html 2014-03-02 08:16:23.000000000 +0000 +++ anyremote-6.5/doc-html/conf-server-ex.html 2014-07-17 17:59:35.000000000 +0000 @@ -156,6 +156,7 @@ amarok-v4.cfgmanage Amarok/KDE4 player. Improved track list handling. amixer.cfgControls volume up/dowm/mute using amixer utility. aqualung.cfgmanage Aqualung audio player + atril.cfgmanage Atril document viewer audacious.cfgmanage Audacious player; needs v1.3.2 or higher banshee.cfgmanage Banshee player boxee.cfgmanage Boxee media center. @@ -168,8 +169,9 @@ digikam.cfgmanage Digikam/KDE4 - photo management application dragon.cfgmanage Dragon player exaile.cfgmanage Exaile player - evince.cfgmanage Evince + evince.cfgmanage Evince document viewer eog.cfgmanage Eye of Gnome image viewer + eom.cfgmanage Eye of Mate image viewer foobnix.cfgmanage Foobnix player. freevo.cfgmanage Freevo home theatre PC platform gmusicbrowser.cfgmanage Gmusicbrowser player (you have to create play list before). diff -Nru anyremote-6.4/doc-html/man.html anyremote-6.5/doc-html/man.html --- anyremote-6.4/doc-html/man.html 2014-03-02 08:16:23.000000000 +0000 +++ anyremote-6.5/doc-html/man.html 2008-01-01 00:04:04.000000000 +0000 @@ -52,6 +52,7 @@

/dev/ircomm# (AT mode - IR connection)

ilirc:_AF_LOCAL socket file_ (use with inputlircd)

stdin

+

avahi - register SDP service using Avahi

Default peer value is bluetooth:19,tcp:5197,web:5080

It is possible to specify several peers for Server mode configuration files only.

It is possible to specify only single peer of web: or cmxml: type.

@@ -66,7 +67,7 @@

Work as backend for GUI frontend. Use specified port to connect to frontend.

-name SDP_service_name

-

if bluetooth connection is used, allows one to specify SDP service name.

+

if bluetooth or TCP/IP connection is used, allows one to specify SDP service name.

Default value for SDP service name is "anyRemote"

-password

diff -Nru anyremote-6.4/doc-html/vars.html anyremote-6.5/doc-html/vars.html --- anyremote-6.4/doc-html/vars.html 2014-03-04 15:33:01.000000000 +0000 +++ anyremote-6.5/doc-html/vars.html 2008-01-01 00:04:04.000000000 +0000 @@ -249,6 +249,7 @@
  • web:_port_
  • cmxml:_port_
  • local:/dev/ircomm#
  • +
  • avahi
  • If anyRemote works in AT mode then correct value for Device could be:

      diff -Nru anyremote-6.4/Makefile.am anyremote-6.5/Makefile.am --- anyremote-6.4/Makefile.am 2014-03-02 08:21:36.000000000 +0000 +++ anyremote-6.5/Makefile.am 2014-07-17 17:59:35.000000000 +0000 @@ -33,6 +33,7 @@ chmod a+x $(DESTDIR)$(pkgdatadir)/cfg-data/Utils/generate_cover.sh chmod a+x $(DESTDIR)$(pkgdatadir)/cfg-data/Utils/generate_poster.sh chmod a+x $(DESTDIR)$(pkgdatadir)/cfg-data/Utils/getPlayList.sh + chmod a+x $(DESTDIR)$(pkgdatadir)/cfg-data/Utils/get-installed.sh chmod a+x $(DESTDIR)$(pkgdatadir)/cfg-data/Utils/message.sh chmod a+x $(DESTDIR)$(pkgdatadir)/cfg-data/Utils/pulse-audio-ctl.sh chmod a+x $(DESTDIR)$(pkgdatadir)/cfg-data/Utils/registry.sh diff -Nru anyremote-6.4/Makefile.in anyremote-6.5/Makefile.in --- anyremote-6.4/Makefile.in 2014-03-02 08:21:39.000000000 +0000 +++ anyremote-6.5/Makefile.in 2014-12-20 15:26:20.000000000 +0000 @@ -103,7 +103,7 @@ $(top_srcdir)/configure $(am__configure_deps) COPYING TODO \ config.guess config.sub depcomp install-sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ @@ -217,6 +217,8 @@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ +AVAHI_CFLAGS = @AVAHI_CFLAGS@ +AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ @@ -780,6 +782,7 @@ chmod a+x $(DESTDIR)$(pkgdatadir)/cfg-data/Utils/generate_cover.sh chmod a+x $(DESTDIR)$(pkgdatadir)/cfg-data/Utils/generate_poster.sh chmod a+x $(DESTDIR)$(pkgdatadir)/cfg-data/Utils/getPlayList.sh + chmod a+x $(DESTDIR)$(pkgdatadir)/cfg-data/Utils/get-installed.sh chmod a+x $(DESTDIR)$(pkgdatadir)/cfg-data/Utils/message.sh chmod a+x $(DESTDIR)$(pkgdatadir)/cfg-data/Utils/pulse-audio-ctl.sh chmod a+x $(DESTDIR)$(pkgdatadir)/cfg-data/Utils/registry.sh diff -Nru anyremote-6.4/missing anyremote-6.5/missing --- anyremote-6.4/missing 2014-03-02 08:17:09.000000000 +0000 +++ anyremote-6.5/missing 2013-01-23 17:52:37.000000000 +0000 @@ -1,10 +1,10 @@ #! /bin/sh -# Common wrapper for a few potentially missing GNU programs. +# Common stub for a few missing GNU programs while installing. -scriptversion=2012-06-26.16; # UTC +scriptversion=2012-01-06.18; # UTC -# Copyright (C) 1996-2013 Free Software Foundation, Inc. -# Originally written by Fran,cois Pinard , 1996. +# Copyright (C) 1996-2012 Free Software Foundation, Inc. +# Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -29,33 +29,61 @@ exit 1 fi -case $1 in +run=: +sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' +sed_minuso='s/.* -o \([^ ]*\).*/\1/p' + +# In the cases where this matters, 'missing' is being run in the +# srcdir already. +if test -f configure.ac; then + configure_ac=configure.ac +else + configure_ac=configure.in +fi - --is-lightweight) - # Used by our autoconf macros to check whether the available missing - # script is modern enough. - exit 0 - ;; +msg="missing on your system" - --run) - # Back-compat with the calling convention used by older automake. - shift - ;; +case $1 in +--run) + # Try to run requested program, and just exit if it succeeds. + run= + shift + "$@" && exit 0 + # Exit code 63 means version mismatch. This often happens + # when the user try to use an ancient version of a tool on + # a file that requires a minimum version. In this case we + # we should proceed has if the program had been absent, or + # if --run hadn't been passed. + if test $? = 63; then + run=: + msg="probably too old" + fi + ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... -Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due -to PROGRAM being missing or too old. +Handle 'PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit + --run try to run the given command, and emulate it if it fails Supported PROGRAM values: - aclocal autoconf autoheader autom4te automake makeinfo - bison yacc flex lex help2man + aclocal touch file 'aclocal.m4' + autoconf touch file 'configure' + autoheader touch file 'config.h.in' + autom4te touch the output file, or create a stub one + automake touch all 'Makefile.in' files + bison create 'y.tab.[ch]', if possible, from existing .[ch] + flex create 'lex.yy.c', if possible, from existing .c + help2man touch the output file + lex create 'lex.yy.c', if possible, from existing .c + makeinfo touch the output file + yacc create 'y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. @@ -70,141 +98,228 @@ ;; -*) - echo 1>&2 "$0: unknown '$1' option" + echo 1>&2 "$0: Unknown '$1' option" echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac -# Run the given program, remember its exit status. -"$@"; st=$? +# normalize program name to check for. +program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + +# Now exit if we have it, but it failed. Also exit now if we +# don't have it and --version was passed (most likely to detect +# the program). This is about non-GNU programs, so use $1 not +# $program. +case $1 in + lex*|yacc*) + # Not GNU programs, they don't have --version. + ;; -# If it succeeded, we are done. -test $st -eq 0 && exit 0 + *) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + # Could not run --version or --help. This is probably someone + # running '$TOOL --version' or '$TOOL --help' to check whether + # $TOOL exists and not knowing $TOOL uses missing. + exit 1 + fi + ;; +esac -# Also exit now if we it failed (or wasn't found), and '--version' was -# passed; such an option is passed most likely to detect whether the -# program is present and works. -case $2 in --version|--help) exit $st;; esac - -# Exit code 63 means version mismatch. This often happens when the user -# tries to use an ancient version of a tool on a file that requires a -# minimum version. -if test $st -eq 63; then - msg="probably too old" -elif test $st -eq 127; then - # Program was missing. - msg="missing on your system" -else - # Program was found and executed, but failed. Give up. - exit $st -fi +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case $program in + aclocal*) + echo 1>&2 "\ +WARNING: '$1' is $msg. You should only need it if + you modified 'acinclude.m4' or '${configure_ac}'. You might want + to install the Automake and Perl packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf*) + echo 1>&2 "\ +WARNING: '$1' is $msg. You should only need it if + you modified '${configure_ac}'. You might want to install the + Autoconf and GNU m4 packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader*) + echo 1>&2 "\ +WARNING: '$1' is $msg. You should only need it if + you modified 'acconfig.h' or '${configure_ac}'. You might want + to install the Autoconf and GNU m4 packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case $f in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files + ;; + + automake*) + echo 1>&2 "\ +WARNING: '$1' is $msg. You should only need it if + you modified 'Makefile.am', 'acinclude.m4' or '${configure_ac}'. + You might want to install the Automake and Perl packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + autom4te*) + echo 1>&2 "\ +WARNING: '$1' is needed, but is $msg. + You might have modified some files without having the + proper tools for further handling them. + You can get '$1' as part of Autoconf from any GNU + archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo "#! /bin/sh" + echo "# Created by GNU Automake missing as a replacement of" + echo "# $ $@" + echo "exit 0" + chmod +x $file + exit 1 + fi + ;; + + bison*|yacc*) + echo 1>&2 "\ +WARNING: '$1' $msg. You should only need it if + you modified a '.y' file. You may need the Bison package + in order for those modifications to take effect. You can get + Bison from any GNU archive site." + rm -f y.tab.c y.tab.h + if test $# -ne 1; then + eval LASTARG=\${$#} + case $LASTARG in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if test ! -f y.tab.h; then + echo >y.tab.h + fi + if test ! -f y.tab.c; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex*|flex*) + echo 1>&2 "\ +WARNING: '$1' is $msg. You should only need it if + you modified a '.l' file. You may need the Flex package + in order for those modifications to take effect. You can get + Flex from any GNU archive site." + rm -f lex.yy.c + if test $# -ne 1; then + eval LASTARG=\${$#} + case $LASTARG in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if test ! -f lex.yy.c; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + help2man*) + echo 1>&2 "\ +WARNING: '$1' is $msg. You should only need it if + you modified a dependency of a manual page. You may need the + Help2man package in order for those modifications to take + effect. You can get Help2man from any GNU archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo ".ab help2man is required to generate this page" + exit $? + fi + ;; + + makeinfo*) + echo 1>&2 "\ +WARNING: '$1' is $msg. You should only need it if + you modified a '.texi' or '.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy 'make' (AIX, + DU, IRIX). You might want to install the Texinfo package or + the GNU make package. Grab either from any GNU archive site." + # The file to touch is that specified with -o ... + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -z "$file"; then + # ... or it is the one specified with @setfilename ... + infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n ' + /^@setfilename/{ + s/.* \([^ ]*\) *$/\1/ + p + q + }' $infile` + # ... or it is derived from the source name (dir/f.texi becomes f.info) + test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info + fi + # If the file does not exist, the user really needs makeinfo; + # let's fail without touching anything. + test -f $file || exit 1 + touch $file + ;; + + *) + echo 1>&2 "\ +WARNING: '$1' is needed, and is $msg. + You might have modified some files without having the + proper tools for further handling them. Check the 'README' file, + it often tells you about the needed prerequisites for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing '$1' program." + exit 1 + ;; +esac -perl_URL=http://www.perl.org/ -flex_URL=http://flex.sourceforge.net/ -gnu_software_URL=http://www.gnu.org/software - -program_details () -{ - case $1 in - aclocal|automake) - echo "The '$1' program is part of the GNU Automake package:" - echo "<$gnu_software_URL/automake>" - echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" - echo "<$gnu_software_URL/autoconf>" - echo "<$gnu_software_URL/m4/>" - echo "<$perl_URL>" - ;; - autoconf|autom4te|autoheader) - echo "The '$1' program is part of the GNU Autoconf package:" - echo "<$gnu_software_URL/autoconf/>" - echo "It also requires GNU m4 and Perl in order to run:" - echo "<$gnu_software_URL/m4/>" - echo "<$perl_URL>" - ;; - esac -} - -give_advice () -{ - # Normalize program name to check for. - normalized_program=`echo "$1" | sed ' - s/^gnu-//; t - s/^gnu//; t - s/^g//; t'` - - printf '%s\n' "'$1' is $msg." - - configure_deps="'configure.ac' or m4 files included by 'configure.ac'" - case $normalized_program in - autoconf*) - echo "You should only need it if you modified 'configure.ac'," - echo "or m4 files included by it." - program_details 'autoconf' - ;; - autoheader*) - echo "You should only need it if you modified 'acconfig.h' or" - echo "$configure_deps." - program_details 'autoheader' - ;; - automake*) - echo "You should only need it if you modified 'Makefile.am' or" - echo "$configure_deps." - program_details 'automake' - ;; - aclocal*) - echo "You should only need it if you modified 'acinclude.m4' or" - echo "$configure_deps." - program_details 'aclocal' - ;; - autom4te*) - echo "You might have modified some maintainer files that require" - echo "the 'automa4te' program to be rebuilt." - program_details 'autom4te' - ;; - bison*|yacc*) - echo "You should only need it if you modified a '.y' file." - echo "You may want to install the GNU Bison package:" - echo "<$gnu_software_URL/bison/>" - ;; - lex*|flex*) - echo "You should only need it if you modified a '.l' file." - echo "You may want to install the Fast Lexical Analyzer package:" - echo "<$flex_URL>" - ;; - help2man*) - echo "You should only need it if you modified a dependency" \ - "of a man page." - echo "You may want to install the GNU Help2man package:" - echo "<$gnu_software_URL/help2man/>" - ;; - makeinfo*) - echo "You should only need it if you modified a '.texi' file, or" - echo "any other file indirectly affecting the aspect of the manual." - echo "You might want to install the Texinfo package:" - echo "<$gnu_software_URL/texinfo/>" - echo "The spurious makeinfo call might also be the consequence of" - echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" - echo "want to install GNU make:" - echo "<$gnu_software_URL/make/>" - ;; - *) - echo "You might have modified some files without having the proper" - echo "tools for further handling them. Check the 'README' file, it" - echo "often tells you about the needed prerequisites for installing" - echo "this package. You may also peek at any GNU archive site, in" - echo "case some other package contains this missing '$1' program." - ;; - esac -} - -give_advice "$1" | sed -e '1s/^/WARNING: /' \ - -e '2,$s/^/ /' >&2 - -# Propagate the correct exit status (expected to be 127 for a program -# not found, 63 for a program that failed due to version mismatch). -exit $st +exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) diff -Nru anyremote-6.4/specs/anyremote-fedora.spec anyremote-6.5/specs/anyremote-fedora.spec --- anyremote-6.4/specs/anyremote-fedora.spec 2014-03-02 08:16:23.000000000 +0000 +++ anyremote-6.5/specs/anyremote-fedora.spec 2014-12-20 15:17:14.000000000 +0000 @@ -1,13 +1,13 @@ Summary: Remote control through bluetooth or Wi-Fi connection Name: anyremote -Version: 6.4 +Version: 6.5 Release: 1%{?dist} License: GPLv2+ Group: Applications/System Source0: http://downloads.sourceforge.net/anyremote/%{name}-%{version}.tar.gz URL: http://anyremote.sourceforge.net/ -Requires: bc,wmctrl,dbus-glib,ImageMagick,anyremote-data >= 6.3.1 -BuildRequires:bluez-libs-devel >= 4.64, libX11-devel, libXi-devel, libXtst-devel, xorg-x11-proto-devel, glib2-devel >= 2.24.1, dbus-devel >= 1.2.24, dbus-glib-devel >= 0.86 +Requires: bc,wmctrl,dbus-glib,ImageMagick,avahi-libs,anyremote-data >= 6.3.1 +BuildRequires:bluez-libs-devel >= 4.64, libX11-devel, libXi-devel, libXtst-devel, xorg-x11-proto-devel, glib2-devel >= 2.24.1, dbus-devel >= 1.2.24, dbus-glib-devel >= 0.86, avahi-devel >= 0.6.25 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Obsoletes: anyremote2html @@ -58,6 +58,9 @@ %changelog +* Sat Dec 20 2014 Mikhail Fedotov - 6.5 +- Avahi support. + * Sun Mar 02 2014 Mikhail Fedotov - 6.4 - Support for keyboard and mouse emulation events for Android client. diff -Nru anyremote-6.4/specs/anyremote-mdv.spec anyremote-6.5/specs/anyremote-mdv.spec --- anyremote-6.4/specs/anyremote-mdv.spec 2014-03-02 08:16:23.000000000 +0000 +++ anyremote-6.5/specs/anyremote-mdv.spec 2014-12-20 15:17:22.000000000 +0000 @@ -1,5 +1,5 @@ %define name anyremote -%define version 6.4 +%define version 6.5 %define release %mkrel 1 Summary: Remote control through bluetooth or Wi-Fi connection @@ -15,7 +15,8 @@ BuildRequires: glib2-devel >= 2.20.1, dbus-devel, dbus-devel >= 0.80 BuildRequires: dbus-glib-devel >= 0.80 BuildRequires: libxtst-devel >= 1.0.3 -Requires: bc, wmctrl, dbus-glib >= 0.80, anyremote-data >= 6.3.1 +BuildRequires: avahi-devel >= 0.6.25 +Requires: bc, wmctrl, dbus-glib >= 0.80, avahi-libs, anyremote-data >= 6.3.1 Provides: anyremote = %{version} BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot Obsoletes: anyremote2html @@ -45,6 +46,9 @@ %changelog +* Sat Dec 20 2014 Mikhail Fedotov - 6.5 +- Avahi support. + * Sun Mar 02 2014 Mikhail Fedotov - 6.4 - Support for keyboard and mouse emulation events for Android client. diff -Nru anyremote-6.4/specs/anyremote.spec anyremote-6.5/specs/anyremote.spec --- anyremote-6.4/specs/anyremote.spec 2014-03-02 08:16:23.000000000 +0000 +++ anyremote-6.5/specs/anyremote.spec 2014-12-20 15:17:29.000000000 +0000 @@ -1,7 +1,7 @@ # norootforbuild %define name anyremote -%define version 6.4 +%define version 6.5 Summary: Remote control software for applications using Bluetooth or Wi-Fi. Name: %{name} @@ -33,28 +33,28 @@ %endif %if 0%{?suse_version} || 0%{?sles_version} -BuildRequires: bluez-libs, xorg-x11-devel, xorg-x11-libX11-devel, xorg-x11-libs -Requires: bluez-libs, xorg-x11-libs, wmctrl, anyremote-data >= 6.3.1 +BuildRequires: bluez-libs, xorg-x11-devel, xorg-x11-libX11-devel, xorg-x11-libs, avahi-devel +Requires: bluez-libs, xorg-x11-libs, wmctrl, avahi-libs, anyremote-data >= 6.3.1 %endif %if 0%{?mandriva_version} %ifarch x86_64 -Requires: binutils, coreutils, bc, gawk, libbluez2, libxtst6, libxtst6-devel, wmctrl, anyremote-data >= 6.3.1 -BuildRequires: libbluez2, libxtst6, libxtst6-devel, x11-proto-devel, libbluez-devel +Requires: binutils, coreutils, bc, gawk, libbluez2, libxtst6, libxtst6-devel, wmctrl, avahi-libs, anyremote-data >= 6.3.1 +BuildRequires: libbluez2, libxtst6, libxtst6-devel, x11-proto-devel, libbluez-devel, avahi-devel %else -Requires: binutils, coreutils, bc, gawk, libbluez2 >= 3.15, libxtst6 >= 1.0.3, libxtst6-devel >= 1.0.3, wmctrl, anyremote-data >= 6.3 .1 -BuildRequires: libbluez2 >= 3.15, libxtst6 >= 1.0.3, libxtst6-devel >= 1.0.3, x11-proto-devel, libbluez-devel +Requires: binutils, coreutils, bc, gawk, libbluez2 >= 3.15, libxtst6 >= 1.0.3, libxtst6-devel >= 1.0.3, wmctrl, avahi-libs, anyremote-data >= 6.3 .1 +BuildRequires: libbluez2 >= 3.15, libxtst6 >= 1.0.3, libxtst6-devel >= 1.0.3, x11-proto-devel, libbluez-devel, avahi-devel %endif %endif %if 0%{?fedora_version} || 0%{?rhel_version} || 0%{?centos_version} -Requires: bc, wmctrl, anyremote-data >= 6.3.1 -BuildRequires:bluez-libs-devel, libX11-devel, libXtst-devel, xorg-x11-proto-devel +Requires: bc, wmctrl, avahi-libs, anyremote-data >= 6.3.1 +BuildRequires:bluez-libs-devel, libX11-devel, libXtst-devel, xorg-x11-proto-devel, avahi-devel %endif %if %{undefined suse_version} && %{undefined sles_version} && %{undefined mandriva_version} && %{undefined fedora_version} && %{undefined rhel_version} && %{undefined centos_version} -BuildRequires: bluez-libs -Requires: bluez-libs, wmctrl, anyremote-data >= 6.3.1 +BuildRequires: bluez-libs, avahi-devel +Requires: bluez-libs, wmctrl, avahi-libs, anyremote-data >= 6.3.1 %endif Source0: %{name}-%{version}.tar.gz @@ -94,6 +94,9 @@ %changelog +* Sat Dec 20 2014 Mikhail Fedotov - 6.5 +- Avahi support. + * Sun Mar 02 2014 Mikhail Fedotov - 6.4 - Support for keyboard and mouse emulation events for Android client. diff -Nru anyremote-6.4/specs/anyremote-suse.spec anyremote-6.5/specs/anyremote-suse.spec --- anyremote-6.4/specs/anyremote-suse.spec 2014-03-02 08:16:23.000000000 +0000 +++ anyremote-6.5/specs/anyremote-suse.spec 2014-12-20 15:17:35.000000000 +0000 @@ -1,7 +1,7 @@ # norootforbuild %define name anyremote -%define version 6.4 +%define version 6.5 Summary: Remote control through bluetooth or Wi-Fi connection Name: %{name} @@ -9,8 +9,8 @@ Release: 1.suse11 License: GPLv2+ Group: System/Management -BuildRequires: bluez-devel, xorg-x11-devel, xorg-x11-libX11-devel, xorg-x11-libs, glib2-devel, dbus-1-devel, dbus-1-glib-devel -Requires: libbluetooth3, xorg-x11-libs, dbus-1-glib, wmctrl, anyremote-data >= 6.3.1 +BuildRequires: bluez-devel, xorg-x11-devel, xorg-x11-libX11-devel, xorg-x11-libs, glib2-devel, dbus-1-devel, dbus-1-glib-devel, avahi-devel +Requires: libbluetooth3, xorg-x11-libs, dbus-1-glib, wmctrl, avahi-libs, anyremote-data >= 6.3.1 Source0: %{name}-%{version}.tar.gz URL: http://anyremote.sourceforge.net/ BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -43,6 +43,9 @@ %changelog +* Sat Dec 20 2014 Mikhail Fedotov - 6.5 +- Avahi support. + * Sun Mar 02 2014 Mikhail Fedotov - 6.4 - Support for keyboard and mouse emulation events for Android client. diff -Nru anyremote-6.4/src/avahi.c anyremote-6.5/src/avahi.c --- anyremote-6.4/src/avahi.c 1970-01-01 00:00:00.000000000 +0000 +++ anyremote-6.5/src/avahi.c 2008-01-01 00:04:04.000000000 +0000 @@ -0,0 +1,398 @@ +// +// anyRemote +// a wi-fi or bluetooth remote for your PC. +// +// Copyright (C) 2014 Mikhail Fedotov +// +// 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 HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include + +#ifdef USE_AVAHI + #include + #include + + #include + #include + #include + #include + #include +#endif + +#include "conf.h" +#include "thread.h" +#include "utils.h" + +extern char tmp[MAXMAXLEN]; + +#ifdef USE_AVAHI +static AvahiEntryGroup *group = NULL; +static AvahiSimplePoll *simple_poll = NULL; +static char *avahiName = NULL; + +static void create_services(AvahiClient *c); + +static int isAvahiUsed = 0; +static int tcpPort = -1; +static int webPort = -1; + +int parsePortsForAvahi() +{ + int use = 0; + + char* peers = getDevice(); + //DEBUG2("[AV]: parsePortsForAvahi() ports %s", peers); + char *bufPtr = NULL; + + // split peers by ',' + char *peer = strtok_r(peers, ",", &bufPtr); + + while (peer) { + + char* strPort; + + if ((strPort = strstr(peer, PEER_TCP)) != NULL) { + + strPort += strlen(PEER_TCP); + + char * ch = strPort; + int isPort = 1; + + while (*ch != '\0') { + if (isdigit(*ch)) { + ch++; + } else { + isPort = 0; + break; + } + } + + if (isPort) { + DEBUG2("[AV]: parsePortsForAvahi() TCP %s", strPort); + tcpPort = atoi(strPort); + } + + } else if ((strPort = strstr(peer, WEB_SOCKET)) != NULL) { + + strPort += strlen(WEB_SOCKET); + + char * ch = strPort; + int isPort = 1; + + while (*ch != '\0') { + if (isdigit(*ch)) { + ch++; + } else { + isPort = 0; + break; + } + } + + if (isPort) { + DEBUG2("[AV]: parsePorts() WEB %s", strPort); + webPort = atoi(strPort); + } + + } else if ((strPort = strstr(peer, AVAHI_USE)) != NULL) { + use = 1; + } + + peer = strtok_r(NULL, ",", &bufPtr); + } + + free(peers); + return (use && (tcpPort > 0 || webPort > 0)); +} + +// +// Called whenever the entry group state changes +// +static void entry_group_callback(AvahiEntryGroup *g, AvahiEntryGroupState state, AVAHI_GCC_UNUSED void *userdata) +{ + group = g; + + logger(L_INF, "[AV]: entry_group_callback"); + + switch (state) { + case AVAHI_ENTRY_GROUP_ESTABLISHED : + + // The entry group has been established successfully + INFO2("[AV]: Service %s successfully established", avahiName) + break; + + case AVAHI_ENTRY_GROUP_COLLISION: + { + char *n; + + // A service name collision with a remote service happened. Let's pick a new name + n = avahi_alternative_service_name(avahiName); + avahi_free(avahiName); + avahiName = n; + + INFO2("[AV]: Service name collision, renaming service to %s", avahiName) + + // And recreate the services + create_services(avahi_entry_group_get_client(g)); + break; + } + + case AVAHI_ENTRY_GROUP_FAILURE : + + ERROR2("[AV]: Entry group failure: %s", avahi_strerror(avahi_client_errno(avahi_entry_group_get_client(g)))); + + // Some kind of failure happened while we were registering our services + avahi_simple_poll_quit(simple_poll); + break; + + case AVAHI_ENTRY_GROUP_UNCOMMITED: + + //INFO2("[AV]: entry_group_callback AVAHI_ENTRY_GROUP_UNCOMMITED"); + break; + + case AVAHI_ENTRY_GROUP_REGISTERING: + + //INFO2("[AV]: entry_group_callback AVAHI_ENTRY_GROUP_REGISTERING"); + break; + } +} + +static void create_services(AvahiClient *c) +{ + char *n; + int ret; + + logger(L_INF, "[AV]: create_services"); + + if (tcpPort < 0 && webPort < 0) { + logger(L_INF, "[AV]: create_services: no port to publish"); + avahi_simple_poll_quit(simple_poll); + return; + } + + + // If this is the first time we're called, let's create a new entry group if necessary + if (!group) { + if (!(group = avahi_entry_group_new(c, entry_group_callback, NULL))) { + ERROR2("[AV]: create_services: avahi_entry_group_new() failed: %s", avahi_strerror(avahi_client_errno(c))); + avahi_simple_poll_quit(simple_poll); + return; + } + } + + // If the group is empty (either because it was just created, or + // because it was reset previously, add our entries + + if (avahi_entry_group_is_empty(group)) { + + INFO2("[AV]: Adding service %s", avahiName) + + if (tcpPort >= 0) { + // Add service + if ((ret = avahi_entry_group_add_service(group, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, 0, avahiName, + "_anyremote._tcp", NULL, NULL, tcpPort, + "Remote control daemon", NULL)) < 0) { + + if (ret == AVAHI_ERR_COLLISION) { + logger(L_WARN, "[AV]: create_services collision"); + + // A service name collision with a local service happened. Let's pick a new name + n = avahi_alternative_service_name(avahiName); + avahi_free(avahiName); + avahiName = n; + + INFO2("[AV]: Service name collision, renaming service to %s", avahiName); + + avahi_entry_group_reset(group); + + create_services(c); + return; + } + + ERROR2("[AV]: Failed to add _remote._tcp service: %s", avahi_strerror(ret)); + avahi_simple_poll_quit(simple_poll); + return; + } + } + + if (webPort >= 0) { + + // Add service + if ((ret = avahi_entry_group_add_service(group, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, 0, avahiName, + "_anyremote-http._tcp", NULL, NULL, webPort, + "Remote control daemon - web interface", NULL)) < 0) { + + if (ret == AVAHI_ERR_COLLISION) { + logger(L_WARN, "[AV]: create_services collision"); + + // A service name collision with a local service happened. Let's pick a new name + n = avahi_alternative_service_name(avahiName); + avahi_free(avahiName); + avahiName = n; + + INFO2("[AV]: Service name collision, renaming service to %s", avahiName); + + avahi_entry_group_reset(group); + + create_services(c); + return; + } + + ERROR2("[AV]: Failed to add _remote._http._tcp service: %s", avahi_strerror(ret)); + avahi_simple_poll_quit(simple_poll); + return; + } + } + + // Tell the server to register the service + if ((ret = avahi_entry_group_commit(group)) < 0) { + ERROR2("[AV]: Failed to commit entry group: %s", avahi_strerror(ret)); + avahi_simple_poll_quit(simple_poll); + return; + } + } + + logger(L_INF, "[AV]: create_services OK"); + return; +} + +// +// Called whenever the client or server state changes +// +static void client_callback(AvahiClient *c, AvahiClientState state, AVAHI_GCC_UNUSED void * userdata) +{ + logger(L_INF, "[AV]: client_callback"); + switch (state) { + case AVAHI_CLIENT_S_RUNNING: + + logger(L_INF, "[AV]: client_callback AVAHI_CLIENT_S_RUNNING"); + // The server has startup successfully and registered its host + // name on the network, so it's time to create our services + create_services(c); + break; + + case AVAHI_CLIENT_FAILURE: + + ERROR2("[AV]: client_callback AVAHI_CLIENT_FAILURE: %s", avahi_strerror(avahi_client_errno(c))); + avahi_simple_poll_quit(simple_poll); + break; + + case AVAHI_CLIENT_S_COLLISION: + + logger(L_INF, "[AV]: client_callback AVAHI_CLIENT_S_COLLISION"); + // Let's drop our registered services. When the server is back in AVAHI_SERVER_RUNNING + // state we will register them again with the new host name + if (group) { + avahi_entry_group_reset(group); + } + break; + + case AVAHI_CLIENT_S_REGISTERING: + + logger(L_INF, "[AV]: client_callback AVAHI_CLIENT_S_REGISTERING"); + // The server records are now being established. This might be caused by a host name change. + // We need to wait for our own records to register until the host name is properly established + if (group) { + avahi_entry_group_reset(group); + } + break; + + case AVAHI_CLIENT_CONNECTING: + logger(L_INF, "[AV]: client_callback AVAHI_CLIENT_CONNECTING"); + } +} + +pointer_t startAvahi(pointer_t thread) +{ + AvahiClient *client = NULL; + int error; + int ret = 1; + + logger(L_INF,"[AV]: Start avahi thread"); + + // Allocate main loop object + if ((simple_poll = avahi_simple_poll_new())) { + + avahiName = avahi_strdup(getServiceName()); + + // Allocate a new client + client = avahi_client_new(avahi_simple_poll_get(simple_poll), 0, client_callback, NULL, &error); + + logger(L_INF,"[AV]: avahi_client_new"); + + // Check wether creating the client object succeeded + if (client) { + + logger(L_INF, "[AV]: startAvahi: start loop"); + + isAvahiUsed = 1; + + // Run the main loop + avahi_simple_poll_loop(simple_poll); + + logger(L_INF, "[AV]: startAvahi: loop exiting"); + + ret = 0; + + } else { + ERROR2("[AV]: Failed to create client: %s", avahi_strerror(error)); + } + } else { + logger(L_ERR, "[AV]: Failed to create simple poll object"); + } + + // Cleanup things + if (ret == 0) { + logger(L_INF, "[AV]: startAvahi: exit"); + } else { + logger(L_ERR, "[AV]: startAvahi: fail"); + } + + if (client) { + avahi_client_free(client); + } + if (simple_poll) { + avahi_simple_poll_free(simple_poll); + } + + avahi_free(avahiName); + + return NULL; +} + +void stopAvahi() +{ + logger(L_INF, "[AV]: stopAvahi"); + + if (isAvahiUsed) { + avahi_simple_poll_quit(simple_poll); + threadJoin(T_AVAHI); + } +} + +#else + +pointer_t startAvahi(pointer_t thread) {} +void stopAvahi () {} +int parsePortsForAvahi() {return 0;} + +#endif diff -Nru anyremote-6.4/src/avahi.h anyremote-6.5/src/avahi.h --- anyremote-6.4/src/avahi.h 1970-01-01 00:00:00.000000000 +0000 +++ anyremote-6.5/src/avahi.h 2008-01-01 00:04:04.000000000 +0000 @@ -0,0 +1,31 @@ +// +// anyRemote +// a wi-fi or bluetooth remote for your PC. +// +// Copyright (C) 2014 Mikhail Fedotov +// +// 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 _AVAHI_H_ +#define _AVAHI_H_ 1 + +#include "lib_wrapper.h" + +pointer_t startAvahi(pointer_t thread); +void stopAvahi(); +int parsePortsForAvahi(); + +#endif diff -Nru anyremote-6.4/src/common.h anyremote-6.5/src/common.h --- anyremote-6.4/src/common.h 2014-03-02 08:16:23.000000000 +0000 +++ anyremote-6.5/src/common.h 2008-01-01 00:04:04.000000000 +0000 @@ -39,7 +39,20 @@ //#define DEFAULT_DEVICE "/dev/rfcomm0" seems JSR-82 phones is more usable now //#define DEFAULT_DEVICE "bluetooth:19" -#define DEFAULT_DEVICE "bluetooth:19,tcp:5197,web:5080" + +#ifdef USE_AVAHI + #if defined USE_BLUEZ || defined USE_BT_FBSD + #define DEFAULT_DEVICE "bluetooth:19,tcp:5197,web:5080,avahi" + #else + #define DEFAULT_DEVICE "tcp:5197,web:5080,avahi" + #endif +#else + #if defined USE_BLUEZ || defined USE_BT_FBSD + #define DEFAULT_DEVICE "bluetooth:19,tcp:5197,web:5080" + #else + #define DEFAULT_DEVICE "tcp:5197,web:5080" + #endif +#endif #define RFCOMM_DEVICE "rfcomm" #define AT_DEVICE "at:" @@ -53,6 +66,7 @@ #define STDIN_STREAM "stdin" #define WEB_SOCKET "web:" #define CMXML_SOCKET "cmxml:" +#define AVAHI_USE "avahi" #define TOFILE "/anyremote.result" #define CMDFILE "/anyremote.command" diff -Nru anyremote-6.4/src/gen_ar.c anyremote-6.5/src/gen_ar.c --- anyremote-6.4/src/gen_ar.c 2014-03-02 08:16:23.000000000 +0000 +++ anyremote-6.5/src/gen_ar.c 2008-01-01 00:04:04.000000000 +0000 @@ -164,6 +164,7 @@ if (useVolume()) { stringAppend(page, ",volume"); } + stringAppend(page, ");"); } mutexLock(M_STATE); @@ -245,8 +246,8 @@ string_t* page = stringNew("Set(list,"); mutexLock(M_STATE); + stringAppend(page, "replace,"); stringAppend(page, lfCaption()); - stringAppend(page, ",replace"); SingleList* list = lfList(); while (list) { diff -Nru anyremote-6.4/src/gen_html.c anyremote-6.5/src/gen_html.c --- anyremote-6.4/src/gen_html.c 2014-03-02 08:16:23.000000000 +0000 +++ anyremote-6.5/src/gen_html.c 2008-01-01 00:04:04.000000000 +0000 @@ -40,7 +40,7 @@ #define HTTP_HEAD3 "\n" #define HTTP_HEAD5 "\n
      " +#define HTTP_HEAD6 ">\n
      " #define HTTP_SCRIPT "\n" #define HTTP_SCRIPT_CALL " onload=\"clearForms()\"" @@ -49,13 +49,41 @@ #define HTTP_HEAD_CSS_B1 "body {\n\tcolor:#" #define HTTP_HEAD_CSS_B2 "; \n\tbackground-color:#" #define HTTP_HEAD_CSS_B3 ";\n}\n" -#define HTTP_HEAD_CSS_L1 "select {\n\tcolor:#" +#define HTTP_HEAD_CSS_L1 "#menubutton{\n\tborder-radius:5px;\n\t-moz-border-radius:5px;\n\t-webkit-border-radius:10px;\n}\nselect {\n\tcolor:#" #define HTTP_HEAD_CSS_L3 "; \n\twidth:" #define HTTP_HEAD_CSS_BT1 "button {\n\tcolor:#" +#define HTTP_HEAD_CSS_MENU1 ".menu {\n\twidth:" + +#define HTTP_HEAD_CSS_MENU2 "px;\n\theight:30px;\n\tfont-size:0.85em;\n\tposition: fixed;\n\tbottom: 0;\n}\n\ +.menu ul {\n\tpadding:0;\n\tmargin:0;\n\tlist-style-type:none;\n}\n\ +.menu input {\n\tpadding:0;\n\tmargin:0;\n}\n.menu ul ul,\n.menu ul input\n{\n\twidth:" + +#define HTTP_HEAD_CSS_MENU3 "px;\n}\n.menu li,\n.menu input {\n\tfloat:left;\n\twidth:" +#define HTTP_HEAD_CSS_MENU4 "px;\n\tposition:relative;\n}\n.menu input {\n\tdisplay:block;\n\tfont-size:13px;\n\ttext-decoration:none;\n\tcolor:#ffffff;\n\twidth:" + +#define HTTP_HEAD_CSS_MENU5 "px;\ + height:30px;\ + border:1px solid #999999;\ + border-width:1px 1px 0 0;\ + background:#7582aa;\ + padding-left:10px;\ + line-height:29px;\n}\n.menu ul ul input:hover {\ + color:#fff;\ + background:#949eaa;\ +}\n.menu ul ul {\nvisibility:hidden;\ + position:absolute;\ + bottom:31px;\ + left:0; \ + width:" // W/2 + +#define HTTP_HEAD_CSS_MENU6 "px;\n}\n.menu ul ul input {\n\tbackground:#a4a8aa;\n\tcolor:#000;\n\theight:30px;\n\tline-height:1em;\n\tpadding:5px 10px\n\twidth:" + +#define HTTP_HEAD_CSS_MENU7 "px;\n}\n.menu ul input:hover {\n\tcolor:#000;\n\tbackground:#949eaa;\n}\n.menu ul li:hover ul {\n\tvisibility:visible;\n\theight:auto;\n}\n" + #define HTTP_HEAD_CSS_99 "\n" -#define HTTP_TABLE1 "\n\n\n\n" //#define HTTP_TABLE3 "
      " #define HTTP_TABLE3 " " @@ -73,9 +101,9 @@ #define HTTP_EDIT3 "\n
      \n\n
      " -#define HTTP_TAIL "\n
      Redraw
      \n\n\n" +#define HTTP_TAIL "\n
      Reload page
      \n\n\n" -int _screenSize = 240; // min(width,heigth) +int _screenSize = 540; // min(width,heigth) void initHtmlGenerator() { @@ -83,7 +111,7 @@ if (v1 != NULL) { _screenSize = atoi(v1); if (_screenSize <= 0) { - _screenSize = 240; + _screenSize = 540; } free(v1); } @@ -105,16 +133,21 @@ string_t* fh = stringNew(""); if (strncmp(f,"small",5) == 0) { - stringAppend(fh, "h6>"); + stringAppend(fh, "h6>\n"); } else if (strncmp(f,"medium",6) == 0) { - stringAppend(fh, "h4>"); + stringAppend(fh, "h4>\n"); } else if (strncmp(f,"large",5) == 0) { - stringAppend(fh, "h2>"); + stringAppend(fh, "h2>\n"); } return fh; } +static int getUseCSS() +{ + return 0; +} + char abuf[8]; static char* getAccessKey(int index) @@ -148,7 +181,7 @@ case WM: if (listSingleLength(list) > 0) { - string_t* menu = stringNew("
      "); + string_t* menu = stringNew("
      "); //stringAppend(menu, "
      "); @@ -168,7 +201,7 @@ list = listSingleNext(list); } //stringAppend(menu, "
      "); - stringAppend(menu, "
      "); + stringAppend(menu, "
      "); stringAppend(page, menu->str); stringFree(menu, BOOL_YES); } @@ -176,24 +209,63 @@ case LI: case EF: + + { + int listSz = listSingleLength(list); - if (listSingleLength(list) > 0) { - - string_t* menu = stringNew(""); + if (listSz > 0) { - int i = 0; - while(list) { + int useCSS = getUseCSS(); - stringAppend(menu, "data)->str); - stringAppend(menu, "\">\n"); + if (useCSS) { - i++; - list = listSingleNext(list); + string_t* menu = stringNew("
      \n
        \n"); + int i = 0; + while(list) { + + if (i == 0) { + stringAppend(menu, "
      • data)->str); + stringAppend(menu, "\">
      • \n"); + } else { + if (i == 1 && listSz > 2) { + stringAppend(menu, "
      • \n\t
      • \n\t
          \n\t"); + } + stringAppend(menu, "
        • data)->str); + stringAppend(menu, "\">
        • \n\t"); + } + + i++; + list = listSingleNext(list); + } + if (listSz > 2) { + stringAppend(menu, "
        \n"); + } + stringAppend(menu, "
      • \n
      \n
      \n"); + + stringAppend(page, menu->str); + stringFree(menu, BOOL_YES); + + } else { + + string_t* menu = stringNew(""); + + int i = 0; + while(list) { + + stringAppend(menu, "data)->str); + stringAppend(menu, "\">\n"); + + i++; + list = listSingleNext(list); + } + stringAppend(menu, "
      "); + stringAppend(page, menu->str); + stringFree(menu, BOOL_YES); + } } - stringAppend(menu, "
      "); - stringAppend(page, menu->str); - stringFree(menu, BOOL_YES); } break; } @@ -213,17 +285,26 @@ stringAppend(head, HTTP_HEAD4); // Do some CSS styling + int useCSS = getUseCSS(); + stringAppend(head, HTTP_HEAD_CSS_0); //stringAppend(head, HTTP_HEAD_CSS_1); + char buf[16]; + sprintf(buf,"%d",_screenSize); + stringAppend(head, HTTP_HEAD_CSS_B1); stringAppend(head, fg); stringAppend(head, HTTP_HEAD_CSS_B2); stringAppend(head, bg); + + if (form == LI) { + stringAppend(head, ";\n\twidth:"); + stringAppend(head, buf); + stringAppend(head, "px"); + } stringAppend(head, HTTP_HEAD_CSS_B3); - char buf[16]; - sprintf(buf,"%d",_screenSize); if (form == CF) { @@ -231,7 +312,9 @@ stringAppend(head, fg); stringAppend(head, HTTP_HEAD_CSS_B2); stringAppend(head, bg); - stringAppend(head, ";\n\tborder-style:none;\n}\n"); + stringAppend(head, ";\n\tborder-radius:10px;\n\t-moz-border-radius:10px;\n\t-webkit-border-radius:10px;\n\tborder:2px solid "); + stringAppend(head, fg); + stringAppend(head, ";}\n"); stringAppend(head, "p.widthScr {\n\twidth:"); stringAppend(head, buf); stringAppend(head, "px;\n\toverflow:auto;\n}\n"); @@ -253,6 +336,32 @@ stringAppend(head, buf); stringAppend(head, "px;\n\toverflow:auto;\n}\n"); } + + if (useCSS) { + char w2[16]; + sprintf(w2,"%d",_screenSize/2); + + char w2_11[16]; + sprintf(w2_11,"%d",_screenSize/2-11); + + char w2_10[16]; + sprintf(w2_10,"%d",_screenSize/2+10); + + stringAppend(head, HTTP_HEAD_CSS_MENU1); + stringAppend(head, buf); + stringAppend(head, HTTP_HEAD_CSS_MENU2); + stringAppend(head, w2); + stringAppend(head, HTTP_HEAD_CSS_MENU3); + stringAppend(head, w2); + stringAppend(head, HTTP_HEAD_CSS_MENU4); + stringAppend(head, w2_11); + stringAppend(head, HTTP_HEAD_CSS_MENU5); + stringAppend(head, w2); + stringAppend(head, HTTP_HEAD_CSS_MENU6); + stringAppend(head, w2_10); + stringAppend(head, HTTP_HEAD_CSS_MENU7); + } + stringAppend(head, HTTP_HEAD_CSS_99); stringAppend(head, HTTP_HEAD5); @@ -468,7 +577,7 @@ } mutexUnlock(M_STATE); - stringAppend(page, "\n
      "); + stringAppend(page, "\n
      \n"); addFormMenu(LI, page); @@ -572,9 +681,7 @@ stringAppend(page, "\n"); stringAppend(page, "\n"); - stringAppend(page, "
      "); - - stringAppend(page, "
      \n\n\nstr); stringAppend(page, "\n"); stringAppend(page, HTTP_TAIL); diff -Nru anyremote-6.4/src/main.c anyremote-6.5/src/main.c --- anyremote-6.4/src/main.c 2014-03-02 08:16:23.000000000 +0000 +++ anyremote-6.5/src/main.c 2008-01-01 00:04:04.000000000 +0000 @@ -47,6 +47,7 @@ #include "thread.h" #include "loop.h" #include "alarm.h" +#include "avahi.h" extern void freeDisplay(); // from xemulate.h @@ -94,6 +95,10 @@ threadJoin(T_DISP); } + + #ifdef USE_AVAHI + stopAvahi(); + #endif stillRun = BOOL_NO; @@ -231,6 +236,12 @@ if (getFrontEnd() > 0) { queueNew(Q_FE); } + + #ifdef USE_AVAHI + if (parsePortsForAvahi()) { + threadNew(T_AVAHI,startAvahi,NULL,JOINABLE); + } + #endif loopStart(); diff -Nru anyremote-6.4/src/Makefile.am anyremote-6.5/src/Makefile.am --- anyremote-6.4/src/Makefile.am 2014-03-02 08:16:23.000000000 +0000 +++ anyremote-6.5/src/Makefile.am 2008-01-01 00:04:04.000000000 +0000 @@ -23,12 +23,12 @@ xemulate.c atsend.c btio.c pr_l2cap.c pr_web.c pr_frontend.c ar_dbus.c \ queue.c mutex.c thread.c list.c var.c alarm.c timer.c hash.c loop.c str.c \ pr_stdin.c peer.c pr_btspp.c pr_socket.c pr_rfcomm.c pr_serial.c \ - sys_util.c security.c mode.c state.c gen_html.c gen_xml.c gen_ar.c \ + sys_util.c security.c mode.c state.c gen_html.c gen_xml.c gen_ar.c avahi.c \ parse.h executor.h cmds.h utils.h xemulate.h conf.h common.h common.h ar_dbus.h \ pr_l2cap.h pr_web.h pr_frontend.h btio.h atsend.h dispatcher.h lib_wrapper.h \ queue.h mutex.h thread.h list.h var.h alarm.h timer.h hash.h loop.h str.h \ pr_stdin.h peer.h pr_btspp.h pr_socket.h pr_rfcomm.h pr_serial.h \ - sys_util.h security.h mode.h state.h gen_html.h gen_xml.h gen_ar.h + sys_util.h security.h mode.h state.h gen_html.h gen_xml.h gen_ar.h avahi.h anyremote_LDFLAGS = @LDFLAGS@ anyremote_LDADD = @AR_EXTRALIBS@ AM_CFLAGS = @AR_EXTRAFLAGS@ diff -Nru anyremote-6.4/src/Makefile.in anyremote-6.5/src/Makefile.in --- anyremote-6.4/src/Makefile.in 2014-03-02 08:21:39.000000000 +0000 +++ anyremote-6.5/src/Makefile.in 2014-12-20 15:26:20.000000000 +0000 @@ -103,7 +103,7 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -122,7 +122,8 @@ peer.$(OBJEXT) pr_btspp.$(OBJEXT) pr_socket.$(OBJEXT) \ pr_rfcomm.$(OBJEXT) pr_serial.$(OBJEXT) sys_util.$(OBJEXT) \ security.$(OBJEXT) mode.$(OBJEXT) state.$(OBJEXT) \ - gen_html.$(OBJEXT) gen_xml.$(OBJEXT) gen_ar.$(OBJEXT) + gen_html.$(OBJEXT) gen_xml.$(OBJEXT) gen_ar.$(OBJEXT) \ + avahi.$(OBJEXT) anyremote_OBJECTS = $(am_anyremote_OBJECTS) anyremote_DEPENDENCIES = anyremote_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(anyremote_LDFLAGS) \ @@ -190,6 +191,8 @@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ +AVAHI_CFLAGS = @AVAHI_CFLAGS@ +AVAHI_LIBS = @AVAHI_LIBS@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ @@ -296,12 +299,12 @@ xemulate.c atsend.c btio.c pr_l2cap.c pr_web.c pr_frontend.c ar_dbus.c \ queue.c mutex.c thread.c list.c var.c alarm.c timer.c hash.c loop.c str.c \ pr_stdin.c peer.c pr_btspp.c pr_socket.c pr_rfcomm.c pr_serial.c \ - sys_util.c security.c mode.c state.c gen_html.c gen_xml.c gen_ar.c \ + sys_util.c security.c mode.c state.c gen_html.c gen_xml.c gen_ar.c avahi.c \ parse.h executor.h cmds.h utils.h xemulate.h conf.h common.h common.h ar_dbus.h \ pr_l2cap.h pr_web.h pr_frontend.h btio.h atsend.h dispatcher.h lib_wrapper.h \ queue.h mutex.h thread.h list.h var.h alarm.h timer.h hash.h loop.h str.h \ pr_stdin.h peer.h pr_btspp.h pr_socket.h pr_rfcomm.h pr_serial.h \ - sys_util.h security.h mode.h state.h gen_html.h gen_xml.h gen_ar.h + sys_util.h security.h mode.h state.h gen_html.h gen_xml.h gen_ar.h avahi.h anyremote_LDFLAGS = @LDFLAGS@ anyremote_LDADD = @AR_EXTRALIBS@ @@ -396,6 +399,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alarm.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ar_dbus.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atsend.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avahi.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btio.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmds.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conf.Po@am__quote@ diff -Nru anyremote-6.4/src/peer.c anyremote-6.5/src/peer.c --- anyremote-6.4/src/peer.c 2014-03-02 08:16:23.000000000 +0000 +++ anyremote-6.5/src/peer.c 2008-01-01 00:04:04.000000000 +0000 @@ -76,14 +76,20 @@ free(peer); } -static int countConnections() + +// do not take into account connection-less peers (HTML + XML) +static int countConnections(int all) { int cnum = 0; SingleList* list = _connections; + //INFO2("[DS]: countConnections() enter %d", listSingleLength(list)); + while (list) { ConnectInfo* peer = (ConnectInfo*) list->data; if (peer->state == PEER_CONNECTED) { - cnum++; + if (all || (peer->mode != SERVER_WEB && peer->mode != SERVER_CMXML)) { + cnum++; + } } list = listSingleNext(list); } @@ -236,6 +242,7 @@ // 6. local:/some/path used with java client, like 1, but no AT commands // 7. ilirc:/dev/something like 1, but no AT commands // 8. stdio used with java client, like 1, but no AT commands + // 9. avahi skipped here ConnectInfo* peer = allocPeer(); @@ -401,6 +408,13 @@ peer->portStr = stringNew(strPort); DEBUG2("[DS]: Serial Client mode. Use device %s", peer->portStr->str); + } else if (strstr(portIn, AVAHI_USE)) { + + // do nothing + logger(L_DBG, "[DS]: Avahi flag is ON"); + freePeer(peer); + return EXIT_OK; + } else { peer->mode = CLIENT_AT; @@ -498,7 +512,9 @@ int ret1 = _peerHandlers[peer->mode].openConnection(peer); - INFO2("[DS]: Open peer connect mode %d fdescriptor %d", peer->mode, _peerHandlers[peer->mode].descriptor(peer)); + if (peer->state != PEER_DISCONNECTED) { // for TCP (etc.) connection still can be in DISCONNECT + INFO2("[DS]: Open peer connect mode %d fdescriptor %d", peer->mode, _peerHandlers[peer->mode].descriptor(peer)); + } if (ret1 != EXIT_NOK) { ret = ret1; @@ -701,6 +717,7 @@ int fd = _peerHandlers[peer->mode].descriptor(peer); if (fd >= 0) { + INFO2("[DS]: syncPeer write to peer %d %d", f, fd); writePeer(fd, content->str, content->len); } stringFree(content, BOOL_YES); @@ -1054,7 +1071,7 @@ //DEBUG2("[DS]: readPeers() peer with mode %d readable", peer->mode); int rr = doReadPeer(peer, buffer, fd); if (rr == EOF) { - int cnum = countConnections(); + int cnum = countConnections(0); // no more connections if (cnum == 0) { @@ -1064,9 +1081,9 @@ } } else if (peer->state == PEER_WAIT_ACCEPT) { - //DEBUG2("[DS]: readPeers() accept connection peer with mode %d", peer->mode); + DEBUG2("[DS]: readPeers() accept connection peer with mode %d", peer->mode); if (_peerHandlers[peer->mode].acceptConnection(peer) == EXIT_OK) { - int cnum = countConnections(); + int cnum = countConnections(1); // do this only on first connect if (cnum == 1) { @@ -1578,13 +1595,13 @@ ConnectInfo* cn = (ConnectInfo*) list->data; if (cn->mode == CLIENT_RFCOMM) { - if (rfcommCheckActiveCall(cn)) { - return BOOL_YES; - } + if (rfcommCheckActiveCall(cn)) { + return BOOL_YES; + } } else if (cn->mode == CLIENT_AT) { - if (serialCheckActiveCall(cn)) { - return BOOL_YES; - } + if (serialCheckActiveCall(cn)) { + return BOOL_YES; + } } list = listSingleNext(list); } @@ -1598,13 +1615,13 @@ ConnectInfo* cn = (ConnectInfo*) list->data; if (cn->mode == CLIENT_RFCOMM) { - if (rfcommHasActiveCall(cn)) { - return BOOL_YES; - } + if (rfcommHasActiveCall(cn)) { + return BOOL_YES; + } } else if (cn->mode == CLIENT_AT) { - if (serialHasActiveCall(cn)) { - return BOOL_YES; - } + if (serialHasActiveCall(cn)) { + return BOOL_YES; + } } list = listSingleNext(list); } diff -Nru anyremote-6.4/src/pr_btspp.c anyremote-6.5/src/pr_btspp.c --- anyremote-6.4/src/pr_btspp.c 2014-03-02 08:16:23.000000000 +0000 +++ anyremote-6.5/src/pr_btspp.c 2008-01-01 00:04:04.000000000 +0000 @@ -240,7 +240,7 @@ struct sockaddr* socketaddr = NULL; - int addFamily = 0; + int addFamily = AF_UNSPEC; int proto = 0; int sz; @@ -275,9 +275,15 @@ proto = BLUETOOTH_PROTO_RFCOMM; #endif + if (addFamily == AF_UNSPEC) { // no BT support + return -1; + } + if ((cn->serverFileDescriptor = socket(addFamily, SOCK_STREAM|SOCK_CLOEXEC, proto)) < 0) { - logger(L_ERR, "opening socket"); - printf("ERROR: opening socket\n"); + logger(L_ERR, "opening BT/RFCOMM socket"); + errnoDebug("opening BT/RFCOMM socket",errno); // testing debug + + printf("ERROR: opening BT/RFCOMM socket\n"); cn->serverFileDescriptor = -1; return -1; } diff -Nru anyremote-6.4/src/pr_l2cap.c anyremote-6.5/src/pr_l2cap.c --- anyremote-6.4/src/pr_l2cap.c 2014-03-02 08:16:23.000000000 +0000 +++ anyremote-6.5/src/pr_l2cap.c 2008-01-01 00:04:04.000000000 +0000 @@ -199,9 +199,8 @@ cn->record = NULL; if ((cn->serverFileDescriptor = socket(PF_BLUETOOTH, SOCK_SEQPACKET|SOCK_CLOEXEC, BTPROTO_L2CAP)) < 0) { - logger(L_ERR, "opening socket"); - printf("ERROR: opening socket\n"); - + logger(L_ERR, "opening BT/L2CAP socket"); + printf("ERROR: opening BT/L2CAP socket\n"); return -1; } diff -Nru anyremote-6.4/src/pr_rfcomm.c anyremote-6.5/src/pr_rfcomm.c --- anyremote-6.4/src/pr_rfcomm.c 2014-03-02 08:16:23.000000000 +0000 +++ anyremote-6.5/src/pr_rfcomm.c 2008-01-01 00:04:04.000000000 +0000 @@ -111,8 +111,8 @@ str2ba(addr, &(bt_addr.rc_bdaddr)); if ((cn->fileDescriptor = socket(AF_BLUETOOTH, SOCK_STREAM|SOCK_CLOEXEC, BTPROTO_RFCOMM)) < 0) { - logger(L_ERR, "opening socket"); - printf("ERROR: opening socket\n"); + logger(L_ERR, "opening BT socket"); + printf("ERROR: opening BT socket\n"); cn->fileDescriptor = -1; return -1; } diff -Nru anyremote-6.4/src/pr_socket.c anyremote-6.5/src/pr_socket.c --- anyremote-6.4/src/pr_socket.c 2014-03-02 08:16:23.000000000 +0000 +++ anyremote-6.5/src/pr_socket.c 2008-01-01 00:04:04.000000000 +0000 @@ -106,15 +106,18 @@ proto = IPPROTO_TCP; } else if (conn->mode == SERVER_UX) { addFamily = AF_UNIX; - proto = 0; + proto = 0; } else { logger(L_ERR, "incorrect input"); return -1; } if ((cn->serverFileDescriptor = socket(addFamily, SOCK_STREAM|SOCK_CLOEXEC, proto)) < 0) { - logger(L_ERR, "opening socket"); - printf("ERROR: opening socket\n"); + + logger(L_ERR, "opening TCP socket"); + errnoDebug("opening TCP socket ",errno); // testing debug + + printf("ERROR: opening TCP socket\n"); cn->serverFileDescriptor = -1; return -1; } diff -Nru anyremote-6.4/src/pr_web.c anyremote-6.5/src/pr_web.c --- anyremote-6.4/src/pr_web.c 2014-03-02 08:16:23.000000000 +0000 +++ anyremote-6.5/src/pr_web.c 2008-01-01 00:04:04.000000000 +0000 @@ -1613,6 +1613,16 @@ if (isAllowed(buf)) { INFO2("[WS]: webServerMain: connection accepted"); + /*if (conn->state == PEER_WAIT_ACCEPT) { + wMessage* wm = (wMessage*) malloc(sizeof(wMessage)); + wm->button = -1; + wm->string = stringNew("(Connect)"); + + sendToWebServer(wm); + + conn->state = PEER_CONNECTED; + }*/ + _WebClientConnection* ptr = (_WebClientConnection*) malloc(sizeof(_WebClientConnection)); ptr->serverPort = conn->port; ptr->connDescriptor = s; @@ -1672,7 +1682,7 @@ } - conn->state = PEER_CONNECTED; + conn->state = PEER_CONNECTED; //PEER_WAIT_ACCEPT; return EXIT_OK; } @@ -1722,34 +1732,34 @@ void closeWebPort(ConnectInfo* conn, int final) { INFO2("[WS]: closeWebPort %d", final); - _WebConnection* cn = (_WebConnection*) conn->connectionData; + if (final) { + _WebConnection* cn = (_WebConnection*) conn->connectionData; - // close all sockets - if (cn->fileDescriptor != -1) { - close(cn->fileDescriptor); - cn->fileDescriptor = -1; - } + // close all sockets + if (cn->fileDescriptor != -1) { + close(cn->fileDescriptor); + cn->fileDescriptor = -1; + } - mutexLock(M_WEB); + mutexLock(M_WEB); - //INFO2("[WS]: clientSockets before cleanup #%d", listSingleLength(cn->clientSockets)); + //INFO2("[WS]: clientSockets before cleanup #%d", listSingleLength(cn->clientSockets)); - SingleList* list = cn->clientSockets; - while (list) { + SingleList* list = cn->clientSockets; + while (list) { - int clientFD = CAST_POINTER_TO_INT(list->data); - if (clientFD > 0) { - close(clientFD); + int clientFD = CAST_POINTER_TO_INT(list->data); + if (clientFD > 0) { + close(clientFD); + } + list = listSingleNext(list); } - list = listSingleNext(list); - } - listSingleFree(cn->clientSockets); - cn->clientSockets = NULL; + listSingleFree(cn->clientSockets); + cn->clientSockets = NULL; - mutexUnlock(M_WEB); + mutexUnlock(M_WEB); - if (final) { runWeb = BOOL_NO; if (cn->serverIP) { @@ -1863,7 +1873,7 @@ stringAppend(wm->string,sz); stringAppend(wm->string,","); stringAppend(wm->string,icon); - stringAppend(wm->string,")"); + stringAppend(wm->string,")"); } } else if (strncmp(token,"Get(cover_size",14) == 0) { diff -Nru anyremote-6.4/src/str.c anyremote-6.5/src/str.c --- anyremote-6.4/src/str.c 2014-03-02 08:16:23.000000000 +0000 +++ anyremote-6.5/src/str.c 2008-01-01 00:04:04.000000000 +0000 @@ -21,7 +21,7 @@ // // On OpenWRT size of GLIB package is more than 700kb, what is nearly unacceptable -// for embedded systems. For such systems use customa made wrappers. +// for embedded systems. For such systems use custom made wrappers. // #include diff -Nru anyremote-6.4/src/thread.h anyremote-6.5/src/thread.h --- anyremote-6.4/src/thread.h 2014-03-02 08:16:23.000000000 +0000 +++ anyremote-6.5/src/thread.h 2008-01-01 00:04:04.000000000 +0000 @@ -41,6 +41,7 @@ T_DISP = 0, T_EXEC, T_WEB, + T_AVAHI, T_MAX }; diff -Nru anyremote-6.4/src/utils.c anyremote-6.5/src/utils.c --- anyremote-6.4/src/utils.c 2014-03-04 15:32:27.000000000 +0000 +++ anyremote-6.5/src/utils.c 2008-01-01 00:04:04.000000000 +0000 @@ -408,7 +408,7 @@ printf(" -h|--help print this help\n"); printf(" -v|--version print version of anyRemote\n"); printf(" -f /path/to/file specify configuration file\n"); - printf(" -s peer[,peer ...], possible values\n"); + printf(" -s peer[,peer ...], where peer possible values are\n"); printf(" bluetooth: (Server mode - bluetooth connection)\n"); printf(" tcp: (Server mode - TCP/IP connection)\n"); printf(" web: (Server mode - Web interface)\n"); @@ -421,13 +421,14 @@ printf(" /dev/ircomm# (AT mode - IR connection)\n"); printf(" ilirc: (use with inputlircd)\n"); printf(" stdin\n"); + printf(" avahi - register SDP service using Avahi\n"); printf(" Default peer value is bluetooth:19,tcp:5197,web:5080\n"); printf(" It is possible to specify several peers for Server mode configuration files only\n"); printf(" It is possible to specify only single peer of web: or cmxml: type\n"); printf(" -log print verbose logging information to $HOME/.anyRemote/anyremote.log\n"); printf(" -a reconnect automatically in case of connection failure, used only in AT-mode\n"); printf(" -fe work as backend for GUI frontend. Use specified port to connect to frontend.\n"); - printf(" -name if bluetooth connection is used, allows one to specify SDP service name\n"); + printf(" -name if bluetooth or TCP/IP connection is used, allows one to specify SDP service name\n"); printf(" -password ask password on connect\n"); printf(" password should be stored in $HOME/.anyRemote/password file in a plain text\n"); printf(" -u|--user if started from root, allows to set effective user ID to specified user\n\n");