gnome.scm 486 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796
  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
  3. ;;; Copyright © 2014-2022 Ludovic Courtès <ludo@gnu.org>
  4. ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
  5. ;;; Copyright © 2014, 2016, 2020 Eric Bavier <bavier@posteo.net>
  6. ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
  7. ;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
  8. ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
  9. ;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
  10. ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
  11. ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
  12. ;;; Copyright © 2015, 2016, 2017, 2018, 2021 Mark H Weaver <mhw@netris.org>
  13. ;;; Copyright © 2015 David Thompson <davet@gnu.org>
  14. ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
  15. ;;; Copyright © 2016, 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
  16. ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
  17. ;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
  18. ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
  19. ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
  20. ;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
  21. ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
  22. ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
  23. ;;; Copyright © 2016 David Craven <david@craven.ch>
  24. ;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
  25. ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
  26. ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
  27. ;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
  28. ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
  29. ;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
  30. ;;; Copyright © 2017, 2020, 2021 Brendan Tildesley <mail@brendan.scot>
  31. ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
  32. ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
  33. ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
  34. ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
  35. ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
  36. ;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
  37. ;;; Copyright © 2019, 2020, 2022 Marius Bakke <marius@gnu.org>
  38. ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
  39. ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
  40. ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
  41. ;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
  42. ;;; Copyright © 2019, 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
  43. ;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
  44. ;;; Copyright © 2019 David Wilson <david@daviwil.com>
  45. ;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
  46. ;;; Copyright © 2019, 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
  47. ;;; Copyright © 2019, 2020, 2021 Liliana Marie Prikler <liliana.prikler@gmail.com>
  48. ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
  49. ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
  50. ;;; Copyright © 2020 raingloom <raingloom@riseup.net>
  51. ;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
  52. ;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
  53. ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
  54. ;;; Copyright © 2020, 2021, 2022 Vinicius Monego <monego@posteo.net>
  55. ;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
  56. ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
  57. ;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de>
  58. ;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
  59. ;;; Copyright © 2020, 2021 Andy Tai <atai@atai.org>
  60. ;;; Copyright © 2020, 2021 Sébastien Lerique <sl@eauchat.org>
  61. ;;; Copyright © 2021 Trevor Hass <thass@okstate.edu>
  62. ;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
  63. ;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
  64. ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
  65. ;;; Copyright © 2021, 2022 Maxime Devos <maximedevos@telenet.be>
  66. ;;; Copyright © 2021 Josselin Poiret <josselin.poiret@protonmail.ch>
  67. ;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
  68. ;;; Copyright © 2022 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de>
  69. ;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com>
  70. ;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
  71. ;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
  72. ;;;
  73. ;;; This file is part of GNU Guix.
  74. ;;;
  75. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  76. ;;; under the terms of the GNU General Public License as published by
  77. ;;; the Free Software Foundation; either version 3 of the License, or (at
  78. ;;; your option) any later version.
  79. ;;;
  80. ;;; GNU Guix is distributed in the hope that it will be useful, but
  81. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  82. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  83. ;;; GNU General Public License for more details.
  84. ;;;
  85. ;;; You should have received a copy of the GNU General Public License
  86. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  87. (define-module (gnu packages gnome)
  88. #:use-module (gnu packages)
  89. #:use-module (gnu packages admin)
  90. #:use-module (gnu packages aidc)
  91. #:use-module (gnu packages aspell)
  92. #:use-module (gnu packages autotools)
  93. #:use-module (gnu packages avahi)
  94. #:use-module (gnu packages backup)
  95. #:use-module (gnu packages base)
  96. #:use-module (gnu packages bash)
  97. #:use-module (gnu packages bison)
  98. #:use-module (gnu packages boost)
  99. #:use-module (gnu packages build-tools)
  100. #:use-module (gnu packages calendar)
  101. #:use-module (gnu packages cdrom)
  102. #:use-module (gnu packages check)
  103. #:use-module (gnu packages cmake)
  104. #:use-module (gnu packages compression)
  105. #:use-module (gnu packages crates-io)
  106. #:use-module (gnu packages crates-graphics)
  107. #:use-module (gnu packages crates-gtk)
  108. #:use-module (gnu packages cups)
  109. #:use-module (gnu packages curl)
  110. #:use-module (gnu packages cyrus-sasl)
  111. #:use-module (gnu packages databases)
  112. #:use-module (gnu packages dbm)
  113. #:use-module (gnu packages djvu)
  114. #:use-module (gnu packages dns)
  115. #:use-module (gnu packages docbook)
  116. #:use-module (gnu packages docker)
  117. #:use-module (gnu packages documentation)
  118. #:use-module (gnu packages enchant)
  119. #:use-module (gnu packages flex)
  120. #:use-module (gnu packages fonts)
  121. #:use-module (gnu packages file-systems)
  122. #:use-module (gnu packages fontutils)
  123. #:use-module (gnu packages freedesktop)
  124. #:use-module (gnu packages game-development)
  125. #:use-module (gnu packages gcc)
  126. #:use-module (gnu packages gettext)
  127. #:use-module (gnu packages ghostscript)
  128. #:use-module (gnu packages gimp)
  129. #:use-module (gnu packages gl)
  130. #:use-module (gnu packages glib)
  131. #:use-module (gnu packages gnupg)
  132. #:use-module (gnu packages gnuzilla)
  133. #:use-module (gnu packages geo)
  134. #:use-module (gnu packages gperf)
  135. #:use-module (gnu packages graphviz)
  136. #:use-module (gnu packages gstreamer)
  137. #:use-module (gnu packages gtk)
  138. #:use-module (gnu packages guile)
  139. #:use-module (gnu packages haskell-xyz)
  140. #:use-module (gnu packages ibus)
  141. #:use-module (gnu packages icu4c)
  142. #:use-module (gnu packages image)
  143. #:use-module (gnu packages imagemagick)
  144. #:use-module (gnu packages inkscape)
  145. #:use-module (gnu packages iso-codes)
  146. #:use-module (gnu packages kerberos)
  147. #:use-module (gnu packages language)
  148. #:use-module (gnu packages libcanberra)
  149. #:use-module (gnu packages libffi)
  150. #:use-module (gnu packages libunistring)
  151. #:use-module (gnu packages libunwind)
  152. #:use-module (gnu packages libusb)
  153. #:use-module (gnu packages linux)
  154. #:use-module (gnu packages lirc)
  155. #:use-module (gnu packages llvm)
  156. #:use-module (gnu packages lua)
  157. #:use-module (gnu packages mail)
  158. #:use-module (gnu packages man)
  159. #:use-module (gnu packages markup)
  160. #:use-module (gnu packages messaging)
  161. #:use-module (gnu packages mp3)
  162. #:use-module (gnu packages multiprecision)
  163. #:use-module (gnu packages music)
  164. #:use-module (gnu packages ncurses)
  165. #:use-module (gnu packages nettle)
  166. #:use-module (gnu packages networking)
  167. #:use-module (gnu packages ninja)
  168. #:use-module (gnu packages node)
  169. #:use-module (gnu packages nss)
  170. #:use-module (gnu packages ocr)
  171. #:use-module (gnu packages openldap)
  172. #:use-module (gnu packages package-management)
  173. #:use-module (gnu packages password-utils)
  174. #:use-module (gnu packages pcre)
  175. #:use-module (gnu packages pdf)
  176. #:use-module (gnu packages perl)
  177. #:use-module (gnu packages photo)
  178. #:use-module (gnu packages pkg-config)
  179. #:use-module (gnu packages polkit)
  180. #:use-module (gnu packages popt)
  181. #:use-module (gnu packages pretty-print)
  182. #:use-module (gnu packages protobuf)
  183. #:use-module (gnu packages pulseaudio)
  184. #:use-module (gnu packages python)
  185. #:use-module (gnu packages python-crypto)
  186. #:use-module (gnu packages python-web)
  187. #:use-module (gnu packages python-xyz)
  188. #:use-module (gnu packages rdesktop)
  189. #:use-module (gnu packages rdf)
  190. #:use-module (gnu packages readline)
  191. #:use-module (gnu packages ruby)
  192. #:use-module (gnu packages rust)
  193. #:use-module (gnu packages samba)
  194. #:use-module (gnu packages scanner)
  195. #:use-module (gnu packages sdl)
  196. #:use-module (gnu packages search)
  197. #:use-module (gnu packages selinux)
  198. #:use-module (gnu packages slang)
  199. #:use-module (gnu packages speech)
  200. #:use-module (gnu packages spice)
  201. #:use-module (gnu packages sqlite)
  202. #:use-module (gnu packages ssh)
  203. #:use-module (gnu packages swig)
  204. #:use-module (gnu packages tex)
  205. #:use-module (gnu packages time)
  206. #:use-module (gnu packages tls)
  207. #:use-module (gnu packages valgrind)
  208. #:use-module (gnu packages version-control)
  209. #:use-module (gnu packages video)
  210. #:use-module (gnu packages virtualization)
  211. #:use-module (gnu packages vpn)
  212. #:use-module (gnu packages web)
  213. #:use-module (gnu packages webkit)
  214. #:use-module (gnu packages xdisorg)
  215. #:use-module (gnu packages xiph)
  216. #:use-module (gnu packages xml)
  217. #:use-module (gnu packages xorg)
  218. #:use-module (gnu artwork)
  219. #:use-module (guix build-system cargo)
  220. #:use-module (guix build-system cmake)
  221. #:use-module (guix build-system glib-or-gtk)
  222. #:use-module (guix build-system gnu)
  223. #:use-module (guix build-system meson)
  224. #:use-module (guix build-system python)
  225. #:use-module (guix build-system trivial)
  226. #:use-module (guix download)
  227. #:use-module (guix git-download)
  228. #:use-module ((guix licenses) #:prefix license:)
  229. #:use-module (guix packages)
  230. #:use-module (guix utils)
  231. #:use-module (guix gexp)
  232. #:use-module (ice-9 match)
  233. #:use-module (srfi srfi-1))
  234. (define-public gupnp-igd
  235. (package
  236. (name "gupnp-igd")
  237. (version "1.2.0")
  238. (source
  239. (origin
  240. (method url-fetch)
  241. (uri
  242. (string-append "mirror://gnome/sources/" name "/"
  243. (version-major+minor version) "/"
  244. name "-" version ".tar.xz"))
  245. (sha256
  246. (base32 "1q9bw12ibih3yxpha3gm1dabyqg9gx6yxacbh4kxsgm1i84j0lab"))))
  247. (build-system meson-build-system)
  248. (outputs '("out" "doc"))
  249. (arguments
  250. `(#:glib-or-gtk? #t ; To wrap binaries and compile schemas
  251. #:configure-flags (list "-Dgtk_doc=true")
  252. #:phases
  253. (modify-phases %standard-phases
  254. (add-after 'unpack 'patch-docbook-xml
  255. (lambda* (#:key inputs #:allow-other-keys)
  256. (with-directory-excursion "doc"
  257. (substitute* "gupnp-igd-docs.xml"
  258. (("http://www.oasis-open.org/docbook/xml/4.1.2/")
  259. (string-append (assoc-ref inputs "docbook-xml-4.1.2")
  260. "/xml/dtd/docbook/"))))
  261. #t))
  262. (add-before 'check 'set-home
  263. (lambda _
  264. ;; A test using GIO expects ~/.config/glib-2.0/settings to be
  265. ;; writable.
  266. (setenv "HOME" (getcwd))))
  267. (add-after 'install 'move-doc
  268. (lambda* (#:key outputs #:allow-other-keys)
  269. (let* ((out (assoc-ref outputs "out"))
  270. (doc (assoc-ref outputs "doc")))
  271. (mkdir-p (string-append doc "/share"))
  272. (rename-file
  273. (string-append out "/share/gtk-doc")
  274. (string-append doc "/share/gtk-doc"))
  275. #t))))))
  276. (native-inputs
  277. `(("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
  278. ("docbook-xsl" ,docbook-xsl)
  279. ("glib:bin" ,glib "bin")
  280. ("gobject-introspection" ,gobject-introspection)
  281. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  282. ("gtk-doc" ,gtk-doc/stable)
  283. ("pkg-config" ,pkg-config)))
  284. (propagated-inputs
  285. (list glib glib-networking gssdp gupnp libsoup))
  286. (synopsis "UPnP IGD for GNOME")
  287. (description "GUPnP-IGD is a library to handle UPnP IGD port mapping.")
  288. (home-page "https://gitlab.gnome.org/GNOME/gupnp-igd")
  289. (license license:lgpl2.1+)))
  290. (define-public brasero
  291. (package
  292. (name "brasero")
  293. (version "3.12.3")
  294. (source (origin
  295. (method url-fetch)
  296. (uri (string-append "mirror://gnome/sources/brasero/"
  297. (version-major+minor version) "/"
  298. "brasero-" version ".tar.xz"))
  299. (sha256
  300. (base32
  301. "05gabybkl7xfinwx97i4scp9hic0dlxj7gh03dyj0hd16fp9wx47"))))
  302. (build-system glib-or-gtk-build-system)
  303. (arguments
  304. `(#:configure-flags (list
  305. (string-append "--with-girdir="
  306. (assoc-ref %outputs "out")
  307. "/share/gir-1.0")
  308. (string-append "--with-typelibdir="
  309. (assoc-ref %outputs "out")
  310. "/lib/girepository-1.0"))
  311. #:phases
  312. (modify-phases %standard-phases
  313. (add-before 'configure 'embed-growisofs-reference
  314. (lambda* (#:key inputs #:allow-other-keys)
  315. (let ((dvd+rw-tools (assoc-ref inputs "dvd+rw-tools")))
  316. (substitute* "plugins/growisofs/burn-growisofs.c"
  317. (("(\")(growisofs)" _ prefix command)
  318. (string-append prefix dvd+rw-tools "/bin/" command)))))))))
  319. (propagated-inputs
  320. (list hicolor-icon-theme))
  321. (native-inputs
  322. (list intltool
  323. itstool
  324. `(,glib "bin") ; glib-compile-schemas, etc.
  325. gobject-introspection
  326. pkg-config))
  327. (inputs
  328. (list dvd+rw-tools
  329. glib
  330. gnome-doc-utils
  331. gstreamer
  332. gst-plugins-base
  333. gtk+
  334. libcanberra
  335. libice
  336. libnotify
  337. libsm
  338. libxml2
  339. totem-pl-parser))
  340. (home-page "https://wiki.gnome.org/Apps/Brasero")
  341. (synopsis "CD/DVD burning tool for Gnome")
  342. (description "Brasero is an application to burn CD/DVD for the Gnome
  343. Desktop. It is designed to be as simple as possible and has some unique
  344. features to enable users to create their discs easily and quickly.")
  345. (license license:gpl2+)))
  346. ;;; Minimal variant, used to break a cycle with Inkscape.
  347. (define-public libcloudproviders-minimal
  348. (package
  349. (name "libcloudproviders-minimal")
  350. (version "0.3.1")
  351. (source
  352. (origin
  353. (method url-fetch)
  354. (uri
  355. (string-append "mirror://gnome/sources/libcloudproviders/"
  356. (version-major+minor version)
  357. "/libcloudproviders-" version ".tar.xz"))
  358. (sha256
  359. (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
  360. (build-system meson-build-system)
  361. (arguments
  362. `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
  363. #:configure-flags (list "-Dintrospection=false"
  364. "-Denable-gtk-doc=false"
  365. "-Dvapigen=false")))
  366. (native-inputs
  367. `(("glib:bin" ,glib "bin")
  368. ("pkg-config" ,pkg-config)
  369. ("vala" ,vala)))
  370. (inputs
  371. (list glib glib-networking))
  372. (synopsis "Cloudproviders Integration API")
  373. (description "Libcloudproviders is a DBus API that allows cloud storage sync
  374. clients to expose their services. Clients such as file managers and desktop
  375. environments can then provide integrated access to the cloud providers
  376. services.")
  377. (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
  378. (license license:lgpl3+)))
  379. (define-public libcloudproviders
  380. (package/inherit libcloudproviders-minimal
  381. (name "libcloudproviders")
  382. (version "0.3.1")
  383. (outputs (cons "doc" (package-outputs libcloudproviders-minimal)))
  384. (arguments
  385. (substitute-keyword-arguments (package-arguments libcloudproviders-minimal)
  386. ((#:configure-flags _)
  387. '(list "-Denable-gtk-doc=true")) ;false by default
  388. ((#:phases phases '%standard-phases)
  389. `(modify-phases %standard-phases
  390. (add-after 'install 'move-doc
  391. (lambda* (#:key outputs #:allow-other-keys)
  392. (let* ((out (assoc-ref outputs "out"))
  393. (doc (assoc-ref outputs "doc")))
  394. (mkdir-p (string-append doc "/share"))
  395. (rename-file
  396. (string-append out "/share/gtk-doc")
  397. (string-append doc "/share/gtk-doc")))))))))
  398. (native-inputs
  399. (append
  400. `(("gobject-introspection" ,gobject-introspection)
  401. ("gtk-doc" ,gtk-doc/stable))
  402. (package-native-inputs libcloudproviders-minimal)))))
  403. (define-public libgrss
  404. (package
  405. (name "libgrss")
  406. (version "0.7.0")
  407. (source
  408. (origin
  409. (method url-fetch)
  410. (uri
  411. (string-append "mirror://gnome/sources/" name "/"
  412. (version-major+minor version) "/"
  413. name "-" version ".tar.xz"))
  414. (sha256
  415. (base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))
  416. (patches
  417. (search-patches "libgrss-CVE-2016-2001.patch"))))
  418. (build-system glib-or-gtk-build-system)
  419. (outputs '("out" "doc"))
  420. (arguments
  421. `(#:configure-flags
  422. (list
  423. "--enable-gtk-doc"
  424. (string-append "--with-html-dir="
  425. (assoc-ref %outputs "doc")
  426. "/share/gtk-doc/html"))
  427. #:phases
  428. (modify-phases %standard-phases
  429. (add-after 'unpack 'patch-docbook-xml
  430. (lambda* (#:key inputs #:allow-other-keys)
  431. (with-directory-excursion "doc/reference"
  432. (substitute* "libgrss-docs.sgml"
  433. (("http://www.oasis-open.org/docbook/xml/4.1.2/")
  434. (string-append (assoc-ref inputs "docbook-xml")
  435. "/xml/dtd/docbook/"))))
  436. #t)))))
  437. (native-inputs
  438. (list docbook-xml-4.1.2 gobject-introspection gtk-doc/stable
  439. pkg-config))
  440. (propagated-inputs
  441. (list glib libsoup libxml2))
  442. (synopsis "Glib library for feeds")
  443. (description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,
  444. and other formats.")
  445. (home-page "https://wiki.gnome.org/Projects/Libgrss")
  446. (license license:lgpl3+)))
  447. (define-public gnome-js-common
  448. (package
  449. (name "gnome-js-common")
  450. (version "0.1.2")
  451. (source
  452. (origin
  453. (method url-fetch)
  454. (uri
  455. (string-append "mirror://gnome/sources/" name "/"
  456. (version-major+minor version) "/"
  457. name "-" version ".tar.gz"))
  458. (sha256
  459. (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y"))))
  460. (build-system glib-or-gtk-build-system)
  461. (arguments
  462. `(#:configure-flags
  463. (list
  464. "--disable-static")))
  465. (native-inputs
  466. `(("gettext" ,gettext-minimal)
  467. ("intltool" ,intltool)
  468. ("pkg-config" ,pkg-config)))
  469. (synopsis "Common JS Modules")
  470. (description "GNOME-JS-Common provides common modules for GNOME JavaScript
  471. bindings.")
  472. (home-page "https://wiki.gnome.org/Projects/Seed")
  473. (license license:gpl3+)))
  474. (define-public seed
  475. (package
  476. (name "seed")
  477. (version "3.8.1")
  478. (source
  479. (origin
  480. (method url-fetch)
  481. (uri
  482. (string-append "mirror://gnome/sources/" name "/"
  483. (version-major+minor version) "/"
  484. name "-" version ".tar.xz"))
  485. (sha256
  486. (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0"))
  487. (patches
  488. (search-patches "seed-webkit.patch"))))
  489. (build-system glib-or-gtk-build-system)
  490. (outputs '("out" "doc"))
  491. (arguments
  492. `(#:configure-flags
  493. (list
  494. "--disable-static"
  495. "--enable-xorg-module"
  496. (string-append "--with-html-dir="
  497. (assoc-ref %outputs "doc")
  498. "/share/gtk-doc/html")
  499. "--with-webkit=4.0")
  500. #:phases
  501. (modify-phases %standard-phases
  502. ;; The seed-webkit.patch patches configure.ac.
  503. ;; So the source files need to be re-bootstrapped.
  504. (add-after 'unpack 'trigger-bootstrap
  505. (lambda _
  506. (for-each delete-file
  507. (list
  508. "configure"
  509. "Makefile.in"))
  510. #t))
  511. (add-after 'unpack 'patch-tests
  512. (lambda* (#:key outputs #:allow-other-keys)
  513. (substitute* (find-files "." "\\.js$")
  514. (("#!/usr/bin/env seed")
  515. (string-append "#!" (getcwd) "/src/seed")))
  516. #t))
  517. (add-before 'build 'patch-docbook-xml
  518. (lambda* (#:key inputs #:allow-other-keys)
  519. (with-directory-excursion "doc"
  520. (substitute* '("reference/seed-docs.sgml" "modules/book.xml")
  521. (("http://www.oasis-open.org/docbook/xml/4.1.2/")
  522. (string-append (assoc-ref inputs "docbook-xml")
  523. "/xml/dtd/docbook/"))))
  524. #t)))))
  525. (native-inputs
  526. `(("autoconf" ,autoconf)
  527. ("automake" ,automake)
  528. ("docbook-xml" ,docbook-xml-4.1.2)
  529. ("gettext" ,gettext-minimal)
  530. ("gobject-introspection" ,gobject-introspection)
  531. ("gtk-doc" ,gtk-doc/stable)
  532. ("intltool" ,intltool)
  533. ("libtool" ,libtool)
  534. ("pkg-config" ,pkg-config)))
  535. (inputs
  536. `(("cairo" ,cairo)
  537. ("dbus" ,dbus)
  538. ("dbus-glib" ,dbus-glib)
  539. ("gnome-js-common" ,gnome-js-common)
  540. ("gtk+" ,gtk+)
  541. ("gtk+-2" ,gtk+-2)
  542. ("libffi" ,libffi)
  543. ("libxml2" ,libxml2)
  544. ("mpfr" ,mpfr)
  545. ("readline" ,readline)
  546. ("sqlite" ,sqlite)
  547. ("xscrnsaver" ,libxscrnsaver)))
  548. (propagated-inputs
  549. `(("glib" ,glib)
  550. ("webkit" ,webkitgtk)))
  551. (synopsis "GObject JavaScriptCore bridge")
  552. (description "Seed is a library and interpreter, dynamically bridging
  553. (through GObjectIntrospection) the WebKit JavaScriptCore engine, with the
  554. GNOME platform. It serves as something which enables you to write standalone
  555. applications in JavaScript, or easily enable your application to be extensible
  556. in JavaScript.")
  557. (home-page "https://wiki.gnome.org/Projects/Seed")
  558. (license license:lgpl2.0+)))
  559. (define-public libdmapsharing
  560. (package
  561. (name "libdmapsharing")
  562. (version "3.9.10")
  563. (source
  564. (origin
  565. (method url-fetch)
  566. (uri
  567. (string-append "https://www.flyn.org/projects/"
  568. name "/" name "-" version ".tar.gz"))
  569. (sha256
  570. (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2"))))
  571. (build-system glib-or-gtk-build-system)
  572. (outputs '("out" "doc"))
  573. (arguments
  574. `(#:tests? #f ; Tests require networking.
  575. #:configure-flags
  576. (list
  577. "--disable-static"
  578. (string-append "--with-html-dir="
  579. (assoc-ref %outputs "doc")
  580. "/share/gtk-doc/html"))
  581. #:phases
  582. (modify-phases %standard-phases
  583. (add-after 'unpack 'patch-docbook-xml
  584. (lambda* (#:key inputs #:allow-other-keys)
  585. (with-directory-excursion "doc"
  586. (substitute* "libdmapsharing-4.0-docs.xml"
  587. (("http://www.oasis-open.org/docbook/xml/4.3/")
  588. (string-append (assoc-ref inputs "docbook-xml")
  589. "/xml/dtd/docbook/"))))
  590. #t)))))
  591. (native-inputs
  592. (list check
  593. docbook-xml-4.3
  594. gobject-introspection
  595. pedansee
  596. pkg-config
  597. vala))
  598. (inputs
  599. `(("avahi" ,avahi)
  600. ("librsvg" ,librsvg)
  601. ("gee" ,libgee)
  602. ("gst-plugins-base" ,gst-plugins-base)
  603. ("gtk+" ,gtk+)))
  604. (propagated-inputs
  605. (list glib glib-networking gstreamer libsoup-minimal-2))
  606. (synopsis "Media management library")
  607. (description "Libdmapsharing is a library which allows programs to access,
  608. share and control the playback of media content using DMAP (DAAP, DPAP & DACP).
  609. It is written in C using GObject and libsoup.")
  610. (home-page "https://launchpad.net/gtx")
  611. (license license:lgpl2.1+)))
  612. (define-public gtx
  613. (package
  614. (name "gtx")
  615. (version "0.2.2")
  616. (source
  617. (origin
  618. (method url-fetch)
  619. (uri
  620. (string-append "https://launchpad.net/gtx/trunk/"
  621. version "/+download/gtx-" version ".tar.gz"))
  622. (sha256
  623. (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
  624. (build-system glib-or-gtk-build-system)
  625. (outputs '("out" "doc"))
  626. (arguments
  627. `(#:configure-flags
  628. (list
  629. "--disable-static"
  630. "--enable-gtk-doc"
  631. (string-append "--with-html-dir="
  632. (assoc-ref %outputs "doc")
  633. "/share/gtk-doc/html"))))
  634. (native-inputs
  635. (list gobject-introspection gtk-doc/stable pkg-config))
  636. (propagated-inputs
  637. (list glib))
  638. (synopsis "GLib Testing Framework")
  639. (description "GTX is a small collection of convenience functions intended to
  640. enhance the GLib testing framework. With specific emphasis on easing the pain
  641. of writing test cases for asynchronous interactions.")
  642. (home-page "https://launchpad.net/gtx")
  643. (license license:lgpl2.1+)))
  644. (define-public dee
  645. (package
  646. (name "dee")
  647. (version "1.2.7")
  648. (source
  649. (origin
  650. (method url-fetch)
  651. (uri
  652. (string-append "https://launchpad.net/dee/1.0/"
  653. version "/+download/dee-" version ".tar.gz"))
  654. (sha256
  655. (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
  656. (patches
  657. (search-patches "dee-vapi.patch"))))
  658. (build-system glib-or-gtk-build-system)
  659. (outputs '("out" "doc"))
  660. (arguments
  661. `(#:configure-flags
  662. (list
  663. "--disable-maintainer-flags"
  664. (string-append "--with-pygi-overrides-dir="
  665. (assoc-ref %outputs "out")
  666. "/lib/python"
  667. ,(version-major+minor
  668. (package-version python))
  669. "/site-packages/gi/overrides")
  670. (string-append "--with-html-dir="
  671. (assoc-ref %outputs "doc")
  672. "/share/gtk-doc/html"))
  673. #:phases
  674. (modify-phases %standard-phases
  675. (add-after 'unpack 'patch-docbook-xml
  676. (lambda* (#:key inputs #:allow-other-keys)
  677. (with-directory-excursion "doc/reference/dee-1.0"
  678. (substitute* "dee-1.0-docs.sgml"
  679. (("http://www.oasis-open.org/docbook/xml/4.3/")
  680. (string-append (assoc-ref inputs "docbook-xml")
  681. "/xml/dtd/docbook/"))))))
  682. (add-after 'patch-docbook-xml 'disable-failing-tests
  683. (lambda _
  684. (substitute* "tests/test-icu.c"
  685. (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
  686. "")
  687. (("setup, test_ascii_folder, teardown\\);")
  688. ""))))
  689. (add-before 'check 'pre-check
  690. (lambda _
  691. ;; Tests require a running dbus-daemon.
  692. (system "dbus-daemon &")
  693. ;; For missing '/etc/machine-id'.
  694. (setenv "DBUS_FATAL_WARNINGS" "0"))))))
  695. (native-inputs
  696. `(("dbus" ,dbus)
  697. ("dbus-test-runner" ,dbus-test-runner)
  698. ("docbook-xml" ,docbook-xml-4.3)
  699. ("gobject-introspection" ,gobject-introspection)
  700. ("gtk-doc" ,gtk-doc/stable)
  701. ;; Would only be required by configure flag "--enable-extended-tests".
  702. ;("gtx" ,gtx)
  703. ("pkg-config" ,pkg-config)
  704. ("pygobject" ,python-pygobject)
  705. ("python" ,python-wrapper)
  706. ("vala" ,vala-0.52)))
  707. (inputs
  708. `(("icu" ,icu4c)))
  709. (propagated-inputs
  710. (list glib))
  711. (synopsis "Model to synchronize multiple instances over DBus")
  712. (description "Dee is a library that uses DBus to provide objects allowing
  713. you to create Model-View-Controller type programs across DBus. It also consists
  714. of utility objects which extend DBus allowing for peer-to-peer discoverability
  715. of known objects without needing a central registrar.")
  716. (home-page "https://launchpad.net/dee")
  717. (license
  718. ;; Dual-licensed
  719. (list
  720. license:lgpl3+
  721. license:gpl3+))))
  722. (define-public zeitgeist
  723. (package
  724. (name "zeitgeist")
  725. (version "1.0.4")
  726. (source
  727. (origin
  728. (method git-fetch)
  729. (uri
  730. (git-reference
  731. (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git")
  732. (commit
  733. (string-append "v" version))))
  734. (file-name
  735. (git-file-name name version))
  736. (sha256
  737. (base32 "07b1ahj3vd3m8srwkrh7dl3ymr7d55xiiszny44q13g06pq4svch"))))
  738. (build-system glib-or-gtk-build-system)
  739. (arguments
  740. `(#:configure-flags
  741. (list
  742. "--enable-explain-queries"
  743. "--enable-fts"
  744. "--enable-docs")
  745. #:phases
  746. (modify-phases %standard-phases
  747. (add-after 'unpack 'patch-docbook-xml
  748. (lambda* (#:key inputs #:allow-other-keys)
  749. (with-directory-excursion "doc/libzeitgeist"
  750. (substitute* "zeitgeist-gtkdoc-index.sgml"
  751. (("http://www.oasis-open.org/docbook/xml/4.3/")
  752. (string-append (assoc-ref inputs "docbook-xml")
  753. "/xml/dtd/docbook/"))))))
  754. (add-after 'patch-docbook-xml 'disable-failing-tests
  755. (lambda _
  756. (substitute* "test/direct/Makefile.am"
  757. ((" log-test ")
  758. ""))
  759. (substitute* "test/c/Makefile.am"
  760. ((" test-log ")
  761. ""))))
  762. (add-before 'bootstrap 'remove-autogen-script
  763. (lambda _
  764. ;; To honor `autoreconf -vif` by build-system.
  765. (delete-file "autogen.sh"))))))
  766. (native-inputs
  767. `(("autoconf" ,autoconf)
  768. ("automake" ,automake)
  769. ("docbook-xml" ,docbook-xml-4.3)
  770. ("gettext" ,gettext-minimal)
  771. ("gobject-introspection" ,gobject-introspection)
  772. ("gtk-doc" ,gtk-doc/stable)
  773. ("libtool" ,libtool)
  774. ("pkg-config" ,pkg-config)
  775. ("vala" ,vala)
  776. ("xorg-server-for-tests" ,xorg-server-for-tests)))
  777. (inputs
  778. `(("dee-icu" ,dee)
  779. ("gtk+" ,gtk+)
  780. ("json-glib" ,json-glib)
  781. ("sqlite" ,sqlite)
  782. ("telepathy-glib" ,telepathy-glib)
  783. ("python" ,python-wrapper)
  784. ("python-rdflib" ,python-rdflib)
  785. ("xapian-config" ,xapian)))
  786. (propagated-inputs
  787. (list glib))
  788. (synopsis "Desktop Activity Logging")
  789. (description "Zeitgeist is a service which logs the users’s activities and
  790. events, anywhere from files opened to websites visited and conversations. It
  791. makes this information readily available for other applications to use. It is
  792. able to establish relationships between items based on similarity and usage
  793. patterns.")
  794. (home-page "https://zeitgeist.freedesktop.org/")
  795. (license
  796. ;; Dual-licensed
  797. (list
  798. license:lgpl2.1+
  799. license:gpl2+))))
  800. (define-public gnome-recipes
  801. (package
  802. (name "gnome-recipes")
  803. (version "2.0.4")
  804. (source (origin
  805. (method git-fetch)
  806. (uri (git-reference
  807. (url "https://gitlab.gnome.org/GNOME/recipes")
  808. (commit version)))
  809. (file-name (git-file-name name version))
  810. (sha256
  811. (base32
  812. "1h049mzqnlcfqwrhmzbq3pzzdglvy2bn9fj1p8wql7a60pn8sr32"))))
  813. (build-system meson-build-system)
  814. (arguments
  815. (list
  816. #:glib-or-gtk? #t
  817. #:phases
  818. #~(modify-phases %standard-phases
  819. (add-after 'unpack 'skip-gtk-update-icon-cache
  820. (lambda _
  821. (substitute* "meson_post_install.py"
  822. (("gtk-update-icon-cache") (which "true")))))
  823. (add-after 'unpack 'unpack-libgd
  824. (lambda _
  825. (copy-recursively
  826. #$(origin
  827. (method git-fetch)
  828. (uri (git-reference
  829. (url "https://gitlab.gnome.org/GNOME/libgd")
  830. (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
  831. (file-name (git-file-name "libgd" version))
  832. (sha256
  833. (base32
  834. "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs")))
  835. "subprojects/libgd"))))))
  836. (inputs (list glib
  837. gnome-autoar
  838. `(,gnome-online-accounts "lib")
  839. gspell
  840. gtk+
  841. json-glib
  842. libcanberra
  843. libsoup
  844. rest))
  845. (native-inputs (list desktop-file-utils ;for update-desktop-database
  846. gettext-minimal
  847. `(,glib "bin")
  848. itstool
  849. pkg-config
  850. python))
  851. (home-page "https://wiki.gnome.org/Apps/Recipes")
  852. (synopsis "Discover recipes for preparing food")
  853. (description "GNOME Recipes helps you discover what to cook today,
  854. tomorrow, the rest of the week and for special occasions.")
  855. (license license:gpl3+)))
  856. (define-public gnome-photos
  857. (package
  858. (name "gnome-photos")
  859. (version "40.0")
  860. (source
  861. (origin
  862. (method url-fetch)
  863. (uri
  864. (string-append "mirror://gnome/sources/" name "/"
  865. (version-major version) "/"
  866. name "-" version ".tar.xz"))
  867. (sha256
  868. (base32
  869. "1bzi79plw6ji6qlckhxnwfnswy6jpnhzmmyanml2i2xg73hp6bg0"))))
  870. (build-system meson-build-system)
  871. (arguments
  872. `(#:glib-or-gtk? #t
  873. #:configure-flags
  874. (list "-Ddogtail=false" ; Not available
  875. ;; Required for RUNPATH validation.
  876. (string-append "-Dc_link_args=-Wl,-rpath="
  877. (assoc-ref %outputs "out") "/lib/gnome-photos"))
  878. #:phases
  879. (modify-phases %standard-phases
  880. (add-after 'install 'wrap-gnome-photos
  881. (lambda* (#:key inputs outputs #:allow-other-keys)
  882. (let*
  883. ((out (assoc-ref outputs "out")))
  884. (wrap-program (string-append out "/bin/gnome-photos")
  885. `("GRL_PLUGIN_PATH" =
  886. (,(getenv "GRL_PLUGIN_PATH"))))))))))
  887. (native-inputs
  888. `(("dbus" ,dbus)
  889. ("desktop-file-utils" ,desktop-file-utils)
  890. ("gettext" ,gettext-minimal)
  891. ("git" ,git-minimal)
  892. ("glib:bin" ,glib "bin")
  893. ("gobject-introspection" ,gobject-introspection)
  894. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  895. ("gtk+:bin" ,gtk+ "bin")
  896. ("itstool" ,itstool)
  897. ("pkg-config" ,pkg-config)))
  898. (inputs
  899. `(("babl" ,babl)
  900. ("cairo" ,cairo)
  901. ("librsvg" ,librsvg)
  902. ("gegl" ,gegl)
  903. ("geocode-glib" ,geocode-glib)
  904. ("gexiv2" ,gexiv2)
  905. ("gnome-online-accounts" ,gnome-online-accounts)
  906. ("gnome-online-miners" ,gnome-online-miners)
  907. ("grilo" ,grilo)
  908. ("grilo-plugins" ,grilo-plugins)
  909. ("gtk+" ,gtk+)
  910. ("libdazzle" ,libdazzle)
  911. ("libgdata" ,libgdata)
  912. ("libgfbgraph" ,gfbgraph)
  913. ("libhandy" ,libhandy)
  914. ("libjpeg" ,libjpeg-turbo)
  915. ("libpng" ,libpng)
  916. ("librest" ,rest)
  917. ("pygobject" ,python-pygobject)
  918. ("tracker" ,tracker)
  919. ("tracker-miners" ,tracker-miners)))
  920. (synopsis "Access, organize and share your photos on GNOME desktop")
  921. (description "GNOME Photos is a simple and elegant replacement for using a
  922. file manager to deal with photos. Enhance, crop and edit in a snap. Seamless
  923. cloud integration is offered through GNOME Online Accounts.")
  924. (home-page "https://wiki.gnome.org/Apps/Photos")
  925. (license license:gpl3+)))
  926. (define-public gnome-music
  927. (package
  928. (name "gnome-music")
  929. (version "40.1.1")
  930. (source
  931. (origin
  932. (method url-fetch)
  933. (uri
  934. (string-append "mirror://gnome/sources/" name "/"
  935. (version-major version) "/"
  936. name "-" version ".tar.xz"))
  937. (sha256
  938. (base32
  939. "0lcdal4qdhclr8961p57xf010y92l6wwmkw86lyi9wy224z6gjr0"))))
  940. (build-system meson-build-system)
  941. (arguments
  942. `(#:glib-or-gtk? #t
  943. #:phases
  944. (modify-phases %standard-phases
  945. (add-after 'install 'wrap-gnome-music
  946. (lambda* (#:key inputs outputs #:allow-other-keys)
  947. (let*
  948. ((out (assoc-ref outputs "out"))
  949. (pylib (string-append out "/lib/python"
  950. ,(version-major+minor
  951. (package-version python))
  952. "/site-packages")))
  953. (wrap-program (string-append out "/bin/gnome-music")
  954. `("GI_TYPELIB_PATH" =
  955. (,(getenv "GI_TYPELIB_PATH")))
  956. `("GST_PLUGIN_SYSTEM_PATH" =
  957. (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
  958. `("GRL_PLUGIN_PATH" =
  959. (,(getenv "GRL_PLUGIN_PATH")))
  960. `("GUIX_PYTHONPATH" =
  961. (,(getenv "GUIX_PYTHONPATH") ,pylib)))))))))
  962. (native-inputs
  963. `(("desktop-file-utils" ,desktop-file-utils)
  964. ("gettext" ,gettext-minimal)
  965. ("glib:bin" ,glib "bin")
  966. ("gobject-introspection" ,gobject-introspection)
  967. ("gtk+:bin" ,gtk+ "bin")
  968. ("itstools" ,itstool)
  969. ("pkg-config" ,pkg-config)))
  970. (inputs
  971. `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
  972. ("grilo" ,grilo)
  973. ("grilo-plugins" ,grilo-plugins)
  974. ("gst-plugins-base" ,gst-plugins-base)
  975. ("gst-plugins-good" ,gst-plugins-good)
  976. ("gstreamer" ,gstreamer)
  977. ("gvfs" ,gvfs)
  978. ("json-glib" ,json-glib)
  979. ("libdazzle" ,libdazzle)
  980. ("libmediaart" ,libmediaart)
  981. ("libsoup" ,libsoup-minimal-2)
  982. ("pycairo" ,python-pycairo)
  983. ("pygobject" ,python-pygobject)
  984. ("python" ,python)
  985. ("tracker" ,tracker)
  986. ("tracker-miners" ,tracker-miners)))
  987. (synopsis "Simple music player for GNOME desktop")
  988. (description "GNOME Music is the new GNOME music playing application that
  989. aims to combine an elegant and immersive browsing experience with simple
  990. and straightforward controls.")
  991. (home-page "https://wiki.gnome.org/Apps/Music")
  992. (license license:gpl2+)))
  993. (define-public portablexdr
  994. (package
  995. (name "portablexdr")
  996. (version "4.9.1")
  997. (source
  998. (origin
  999. (method url-fetch)
  1000. (uri
  1001. (string-append "https://people.redhat.com/~rjones/" name "/files/"
  1002. name "-" version ".tar.gz"))
  1003. (sha256
  1004. (base32
  1005. "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
  1006. (build-system gnu-build-system)
  1007. (synopsis "External Data Representation Library")
  1008. (description "PortableXDR is an implementation of External Data
  1009. Representation (XDR) Library. It is a standard data serialization format, for
  1010. uses such as computer network protocols. It allows data to be transferred
  1011. between different kinds of computer systems.")
  1012. (home-page "https://people.redhat.com/~rjones/portablexdr/")
  1013. (license
  1014. (list
  1015. license:gpl2+
  1016. license:lgpl2.1+))))
  1017. (define-public tepl
  1018. (package
  1019. (name "tepl")
  1020. (version "6.00.0")
  1021. (source
  1022. (origin
  1023. (method url-fetch)
  1024. (uri
  1025. (string-append "mirror://gnome/sources/" name "/"
  1026. (version-major+minor version) "/"
  1027. name "-" version ".tar.xz"))
  1028. (sha256
  1029. (base32
  1030. "0qvs7s86gqyyrzi0r5fbrj8zczlgv8xhdjswgbgc1afwjnl9fqx8"))))
  1031. (build-system meson-build-system)
  1032. (arguments
  1033. `(#:glib-or-gtk? #t
  1034. #:tests? #f)) ; FIX-ME: Requires gvfs
  1035. (native-inputs
  1036. (list `(,glib "bin") gobject-introspection pkg-config))
  1037. (inputs
  1038. (list amtk
  1039. glib
  1040. gtk+
  1041. gtksourceview
  1042. libxml2
  1043. uchardet))
  1044. (synopsis "Text editor product line")
  1045. (description "Tepl is a library that eases the development of
  1046. GtkSourceView-based text editors and IDEs.")
  1047. (home-page "https://wiki.gnome.org/Projects/Tepl")
  1048. (license license:lgpl2.1+)))
  1049. (define-public tepl-5
  1050. (package
  1051. (inherit tepl)
  1052. (name "tepl")
  1053. (version "5.0.1")
  1054. (source
  1055. (origin
  1056. (method url-fetch)
  1057. (uri
  1058. (string-append "mirror://gnome/sources/" name "/"
  1059. (version-major+minor version) "/"
  1060. name "-" version ".tar.xz"))
  1061. (sha256
  1062. (base32
  1063. "0118j64s4fb350phbgda2rk6sv19rfgglxc7nf248llzc1klj9xi"))))))
  1064. (define-public krb5-auth-dialog
  1065. (package
  1066. (name "krb5-auth-dialog")
  1067. (version "3.26.1")
  1068. (source
  1069. (origin
  1070. (method url-fetch)
  1071. (uri
  1072. (string-append "mirror://gnome/sources/" name "/"
  1073. (version-major+minor version) "/"
  1074. name "-" version ".tar.xz"))
  1075. (sha256
  1076. (base32
  1077. "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
  1078. (build-system glib-or-gtk-build-system)
  1079. (native-inputs
  1080. (list intltool itstool libxml2 pkg-config python-wrapper))
  1081. (inputs
  1082. (list glib gtk+ libnotify mit-krb5 network-manager))
  1083. (synopsis "Popup dialogs for Kerberos 5")
  1084. (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
  1085. tickets, and pops up a dialog when they are about to expire.")
  1086. (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
  1087. (license license:gpl2+)))
  1088. (define-public notification-daemon
  1089. (package
  1090. (name "notification-daemon")
  1091. (version "3.20.0")
  1092. (source
  1093. (origin
  1094. (method url-fetch)
  1095. (uri
  1096. (string-append "mirror://gnome/sources/" name "/"
  1097. (version-major+minor version) "/"
  1098. name "-" version ".tar.xz"))
  1099. (sha256
  1100. (base32
  1101. "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
  1102. (build-system glib-or-gtk-build-system)
  1103. (native-inputs
  1104. (list intltool pkg-config))
  1105. (inputs
  1106. (list glib gtk+ libx11))
  1107. (synopsis "Notification Daemon for GNOME Desktop")
  1108. (description "Notification-Daemon is the server implementation of the
  1109. freedesktop.org desktop notification specification.")
  1110. (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
  1111. (license license:gpl2+)))
  1112. (define-public mm-common
  1113. (package
  1114. (name "mm-common")
  1115. (version "1.0.3")
  1116. (source (origin
  1117. (method url-fetch)
  1118. (uri (string-append "mirror://gnome/sources/mm-common/"
  1119. (version-major+minor version) "/"
  1120. "mm-common-" version ".tar.xz"))
  1121. (sha256
  1122. (base32
  1123. "1x8yvjy0yg17qyhmqws8xh2k8dvzrhpwqz7j1cfwzalrb1i9c5g8"))))
  1124. (build-system meson-build-system)
  1125. (arguments
  1126. `(#:phases
  1127. (modify-phases %standard-phases
  1128. (add-after 'unpack 'patch
  1129. (lambda* (#:key inputs #:allow-other-keys)
  1130. (substitute* "util/mm-common-prepare.in"
  1131. (("ln") (search-input-file inputs "/bin/ln"))
  1132. (("cp") (search-input-file inputs "/bin/cp"))
  1133. (("sed") (search-input-file inputs "/bin/sed"))
  1134. (("cat") (search-input-file inputs "/bin/cat"))))))))
  1135. (native-inputs
  1136. `(("coreutils" ,coreutils)
  1137. ("gettext" ,gettext-minimal)
  1138. ("pkg-config" ,pkg-config)
  1139. ("sed" ,sed)))
  1140. (inputs
  1141. (list python))
  1142. (synopsis "Module of GNOME C++ bindings")
  1143. (description "The mm-common module provides the build infrastructure
  1144. and utilities shared among the GNOME C++ binding libraries. Release
  1145. archives of mm-common include the Doxygen tag file for the GNU C++
  1146. Library reference documentation.")
  1147. (home-page "https://gitlab.gnome.org/GNOME/mm-common")
  1148. (license license:gpl2+)))
  1149. (define-public phodav
  1150. (package
  1151. (name "phodav")
  1152. (version "2.5")
  1153. (source (origin
  1154. (method url-fetch)
  1155. (uri (string-append "mirror://gnome/sources/" name "/"
  1156. (version-major+minor version) "/"
  1157. name "-" version ".tar.xz"))
  1158. (sha256
  1159. (base32
  1160. "045rdzf8isqmzix12lkz6z073b5qvcqq6ad028advm5gf36skw3i"))))
  1161. (build-system meson-build-system)
  1162. (arguments
  1163. `(#:phases
  1164. (modify-phases %standard-phases
  1165. (add-after 'unpack 'fix-udev-rules-directory
  1166. (lambda* (#:key outputs #:allow-other-keys)
  1167. (let* ((out (assoc-ref outputs "out"))
  1168. (rules (string-append out "/lib/udev/rules.d")))
  1169. (substitute* "data/meson.build"
  1170. (("udev\\.get_pkgconfig_variable\\('udevdir'\\)")
  1171. (format #f "'~a'" rules))))))
  1172. (add-before 'check 'start-virtual-dir-server
  1173. ;; The same server when started by tests/virtual-dir returns an
  1174. ;; unexpected status (4 instead of 200) and fails a test. It is
  1175. ;; unclear why starting it manually here makes it pass.
  1176. (lambda _
  1177. (system "tests/virtual-dir-server &"))))))
  1178. (native-inputs
  1179. `(("docbook-xml" ,docbook-xml-4.3)
  1180. ("gettext" ,gettext-minimal)
  1181. ("glib:bin" ,glib "bin")
  1182. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  1183. ("gtk-doc" ,gtk-doc/stable)
  1184. ("pkg-config" ,pkg-config)))
  1185. (inputs
  1186. (list avahi libgudev libsoup))
  1187. (synopsis "WebDav server implementation using libsoup")
  1188. (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
  1189. but it is generic enough to be reused in other projects,
  1190. in particular in the GNOME desktop.")
  1191. (home-page "https://wiki.gnome.org/phodav")
  1192. (license license:lgpl2.1+)))
  1193. (define-public gnome-color-manager
  1194. (package
  1195. (name "gnome-color-manager")
  1196. (version "3.36.0")
  1197. (source (origin
  1198. (method url-fetch)
  1199. (uri (string-append "mirror://gnome/sources/" name "/"
  1200. (version-major+minor version) "/"
  1201. name "-" version ".tar.xz"))
  1202. (sha256
  1203. (base32
  1204. "0fxdng74d8hwhfx1nwl1i4jx9h9f6c2hkyc12f01kqbjcimrxnwx"))))
  1205. (build-system meson-build-system)
  1206. (arguments
  1207. `(#:glib-or-gtk? #t
  1208. #:phases
  1209. (modify-phases %standard-phases
  1210. (add-before
  1211. 'check 'pre-check
  1212. (lambda _
  1213. ;; Tests require a running X server.
  1214. (system "Xvfb :1 &")
  1215. (setenv "DISPLAY" ":1")
  1216. #t)))))
  1217. (native-inputs
  1218. `(("desktop-file-utils" ,desktop-file-utils)
  1219. ("gettext" ,gettext-minimal)
  1220. ("glib:bin" ,glib "bin")
  1221. ("gtk+:bin" ,gtk+ "bin")
  1222. ("itstool" ,itstool)
  1223. ("pkg-config" ,pkg-config)
  1224. ("xorg-server" ,xorg-server-for-tests)))
  1225. (inputs
  1226. (list adwaita-icon-theme
  1227. appstream-glib
  1228. colord-gtk
  1229. exiv2
  1230. gnome-desktop
  1231. libcanberra
  1232. libexif
  1233. libtiff
  1234. libxrandr
  1235. libxtst
  1236. libxxf86vm
  1237. vte
  1238. xorgproto))
  1239. (synopsis "Color profile manager for the GNOME desktop")
  1240. (description "GNOME Color Manager is a session framework that makes
  1241. it easy to manage, install and generate color profiles
  1242. in the GNOME desktop.")
  1243. (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
  1244. (license license:gpl2+)))
  1245. (define-public gnome-online-miners
  1246. (package
  1247. (name "gnome-online-miners")
  1248. (version "3.34.0")
  1249. (source (origin
  1250. (method url-fetch)
  1251. (uri (string-append "mirror://gnome/sources/" name "/"
  1252. (version-major+minor version) "/"
  1253. name "-" version ".tar.xz"))
  1254. (sha256
  1255. (base32
  1256. "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))
  1257. (patches
  1258. (search-patches
  1259. "gnome-online-miners-tracker-3.patch"))))
  1260. (build-system glib-or-gtk-build-system)
  1261. (arguments
  1262. `(#:phases
  1263. (modify-phases %standard-phases
  1264. (add-after 'unpack 'fix-configure
  1265. (lambda _
  1266. (substitute* "configure.ac"
  1267. (("AX_CHECK_ENABLE_DEBUG.*")
  1268. ""))))
  1269. (add-after 'fix-configure 'autoreconf
  1270. (lambda _
  1271. (invoke "autoreconf" "-vif"))))))
  1272. (native-inputs
  1273. `(("autoconf" ,autoconf)
  1274. ("automake" ,automake)
  1275. ("gettext" ,gettext-minimal)
  1276. ("glib:bin" ,glib "bin")
  1277. ("gobject-introspection" ,gobject-introspection)
  1278. ("gtk+:bin" ,gtk+ "bin")
  1279. ("libtool" ,libtool)
  1280. ("pkg-config" ,pkg-config)))
  1281. (inputs
  1282. `(("gnome-online-accounts" ,gnome-online-accounts)
  1283. ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
  1284. ("grilo" ,grilo)
  1285. ("libgdata" ,libgdata)
  1286. ("libgfbgraph" ,gfbgraph)
  1287. ("libzapojit" ,libzapojit)
  1288. ("rest" ,rest)
  1289. ("tracker" ,tracker)))
  1290. (synopsis "Web Crawlers for GNOME")
  1291. (description "GNOME Online Miners provides a set of crawlers that
  1292. go through your online content and index them locally in Tracker.
  1293. It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
  1294. (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
  1295. (license license:gpl2+)))
  1296. (define-public gssdp
  1297. (package
  1298. (name "gssdp")
  1299. (version "1.2.3")
  1300. (source (origin
  1301. (method url-fetch)
  1302. (uri (string-append "mirror://gnome/sources/" name "/"
  1303. (version-major+minor version) "/"
  1304. name "-" version ".tar.xz"))
  1305. (sha256
  1306. (base32
  1307. "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
  1308. (build-system meson-build-system)
  1309. (native-inputs
  1310. `(("gettext" ,gettext-minimal)
  1311. ("glib:bin" ,glib "bin")
  1312. ("gobject-introspection" ,gobject-introspection)
  1313. ("gtk-doc" ,gtk-doc/stable)
  1314. ("pkg-config" ,pkg-config)
  1315. ("vala" ,vala)))
  1316. (inputs
  1317. (list gtk+))
  1318. (propagated-inputs
  1319. ;; The .pc file "Requires" libsoup-2.4.
  1320. `(("libsoup" ,libsoup-minimal-2)))
  1321. (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
  1322. Protocol} for GNOME")
  1323. (description "This package provides a library to handle resource discovery
  1324. and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
  1325. a debugging tool, @command{gssdp-device-sniffer}.")
  1326. (home-page "https://gitlab.gnome.org/GNOME/gssdp")
  1327. (license license:lgpl2.0+)))
  1328. (define-public gupnp
  1329. (package
  1330. (name "gupnp")
  1331. (version "1.2.4")
  1332. (source (origin
  1333. (method url-fetch)
  1334. (uri (string-append "mirror://gnome/sources/" name "/"
  1335. (version-major+minor version) "/"
  1336. name "-" version ".tar.xz"))
  1337. (sha256
  1338. (base32
  1339. "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p"))))
  1340. (build-system meson-build-system)
  1341. (arguments
  1342. `(#:phases
  1343. (modify-phases %standard-phases
  1344. (add-before 'check 'pre-check
  1345. (lambda _
  1346. ;; Tests require a writable HOME.
  1347. (setenv "HOME" (getcwd)))))))
  1348. (native-inputs
  1349. `(("gettext" ,gettext-minimal)
  1350. ("glib:bin" ,glib "bin")
  1351. ("gobject-introspection" ,gobject-introspection)
  1352. ("gtk-doc" ,gtk-doc/stable)
  1353. ("pkg-config" ,pkg-config)
  1354. ("vala" ,vala)))
  1355. (inputs
  1356. (list gssdp gtk+ libsoup))
  1357. (propagated-inputs
  1358. (list ;; For ‘org.gnome.system.proxy’.
  1359. gsettings-desktop-schemas))
  1360. (synopsis "PnP API for GNOME")
  1361. (description "This package provides GUPnP, an object-oriented framework
  1362. for creating UPnP devices and control points, written in C using
  1363. @code{GObject} and @code{libsoup}.")
  1364. (home-page "https://gitlab.gnome.org/GNOME/gupnp")
  1365. (license license:lgpl2.0+)))
  1366. (define-public gupnp-dlna
  1367. (package
  1368. (name "gupnp-dlna")
  1369. (version "0.10.5")
  1370. (source (origin
  1371. (method url-fetch)
  1372. (uri (string-append "mirror://gnome/sources/" name "/"
  1373. (version-major+minor version) "/"
  1374. name "-" version ".tar.xz"))
  1375. (sha256
  1376. (base32
  1377. "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
  1378. (build-system gnu-build-system)
  1379. (native-inputs
  1380. (list gettext-minimal
  1381. `(,glib "bin")
  1382. gobject-introspection
  1383. gtk-doc/stable
  1384. libxml2
  1385. pkg-config
  1386. vala))
  1387. (inputs
  1388. (list gstreamer gupnp))
  1389. (propagated-inputs
  1390. (list gst-plugins-base gst-plugins-good))
  1391. (synopsis "GUPnP DLNA for GNOME")
  1392. (description "This package provides a small utility library to
  1393. support DLNA-related tasks such as media profile guessing, transcoding to a
  1394. given profile, etc. DLNA is a subset of UPnP A/V.")
  1395. (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
  1396. (license license:lgpl2.0+)))
  1397. (define-public gupnp-av
  1398. (package
  1399. (name "gupnp-av")
  1400. (version "0.12.11")
  1401. (source (origin
  1402. (method url-fetch)
  1403. (uri (string-append "mirror://gnome/sources/" name "/"
  1404. (version-major+minor version) "/"
  1405. name "-" version ".tar.xz"))
  1406. (sha256
  1407. (base32
  1408. "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
  1409. (build-system gnu-build-system)
  1410. (native-inputs
  1411. (list gettext-minimal
  1412. `(,glib "bin")
  1413. gobject-introspection
  1414. gtk-doc/stable
  1415. libxml2
  1416. pkg-config
  1417. vala))
  1418. (inputs
  1419. (list gtk+ gupnp))
  1420. (synopsis "GUPnP A/V for GNOME")
  1421. (description "This package provides a small library for handling
  1422. and implementation of UPnP A/V profiles.")
  1423. (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
  1424. (license license:lgpl2.0+)))
  1425. (define-public libmediaart
  1426. (package
  1427. (name "libmediaart")
  1428. (version "1.9.5")
  1429. (source (origin
  1430. (method url-fetch)
  1431. (uri (string-append "mirror://gnome/sources/" name "/"
  1432. (version-major+minor version) "/"
  1433. name "-" version ".tar.xz"))
  1434. (sha256
  1435. (base32
  1436. "1mlw1qgj8nkd9ll6b6h54r1gfdy3zp8a8xqz7qfyfaj85jjgbph7"))))
  1437. (build-system meson-build-system)
  1438. (native-inputs
  1439. (list `(,glib "bin") pkg-config))
  1440. (inputs
  1441. (list gdk-pixbuf gettext-minimal gobject-introspection
  1442. `(,gtk+ "doc") vala))
  1443. (synopsis "Media art library for the GNOME desktop")
  1444. (description
  1445. "The libmediaart library is the foundation for media art caching,
  1446. extraction, and lookup for applications on the desktop.")
  1447. (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
  1448. (license license:lgpl2.1+)))
  1449. (define-public gnome-initial-setup
  1450. (package
  1451. (name "gnome-initial-setup")
  1452. (version "40.4")
  1453. (source (origin
  1454. (method url-fetch)
  1455. (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
  1456. (version-major version)
  1457. "/gnome-initial-setup-" version ".tar.xz"))
  1458. (sha256
  1459. (base32
  1460. "06q3p4f8g9zr7a4mw3qr556mi0dg9qzrj8n46ybdz93fxs26aaj1"))))
  1461. (build-system meson-build-system)
  1462. (arguments
  1463. `(#:configure-flags '(;; Enable camera support for user selfie.
  1464. "-Dcheese=auto"
  1465. "-Dsystemd=false")
  1466. #:phases (modify-phases %standard-phases
  1467. (add-after 'unpack 'set-gkbd-file-name
  1468. (lambda* (#:key inputs #:allow-other-keys)
  1469. ;; Allow the "Preview" button in the keyboard layout
  1470. ;; selection dialog to display the layout.
  1471. (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
  1472. (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
  1473. (("\"gkbd-keyboard-display")
  1474. (string-append "\"" libgnomekbd
  1475. "/bin/gkbd-keyboard-display")))
  1476. #t))))))
  1477. (native-inputs
  1478. `(("gettext" ,gettext-minimal)
  1479. ("glib:bin" ,glib "bin")
  1480. ("gobject-introspection" ,gobject-introspection)
  1481. ("gtk+:bin" ,gtk+ "bin")
  1482. ("pkg-config" ,pkg-config)))
  1483. (inputs
  1484. `(("accountsservice" ,accountsservice)
  1485. ;("adwaita-icon-theme" ,adwaita-icon-theme)
  1486. ("elogind" ,elogind)
  1487. ("gdm" ,gdm)
  1488. ("geoclue" ,geoclue)
  1489. ("gnome-desktop" ,gnome-desktop)
  1490. ("gnome-online-accounts" ,gnome-online-accounts)
  1491. ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
  1492. ("gstreamer" ,gstreamer)
  1493. ("ibus" ,ibus)
  1494. ("json-glib" ,json-glib)
  1495. ("krb5" ,mit-krb5)
  1496. ("libgweather" ,libgweather)
  1497. ("libnma" ,libnma)
  1498. ("libsecret" ,libsecret)
  1499. ("network-manager" ,network-manager)
  1500. ("packagekit" ,packagekit)
  1501. ("polkit" ,polkit)
  1502. ("pwquality" ,libpwquality)
  1503. ("rest" ,rest)
  1504. ("upower" ,upower)
  1505. ("webkitgtk" ,webkitgtk-with-libsoup2)
  1506. ("libgnomekbd" ,libgnomekbd)))
  1507. (synopsis "Initial setup wizard for GNOME desktop")
  1508. (description "This package provides a set-up wizard when a
  1509. user logs into GNOME for the first time. It typically provides a
  1510. tour of all gnome components and allows the user to set them up.")
  1511. (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
  1512. (license license:gpl2)))
  1513. (define-public gnome-user-share
  1514. (package
  1515. (name "gnome-user-share")
  1516. (version "3.34.0")
  1517. (source (origin
  1518. (method url-fetch)
  1519. (uri (string-append "mirror://gnome/sources/" name "/"
  1520. (version-major+minor version) "/"
  1521. name "-" version ".tar.xz"))
  1522. (sha256
  1523. (base32
  1524. "04r9ck9v4i0d31grbli1d4slw2d6dcsfkpaybkwbzi7wnj72l30x"))))
  1525. (build-system meson-build-system)
  1526. (arguments
  1527. `(#:glib-or-gtk? #t
  1528. #:configure-flags
  1529. `("-Dsystemduserunitdir=/tmp/empty"
  1530. ;; Enable nautilus extension for file sharing.
  1531. "-Dnautilus_extension=true")))
  1532. (native-inputs
  1533. `(("gettext" ,gettext-minimal)
  1534. ("glib:bin" ,glib "bin")
  1535. ("gobject-introspection" ,gobject-introspection)
  1536. ("gtk+:bin" ,gtk+ "bin")
  1537. ("pkg-config" ,pkg-config)
  1538. ("yelp-tools" ,yelp-tools)))
  1539. (inputs
  1540. (list glib
  1541. gnome-bluetooth
  1542. gtk+
  1543. libcanberra
  1544. libnotify
  1545. nautilus)) ; For nautilus extension.
  1546. (synopsis "File sharing for GNOME desktop")
  1547. (description "GNOME User Share is a small package that binds together
  1548. various free software projects to bring easy to use user-level file
  1549. sharing to the masses.")
  1550. (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
  1551. (license license:gpl2+)))
  1552. (define-public sushi
  1553. (package
  1554. (name "sushi")
  1555. (version "3.38.1")
  1556. (source (origin
  1557. (method url-fetch)
  1558. (uri (string-append "mirror://gnome/sources/" name "/"
  1559. (version-major+minor version) "/"
  1560. name "-" version ".tar.xz"))
  1561. (sha256
  1562. (base32
  1563. "1sc8i0vrw6bn43rklnwp2fl1gq0r0xfd3bszcqxd0a2mh46d3rpk"))))
  1564. (build-system meson-build-system)
  1565. (arguments
  1566. `(#:glib-or-gtk? #t
  1567. #:phases
  1568. (modify-phases %standard-phases
  1569. (add-after 'glib-or-gtk-wrap 'wrap-typelib
  1570. (lambda* (#:key outputs #:allow-other-keys)
  1571. (let ((prog (string-append (assoc-ref outputs "out")
  1572. "/bin/sushi")))
  1573. ;; Put existing typelibs before sushi's deps, so as to
  1574. ;; correctly infer gdk-pixbuf.
  1575. (wrap-program prog
  1576. `("GI_TYPELIB_PATH" suffix
  1577. (,(getenv "GI_TYPELIB_PATH"))))))))))
  1578. (native-inputs
  1579. `(("glib:bin" ,glib "bin")
  1580. ("gettext" ,gettext-minimal)
  1581. ("gobject-introspection" ,gobject-introspection)
  1582. ("pkg-config" ,pkg-config)))
  1583. (inputs
  1584. `(("clutter" ,clutter)
  1585. ("clutter-gst" ,clutter-gst)
  1586. ("clutter-gtk" ,clutter-gtk)
  1587. ("evince" ,evince) ; For file previewing.
  1588. ("freetype" ,freetype)
  1589. ("gdk-pixbuf" ,gdk-pixbuf)
  1590. ("gjs" ,gjs)
  1591. ("gst-plugins-base" ,gst-plugins-base)
  1592. ("gstreamer" ,gstreamer)
  1593. ("gtksourceview" ,gtksourceview)
  1594. ("harfbuzz" ,harfbuzz)
  1595. ("libepoxy" ,libepoxy)
  1596. ("libmusicbrainz" ,libmusicbrainz)
  1597. ("libxml2" ,libxml2)
  1598. ("neon" ,neon)
  1599. ("webkitgtk" ,webkitgtk-with-libsoup2)))
  1600. (synopsis "File previewer for the GNOME desktop")
  1601. (description "Sushi is a DBus-activated service that allows applications
  1602. to preview files on the GNOME desktop.")
  1603. (home-page "https://gitlab.gnome.org/GNOME/sushi")
  1604. (license license:gpl2+)))
  1605. (define-public rygel
  1606. (package
  1607. (name "rygel")
  1608. (version "0.40.1")
  1609. (source (origin
  1610. (method url-fetch)
  1611. (uri (string-append "mirror://gnome/sources/" name "/"
  1612. (version-major+minor version) "/"
  1613. name "-" version ".tar.xz"))
  1614. (sha256
  1615. (base32
  1616. "0bd3d2swa8lq47b9r04x8xwdr9nhjnrwqi6scygd134wb5vxfh22"))))
  1617. (build-system meson-build-system)
  1618. (arguments
  1619. ;; Disable the tracker plugin.
  1620. '(#:configure-flags
  1621. (list "-Dplugins=external,gst-launch,lms,media-export,
  1622. mpris,playbin,ruih,tracker3")))
  1623. (native-inputs
  1624. (list gettext-minimal
  1625. `(,glib "bin") ; for glib-compile-schemas, etc.
  1626. gobject-introspection
  1627. gtk-doc/stable
  1628. pkg-config
  1629. python
  1630. vala
  1631. docbook-xml
  1632. docbook-xsl
  1633. libxslt))
  1634. (inputs
  1635. (list gdk-pixbuf
  1636. gssdp
  1637. gstreamer
  1638. gst-plugins-base
  1639. gst-editing-services
  1640. gtk+
  1641. gupnp
  1642. gupnp-av
  1643. gupnp-dlna
  1644. json-glib
  1645. libgee
  1646. libmediaart
  1647. libsoup
  1648. libxslt
  1649. libunistring
  1650. tracker))
  1651. (synopsis "Share audio, video, and pictures with other devices")
  1652. (description
  1653. "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
  1654. MediaRenderer}) for GNOME that allows you to easily share audio, video, and
  1655. pictures, and to control a media player on your home network.
  1656. Rygel achieves interoperability with other devices by trying to conform to the
  1657. strict requirements of DLNA and by converting media on-the-fly to formats that
  1658. client devices can handle.")
  1659. (home-page "https://wiki.gnome.org/Projects/Rygel")
  1660. (license (list
  1661. ;; For logo (data/icons/*).
  1662. license:cc-by-sa3.0
  1663. ;; For all others.
  1664. license:lgpl2.1+))))
  1665. (define-public libnma
  1666. (package
  1667. (name "libnma")
  1668. (version "1.8.28")
  1669. (source (origin
  1670. (method url-fetch)
  1671. (uri (string-append "mirror://gnome/sources/" name "/"
  1672. (version-major+minor version) "/"
  1673. name "-" version ".tar.xz"))
  1674. (sha256
  1675. (base32
  1676. "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
  1677. (build-system meson-build-system)
  1678. (arguments
  1679. `(#:phases
  1680. (modify-phases %standard-phases
  1681. (add-after 'unpack 'patch-docbook-xml
  1682. (lambda* (#:key inputs #:allow-other-keys)
  1683. (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
  1684. "/xml/dtd/docbook")))
  1685. (substitute* "libnma-docs.xml"
  1686. (("http://.*/docbookx\\.dtd")
  1687. (string-append xmldoc "/docbookx.dtd")))
  1688. #t))))))
  1689. (native-inputs
  1690. `(("docbook-xml" ,docbook-xml-4.3)
  1691. ("gettext" ,gettext-minimal)
  1692. ("glib:bin" ,glib "bin")
  1693. ("gtk-doc" ,gtk-doc/stable)
  1694. ("gobject-introspection" ,gobject-introspection)
  1695. ("pkg-config" ,pkg-config)
  1696. ("vala" ,vala)))
  1697. (inputs
  1698. (list gcr gtk+ iso-codes mobile-broadband-provider-info
  1699. network-manager))
  1700. (synopsis "Network Manager's applet library")
  1701. (description "Libnma is an applet library for Network Manager. It was
  1702. initially part of network-manager-applet and has now become a separate
  1703. project.")
  1704. (home-page "https://gitlab.gnome.org/GNOME/libnma")
  1705. ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
  1706. ;; "LGPL-2.1+".
  1707. (license license:gpl2+)))
  1708. (define-public gnome-menus
  1709. (package
  1710. (name "gnome-menus")
  1711. (version "3.36.0")
  1712. (source (origin
  1713. (method url-fetch)
  1714. (uri (string-append "mirror://gnome/sources/gnome-menus/"
  1715. (version-major+minor version) "/"
  1716. name "-" version ".tar.xz"))
  1717. (sha256
  1718. (base32
  1719. "07xvaf8s0fiv0035nk8zpzymn5www76w2a1vflrgqmp9plw8yd6r"))))
  1720. (build-system gnu-build-system)
  1721. (native-inputs
  1722. (list gettext-minimal glib pkg-config))
  1723. (synopsis "Menu support for GNOME desktop")
  1724. (description "GNOME Menus contains the libgnome-menu library, the layout
  1725. configuration files for the GNOME menu, as well as a simple menu editor.")
  1726. (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
  1727. (license license:lgpl2.0+)))
  1728. (define-public deja-dup
  1729. (package
  1730. (name "deja-dup")
  1731. (version "42.8")
  1732. (source (origin
  1733. (method url-fetch)
  1734. (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
  1735. version "/deja-dup-" version ".tar.bz2"))
  1736. (sha256
  1737. (base32
  1738. "0d1jnlxpk52x56aqxz1g2xb4y4sm24h08p2di8mc1k8n8b52rpi4"))))
  1739. (build-system meson-build-system)
  1740. (arguments
  1741. `(#:glib-or-gtk? #t
  1742. #:configure-flags
  1743. (list
  1744. ;; Otherwise, the RUNPATH will lack the final path component.
  1745. (string-append "-Dc_link_args=-Wl,-rpath="
  1746. (assoc-ref %outputs "out") "/lib/deja-dup"))
  1747. #:phases
  1748. (modify-phases %standard-phases
  1749. (add-after 'unpack 'patch-paths
  1750. (lambda* (#:key inputs #:allow-other-keys)
  1751. (let ((python (assoc-ref inputs "python")))
  1752. (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
  1753. "libdeja/tests/scripts/instance-error.test")
  1754. (("/bin/rm")
  1755. (which "rm")))
  1756. (substitute* "libdeja/tests/runner.vala"
  1757. (("/bin/sh")
  1758. (which "sh")))
  1759. (substitute* "libdeja/tests/scripts/instance-error.test"
  1760. (("`which python3`")
  1761. (string-append python "/bin/python3"))))))
  1762. (add-after 'unpack 'patch-libgpg-error
  1763. (lambda* (#:key inputs #:allow-other-keys)
  1764. (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
  1765. (substitute* "meson.build"
  1766. (("(gpgerror_libs = ).*" _ var)
  1767. (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
  1768. #t))
  1769. (add-after 'unpack 'skip-gtk-update-icon-cache
  1770. ;; Don't create 'icon-theme.cache'.
  1771. (lambda _
  1772. (substitute* "data/post-install.sh"
  1773. (("gtk-update-icon-cache") "true"))
  1774. #t))
  1775. (add-after 'install 'wrap-program
  1776. (lambda* (#:key inputs outputs #:allow-other-keys)
  1777. ;; Add duplicity to the search path
  1778. (wrap-program (string-append (assoc-ref outputs "out")
  1779. "/bin/deja-dup")
  1780. `("PATH" ":" prefix
  1781. (,(string-append (assoc-ref inputs "duplicity") "/bin")))))))))
  1782. (inputs
  1783. `(("bash-minimal" ,bash-minimal)
  1784. ("duplicity" ,duplicity)
  1785. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  1786. ("gtk+" ,gtk+)
  1787. ("json-glib" ,json-glib)
  1788. ("libgpg-error" ,libgpg-error)
  1789. ("libnotify" ,libnotify)
  1790. ("libsecret" ,libsecret)
  1791. ("libsoup" ,libsoup-minimal-2)
  1792. ("libhandy" ,libhandy)
  1793. ("packagekit" ,packagekit)
  1794. ("python" ,python)
  1795. ("python-pygobject" ,python-pygobject)))
  1796. (native-inputs
  1797. `(("appstream-glib" ,appstream-glib)
  1798. ("desktop-file-utils" ,desktop-file-utils)
  1799. ("gettext" ,gettext-minimal)
  1800. ("glib" ,glib "bin") ; for glib-compile-schemas.
  1801. ("gobject-introspection" ,gobject-introspection)
  1802. ("itstool" ,itstool)
  1803. ("pkg-config" ,pkg-config)
  1804. ("vala" ,vala)))
  1805. (home-page "https://wiki.gnome.org/Apps/DejaDup")
  1806. (synopsis "Simple backup tool, for regular encrypted backups")
  1807. (description
  1808. "Déjà Dup is a simple backup tool, for regular encrypted backups. It
  1809. uses duplicity as the backend, which supports incremental backups and storage
  1810. either on a local, or remote machine via a number of methods.")
  1811. (license license:gpl3+)))
  1812. (define-public gnome-commander
  1813. (package
  1814. (name "gnome-commander")
  1815. (version "1.14.0")
  1816. (source
  1817. (origin
  1818. (method url-fetch)
  1819. (uri (string-append "mirror://gnome/sources/" name "/"
  1820. (version-major+minor version) "/"
  1821. "gnome-commander-" version ".tar.xz"))
  1822. (sha256
  1823. (base32 "1zdz82j7vpxiqa188zmsxliqk60g331ycaxfbhx5bzyqfjgrh7gd"))))
  1824. (build-system glib-or-gtk-build-system)
  1825. (native-inputs
  1826. (list desktop-file-utils
  1827. flex
  1828. gettext-minimal
  1829. `(,glib "bin")
  1830. gobject-introspection
  1831. googletest
  1832. intltool
  1833. itstool
  1834. libtool
  1835. pkg-config))
  1836. (inputs
  1837. (list gconf glib gtk+-2 libxml2))
  1838. (home-page "https://gcmd.github.io/")
  1839. (synopsis "Two-pane graphical file manager for the GNOME desktop")
  1840. (description
  1841. "GNOME Commander is a two-pane graphical file manager using GNOME
  1842. libraries. It aims to fulfill the demands of more advanced users who
  1843. like to focus on file management, their work through special applications
  1844. and running smart commands.")
  1845. (license license:gpl2+)))
  1846. (define-public gnome-user-docs
  1847. (package
  1848. (name "gnome-user-docs")
  1849. (version "40.5")
  1850. (source
  1851. (origin
  1852. (method url-fetch)
  1853. (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
  1854. (version-major version)
  1855. "/gnome-user-docs-" version ".tar.xz"))
  1856. (sha256
  1857. (base32 "0p6ysdqlfc7vvzsrcanl9bhsc7666sv42xxzpbgsf5j55z3yrkpr"))))
  1858. (build-system gnu-build-system)
  1859. (native-inputs
  1860. (list gettext-minimal itstool pkg-config libxml2))
  1861. (synopsis "User documentation for the GNOME desktop")
  1862. (description
  1863. "The GNOME User Documentation explains how to use the GNOME desktop and its
  1864. components. It covers usage and setup of the core GNOME programs by end-users
  1865. and system administrators.")
  1866. (home-page "https://live.gnome.org/DocumentationProject")
  1867. (license license:cc-by3.0)))
  1868. (define-public dia
  1869. ;; This version from GNOME's repository includes fixes for compiling with
  1870. ;; recent versions of the build tools. The latest activity on the
  1871. ;; pre-GNOME version has been in 2014, while GNOME has continued applying
  1872. ;; fixes since.
  1873. (let ((commit "0997887d97f01be28bf3886dfd3e2002de437930")
  1874. (revision "3"))
  1875. (package
  1876. (name "dia")
  1877. (version (git-version "0.97.3" revision commit))
  1878. (source (origin
  1879. (method git-fetch)
  1880. (uri (git-reference
  1881. (url "https://gitlab.gnome.org/GNOME/dia.git/")
  1882. (commit commit)))
  1883. (file-name (git-file-name name version))
  1884. (sha256
  1885. (base32
  1886. "199b4n1jydg1g9lnz0r8xx67h7s2ac2lfj89zp015lbs0qqfkmsh"))))
  1887. (build-system meson-build-system)
  1888. ;; XXX: Parallel builds may cause: [74/566] [...]
  1889. ;; fatal error: dia-lib-enums.h: No such file or directory
  1890. (arguments '(#:parallel-build? #f))
  1891. (inputs
  1892. (list graphene
  1893. gtk+-2
  1894. libxml2
  1895. libxslt
  1896. ;; XXX: PDF plugin fails to build with poppler 21.07.0.
  1897. ;; poppler
  1898. python))
  1899. (native-inputs
  1900. (list appstream-glib docbook-xsl
  1901. `(,glib "bin") gettext-minimal pkg-config))
  1902. (home-page "https://wiki.gnome.org/Apps/Dia")
  1903. (synopsis "Diagram creation for GNOME")
  1904. (description "Dia can be used to draw different types of diagrams, and
  1905. includes support for UML static structure diagrams (class diagrams), entity
  1906. relationship modeling, and network diagrams. The program supports various file
  1907. formats like PNG, SVG, PDF and EPS.")
  1908. (license license:gpl2+))))
  1909. (define-public libgdata
  1910. (package
  1911. (name "libgdata")
  1912. (version "0.18.1")
  1913. (source (origin
  1914. (method url-fetch)
  1915. (uri (string-append "mirror://gnome/sources/" name "/"
  1916. (version-major+minor version) "/"
  1917. name "-" version ".tar.xz"))
  1918. (sha256
  1919. (base32
  1920. "1iq4d1qy0vkmy29xvr13dgz4pxvn5v3yi2swryld0ajinvp951fx"))))
  1921. (build-system meson-build-system)
  1922. (arguments
  1923. '(#:phases
  1924. (modify-phases %standard-phases
  1925. (add-before 'check 'set-home-for-tests
  1926. (lambda _
  1927. (setenv "HOME" "/tmp"))))))
  1928. (native-inputs
  1929. `(("glib:bin" ,glib "bin")
  1930. ("gobject-introspection" ,gobject-introspection)
  1931. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  1932. ("intltool" ,intltool)
  1933. ("pkg-config" ,pkg-config)
  1934. ("uhttpmock" ,uhttpmock)))
  1935. (inputs
  1936. (list cyrus-sasl glib-networking vala))
  1937. (propagated-inputs
  1938. `(("gcr" ,gcr)
  1939. ("glib" ,glib)
  1940. ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
  1941. ("json-glib" ,json-glib)
  1942. ("liboauth" ,liboauth)
  1943. ("libsoup" ,libsoup-minimal-2)
  1944. ("libxml2" ,libxml2)))
  1945. (home-page "https://wiki.gnome.org/Projects/libgdata")
  1946. (synopsis "Library for accessing online service APIs")
  1947. (description
  1948. "libgdata is a GLib-based library for accessing online service APIs using
  1949. the GData protocol — most notably, Google's services. It provides APIs to
  1950. access the common Google services, and has full asynchronous support.")
  1951. (license license:lgpl2.1+)))
  1952. (define-public libgxps
  1953. (package
  1954. (name "libgxps")
  1955. (version "0.3.2")
  1956. (source (origin
  1957. (method url-fetch)
  1958. (uri (string-append "mirror://gnome/sources/" name "/"
  1959. (version-major+minor version) "/"
  1960. name "-" version ".tar.xz"))
  1961. (sha256
  1962. (base32
  1963. "07156nj7yrp3h9zyzx6mjwxwmfijialb4gi5d6dwyp53arr8c9vd"))))
  1964. (build-system meson-build-system)
  1965. (native-inputs
  1966. (list gobject-introspection pkg-config))
  1967. (inputs
  1968. (list gtk+ libjpeg-turbo lcms libtiff))
  1969. (propagated-inputs
  1970. ;; In Requires of libgxps.pc.
  1971. (list cairo glib libarchive))
  1972. (home-page "https://wiki.gnome.org/Projects/libgxps")
  1973. (synopsis "GObject-based library for handling and rendering XPS documents")
  1974. (description
  1975. "libgxps is a GObject-based library for handling and rendering XPS
  1976. documents. This package also contains binaries that can convert XPS documents
  1977. to other formats.")
  1978. (license license:lgpl2.1+)))
  1979. (define-public gnome-characters
  1980. (package
  1981. (name "gnome-characters")
  1982. (version "40.0")
  1983. (source
  1984. (origin
  1985. (method url-fetch)
  1986. (uri (string-append "mirror://gnome/sources/"
  1987. "gnome-characters/" (version-major version)
  1988. "/gnome-characters-" version ".tar.xz"))
  1989. (sha256
  1990. (base32
  1991. "0z2xa4w921bzpzj6gv88pvbrijcnnwni6jxynwz0ybaravyzaqha"))))
  1992. (build-system meson-build-system)
  1993. (arguments
  1994. `(#:glib-or-gtk? #t
  1995. #:phases (modify-phases %standard-phases
  1996. (add-after 'install 'wrap
  1997. (lambda* (#:key outputs #:allow-other-keys)
  1998. ;; GNOME Characters needs Typelib files from GTK and
  1999. ;; gnome-desktop.
  2000. (wrap-program (string-append (assoc-ref outputs "out")
  2001. "/bin/gnome-characters")
  2002. `("GI_TYPELIB_PATH" ":" prefix
  2003. (,(getenv "GI_TYPELIB_PATH")))))))))
  2004. (native-inputs
  2005. `(("gettext" ,gettext-minimal)
  2006. ("glib:bin" ,glib "bin")
  2007. ("gtk+:bin" ,gtk+ "bin")
  2008. ("pkg-config" ,pkg-config)
  2009. ("python" ,python-minimal)))
  2010. (inputs
  2011. (list gjs gtk+ libhandy libunistring gnome-desktop))
  2012. (home-page "https://wiki.gnome.org/Apps/CharacterMap")
  2013. (synopsis "Find and insert unusual characters")
  2014. (description "Characters is a simple utility application to find
  2015. and insert unusual characters. It allows you to quickly find the
  2016. character you are looking for by searching for keywords.")
  2017. (license license:bsd-3)))
  2018. (define-public gnome-common
  2019. (package
  2020. (name "gnome-common")
  2021. (version "3.18.0")
  2022. (source
  2023. (origin
  2024. (method url-fetch)
  2025. (uri (string-append "mirror://gnome/sources/" name "/"
  2026. (version-major+minor version) "/"
  2027. name "-" version ".tar.xz"))
  2028. (sha256
  2029. (base32
  2030. "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
  2031. (build-system gnu-build-system)
  2032. (home-page "https://www.gnome.org/")
  2033. (synopsis "Bootstrap GNOME modules built from Git")
  2034. (description "gnome-common contains various files needed to bootstrap
  2035. GNOME modules built from Git. It contains a common \"autogen.sh\" script that
  2036. can be used to configure a source directory checked out from Git and some
  2037. commonly used macros.")
  2038. (license license:gpl2+)))
  2039. (define-public gnome-contacts
  2040. (package
  2041. (name "gnome-contacts")
  2042. (version "40.0")
  2043. (source (origin
  2044. (method url-fetch)
  2045. (uri (string-append "mirror://gnome/sources/gnome-contacts/"
  2046. (version-major version) "/"
  2047. name "-" version ".tar.xz"))
  2048. (sha256
  2049. (base32
  2050. "0w2g5xhw65adzvwzakrj5kaim4sw1w7s8qqwm3nm6inq50znzpn9"))))
  2051. (build-system meson-build-system)
  2052. (arguments
  2053. `(#:configure-flags '("-Dcheese=disabled")
  2054. #:phases
  2055. (modify-phases %standard-phases
  2056. (add-after 'unpack 'generate-vapis
  2057. (lambda* (#:key inputs #:allow-other-keys)
  2058. ;; To generate goa's missing .vapi file
  2059. (define goa
  2060. (assoc-ref inputs "gnome-online-accounts:lib"))
  2061. (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
  2062. "--library=goa-1.0"
  2063. (string-append goa "/share/gir-1.0/Goa-1.0.gir"))))
  2064. (add-after 'unpack 'skip-gtk-update-icon-cache
  2065. ;; Don't create 'icon-theme.cache'.
  2066. (lambda _
  2067. (substitute* "build-aux/meson_post_install.py"
  2068. (("gtk-update-icon-cache") "true")))))))
  2069. (native-inputs
  2070. `(("docbook-xml" ,docbook-xml-4.2)
  2071. ("docbook-xsl" ,docbook-xsl)
  2072. ("glib:bin" ,glib "bin")
  2073. ("pkg-config" ,pkg-config)))
  2074. (inputs
  2075. `(("docbook-xml" ,docbook-xml)
  2076. ("dockbook-xsl" ,docbook-xsl)
  2077. ("evolution-data-server" ,evolution-data-server)
  2078. ("gettext" ,gettext-minimal)
  2079. ("gnome-desktop" ,gnome-desktop)
  2080. ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
  2081. ("gobject-introspection" ,gobject-introspection)
  2082. ("gst-plugins-base" ,gst-plugins-base)
  2083. ("gtk+" ,gtk+)
  2084. ("libgee" ,libgee)
  2085. ("libhandy" ,libhandy)
  2086. ("libxslt" ,libxslt)
  2087. ("telepathy-glib" ,telepathy-glib)
  2088. ("vala" ,vala)))
  2089. (propagated-inputs
  2090. (list folks telepathy-mission-control))
  2091. (synopsis "GNOME's integrated address book")
  2092. (description
  2093. "GNOME Contacts organizes your contact information from online and
  2094. offline sources, providing a centralized place for managing your contacts.")
  2095. (home-page "https://wiki.gnome.org/Apps/Contacts")
  2096. (license license:gpl2+)))
  2097. (define-public gnome-desktop
  2098. (package
  2099. (name "gnome-desktop")
  2100. (version "40.4")
  2101. (source
  2102. (origin
  2103. (method url-fetch)
  2104. (uri (string-append "mirror://gnome/sources/" name "/"
  2105. (version-major version) "/"
  2106. name "-" version ".tar.xz"))
  2107. (sha256
  2108. (base32
  2109. "1vs5knn2yj6a449p9bn5w5407i1yvxfxg8xv844qgl70hpsrdbl8"))))
  2110. (build-system meson-build-system)
  2111. (arguments
  2112. '(#:phases
  2113. (modify-phases %standard-phases
  2114. (add-before 'configure 'patch-path
  2115. (lambda* (#:key inputs #:allow-other-keys)
  2116. (let ((libc (assoc-ref inputs "libc")))
  2117. (substitute* "libgnome-desktop/gnome-languages.c"
  2118. (("\"locale\"")
  2119. (string-append "\"" libc "/bin/locale\"")))
  2120. #t)))
  2121. (add-before 'configure 'patch-bubblewrap
  2122. (lambda* (#:key inputs #:allow-other-keys)
  2123. (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
  2124. (("\"bwrap\",")
  2125. (string-append "\"" (which "bwrap") "\","))
  2126. (("\"--ro-bind\", \"/usr\", \"/usr\",")
  2127. (string-append "\"--ro-bind\", \""
  2128. (%store-directory)
  2129. "\", \""
  2130. (%store-directory)
  2131. "\","))
  2132. (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
  2133. #t))
  2134. (add-before 'check 'pre-check
  2135. (lambda* (#:key inputs #:allow-other-keys)
  2136. ;; Tests require a running X server and locales.
  2137. (system "Xvfb :1 &")
  2138. (setenv "DISPLAY" ":1")
  2139. (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache")
  2140. (setenv "XDG_CONFIG_HOME" "/tmp")
  2141. (setenv "GUIX_LOCPATH"
  2142. (search-input-directory inputs
  2143. "lib/locale")))))))
  2144. (native-inputs
  2145. `(("glib:bin" ,glib "bin") ; for gdbus-codegen
  2146. ("glibc-locales" ,glibc-locales) ; for tests
  2147. ("gobject-introspection" ,gobject-introspection)
  2148. ("itstool" ,itstool)
  2149. ("intltool" ,intltool)
  2150. ("pkg-config" ,pkg-config)
  2151. ("xmllint" ,libxml2)
  2152. ("xorg-server" ,xorg-server-for-tests)))
  2153. (propagated-inputs
  2154. ;; Required by gnome-desktop-3.0.pc.
  2155. (list gsettings-desktop-schemas
  2156. gtk+
  2157. iso-codes
  2158. libseccomp
  2159. libx11
  2160. xkeyboard-config))
  2161. (inputs
  2162. (list gdk-pixbuf
  2163. glib
  2164. bubblewrap
  2165. libxext
  2166. libxkbfile
  2167. libxrandr))
  2168. (home-page "https://www.gnome.org/")
  2169. (synopsis
  2170. "Libgnome-desktop, gnome-about, and desktop-wide documents")
  2171. (description
  2172. "The libgnome-desktop library provides API shared by several applications
  2173. on the desktop, but that cannot live in the platform for various reasons.
  2174. There is no API or ABI guarantee, although we are doing our best to provide
  2175. stability. Documentation for the API is available with gtk-doc.
  2176. The gnome-about program helps find which version of GNOME is installed.")
  2177. ; Some bits under the LGPL.
  2178. (license license:gpl2+)))
  2179. (define-public gnome-doc-utils
  2180. (package
  2181. (name "gnome-doc-utils")
  2182. (version "0.20.10")
  2183. (source
  2184. (origin
  2185. (method url-fetch)
  2186. (uri (string-append "mirror://gnome/sources/" name "/"
  2187. (version-major+minor version) "/"
  2188. name "-" version ".tar.xz"))
  2189. (sha256
  2190. (base32
  2191. "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
  2192. (build-system gnu-build-system)
  2193. (native-inputs
  2194. (list intltool
  2195. docbook-xml-4.4
  2196. python2-libxml2
  2197. libxml2
  2198. libxslt
  2199. pkg-config
  2200. python-2))
  2201. (home-page "https://wiki.gnome.org/GnomeDocUtils")
  2202. (synopsis
  2203. "Documentation utilities for the Gnome project")
  2204. (description
  2205. "Gnome-doc-utils is a collection of documentation utilities for the
  2206. Gnome project. It includes xml2po tool which makes it easier to translate
  2207. and keep up to date translations of documentation.")
  2208. (license license:gpl2+))) ; xslt under lgpl
  2209. (define-public gnome-disk-utility
  2210. (package
  2211. (name "gnome-disk-utility")
  2212. (version "40.2")
  2213. (source (origin
  2214. (method url-fetch)
  2215. (uri (string-append "mirror://gnome/sources/" name "/"
  2216. (version-major version) "/"
  2217. name "-" version ".tar.xz"))
  2218. (sha256
  2219. (base32
  2220. "1rr1ypb89p51b6428yqvczmpmylwjfnhnkgx78hzm3vxm3m15lff"))))
  2221. (build-system meson-build-system)
  2222. (arguments
  2223. `(#:configure-flags '("-Dlogind=libelogind")
  2224. #:phases
  2225. (modify-phases %standard-phases
  2226. (add-after 'unpack 'skip-gtk-update-icon-cache
  2227. ;; Don't create 'icon-theme.cache'.
  2228. (lambda _
  2229. (substitute* "meson_post_install.py"
  2230. (("gtk-update-icon-cache") "true"))
  2231. #t)))))
  2232. (native-inputs
  2233. `(("glib:bin" ,glib "bin")
  2234. ("intltool" ,intltool)
  2235. ("pkg-config" ,pkg-config)
  2236. ("docbook-xml" ,docbook-xml)
  2237. ("docbook-xsl" ,docbook-xsl)
  2238. ("libxml2" ,libxml2)
  2239. ("libxslt" ,libxslt)))
  2240. (inputs
  2241. (list elogind
  2242. glib
  2243. appstream-glib
  2244. gnome-settings-daemon
  2245. gtk+
  2246. libcanberra
  2247. libdvdread
  2248. libhandy
  2249. libnotify
  2250. libpwquality
  2251. libsecret
  2252. udisks))
  2253. (home-page "https://git.gnome.org/browse/gnome-disk-utility")
  2254. (synopsis "Disk management utility for GNOME")
  2255. (description "Disk management utility for GNOME.")
  2256. (license license:gpl2+)))
  2257. (define-public gnome-font-viewer
  2258. (package
  2259. (name "gnome-font-viewer")
  2260. (version "40.0")
  2261. (source (origin
  2262. (method url-fetch)
  2263. (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
  2264. (version-major version)
  2265. "/gnome-font-viewer-" version ".tar.xz"))
  2266. (sha256
  2267. (base32
  2268. "0hpyi0sz3gcqqs9lkwyk8b6hr39m3n27432x98kxr436jj37dk6j"))))
  2269. (build-system meson-build-system)
  2270. (arguments
  2271. `(#:phases
  2272. (modify-phases %standard-phases
  2273. (add-after 'unpack 'patch-post-install-script
  2274. (lambda _
  2275. (substitute* "meson-postinstall.sh"
  2276. (("update-desktop-database") (which "true")))
  2277. #t))
  2278. (add-after 'install 'patch-thumbnailer
  2279. (lambda* (#:key outputs #:allow-other-keys)
  2280. (let ((out (assoc-ref outputs "out")))
  2281. (substitute*
  2282. (string-append
  2283. out
  2284. "/share/thumbnailers/gnome-font-viewer.thumbnailer")
  2285. (("gnome-thumbnail-font")
  2286. (string-append out "/bin/gnome-thumbnail-font"))))
  2287. #t)))))
  2288. (native-inputs
  2289. `(("gettext" ,gettext-minimal)
  2290. ("glib:bin" ,glib "bin")
  2291. ("pkg-config" ,pkg-config)))
  2292. (inputs
  2293. (list glib gnome-desktop gtk+ libhandy libxml2))
  2294. (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
  2295. (synopsis "GNOME Fonts")
  2296. (description "Application to show you the fonts installed on your computer
  2297. for your use as thumbnails. Selecting any thumbnails shows the full view of how
  2298. the font would look under various sizes.")
  2299. (license license:gpl2+)))
  2300. (define-public gcr
  2301. (package
  2302. (name "gcr")
  2303. (version "3.41.0")
  2304. (source (origin
  2305. (method url-fetch)
  2306. (uri (string-append "mirror://gnome/sources/" name "/"
  2307. (version-major+minor version) "/"
  2308. name "-" version ".tar.xz"))
  2309. (sha256
  2310. (base32
  2311. "00fsf82ycac8qi0kkiq759p6jrn63pyz4ksn4wnq7m4ax94zq289"))))
  2312. (build-system meson-build-system)
  2313. (arguments
  2314. '(#:phases
  2315. (modify-phases %standard-phases
  2316. ;; These fail because /var/lib/dbus/machine-id is not present in the
  2317. ;; build environment.
  2318. (add-after 'unpack 'disable-failing-tests
  2319. (lambda _
  2320. (substitute* "gcr/meson.build"
  2321. (("[[:blank:]]+'system-prompt',")
  2322. ""))
  2323. #t))
  2324. (add-after 'unpack 'skip-gtk-update-icon-cache
  2325. ;; Don't create 'icon-theme.cache'.
  2326. (lambda _
  2327. (substitute* "meson_post_install.py"
  2328. (("gtk-update-icon-cache") "true"))
  2329. #t))
  2330. (add-after 'unpack 'fix-systemd-detection
  2331. (lambda _
  2332. (substitute* "gcr/gcr-ssh-agent-service.c"
  2333. (("#ifdef WITH_SYSTEMD")
  2334. "#if (WITH_SYSTEMD)"))))
  2335. (add-before 'check 'pre-check
  2336. (lambda _
  2337. ;; Some tests expect to write to $HOME.
  2338. (setenv "HOME" "/tmp")
  2339. #t)))))
  2340. (inputs
  2341. (list dbus gnupg ;called as a child process during tests
  2342. libgcrypt libsecret))
  2343. (native-inputs
  2344. `(("python" ,python-wrapper) ;for tests
  2345. ("openssh" ,openssh) ;for tests
  2346. ("pkg-config" ,pkg-config)
  2347. ("gettext" ,gettext-minimal)
  2348. ("autoconf" ,autoconf)
  2349. ("automake" ,automake)
  2350. ("libtool" ,libtool)
  2351. ("gtk-doc" ,gtk-doc)
  2352. ("glib" ,glib "bin")
  2353. ("gobject-introspection" ,gobject-introspection)
  2354. ("libxml2" ,libxml2)
  2355. ("vala" ,vala)
  2356. ("xsltproc" ,libxslt)))
  2357. ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
  2358. (propagated-inputs
  2359. (list p11-kit glib gtk+))
  2360. (home-page "https://www.gnome.org")
  2361. (synopsis "Libraries for displaying certificates and accessing key stores")
  2362. (description
  2363. "The GCR package contains libraries used for displaying certificates and
  2364. accessing key stores. It also provides the viewer for crypto files on the
  2365. GNOME Desktop.")
  2366. (license license:lgpl2.1+)))
  2367. (define-public gdl
  2368. (package
  2369. (name "gdl")
  2370. (version "3.34.0")
  2371. (source (origin
  2372. (method git-fetch)
  2373. (uri (git-reference
  2374. (url "https://gitlab.gnome.org/GNOME/gdl.git")
  2375. (commit (string-append "GDL_" (string-map (match-lambda
  2376. (#\. #\_)
  2377. (c c))
  2378. version)))))
  2379. (file-name (git-file-name name version))
  2380. (sha256
  2381. (base32
  2382. "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
  2383. (build-system gnu-build-system)
  2384. (native-inputs
  2385. (list autoconf
  2386. automake
  2387. `(,glib "bin") ; for glib-genmarshal, etc.
  2388. gnome-common
  2389. gtk-doc/stable
  2390. intltool
  2391. pkg-config
  2392. libtool
  2393. which))
  2394. (inputs
  2395. (list libxml2))
  2396. (propagated-inputs
  2397. ;; The gdl-3.0.pc file 'Requires' GTK+.
  2398. (list gtk+))
  2399. (home-page "https://gitlab.gnome.org/GNOME/gdl/")
  2400. (synopsis "GNOME docking library")
  2401. (description "This library provides docking features for gtk+.")
  2402. (license license:lgpl2.1+)))
  2403. ;;; A minimal variant used to break a cycle with Inkscape.
  2404. (define-public gdl-minimal
  2405. (package/inherit gdl
  2406. (name "gdl-minimal")
  2407. (arguments
  2408. '(#:phases
  2409. (modify-phases %standard-phases
  2410. (add-after 'unpack 'disable-doc-generation
  2411. ;; XXX: There is no easy way to disable generating the
  2412. ;; documentation.
  2413. (lambda _
  2414. (substitute* "configure.in"
  2415. (("GTK_DOC_CHECK.*") "")
  2416. (("docs/.*") ""))
  2417. (substitute* "Makefile.am"
  2418. (("gdl docs po") "gdl po"))
  2419. #t)))))
  2420. (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
  2421. (define-public libgnome-keyring
  2422. (package
  2423. (name "libgnome-keyring")
  2424. (version "3.12.0")
  2425. (source (origin
  2426. (method url-fetch)
  2427. (uri (string-append "mirror://gnome/sources/" name "/"
  2428. (version-major+minor version) "/"
  2429. name "-" version ".tar.xz"))
  2430. (sha256
  2431. (base32
  2432. "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
  2433. (build-system gnu-build-system)
  2434. (inputs
  2435. (list libgcrypt dbus))
  2436. (native-inputs
  2437. (list pkg-config
  2438. `(,glib "bin") intltool))
  2439. (propagated-inputs
  2440. ;; Referred to in .h files and .pc.
  2441. (list glib))
  2442. (home-page "https://www.gnome.org")
  2443. (synopsis "Accessing passwords from the GNOME keyring")
  2444. (description
  2445. "Client library to access passwords from the GNOME keyring.")
  2446. ;; Though a couple of files are LGPLv2.1+.
  2447. (license license:lgpl2.0+)))
  2448. (define-public gnome-keyring
  2449. (package
  2450. (name "gnome-keyring")
  2451. (version "40.0")
  2452. (source (origin
  2453. (method url-fetch)
  2454. (uri (string-append "mirror://gnome/sources/" name "/"
  2455. (version-major version) "/"
  2456. name "-" version ".tar.xz"))
  2457. (sha256
  2458. (base32
  2459. "0cdrlcw814zayhvlaxqs1sm9bqlfijlp22dzzd0g5zg2isq4vlm3"))))
  2460. (build-system gnu-build-system)
  2461. (arguments
  2462. `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
  2463. ;not exist
  2464. #:configure-flags
  2465. (list
  2466. (string-append "--with-pkcs11-config="
  2467. (assoc-ref %outputs "out") "/share/p11-kit/modules/")
  2468. (string-append "--with-pkcs11-modules="
  2469. (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
  2470. #:phases
  2471. (modify-phases %standard-phases
  2472. (add-after 'unpack 'fix-/bin/sh-reference
  2473. (lambda _
  2474. (substitute* "po/Makefile.in.in"
  2475. (("/bin/sh") (which "sh")))
  2476. #t))
  2477. (add-after 'unpack 'fix-docbook
  2478. (lambda* (#:key inputs #:allow-other-keys)
  2479. (substitute* "docs/Makefile.am"
  2480. (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
  2481. (string-append (assoc-ref inputs "docbook-xsl")
  2482. "/xml/xsl/docbook-xsl-"
  2483. ,(package-version docbook-xsl)
  2484. "/manpages/docbook.xsl")))
  2485. (setenv "XML_CATALOG_FILES"
  2486. (string-append (assoc-ref inputs "docbook-xml")
  2487. "/xml/dtd/docbook/catalog.xml"))
  2488. ;; Rerun the whole thing to avoid version mismatch ("This is
  2489. ;; Automake 1.15.1, but the definition used by this
  2490. ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
  2491. ;; use 'autoreconf' because it insists on running 'libtoolize'.
  2492. (invoke "autoconf")
  2493. (invoke "aclocal")
  2494. (invoke "automake" "-ac"))))))
  2495. (inputs
  2496. (list libgcrypt linux-pam openssh dbus gcr))
  2497. (native-inputs
  2498. `(("pkg-config" ,pkg-config)
  2499. ("glib" ,glib "bin")
  2500. ("glib" ,glib) ; for m4 macros
  2501. ("python" ,python-2) ;for tests
  2502. ("intltool" ,intltool)
  2503. ("autoconf" ,autoconf)
  2504. ("automake" ,automake)
  2505. ("libxslt" ,libxslt) ;for documentation
  2506. ("docbook-xml" ,docbook-xml-4.3)
  2507. ("docbook-xsl" ,docbook-xsl)))
  2508. (propagated-inputs
  2509. (list gcr))
  2510. (home-page "https://www.gnome.org")
  2511. (synopsis "Daemon to store passwords and encryption keys")
  2512. (description
  2513. "gnome-keyring is a program that keeps passwords and other secrets for
  2514. users. It is run as a daemon in the session, similar to ssh-agent, and other
  2515. applications locate it via an environment variable or D-Bus.
  2516. The program can manage several keyrings, each with its own master password,
  2517. and there is also a session keyring which is never stored to disk, but
  2518. forgotten when the session ends.")
  2519. (license license:lgpl2.1+)))
  2520. (define-public evince
  2521. (package
  2522. (name "evince")
  2523. (version "40.2")
  2524. (source (origin
  2525. (method url-fetch)
  2526. (uri "mirror://gnome/sources/evince/40/evince-40.2.tar.xz")
  2527. (sha256
  2528. (base32
  2529. "0xrwls1bhvny8vvd7mfjy9p26zjch0pd6x6j9jn9g2ka6xwyrxqg"))))
  2530. (build-system meson-build-system)
  2531. (arguments
  2532. `(#:glib-or-gtk? #t
  2533. #:build-type "release"
  2534. #:configure-flags
  2535. '("-Dnautilus=false"
  2536. "-Dintrospection=true"
  2537. ;; XXX: Generating the documentation fails because the
  2538. ;; libevdocument.devhelp document cannot be created. This seems to be
  2539. ;; caused by a problem during the XSL transformation.
  2540. "-Dgtk_doc=false")
  2541. #:phases
  2542. (modify-phases %standard-phases
  2543. (add-after 'unpack 'skip-gtk-update-icon-cache
  2544. ;; Don't create 'icon-theme.cache'.
  2545. (lambda _
  2546. (substitute* "meson_post_install.py"
  2547. (("gtk-update-icon-cache") "true"))
  2548. #t)))))
  2549. (inputs
  2550. (list libarchive
  2551. libgxps
  2552. libspectre
  2553. djvulibre
  2554. ghostscript
  2555. poppler
  2556. libtiff
  2557. texlive-libkpathsea ; for DVI support
  2558. gnome-desktop
  2559. gsettings-desktop-schemas
  2560. gspell
  2561. libgnome-keyring
  2562. adwaita-icon-theme
  2563. gdk-pixbuf
  2564. atk
  2565. pango
  2566. gtk+
  2567. glib
  2568. libxml2
  2569. libsm
  2570. libice
  2571. shared-mime-info
  2572. dconf
  2573. libcanberra
  2574. libsecret
  2575. libhandy))
  2576. (native-inputs
  2577. `(("itstool" ,itstool)
  2578. ("intltool" ,intltool)
  2579. ("glib" ,glib "bin")
  2580. ("gobject-introspection" ,gobject-introspection)
  2581. ("pkg-config" ,pkg-config)
  2582. ("xmllint" ,libxml2)))
  2583. (home-page "https://www.gnome.org/projects/evince/")
  2584. (synopsis "GNOME's document viewer")
  2585. (description
  2586. "Evince is a document viewer for multiple document formats. It
  2587. currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
  2588. of Evince is to replace the multiple document viewers that exist
  2589. on the GNOME Desktop with a single simple application.")
  2590. (license license:gpl2+)))
  2591. (define-public gsettings-desktop-schemas
  2592. (package
  2593. (name "gsettings-desktop-schemas")
  2594. (version "41.0")
  2595. (source
  2596. (origin
  2597. (method url-fetch)
  2598. (uri (string-append "mirror://gnome/sources/" name "/"
  2599. (version-major version) "/"
  2600. name "-" version ".tar.xz"))
  2601. (sha256
  2602. (base32
  2603. "1v9jagk679m01nji0acirynxinziv036618c7xc49l4nwmr9ja3p"))))
  2604. (build-system meson-build-system)
  2605. (arguments
  2606. `(#:phases (modify-phases %standard-phases
  2607. (add-after 'unpack 'patch-schemas
  2608. (lambda* (#:key inputs #:allow-other-keys)
  2609. (substitute* (find-files "schemas"
  2610. "\\.gschema\\.xml\\.in$")
  2611. ;; Provide the correct file name of the default
  2612. ;; GNOME background, 'adwaita-timed.xml'.
  2613. (("@datadir@/backgrounds/gnome")
  2614. (search-input-directory inputs
  2615. "/share/backgrounds/gnome"))
  2616. ;; Do not reference fonts, that may not exist.
  2617. (("'Source Code Pro 10'") "'Monospace 11'")))))))
  2618. (inputs (list glib gnome-backgrounds))
  2619. (native-inputs (list gettext-minimal
  2620. `(,glib "bin") ;glib-compile-schemas, etc.
  2621. gobject-introspection
  2622. pkg-config
  2623. python)) ;for build-aux/meson/post-install.py
  2624. (home-page "https://launchpad.net/gsettings-desktop-schemas")
  2625. (synopsis "GNOME settings for various desktop components")
  2626. (description "Gsettings-desktop-schemas contains a collection of GSettings
  2627. schemas for settings shared by various components of the GNOME desktop.")
  2628. (license license:lgpl2.1+)))
  2629. (define-public python-liblarch
  2630. (package
  2631. (name "python-liblarch")
  2632. (version "3.0.1")
  2633. (source
  2634. (origin
  2635. (method git-fetch)
  2636. (uri (git-reference
  2637. (url "https://github.com/getting-things-gnome/liblarch")
  2638. (commit (string-append "v" version))))
  2639. (file-name (git-file-name name version))
  2640. (sha256
  2641. (base32 "0xv2mfvyzipbny3iz8vll77wsqxfwh28xj6bj1ff0l452waph45m"))))
  2642. (build-system python-build-system)
  2643. (arguments
  2644. `(#:phases
  2645. (modify-phases %standard-phases
  2646. (add-before 'check 'start-xserver
  2647. (lambda* (#:key inputs #:allow-other-keys)
  2648. (system (format #f "~a/bin/Xvfb :1 &"
  2649. (assoc-ref inputs "xorg-server")))
  2650. (setenv "DISPLAY" ":1")
  2651. #t)))))
  2652. (native-inputs
  2653. (list xorg-server-for-tests))
  2654. (inputs
  2655. (list gtk+))
  2656. (propagated-inputs
  2657. (list python-pygobject))
  2658. (home-page "https://wiki.gnome.org/Projects/liblarch")
  2659. (synopsis "Library to easily handle complex data structures")
  2660. (description
  2661. "Liblarch is a Python library built to easily handle data structures such
  2662. as lists, trees and acyclic graphs. There's also a GTK binding that will
  2663. allow you to use your data structure in a @code{Gtk.Treeview}.
  2664. Liblarch support multiple views of one data structure and complex filtering.
  2665. That way, you have a clear separation between your data themselves (Model)
  2666. and how they are displayed (View).")
  2667. (license license:lgpl3+)))
  2668. (define-public gtg
  2669. (package
  2670. (name "gtg")
  2671. (version "0.5")
  2672. (source
  2673. (origin
  2674. (method git-fetch)
  2675. (uri (git-reference
  2676. (url "https://github.com/getting-things-gnome/gtg")
  2677. (commit (string-append "v" version))))
  2678. (file-name (git-file-name name version))
  2679. (sha256
  2680. (base32 "0b2slm7kjq6q8c7v4m7aqc8m1ynjxn3bl7445srpv1xc0dilq403"))))
  2681. (build-system meson-build-system)
  2682. (arguments
  2683. `(#:glib-or-gtk? #t
  2684. #:phases
  2685. (modify-phases %standard-phases
  2686. (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
  2687. (lambda* (#:key outputs #:allow-other-keys)
  2688. (let ((prog (string-append (assoc-ref outputs "out")
  2689. "/bin/gtg"))
  2690. (pylib (string-append (assoc-ref outputs "out")
  2691. "/lib/python"
  2692. ,(version-major+minor
  2693. (package-version python))
  2694. "/site-packages")))
  2695. (wrap-program prog
  2696. `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
  2697. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
  2698. #t))))))
  2699. (native-inputs
  2700. `(("desktop-file-utils" ,desktop-file-utils)
  2701. ("gettext" ,gettext-minimal)
  2702. ("glib:bin" ,glib "bin")
  2703. ("gobject-introspection" ,gobject-introspection)
  2704. ("gtk+:bin" ,gtk+ "bin")
  2705. ("pkg-config" ,pkg-config)))
  2706. (inputs
  2707. (list librsvg
  2708. gsettings-desktop-schemas
  2709. gtk+
  2710. pango
  2711. python-dbus
  2712. python-liblarch
  2713. python-lxml
  2714. python-pycairo
  2715. python-pygobject
  2716. python-pyxdg))
  2717. (home-page "https://wiki.gnome.org/Apps/GTG")
  2718. (synopsis "Personal organizer for the GNOME desktop")
  2719. (description
  2720. "Getting Things GNOME! (GTG) is a personal tasks and TODO list items
  2721. organizer for the GNOME desktop environment inspired by the Getting Things
  2722. Done (GTD) methodology. GTG is designed with flexibility, adaptability,
  2723. and ease of use in mind so it can be used as more than just GTD software.
  2724. GTG is intended to help you track everything you need to do and need to
  2725. know, from small tasks to large projects.")
  2726. (license license:gpl3+)))
  2727. (define-public icon-naming-utils
  2728. (package
  2729. (name "icon-naming-utils")
  2730. (version "0.8.90")
  2731. (source
  2732. (origin
  2733. (method url-fetch)
  2734. (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
  2735. version ".tar.bz2"))
  2736. (sha256
  2737. (base32
  2738. "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
  2739. (build-system gnu-build-system)
  2740. (inputs
  2741. (list perl perl-xml-simple))
  2742. (arguments
  2743. '(#:phases
  2744. (modify-phases %standard-phases
  2745. (add-after 'install 'set-load-paths
  2746. ;; Tell 'icon-name-mapping' where XML::Simple is.
  2747. (lambda* (#:key outputs #:allow-other-keys)
  2748. (let* ((out (assoc-ref outputs "out"))
  2749. (prog (string-append out "/libexec/icon-name-mapping")))
  2750. (wrap-program
  2751. prog
  2752. `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
  2753. #t)))))
  2754. (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
  2755. (synopsis
  2756. "Utility to implement the Freedesktop Icon Naming Specification")
  2757. (description
  2758. "To help with the transition to the Freedesktop Icon Naming
  2759. Specification, the icon naming utility maps the icon names used by the
  2760. GNOME and KDE desktops to the icon names proposed in the specification.")
  2761. (license license:lgpl2.1+)))
  2762. (define-public gnome-icon-theme
  2763. (package
  2764. (name "gnome-icon-theme")
  2765. (version "3.12.0")
  2766. (source
  2767. (origin
  2768. (method url-fetch)
  2769. (uri (string-append "mirror://gnome/sources/" name "/"
  2770. (version-major+minor version) "/"
  2771. name "-" version ".tar.xz"))
  2772. (sha256
  2773. (base32
  2774. "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
  2775. (build-system gnu-build-system)
  2776. (arguments
  2777. '(#:configure-flags
  2778. ;; Don't create 'icon-theme.cache'.
  2779. (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
  2780. (true (string-append coreutils "/bin/true")))
  2781. (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
  2782. (native-inputs
  2783. (list icon-naming-utils intltool pkg-config))
  2784. (home-page "https://wiki.gnome.org/Personalization")
  2785. (synopsis "GNOME icon theme")
  2786. (description "Icons for the GNOME desktop.")
  2787. (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
  2788. ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
  2789. (define-public adwaita-icon-theme
  2790. (package/inherit gnome-icon-theme
  2791. (name "adwaita-icon-theme")
  2792. (version "40.1.1")
  2793. (source (origin
  2794. (method url-fetch)
  2795. (uri (string-append "mirror://gnome/sources/" name "/"
  2796. (version-major version) "/"
  2797. name "-" version ".tar.xz"))
  2798. (sha256
  2799. (base32
  2800. "1xpqa1rgmixlp953938d08xvf7kv36h747ysial8g65dsrp46v0b"))))
  2801. (native-inputs
  2802. ;; The following requires the SVG pixbuf loader, provided by librsvg,
  2803. ;; available on x86_64 only.
  2804. `(,@(if (target-64bit?)
  2805. `(("gtk-encode-symbolic-svg" ,gtk+ "bin"))
  2806. '())))))
  2807. (define-public tango-icon-theme
  2808. (package
  2809. (name "tango-icon-theme")
  2810. (version "0.8.90")
  2811. (source (origin
  2812. (method url-fetch)
  2813. (uri (string-append "http://tango.freedesktop.org/releases/"
  2814. "tango-icon-theme-" version ".tar.bz2"))
  2815. (sha256
  2816. (base32
  2817. "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
  2818. (build-system gnu-build-system)
  2819. (native-inputs
  2820. (list icon-naming-utils intltool imagemagick pkg-config))
  2821. (home-page "http://tango-project.org/")
  2822. (synopsis "Tango icon theme")
  2823. (description "This is an icon theme that follows the Tango visual
  2824. guidelines.")
  2825. (license license:public-domain)))
  2826. (define-public shared-mime-info
  2827. (package
  2828. (name "shared-mime-info")
  2829. (version "1.15")
  2830. (source (origin
  2831. (method url-fetch)
  2832. (uri (string-append
  2833. "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
  2834. "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
  2835. ".tar.xz"))
  2836. (sha256
  2837. (base32
  2838. "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
  2839. (build-system gnu-build-system)
  2840. (arguments
  2841. ;; The build system appears not to be parallel-safe.
  2842. '(#:parallel-build? #f))
  2843. (inputs
  2844. (list glib libxml2))
  2845. (native-inputs
  2846. `(("gettext" ,gettext-minimal)
  2847. ("itstool" ,itstool)
  2848. ("pkg-config" ,pkg-config)))
  2849. (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
  2850. (synopsis "Database of common MIME types")
  2851. (description
  2852. "The shared-mime-info package contains the core database of common types
  2853. and the update-mime-database command used to extend it. It requires glib2 to
  2854. be installed for building the update command. Additionally, it uses intltool
  2855. for translations, though this is only a dependency for the maintainers. This
  2856. database is translated at Transifex.")
  2857. (license license:gpl2+)))
  2858. (define-public system-config-printer
  2859. (package
  2860. (name "system-config-printer")
  2861. (version "1.5.16")
  2862. (source
  2863. (origin
  2864. (method url-fetch)
  2865. (uri (string-append
  2866. "https://github.com/OpenPrinting/system-config-printer/releases/"
  2867. "download/v" version
  2868. "/system-config-printer-" version ".tar.xz"))
  2869. (sha256
  2870. (base32 "1z9pvgifj5c87csnqz10qybbcayh3ak9m606f63ifkvyjh4q9jnb"))))
  2871. (build-system glib-or-gtk-build-system)
  2872. (arguments
  2873. (list
  2874. #:imported-modules `((guix build python-build-system)
  2875. ,@%glib-or-gtk-build-system-modules)
  2876. #:phases
  2877. #~(modify-phases %standard-phases
  2878. (add-after 'unpack 'patch-build-files
  2879. (lambda _
  2880. (substitute* "configure.ac"
  2881. (("AC_INIT.*" all)
  2882. (string-append all "\nAC_CONFIG_MACRO_DIR([m4])\n"))
  2883. ;; XXX: AX macros appear unavailable
  2884. (("AX_REQUIRE_DEFINED.*") ""))
  2885. ;; The Makefile generates some scripts, so set a valid shebang
  2886. (substitute* "Makefile.am"
  2887. (("/bin/bash") (which "bash")))
  2888. (delete-file "configure")))
  2889. (add-after 'unpack 'patch-docbook-xml
  2890. (lambda* (#:key inputs #:allow-other-keys)
  2891. ;; Modify the man XML otherwise xmlto tries to access the network
  2892. (substitute* "man/system-config-printer.xml"
  2893. (("http://www.oasis-open.org/docbook/xml/4.1.2/")
  2894. (string-append (assoc-ref inputs "docbook-xml")
  2895. "/xml/dtd/docbook/")))))
  2896. (add-after 'install 'add-install-to-pythonpath
  2897. (@@ (guix build python-build-system) add-install-to-pythonpath))
  2898. (add-after 'add-install-to-pythonpath 'wrap-for-python
  2899. (@@ (guix build python-build-system) wrap))
  2900. (add-after 'install 'wrap
  2901. (lambda* (#:key outputs #:allow-other-keys)
  2902. (let ((out (assoc-ref outputs "out"))
  2903. (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
  2904. (for-each
  2905. (lambda (program)
  2906. (wrap-program program
  2907. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
  2908. (map (lambda (name)
  2909. (string-append out "/bin/" name))
  2910. '("system-config-printer"
  2911. "system-config-printer-applet"
  2912. "install-printerdriver"
  2913. "scp-dbus-service")))))))))
  2914. (inputs
  2915. (list gsettings-desktop-schemas
  2916. gobject-introspection
  2917. python
  2918. cups
  2919. gtk+
  2920. python-dbus
  2921. python-pygobject
  2922. python-pycups
  2923. python-requests
  2924. python-pycairo
  2925. libnotify
  2926. packagekit))
  2927. (native-inputs
  2928. (list pkg-config
  2929. desktop-file-utils
  2930. glib
  2931. autoconf
  2932. automake
  2933. gettext-minimal
  2934. xmlto
  2935. docbook-xml-4.1.2
  2936. docbook-xsl
  2937. libxml2))
  2938. (home-page "https://github.com/zdohnal/system-config-printer")
  2939. (synopsis "CUPS administration tool")
  2940. (description
  2941. "system-config-printer is a CUPS administration tool. It's written in
  2942. Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
  2943. configuring CUPS.")
  2944. (license license:gpl2+)))
  2945. (define-public hicolor-icon-theme
  2946. (package
  2947. (name "hicolor-icon-theme")
  2948. (version "0.17")
  2949. (source
  2950. (origin
  2951. (method url-fetch)
  2952. (uri (string-append "https://icon-theme.freedesktop.org/releases/"
  2953. "hicolor-icon-theme-" version ".tar.xz"))
  2954. (sha256
  2955. (base32
  2956. "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
  2957. (build-system gnu-build-system)
  2958. (arguments
  2959. `(#:tests? #f)) ; no check target
  2960. (home-page "https://icon-theme.freedesktop.org/releases/")
  2961. (synopsis
  2962. "Freedesktop icon theme")
  2963. (description
  2964. "Freedesktop icon theme.")
  2965. (license license:gpl2)))
  2966. (define-public libnotify
  2967. (package
  2968. (name "libnotify")
  2969. (version "0.7.9")
  2970. (source
  2971. (origin
  2972. (method url-fetch)
  2973. (uri (string-append "mirror://gnome/sources/" name "/"
  2974. (version-major+minor version) "/"
  2975. name "-" version ".tar.xz"))
  2976. (sha256
  2977. (base32
  2978. "0qa7cx6ra5hwqnxw95b9svgjg5q6ynm8y843iqjszxvds5z53h36"))))
  2979. (build-system meson-build-system)
  2980. (arguments
  2981. `(#:phases
  2982. (modify-phases %standard-phases
  2983. (add-after 'unpack 'fix-docbook
  2984. (lambda* (#:key inputs #:allow-other-keys)
  2985. ;; Don't attempt to download XSL schema.
  2986. (substitute* "meson.build"
  2987. (("http://docbook.sourceforge.net/release/xsl-ns/current\
  2988. /manpages/docbook.xsl")
  2989. (string-append (assoc-ref inputs "docbook-xsl")
  2990. "/xml/xsl/docbook-xsl-"
  2991. ,(package-version docbook-xsl)
  2992. "/manpages/docbook.xsl")))
  2993. #t)))))
  2994. (propagated-inputs
  2995. (list ;; In Requires of libnotify.pc.
  2996. gdk-pixbuf glib))
  2997. (inputs
  2998. (list gtk+ libpng))
  2999. (native-inputs
  3000. `(("pkg-config" ,pkg-config)
  3001. ("glib" ,glib "bin")
  3002. ("gobject-introspection" ,gobject-introspection)
  3003. ;; For the documentation.
  3004. ("gtk-doc" ,gtk-doc/stable)
  3005. ("xsltproc" ,libxslt)
  3006. ("docbook-xsl" ,docbook-xsl)))
  3007. (home-page "https://developer-next.gnome.org/libnotify/")
  3008. (synopsis
  3009. "GNOME desktop notification library")
  3010. (description
  3011. "Libnotify is a library that sends desktop notifications to a
  3012. notification daemon, as defined in the Desktop Notifications spec. These
  3013. notifications can be used to inform the user about an event or display
  3014. some form of information without getting in the user's way.")
  3015. (license license:lgpl2.1+)))
  3016. (define-public libpeas
  3017. (package
  3018. (name "libpeas")
  3019. (version "1.30.0")
  3020. (source
  3021. (origin
  3022. (method url-fetch)
  3023. (uri (string-append "mirror://gnome/sources/" name "/"
  3024. (version-major+minor version) "/"
  3025. name "-" version ".tar.xz"))
  3026. (sha256
  3027. (base32
  3028. "18xrk1c1ixlhkmykcfiafrl2am470ws687xqvjlq40zwkcp5dx8b"))))
  3029. (build-system meson-build-system)
  3030. (arguments
  3031. '(#:phases
  3032. (modify-phases %standard-phases
  3033. (add-before 'check 'start-xserver
  3034. (lambda* (#:key inputs #:allow-other-keys)
  3035. (let ((xorg-server (assoc-ref inputs "xorg-server"))
  3036. (disp ":1"))
  3037. (setenv "DISPLAY" disp)
  3038. (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache")
  3039. (setenv "XDG_CONFIG_HOME" "/tmp")
  3040. ;; Tests require a running X server.
  3041. (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
  3042. #t))))))
  3043. (inputs
  3044. (list gtk+ glade3 python python-pygobject))
  3045. (native-inputs
  3046. `(("pkg-config" ,pkg-config)
  3047. ("gettext" ,gettext-minimal)
  3048. ("glib:bin" ,glib "bin")
  3049. ("gobject-introspection" ,gobject-introspection)
  3050. ("xorg-server" ,xorg-server-for-tests)))
  3051. (propagated-inputs
  3052. ;; The .pc file "Requires" gobject-introspection.
  3053. (list gobject-introspection))
  3054. (home-page "https://wiki.gnome.org/Libpeas")
  3055. (synopsis "GObject plugin system")
  3056. (description
  3057. "Libpeas is a gobject-based plugin engine, targeted at giving every
  3058. application the chance to assume its own extensibility. It also has a set of
  3059. features including, but not limited to: multiple extension points; on-demand
  3060. (lazy) programming language support for C, Python and JS; simplicity of the
  3061. API.")
  3062. (license license:lgpl2.0+)))
  3063. (define-public gtkglext
  3064. (package
  3065. (name "gtkglext")
  3066. (version "1.2.0")
  3067. (source (origin
  3068. (method url-fetch)
  3069. (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
  3070. version "/gtkglext-" version ".tar.gz"))
  3071. (sha256
  3072. (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
  3073. (patches (search-patches
  3074. "gtkglext-disable-disable-deprecated.patch"))))
  3075. (build-system gnu-build-system)
  3076. (arguments
  3077. `(#:phases
  3078. (modify-phases %standard-phases
  3079. ;; Fix a collision between a local variable and a definition from
  3080. ;; glibc's string.h.
  3081. (add-after 'unpack 'fix-collision
  3082. (lambda _
  3083. (substitute* "gdk/gdkglshapes.c"
  3084. ((" index") " triangle_index"))
  3085. #t)))))
  3086. (inputs (list gtk+-2 mesa glu libx11 libxt))
  3087. (native-inputs (list pkg-config
  3088. `(,glib "bin")))
  3089. (propagated-inputs (list pangox-compat))
  3090. (home-page "https://projects.gnome.org/gtkglext")
  3091. (synopsis "OpenGL extension to GTK+")
  3092. (description "GtkGLExt is an OpenGL extension to GTK+. It provides
  3093. additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
  3094. API add-ons to make GTK+ widgets OpenGL-capable.")
  3095. (license license:lgpl2.1+)))
  3096. (define-public glade3
  3097. (package
  3098. (name "glade")
  3099. (version "3.38.2")
  3100. (source (origin
  3101. (method url-fetch)
  3102. (uri (string-append "mirror://gnome/sources/" name "/"
  3103. (version-major+minor version) "/"
  3104. name "-" version ".tar.xz"))
  3105. (sha256
  3106. (base32
  3107. "1dxsiz9ahqkxg2a1dw9sbd8jg59y5pdz4c1gvnbmql48gmj8gz4q"))
  3108. (patches (search-patches
  3109. "glade-gls-set-script-name.patch"
  3110. "glade-test-widget-null-icon.patch"))))
  3111. (build-system meson-build-system)
  3112. (arguments
  3113. `(#:phases
  3114. (modify-phases %standard-phases
  3115. (add-after 'unpack 'skip-gtk-update-icon-cache
  3116. ;; Don't create 'icon-theme.cache'.
  3117. (lambda _
  3118. (substitute* "meson_post_install.py"
  3119. (("gtk-update-icon-cache") "true"))))
  3120. ,@(if (this-package-native-input "gjs")
  3121. '()
  3122. '((add-after 'unpack 'skip-gjs-test
  3123. (lambda _
  3124. ;; When the optional dependency on GJS is missing, skip
  3125. ;; the GJS plugin tests.
  3126. (substitute* "tests/modules.c"
  3127. (("g_test_add.*JavaScript.*" all)
  3128. (string-append "// " all "\n")))
  3129. (delete-file "tests/catalogs/gjsplugin.xml")))))
  3130. (add-before 'configure 'fix-docbook
  3131. (lambda* (#:key inputs #:allow-other-keys)
  3132. (substitute* "man/meson.build"
  3133. (("http://docbook.sourceforge.net/release/xsl/\
  3134. current/manpages/docbook.xsl")
  3135. (string-append (assoc-ref inputs "docbook-xsl")
  3136. "/xml/xsl/docbook-xsl-"
  3137. ,(package-version docbook-xsl)
  3138. "/manpages/docbook.xsl")))))
  3139. (add-before 'check 'pre-check
  3140. (lambda _
  3141. (setenv "HOME" "/tmp")
  3142. ;; Tests require a running X server.
  3143. (system "Xvfb :1 &")
  3144. (setenv "DISPLAY" ":1"))))))
  3145. (inputs
  3146. (list gtk+ libxml2))
  3147. (native-inputs
  3148. `(("hicolor-icon-theme" ,hicolor-icon-theme)
  3149. ("intltool" ,intltool)
  3150. ("itstool" ,itstool)
  3151. ("libxslt" ,libxslt) ;for xsltproc
  3152. ("docbook-xml" ,docbook-xml-4.2)
  3153. ("docbook-xsl" ,docbook-xsl)
  3154. ("glib:bin" ,glib "bin")
  3155. ("python" ,python)
  3156. ("python-pygobject" ,python-pygobject)
  3157. ("gobject-introspection" ,gobject-introspection)
  3158. ;; GJS depends on Rust, which is x86_64-only so far, so remove the GJS
  3159. ;; dependency on other platforms (FIXME).
  3160. ,@(if (target-x86-64?)
  3161. `(("gjs" ,gjs))
  3162. '())
  3163. ("pkg-config" ,pkg-config)
  3164. ("xorg-server" ,xorg-server-for-tests)))
  3165. (home-page "https://glade.gnome.org")
  3166. (synopsis "GTK+ rapid application development tool")
  3167. (description "Glade is a rapid application development (RAD) tool to
  3168. enable quick & easy development of user interfaces for the GTK+ toolkit and
  3169. the GNOME desktop environment.")
  3170. (license license:lgpl2.0+)
  3171. (native-search-paths (list (search-path-specification
  3172. (variable "GLADE_CATALOG_SEARCH_PATH")
  3173. (files '("share/glade/catalogs")))
  3174. (search-path-specification
  3175. (variable "GLADE_MODULE_SEARCH_PATH")
  3176. (files '("lib/glade/modules")))))))
  3177. (define-public libcroco
  3178. (package
  3179. (name "libcroco")
  3180. (version "0.6.13")
  3181. (source (origin
  3182. (method url-fetch)
  3183. (uri (string-append "mirror://gnome/sources/" name "/"
  3184. (version-major+minor version) "/"
  3185. name "-" version ".tar.xz"))
  3186. (patches (search-patches "libcroco-CVE-2020-12825.patch"))
  3187. (sha256
  3188. (base32
  3189. "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
  3190. (build-system gnu-build-system)
  3191. (native-inputs
  3192. (list pkg-config))
  3193. (inputs
  3194. (list glib libxml2 zlib))
  3195. (home-page "https://github.com/GNOME/libcroco")
  3196. (synopsis "CSS2 parsing and manipulation library")
  3197. (description
  3198. "Libcroco is a standalone CSS2 parsing and manipulation library.
  3199. The parser provides a low level event driven SAC-like API and a CSS object
  3200. model like API. Libcroco provides a CSS2 selection engine and an experimental
  3201. XML/CSS rendering engine.")
  3202. ;; LGPLv2.1-only.
  3203. (license license:lgpl2.1)))
  3204. (define-public libgsf
  3205. (package
  3206. (name "libgsf")
  3207. (version "1.14.47")
  3208. (source (origin
  3209. (method url-fetch)
  3210. (uri (string-append "mirror://gnome/sources/" name "/"
  3211. (version-major+minor version) "/"
  3212. name "-" version ".tar.xz"))
  3213. (sha256
  3214. (base32
  3215. "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
  3216. (build-system glib-or-gtk-build-system)
  3217. (outputs '("out" "bin" "doc"))
  3218. (arguments
  3219. `(#:configure-flags
  3220. (list
  3221. "--disable-static"
  3222. "--enable-introspection"
  3223. (string-append "--with-gir-dir="
  3224. (assoc-ref %outputs "out")
  3225. "/share/gir-"
  3226. ,(version-major
  3227. (package-version gobject-introspection))
  3228. ".0")
  3229. (string-append "--with-typelib-dir="
  3230. (assoc-ref %outputs "out")
  3231. "/lib/girepository-"
  3232. ,(version-major
  3233. (package-version gobject-introspection))
  3234. ".0")
  3235. (string-append "--with-html-dir="
  3236. (assoc-ref %outputs "doc")
  3237. "/share/gtk-doc/html")
  3238. "--with-zlib"
  3239. "--with-bz2")
  3240. #:phases
  3241. (modify-phases %standard-phases
  3242. (add-after 'unpack 'patch-docbook-xml
  3243. (lambda* (#:key inputs #:allow-other-keys)
  3244. (with-directory-excursion "doc"
  3245. (substitute* "gsf-docs.xml"
  3246. (("http://www.oasis-open.org/docbook/xml/4.5/")
  3247. (string-append (assoc-ref inputs "docbook-xml")
  3248. "/xml/dtd/docbook/"))))
  3249. #t)))))
  3250. (native-inputs
  3251. `(("docbook-xml" ,docbook-xml)
  3252. ("gettext" ,gettext-minimal)
  3253. ("gobject-introspection" ,gobject-introspection)
  3254. ("perl" ,perl)
  3255. ("perl-xml-parser" ,perl-xml-parser)
  3256. ("pkg-config" ,pkg-config)
  3257. ("python" ,python-wrapper)))
  3258. (inputs
  3259. (list bzip2 gdk-pixbuf zlib))
  3260. (propagated-inputs
  3261. (list glib libxml2))
  3262. (synopsis "G Structured File Library")
  3263. (description "Libgsf aims to provide an efficient extensible I/O abstraction
  3264. for dealing with different structured file formats.")
  3265. (home-page "https://gitlab.gnome.org/GNOME/libgsf")
  3266. (license
  3267. (list
  3268. ;; Library
  3269. license:lgpl2.1+
  3270. ;; Others
  3271. license:lgpl2.0+))))
  3272. (define-public librsvg
  3273. (package
  3274. (name "librsvg")
  3275. (version "2.50.7")
  3276. (source (origin
  3277. (method url-fetch)
  3278. (uri (string-append "mirror://gnome/sources/librsvg/"
  3279. (version-major+minor version) "/"
  3280. "librsvg-" version ".tar.xz"))
  3281. (sha256
  3282. (base32
  3283. "1g3f8byg5w08fx1bka12mmpl59v6a4q2p827w6m2la6mijq63yzz"))
  3284. (modules '((guix build utils)))
  3285. (snippet
  3286. '(begin (delete-file-recursively "vendor")))))
  3287. (build-system cargo-build-system)
  3288. (outputs '("out" "doc" "debug"))
  3289. (arguments
  3290. `(#:install-source? #f
  3291. #:modules
  3292. ((guix build cargo-build-system)
  3293. (guix build utils)
  3294. ((guix build gnu-build-system) #:prefix gnu:))
  3295. #:cargo-inputs
  3296. (("rust-bitflags" ,rust-bitflags-1)
  3297. ("rust-cairo-rs" ,rust-cairo-rs-0.8)
  3298. ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
  3299. ("rust-cast" ,rust-cast-0.2)
  3300. ("rust-cssparser" ,rust-cssparser-0.27)
  3301. ("rust-data-url" ,rust-data-url-0.1)
  3302. ("rust-encoding" ,rust-encoding-0.2)
  3303. ("rust-float-cmp" ,rust-float-cmp-0.8)
  3304. ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
  3305. ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
  3306. ("rust-gio" ,rust-gio-0.8)
  3307. ("rust-gio-sys" ,rust-gio-sys-0.9)
  3308. ("rust-glib" ,rust-glib-0.9)
  3309. ("rust-glib-sys" ,rust-glib-sys-0.9)
  3310. ("rust-gobject-sys" ,rust-gobject-sys-0.9)
  3311. ("rust-itertools" ,rust-itertools-0.9)
  3312. ("rust-language-tags" ,rust-language-tags-0.2)
  3313. ("rust-libc" ,rust-libc-0.2)
  3314. ("rust-locale-config" ,rust-locale-config-0.3)
  3315. ("rust-markup5ever" ,rust-markup5ever-0.10)
  3316. ("rust-nalgebra" ,rust-nalgebra-0.21)
  3317. ("rust-num-traits" ,rust-num-traits-0.2)
  3318. ("rust-once-cell" ,rust-once-cell-1)
  3319. ("rust-pkg-config" ,rust-pkg-config-0.3)
  3320. ("rust-pango" ,rust-pango-0.8)
  3321. ("rust-pango-sys" ,rust-pango-sys-0.9)
  3322. ("rust-pangocairo" ,rust-pangocairo-0.9)
  3323. ("rust-rayon" ,rust-rayon-1)
  3324. ("rust-rctree" ,rust-rctree-0.3)
  3325. ("rust-rgb" ,rust-rgb-0.8)
  3326. ("rust-regex" ,rust-regex-1)
  3327. ("rust-selectors" ,rust-selectors-0.22)
  3328. ("rust-string-cache" ,rust-string-cache-0.8)
  3329. ("rust-tinyvec" ,rust-tinyvec-0.3)
  3330. ("rust-url" ,rust-url-2)
  3331. ("rust-xml5ever" ,rust-xml5ever-0.16))
  3332. #:cargo-development-inputs
  3333. (("rust-assert-cmd" ,rust-assert-cmd-1)
  3334. ("rust-cairo-rs" ,rust-cairo-rs-0.8)
  3335. ("rust-chrono" ,rust-chrono-0.4)
  3336. ("rust-criterion" ,rust-criterion-0.3)
  3337. ("rust-float-cmp" ,rust-float-cmp-0.8)
  3338. ("rust-lopdf" ,rust-lopdf-0.26)
  3339. ("rust-png" ,rust-png-0.16)
  3340. ("rust-predicates" ,rust-predicates-1)
  3341. ("rust-tempfile" ,rust-tempfile-3))
  3342. #:phases
  3343. (modify-phases %standard-phases
  3344. (add-after 'unpack 'patch-docbook-xml
  3345. (lambda* (#:key inputs #:allow-other-keys)
  3346. (with-directory-excursion "doc"
  3347. (substitute* "rsvg-docs.xml"
  3348. (("http://www.oasis-open.org/docbook/xml/4.3/")
  3349. (string-append (assoc-ref inputs "docbook-xml")
  3350. "/xml/dtd/docbook/"))))))
  3351. (add-after 'unpack 'prepare-for-build
  3352. (lambda _
  3353. ;; In lieu of #:make-flags
  3354. (setenv "CC" ,(cc-for-target))
  3355. ;; Something about the build environment resists building
  3356. ;; successfully with the '--locked' flag.
  3357. (substitute* '("Makefile.am" "Makefile.in")
  3358. (("--locked") ""))))
  3359. (add-before 'configure 'pre-configure
  3360. (lambda* (#:key outputs #:allow-other-keys)
  3361. (substitute* "gdk-pixbuf-loader/Makefile.in"
  3362. ;; By default the gdk-pixbuf loader is installed under
  3363. ;; gdk-pixbuf's prefix. Work around that.
  3364. (("gdk_pixbuf_moduledir = .*$")
  3365. (string-append "gdk_pixbuf_moduledir = "
  3366. "$(prefix)/"
  3367. ,(dirname %gdk-pixbuf-loaders-cache-file) "/"
  3368. "loaders\n")))
  3369. (substitute* "configure"
  3370. (("gdk_pixbuf_cache_file=.*")
  3371. (string-append "gdk_pixbuf_cache_file="
  3372. (assoc-ref outputs "out") "/"
  3373. ,%gdk-pixbuf-loaders-cache-file "\n")))))
  3374. (add-after 'configure 'gnu-configure
  3375. (lambda* (#:key outputs #:allow-other-keys #:rest args)
  3376. (apply (assoc-ref gnu:%standard-phases 'configure)
  3377. #:configure-flags
  3378. (list "--disable-static"
  3379. "--enable-vala"
  3380. (string-append "--with-html-dir="
  3381. (assoc-ref outputs "doc")
  3382. "/share/gtk-doc/html"))
  3383. args)))
  3384. (add-after 'configure 'dont-vendor-self
  3385. (lambda* (#:key vendor-dir #:allow-other-keys)
  3386. ;; Don't keep the whole tarball in the vendor directory
  3387. (delete-file-recursively
  3388. (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))))
  3389. (replace 'build
  3390. (assoc-ref gnu:%standard-phases 'build))
  3391. (add-before 'check 'ignore-failing-tests
  3392. ;; stderr=```/tmp/guix-build-.../librsvg-2.50.1/rsvg-convert: line 150: ls: command not found
  3393. (lambda _
  3394. (substitute* "tests/src/cmdline/rsvg_convert.rs"
  3395. (("fn background_color_option_invalid_color_yields_error" all)
  3396. (string-append "#[ignore] " all))
  3397. (("fn empty_input_yields_error" all)
  3398. (string-append "#[ignore] " all))
  3399. (("fn empty_svg_yields_error" all)
  3400. (string-append "#[ignore] " all))
  3401. (("fn env_source_data_epoch_empty" all)
  3402. (string-append "#[ignore] " all))
  3403. (("fn env_source_data_epoch_no_digits" all)
  3404. (string-append "#[ignore] " all))
  3405. (("fn env_source_data_epoch_trailing_garbage" all)
  3406. (string-append "#[ignore] " all))
  3407. (("fn export_id_option_error" all)
  3408. (string-append "#[ignore] " all))
  3409. (("fn huge_zoom_factor_yields_error" all)
  3410. (string-append "#[ignore] " all))
  3411. (("fn multiple_input_files_not_allowed_for_png_output" all)
  3412. (string-append "#[ignore] " all))
  3413. (("fn stylesheet_option_error" all)
  3414. (string-append "#[ignore] " all)))))
  3415. (replace 'check
  3416. (lambda* args
  3417. ((assoc-ref gnu:%standard-phases 'check)
  3418. #:test-target "check")))
  3419. (replace 'install
  3420. (assoc-ref gnu:%standard-phases 'install)))))
  3421. (native-inputs
  3422. (list docbook-xml-4.3
  3423. `(,glib "bin")
  3424. gobject-introspection
  3425. pkg-config
  3426. python-wrapper
  3427. ruby
  3428. vala))
  3429. (inputs
  3430. (list bzip2
  3431. fontconfig
  3432. freetype
  3433. harfbuzz
  3434. libcroco
  3435. libgsf
  3436. libxml2
  3437. pango))
  3438. (propagated-inputs
  3439. (list cairo gdk-pixbuf glib))
  3440. (synopsis "SVG rendering library")
  3441. (description "Librsvg is a library to render SVG images to Cairo surfaces.
  3442. GNOME uses this to render SVG icons. Outside of GNOME, other desktop
  3443. environments use it for similar purposes. Wikimedia uses it for Wikipedia's SVG
  3444. diagrams.")
  3445. (home-page "https://wiki.gnome.org/LibRsvg")
  3446. (license license:lgpl2.1+)))
  3447. ;; This copy of librsvg uses the bundled rust libraries. It is useful for
  3448. ;; packages which have too many dependencies to be rebuilt as frequently
  3449. ;; as the rust inputs are updated.
  3450. ;; TODO: Remove this package and use packaged rust libraries!
  3451. (define-public librsvg-bootstrap
  3452. (package
  3453. (inherit librsvg)
  3454. (name "librsvg")
  3455. (version "2.50.7")
  3456. (source (origin
  3457. (method url-fetch)
  3458. (uri (string-append "mirror://gnome/sources/librsvg/"
  3459. (version-major+minor version) "/"
  3460. "librsvg-" version ".tar.xz"))
  3461. (sha256
  3462. (base32
  3463. "1g3f8byg5w08fx1bka12mmpl59v6a4q2p827w6m2la6mijq63yzz"))
  3464. (modules '((guix build utils)))
  3465. (snippet
  3466. '(begin
  3467. (for-each delete-file (find-files "vendor" "\\.a$"))))))
  3468. (arguments
  3469. (substitute-keyword-arguments (package-arguments librsvg)
  3470. ((#:vendor-dir _ "vendor") "vendor")
  3471. ((#:cargo-inputs _) '())
  3472. ((#:cargo-development-inputs _) '())))
  3473. (properties '((hidden? . #t)))))
  3474. (define-public librsvg-2.40
  3475. ;; This is the last version implemented in C.
  3476. (package
  3477. (inherit librsvg)
  3478. (version "2.40.21")
  3479. (source (origin
  3480. (method url-fetch)
  3481. (uri (string-append "mirror://gnome/sources/librsvg/"
  3482. (version-major+minor version)
  3483. "/librsvg-" version ".tar.xz"))
  3484. (sha256
  3485. (base32
  3486. "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
  3487. (build-system gnu-build-system)
  3488. (arguments
  3489. `(#:configure-flags (list "--disable-static")
  3490. #:phases
  3491. (modify-phases %standard-phases
  3492. (add-before 'configure 'pre-configure
  3493. (lambda* (#:key inputs #:allow-other-keys)
  3494. (substitute* "gdk-pixbuf-loader/Makefile.in"
  3495. ;; By default the gdk-pixbuf loader is installed under
  3496. ;; gdk-pixbuf's prefix. Work around that.
  3497. (("gdk_pixbuf_moduledir = .*$")
  3498. (string-append "gdk_pixbuf_moduledir = "
  3499. "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
  3500. "loaders\n"))
  3501. ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
  3502. (("gdk_pixbuf_cache_file = .*$")
  3503. "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
  3504. #t))
  3505. (add-before 'check 'remove-failing-tests
  3506. (lambda _
  3507. (with-directory-excursion "tests/fixtures/reftests"
  3508. (for-each delete-file
  3509. '(;; This test fails on i686:
  3510. "svg1.1/masking-path-04-b.svg"
  3511. ;; This test fails on armhf:
  3512. "svg1.1/masking-mask-01-b.svg"
  3513. ;; This test fails on aarch64:
  3514. "bugs/777834-empty-text-children.svg"
  3515. ;; These two tests fail due to slightly different
  3516. ;; text rendering (different kerning or similar),
  3517. ;; nothing alarming.
  3518. "bugs/340047.svg"
  3519. "bugs/749415.svg"))))))))
  3520. (native-inputs
  3521. (list pkg-config
  3522. `(,glib "bin") ; glib-mkenums, etc.
  3523. gobject-introspection)) ; g-ir-compiler, etc.
  3524. (inputs
  3525. (list pango libcroco bzip2 libgsf libxml2))
  3526. (propagated-inputs
  3527. ;; librsvg-2.0.pc refers to all of that.
  3528. (list cairo gdk-pixbuf glib))
  3529. (synopsis "Render SVG files using Cairo (ancient C version)")
  3530. (properties '((hidden? . #t)))))
  3531. (define* (librsvg-for-system #:optional
  3532. (system (or (%current-target-system)
  3533. (%current-system))))
  3534. ;; Since librsvg 2.50 depends on Rust, and Rust is only correctly supported
  3535. ;; on x86_64 so far, use the ancient C version on other platforms (FIXME).
  3536. (if (string-prefix? "x86_64-" system)
  3537. librsvg
  3538. librsvg-2.40))
  3539. (export librsvg-for-system)
  3540. (define-public libidl
  3541. (package
  3542. (name "libidl")
  3543. (version "0.8.14")
  3544. (source (origin
  3545. (method url-fetch)
  3546. (uri (string-append "mirror://gnome/sources/libIDL/"
  3547. (version-major+minor version) "/"
  3548. "libIDL-" version ".tar.bz2"))
  3549. (sha256
  3550. (base32
  3551. "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
  3552. (build-system gnu-build-system)
  3553. (inputs (list glib))
  3554. (native-inputs
  3555. (list pkg-config flex bison))
  3556. (home-page "http://freecode.com/projects/libidl")
  3557. (synopsis "Create trees of CORBA Interface Definition Language files")
  3558. (description "Libidl is a library for creating trees of CORBA Interface
  3559. Definition Language (idl) files, which is a specification for defining
  3560. portable interfaces. libidl was initially written for orbit (the orb from the
  3561. GNOME project, and the primary means of libidl distribution). However, the
  3562. functionality was designed to be as reusable and portable as possible.")
  3563. (properties `((upstream-name . "libIDL")))
  3564. (license license:lgpl2.0+)))
  3565. (define-public orbit2
  3566. (package
  3567. (name "orbit2")
  3568. (version "2.14.19")
  3569. (source (origin
  3570. (method url-fetch)
  3571. (uri (let ((upstream-name "ORBit2"))
  3572. (string-append "mirror://gnome/sources/" upstream-name "/"
  3573. (version-major+minor version) "/"
  3574. upstream-name "-" version ".tar.bz2")))
  3575. (sha256
  3576. (base32
  3577. "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
  3578. (build-system gnu-build-system)
  3579. (arguments
  3580. `(;; The "timeout-server" test hangs when run in parallel.
  3581. #:parallel-tests? #f
  3582. #:configure-flags
  3583. '(;; We don't need static libraries, plus they don't build reproducibly
  3584. ;; (non-deterministic ordering of .o files in the archive.)
  3585. "--disable-static"
  3586. ;; The programmer kindly gives us a hook to turn off deprecation
  3587. ;; warnings ...
  3588. "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
  3589. ;; ... which they then completly ignore !!
  3590. #:phases
  3591. (modify-phases %standard-phases
  3592. (add-after 'unpack 'fix-parallel-build
  3593. ;; Parallel build fails because of a failed dependency,
  3594. ;; https://bugzilla.gnome.org/show_bug.cgi?id=732274
  3595. (lambda _
  3596. (substitute* "src/services/name/Makefile.am"
  3597. (("orbit_name_server_2_DEPENDENCIES = \\$(DEPS) CosNaming.h")
  3598. "orbit_name_server_2_DEPENDENCIES = \
  3599. $(DEPS) CosNaming.h libname-server-2.a"))))
  3600. (add-before 'configure 'ignore-deprecations
  3601. (lambda _
  3602. (substitute* "linc2/src/Makefile.in"
  3603. (("-DG_DISABLE_DEPRECATED")
  3604. "-DGLIB_DISABLE_DEPRECATION_WARNINGS")))))))
  3605. (inputs (list glib libidl))
  3606. (native-inputs
  3607. (list pkg-config))
  3608. (home-page "https://projects.gnome.org/orbit2/")
  3609. (synopsis "CORBA 2.4-compliant Object Request Broker")
  3610. (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
  3611. featuring mature C, C++ and Python bindings.")
  3612. ;; Licence notice is unclear. The Web page simply say "GPL" without giving
  3613. ;; a version. SOME of the code files have licence notices for GPLv2+.
  3614. ;; The tarball contains files of the text of GPLv2 and LGPLv2.
  3615. (license license:gpl2+)
  3616. (properties `((upstream-name . "ORBit2")))))
  3617. (define-public libbonobo
  3618. (package
  3619. (name "libbonobo")
  3620. (version "2.32.1")
  3621. (source (origin
  3622. (method url-fetch)
  3623. (uri (string-append "mirror://gnome/sources/" name "/"
  3624. (version-major+minor version)
  3625. "/" name "-" version ".tar.bz2"))
  3626. (sha256
  3627. (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
  3628. (patches (search-patches
  3629. "libbonobo-activation-test-race.patch"))))
  3630. (build-system gnu-build-system)
  3631. (arguments
  3632. ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
  3633. `(#:configure-flags
  3634. '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
  3635. ;; ... which they then completly ignore !!
  3636. #:phases
  3637. (modify-phases %standard-phases
  3638. (add-before 'configure 'ignore-deprecations
  3639. (lambda _
  3640. (substitute* "activation-server/Makefile.in"
  3641. (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
  3642. #t)))
  3643. ;; There's apparently a race condition between the server stub
  3644. ;; generation and linking of the example under 'samples/echo' that can
  3645. ;; lead do undefined references when building in parallel, as reported
  3646. ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
  3647. ;; Thus, disable parallel builds.
  3648. #:parallel-build? #f))
  3649. (inputs (list popt libxml2))
  3650. ;; The following are Required by the .pc file
  3651. (propagated-inputs
  3652. (list glib orbit2))
  3653. (native-inputs
  3654. (list intltool
  3655. pkg-config
  3656. `(,glib "bin") ; for glib-genmarshal, etc.
  3657. flex
  3658. bison))
  3659. (home-page "https://developer.gnome.org/libbonobo/")
  3660. (synopsis "Framework for creating reusable components for use in GNOME applications")
  3661. (description "Bonobo is a framework for creating reusable components for
  3662. use in GNOME applications, built on top of CORBA.")
  3663. ;; Licence not explicitly stated. Source files contain no licence notices.
  3664. ;; Tarball contains text of both GPLv2 and LGPLv2
  3665. ;; GPLv2 covers both conditions
  3666. (license license:gpl2+)))
  3667. (define-public gconf
  3668. (package
  3669. (name "gconf")
  3670. (version "3.2.6")
  3671. (source (origin
  3672. (method url-fetch)
  3673. (uri
  3674. (let ((upstream-name "GConf"))
  3675. (string-append "mirror://gnome/sources/" upstream-name "/"
  3676. (version-major+minor version) "/"
  3677. upstream-name "-" version ".tar.xz")))
  3678. (sha256
  3679. (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
  3680. (build-system gnu-build-system)
  3681. (inputs (list dbus-glib libxml2))
  3682. (propagated-inputs (list glib ; referred to in the .pc file
  3683. orbit2))
  3684. (native-inputs
  3685. (list intltool
  3686. `(,glib "bin") ; for glib-genmarshal, etc.
  3687. pkg-config))
  3688. (home-page "https://projects.gnome.org/gconf/")
  3689. (synopsis "Store application preferences")
  3690. (description "Gconf is a system for storing application preferences. It
  3691. is intended for user preferences; not arbitrary data storage.")
  3692. (license license:lgpl2.0+)
  3693. (properties '((upstream-name . "GConf")))))
  3694. (define-public gnome-mime-data
  3695. (package
  3696. (name "gnome-mime-data")
  3697. (version "2.18.0")
  3698. (source (origin
  3699. (method url-fetch)
  3700. (uri (string-append "mirror://gnome/sources/" name "/"
  3701. (version-major+minor version) "/"
  3702. name "-" version ".tar.bz2"))
  3703. (sha256
  3704. (base32
  3705. "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
  3706. (build-system gnu-build-system)
  3707. (native-inputs
  3708. (list perl intltool))
  3709. (arguments
  3710. '(#:phases (modify-phases %standard-phases
  3711. (add-after 'configure 'use-our-intltool
  3712. (lambda _
  3713. ;; Do not use the bundled intltool commands, which lack
  3714. ;; the "dotless @INC" fixes of our 'intltool' package.
  3715. (substitute* (find-files "." "^Makefile$")
  3716. (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
  3717. (string-append "INTLTOOL_" tool " = intltool-"
  3718. (string-downcase tool) "\n")))
  3719. #t)))))
  3720. (home-page "https://www.gnome.org")
  3721. (synopsis "Base MIME and Application database for GNOME")
  3722. (description "GNOME Mime Data is a module which contains the base MIME
  3723. and Application database for GNOME. The data stored by this module is
  3724. designed to be accessed through the MIME functions in GnomeVFS.")
  3725. (license license:gpl2+)))
  3726. (define-public gnome-vfs
  3727. (package
  3728. (name "gnome-vfs")
  3729. (version "2.24.4")
  3730. (source (origin
  3731. (method url-fetch)
  3732. (uri (string-append "mirror://gnome/sources/" name "/"
  3733. (version-major+minor version) "/"
  3734. name "-" version ".tar.bz2"))
  3735. (sha256
  3736. (base32
  3737. "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
  3738. (build-system gnu-build-system)
  3739. (arguments
  3740. `(#:phases
  3741. (modify-phases %standard-phases
  3742. (add-before 'configure 'ignore-deprecations
  3743. (lambda _
  3744. (substitute* '("libgnomevfs/Makefile.in"
  3745. "daemon/Makefile.in")
  3746. (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
  3747. #t))
  3748. (add-before 'configure 'patch-test-async-cancel-to-never-fail
  3749. (lambda _
  3750. (substitute* "test/test-async-cancel.c"
  3751. (("EXIT_FAILURE") "77"))
  3752. #t)))))
  3753. (inputs (list libxml2 dbus-glib gconf gnome-mime-data zlib))
  3754. (native-inputs
  3755. (list `(,glib "bin") ; for glib-mkenums, etc.
  3756. intltool pkg-config))
  3757. (home-page "https://developer.gnome.org/gnome-vfs/")
  3758. (synopsis "Access files and folders in GNOME applications")
  3759. (description
  3760. "GnomeVFS is the core library used to access files and folders in GNOME
  3761. applications. It provides a file system abstraction which allows applications
  3762. to access local and remote files with a single consistent API.")
  3763. (license license:lgpl2.0+)))
  3764. (define-public libgnome
  3765. (package
  3766. (name "libgnome")
  3767. (version "2.32.1")
  3768. (source (origin
  3769. (method url-fetch)
  3770. (uri (string-append "mirror://gnome/sources/" name "/"
  3771. (version-major+minor version) "/"
  3772. name "-" version ".tar.bz2"))
  3773. (sha256
  3774. (base32
  3775. "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
  3776. (patches (search-patches "libgnome-encoding.patch"))))
  3777. (build-system gnu-build-system)
  3778. (arguments
  3779. `(#:phases
  3780. (modify-phases %standard-phases
  3781. (add-before 'configure 'enable-deprecated
  3782. (lambda _
  3783. (substitute* "libgnome/Makefile.in"
  3784. (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
  3785. #t)))))
  3786. (inputs (list libxml2))
  3787. (native-inputs
  3788. (list `(,glib "bin") ; for glib-mkenums, etc.
  3789. intltool pkg-config))
  3790. ;; The following are listed as Required in the .pc file
  3791. ;; (except for libcanberra -- which seems to be oversight on the part
  3792. ;; of the upstream developers -- anything that links against libgnome,
  3793. ;; must also link against libcanberra
  3794. (propagated-inputs
  3795. (list libcanberra libbonobo gconf gnome-vfs popt)) ;gnome-program.h includes popt.h
  3796. (home-page "https://developer.gnome.org/libgnome/")
  3797. (synopsis "Useful routines for building applications")
  3798. (description "The libgnome library provides a number of useful routines
  3799. for building modern applications, including session management, activation of
  3800. files and URIs, and displaying help.")
  3801. (license license:lgpl2.0+)))
  3802. (define-public libart-lgpl
  3803. (package
  3804. (name "libart-lgpl")
  3805. (version "2.3.21")
  3806. (source (origin
  3807. (method url-fetch)
  3808. (uri (let ((upstream-name "libart_lgpl"))
  3809. (string-append "mirror://gnome/sources/" upstream-name "/"
  3810. (version-major+minor version) "/"
  3811. upstream-name "-" version ".tar.bz2")))
  3812. (sha256
  3813. (base32
  3814. "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
  3815. (build-system gnu-build-system)
  3816. (native-inputs
  3817. (list pkg-config))
  3818. (home-page "https://people.gnome.org/~mathieu/libart")
  3819. (synopsis "2D drawing library")
  3820. (description "Libart is a 2D drawing library intended as a
  3821. high-quality vector-based 2D library with antialiasing and alpha composition.")
  3822. (license license:lgpl2.0+)))
  3823. (define-public libgnomecanvas
  3824. (package
  3825. (name "libgnomecanvas")
  3826. (version "2.30.3")
  3827. (source (origin
  3828. (method url-fetch)
  3829. (uri (string-append "mirror://gnome/sources/" name "/"
  3830. (version-major+minor version) "/"
  3831. name "-" version ".tar.gz"))
  3832. (sha256
  3833. (base32
  3834. "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
  3835. (build-system gnu-build-system)
  3836. ;; Mentioned as Required in the .pc file
  3837. (propagated-inputs (list libart-lgpl gtk+-2))
  3838. (native-inputs
  3839. (list intltool
  3840. `(,glib "bin") ; for glib-genmarshal, etc.
  3841. pkg-config))
  3842. (home-page "https://developer.gnome.org/libgnomecanvas/")
  3843. (synopsis "Flexible widget for creating interactive structured graphics")
  3844. (description "The GnomeCanvas widget provides a flexible widget for
  3845. creating interactive structured graphics.")
  3846. (license license:lgpl2.0+)))
  3847. (define-public libgnomecanvasmm
  3848. (package
  3849. (name "libgnomecanvasmm")
  3850. (version "2.26.0")
  3851. (source (origin
  3852. (method url-fetch)
  3853. (uri (string-append "mirror://gnome/sources/" name "/"
  3854. (version-major+minor version) "/"
  3855. name "-" version ".tar.bz2"))
  3856. (sha256
  3857. (base32
  3858. "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
  3859. (build-system gnu-build-system)
  3860. (propagated-inputs (list libgnomecanvas))
  3861. (native-inputs
  3862. (list gtkmm-2 pkg-config))
  3863. (home-page "https://gtkmm.org")
  3864. (synopsis "C++ bindings to the GNOME Canvas library")
  3865. (description "C++ bindings to the GNOME Canvas library.")
  3866. (license license:lgpl2.0+)))
  3867. (define-public libgnomeui
  3868. (package
  3869. (name "libgnomeui")
  3870. (version "2.24.5")
  3871. (source (origin
  3872. (method url-fetch)
  3873. (uri (string-append "mirror://gnome/sources/" name "/"
  3874. (version-major+minor version) "/"
  3875. name "-" version ".tar.bz2"))
  3876. (patches (search-patches "libgnomeui-utf8.patch"))
  3877. (sha256
  3878. (base32
  3879. "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
  3880. (build-system gnu-build-system)
  3881. ;; Mentioned as Required in the .pc file
  3882. (propagated-inputs (list libbonoboui libgnome libgnomecanvas
  3883. libgnome-keyring))
  3884. (inputs (list libjpeg-turbo popt libbonobo libxml2 libglade))
  3885. (native-inputs
  3886. (list `(,glib "bin") ; for glib-mkenums, etc.
  3887. intltool pkg-config))
  3888. (home-page "https://developer.gnome.org/libgnomeui/")
  3889. (synopsis "Additional widgets for applications")
  3890. (description "The libgnomeui library provides additional widgets for
  3891. applications. Many of the widgets from libgnomeui have already been
  3892. ported to GTK+.")
  3893. (license license:lgpl2.0+)))
  3894. (define-public libglade
  3895. (package
  3896. (name "libglade")
  3897. (version "2.6.4")
  3898. (source (origin
  3899. (method url-fetch)
  3900. (uri (string-append "mirror://gnome/sources/" name "/"
  3901. (version-major+minor version) "/"
  3902. name "-" version ".tar.bz2"))
  3903. (sha256
  3904. (base32
  3905. "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
  3906. (build-system gnu-build-system)
  3907. (inputs
  3908. (list python)) ;; needed for the optional libglade-convert program
  3909. (propagated-inputs
  3910. (list gtk+-2 libxml2)) ; required by libglade-2.0.pc
  3911. (native-inputs
  3912. (list pkg-config))
  3913. (home-page "https://developer.gnome.org/libglade")
  3914. (synopsis "Load glade interfaces and access the glade built widgets")
  3915. (description "Libglade is a library that provides interfaces for loading
  3916. graphical interfaces described in glade files and for accessing the
  3917. widgets built in the loading process.")
  3918. (license license:gpl2+))) ; This is correct. GPL not LGPL
  3919. (define-public libbonoboui
  3920. (package
  3921. (name "libbonoboui")
  3922. (version "2.24.5")
  3923. (source (origin
  3924. (method url-fetch)
  3925. (uri (string-append "mirror://gnome/sources/" name "/"
  3926. (version-major+minor version) "/"
  3927. name "-" version ".tar.bz2"))
  3928. (sha256
  3929. (base32
  3930. "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
  3931. (build-system gnu-build-system)
  3932. (arguments
  3933. `(#:phases
  3934. (modify-phases %standard-phases
  3935. (add-before 'check 'start-xserver
  3936. (lambda* (#:key inputs #:allow-other-keys)
  3937. (let ((xorg-server (assoc-ref inputs "xorg-server"))
  3938. (disp ":1"))
  3939. (setenv "HOME" (getcwd))
  3940. (setenv "DISPLAY" disp)
  3941. ;; There must be a running X server and make check doesn't start one.
  3942. ;; Therefore we must do it.
  3943. (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
  3944. ;; Mentioned as Required by the .pc file
  3945. (propagated-inputs (list libxml2))
  3946. (inputs
  3947. (list popt pangox-compat libgnome libgnomecanvas libglade))
  3948. (native-inputs
  3949. (list `(,glib "bin") ; for glib-genmarshal, etc.
  3950. intltool
  3951. xorg-server-for-tests ; For running the tests
  3952. pkg-config))
  3953. (home-page "https://developer.gnome.org/libbonoboui/")
  3954. (synopsis "Some user interface controls using Bonobo")
  3955. (description "The Bonobo UI library provides a number of user interface
  3956. controls using the Bonobo component framework.")
  3957. (license license:lgpl2.0+)))
  3958. (define-public libwnck
  3959. (package
  3960. (name "libwnck")
  3961. (version "3.32.0")
  3962. (source (origin
  3963. (method url-fetch)
  3964. (uri (string-append "mirror://gnome/sources/" name "/"
  3965. (version-major+minor version) "/"
  3966. name "-" version ".tar.xz"))
  3967. (sha256
  3968. (base32
  3969. "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
  3970. (build-system meson-build-system)
  3971. (native-inputs
  3972. (list pkg-config
  3973. `(,glib "bin") ; for glib-mkenums
  3974. gobject-introspection ; for g-ir-scanner
  3975. intltool))
  3976. (propagated-inputs
  3977. (list gtk+ libxres startup-notification))
  3978. (home-page "https://developer.gnome.org/libwnck/")
  3979. (synopsis "Window Navigator Construction Kit")
  3980. (description
  3981. "Libwnck is the Window Navigator Construction Kit, a library for use in
  3982. writing pagers, tasklists, and more generally applications that are dealing
  3983. with window management. It tries hard to respect the Extended Window Manager
  3984. Hints specification (EWMH).")
  3985. (license license:lgpl2.0+)))
  3986. ;; stable version for gtk2, required by xfwm4.
  3987. (define-public libwnck-2
  3988. (package (inherit libwnck)
  3989. (name "libwnck")
  3990. (version "2.30.7")
  3991. (source (origin
  3992. (method url-fetch)
  3993. (uri (string-append "mirror://gnome/sources/" name "/"
  3994. (version-major+minor version) "/"
  3995. name "-" version ".tar.xz"))
  3996. (sha256
  3997. (base32
  3998. "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
  3999. (build-system gnu-build-system)
  4000. (native-inputs
  4001. (list pkg-config intltool))
  4002. (propagated-inputs
  4003. (list gtk+-2 libxres startup-notification))))
  4004. (define-public goffice
  4005. (package
  4006. (name "goffice")
  4007. (version "0.10.50")
  4008. (source (origin
  4009. (method url-fetch)
  4010. (uri (string-append "mirror://gnome/sources/goffice/"
  4011. (version-major+minor version) "/"
  4012. "goffice-" version ".tar.xz"))
  4013. (sha256
  4014. (base32 "1p5zbj7cbcfcxd6l8pnph54p6ah1bwf146y810j4bcq8ggf3sp1c"))))
  4015. (build-system gnu-build-system)
  4016. (outputs '("out"
  4017. "doc")) ; 4.0 MiB of gtk-doc
  4018. (arguments
  4019. '(#:configure-flags (list (string-append "--with-html-dir="
  4020. (assoc-ref %outputs "doc")
  4021. "/share/gtk-doc/html"))))
  4022. (inputs
  4023. (list gtk+ libgsf librsvg libxslt libxml2))
  4024. (native-inputs
  4025. (list intltool
  4026. `(,glib "bin") pkg-config))
  4027. (home-page "https://developer.gnome.org/goffice/")
  4028. (synopsis "Document-centric objects and utilities")
  4029. (description "A GLib/GTK+ set of document-centric objects and utilities.")
  4030. (license
  4031. ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
  4032. ;; Note: NOT LGPL
  4033. (list license:gpl2 license:gpl3))))
  4034. (define-public goffice-0.8
  4035. (package (inherit goffice)
  4036. (version "0.8.17")
  4037. (source (origin
  4038. (method url-fetch)
  4039. (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
  4040. (version-major+minor version) "/"
  4041. (package-name goffice) "-" version ".tar.xz"))
  4042. (sha256
  4043. (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
  4044. (arguments
  4045. `(#:phases
  4046. (modify-phases %standard-phases
  4047. (add-after 'unpack 'fix-pcre-check
  4048. (lambda _
  4049. ;; Only glib.h can be included directly. See
  4050. ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
  4051. (substitute* "configure"
  4052. (("glib/gregex\\.h") "glib.h")) #t)))
  4053. ,@(package-arguments goffice)))
  4054. (propagated-inputs
  4055. ;; libgoffice-0.8.pc mentions libgsf-1
  4056. (list libgsf))
  4057. (inputs
  4058. `(("gtk" ,gtk+-2)
  4059. ,@(alist-delete "gtk" (package-inputs goffice))))))
  4060. (define-public gnumeric
  4061. (package
  4062. (name "gnumeric")
  4063. (version "1.12.50")
  4064. (source (origin
  4065. (method url-fetch)
  4066. (uri (string-append "mirror://gnome/sources/gnumeric/"
  4067. (version-major+minor version) "/"
  4068. "gnumeric-" version ".tar.xz"))
  4069. (sha256
  4070. (base32
  4071. "1f0lrj5msg80pgjp38jj6rddf352gwddgip7z4lki66n3fx1k23m"))))
  4072. (build-system glib-or-gtk-build-system)
  4073. (arguments
  4074. `(;; The gnumeric developers don't worry much about failing tests.
  4075. ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
  4076. #:tests? #f
  4077. #:phases
  4078. (modify-phases %standard-phases
  4079. (add-before
  4080. 'configure 'pre-conf
  4081. (lambda* (#:key outputs #:allow-other-keys)
  4082. ;; Make install tries to write into the directory of goffice
  4083. ;; I am informed that this only affects the possibility to embed a
  4084. ;; spreadsheet inside an Abiword document. So presumably when we
  4085. ;; package Abiword we'll have to refer it to this directory.
  4086. (substitute* "configure"
  4087. (("^GOFFICE_PLUGINS_DIR=.*")
  4088. (string-append "GOFFICE_PLUGINS_DIR="
  4089. (assoc-ref outputs "out")
  4090. "/goffice/plugins"))))))))
  4091. (inputs
  4092. (list glib
  4093. gtk+
  4094. goffice
  4095. libgsf
  4096. librsvg
  4097. libxml2
  4098. libxslt
  4099. python
  4100. python-pygobject
  4101. zlib))
  4102. (native-inputs
  4103. `(("bison" ,bison)
  4104. ("docbook-xml" ,docbook-xml)
  4105. ("intltool" ,intltool)
  4106. ("itstool" ,itstool)
  4107. ("glib:bin" ,glib "bin")
  4108. ("pkg-config" ,pkg-config)))
  4109. (home-page "http://www.gnumeric.org")
  4110. (synopsis "Spreadsheet application")
  4111. (description
  4112. "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
  4113. interoperable with other spreadsheet applications. It has a vast array of
  4114. features beyond typical spreadsheet functionality, such as support for linear
  4115. and non-linear solvers, statistical analysis, and telecommunication
  4116. engineering.")
  4117. (license
  4118. ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
  4119. (list license:gpl2 license:gpl3))))
  4120. (define-public drawing
  4121. (package
  4122. (name "drawing")
  4123. (version "0.8.3")
  4124. (source
  4125. (origin
  4126. (method git-fetch)
  4127. (uri (git-reference
  4128. (url "https://github.com/maoschanz/drawing")
  4129. (commit version)))
  4130. (file-name (git-file-name name version))
  4131. (sha256
  4132. (base32 "0wz9p47riyy3h8b0sqsb6bx416hc6d1a1wyzlfmsxkrqrkwcjcm8"))))
  4133. (build-system meson-build-system)
  4134. (arguments
  4135. `(#:glib-or-gtk? #t
  4136. #:phases
  4137. (modify-phases %standard-phases
  4138. (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
  4139. (lambda* (#:key outputs #:allow-other-keys)
  4140. (let ((prog (string-append (assoc-ref outputs "out")
  4141. "/bin/drawing"))
  4142. (pylib (string-append (assoc-ref outputs "out")
  4143. "/lib/python"
  4144. ,(version-major+minor
  4145. (package-version python))
  4146. "/site-packages")))
  4147. (wrap-program prog
  4148. `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
  4149. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
  4150. (native-inputs
  4151. `(("desktop-file-utils" ,desktop-file-utils)
  4152. ("gettext" ,gettext-minimal)
  4153. ("glib:bin" ,glib "bin")
  4154. ("gobject-introspection" ,gobject-introspection)
  4155. ("gtk+:bin" ,gtk+ "bin")
  4156. ("pkg-config" ,pkg-config)))
  4157. (inputs
  4158. (list librsvg
  4159. gsettings-desktop-schemas
  4160. gtk+
  4161. pango
  4162. python-pycairo
  4163. python-pygobject))
  4164. (home-page "https://maoschanz.github.io/drawing/")
  4165. (synopsis "Basic image editor for GNOME")
  4166. (description
  4167. "Drawing is a basic image editor aiming at the GNOME desktop.")
  4168. (license license:gpl3+)))
  4169. (define-public gnome-themes-standard
  4170. (package
  4171. (name "gnome-themes-standard")
  4172. (version "3.22.3")
  4173. (source
  4174. (origin
  4175. (method url-fetch)
  4176. (uri (string-append "mirror://gnome/sources/" name "/"
  4177. (version-major+minor version) "/" name "-"
  4178. version ".tar.xz"))
  4179. (sha256
  4180. (base32
  4181. "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
  4182. (build-system gnu-build-system)
  4183. (arguments
  4184. '(#:configure-flags
  4185. ;; Don't create 'icon-theme.cache'.
  4186. (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
  4187. (true (string-append coreutils "/bin/true")))
  4188. (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
  4189. (inputs
  4190. `(("gtk+" ,gtk+)
  4191. ("gtk+-2" ,gtk+-2)
  4192. ("librsvg" ,librsvg)
  4193. ("libxml2" ,libxml2)
  4194. ("glib" ,glib)))
  4195. (native-inputs
  4196. `(("intltool" ,intltool)
  4197. ("glib:bin" ,glib "bin")
  4198. ("pkg-config" ,pkg-config)))
  4199. (home-page "https://launchpad.net/gnome-themes-standard")
  4200. (synopsis "Default GNOME 3 themes")
  4201. (description
  4202. "The default GNOME 3 themes (Adwaita and some accessibility themes).")
  4203. (license license:lgpl2.1+)))
  4204. (define-public seahorse
  4205. (package
  4206. (name "seahorse")
  4207. (version "41.0")
  4208. (source
  4209. (origin
  4210. (method url-fetch)
  4211. (uri (string-append "mirror://gnome/sources/" name "/"
  4212. (version-major version) "/" name "-"
  4213. version ".tar.xz"))
  4214. (sha256
  4215. (base32 "1x99i7kdvd8hbxcs5rfrq7nw6r9bfzaw263zaigjjj04h6gc1vp6"))))
  4216. (build-system meson-build-system)
  4217. (arguments
  4218. '(#:glib-or-gtk? #t
  4219. #:phases
  4220. (modify-phases %standard-phases
  4221. (add-after 'unpack 'skip-gtk-update-icon-cache
  4222. ;; Don't create 'icon-theme.cache'.
  4223. (lambda _
  4224. (substitute* "build-aux/meson_post_install.py"
  4225. (("gtk-update-icon-cache") "true"))
  4226. #t))
  4227. (add-before 'check 'pre-check
  4228. (lambda _
  4229. ;; Tests require a writable HOME.
  4230. (setenv "HOME" (getcwd)))))))
  4231. (inputs
  4232. `(("gtk+" ,gtk+)
  4233. ("gcr" ,gcr)
  4234. ("gnupg" ,gnupg)
  4235. ("gpgme" ,gpgme)
  4236. ("openldap" ,openldap)
  4237. ("openssh" ,openssh)
  4238. ("avahi" ,avahi)
  4239. ("libhandy" ,libhandy)
  4240. ("libpwquality" ,libpwquality)
  4241. ("libsecret" ,libsecret)
  4242. ("libsoup" ,libsoup-minimal-2)))
  4243. (native-inputs
  4244. `(("gettext" ,gettext-minimal)
  4245. ("glib:bin" ,glib "bin")
  4246. ("itstool" ,itstool)
  4247. ("pkg-config" ,pkg-config)
  4248. ("python" ,python)
  4249. ("vala" ,vala)
  4250. ("xmllint" ,libxml2)))
  4251. (home-page "https://wiki.gnome.org/Apps/Seahorse")
  4252. (synopsis "Manage encryption keys and passwords in the GNOME keyring")
  4253. (description
  4254. "Seahorse is a GNOME application for managing encryption keys and
  4255. passwords in the GNOME keyring.")
  4256. (license license:gpl2+)))
  4257. (define-public vala
  4258. (package
  4259. (name "vala")
  4260. (version "0.54.2")
  4261. (source (origin
  4262. (method url-fetch)
  4263. (uri (string-append "mirror://gnome/sources/vala/"
  4264. (version-major+minor version) "/"
  4265. "vala-" version ".tar.xz"))
  4266. (sha256
  4267. (base32
  4268. "048k5c6c6y7jyb961krnrb7m0kghr0yrkpnfx3j5ckbx652yfkc8"))))
  4269. (build-system glib-or-gtk-build-system)
  4270. (arguments
  4271. '(#:configure-flags '("--enable-coverage")
  4272. #:phases
  4273. (modify-phases %standard-phases
  4274. (add-after 'unpack 'patch-docbook-xml
  4275. (lambda* (#:key inputs #:allow-other-keys)
  4276. (with-directory-excursion "doc/manual"
  4277. (substitute* '("manual.xml" "version.xml.in")
  4278. (("http://www.oasis-open.org/docbook/xml/4.4/")
  4279. (string-append (assoc-ref inputs "docbook-xml")
  4280. "/xml/dtd/docbook/"))))))
  4281. (add-before 'check 'pre-check
  4282. (lambda _
  4283. (setenv "CC" "gcc")
  4284. (substitute* "valadoc/tests/libvaladoc\
  4285. /tests-extra-environment.sh"
  4286. (("export PKG_CONFIG_PATH=" m)
  4287. (string-append m "$PKG_CONFIG_PATH:"))))))))
  4288. (native-inputs
  4289. `(("bison" ,bison)
  4290. ("dbus" ,dbus) ; for dbus tests
  4291. ("docbook-xml" ,docbook-xml-4.4)
  4292. ("docbook-xsl" ,docbook-xsl)
  4293. ("flex" ,flex)
  4294. ("gobject-introspection" ,gobject-introspection) ; for gir tests
  4295. ("help2man" ,help2man)
  4296. ("perl" ,perl)
  4297. ("pkg-config" ,pkg-config)
  4298. ("xsltproc" ,libxslt)))
  4299. (propagated-inputs
  4300. `(("glib" ,glib) ; required by libvala-0.40.pc
  4301. ("libgvc" ,graphviz)))
  4302. (home-page "https://wiki.gnome.org/Projects/Vala/")
  4303. (synopsis "Compiler using the GObject type system")
  4304. (description "Vala is a programming language using modern high level
  4305. abstractions without imposing additional runtime requirements and without using
  4306. a different ABI compared to applications and libraries written in C. Vala uses
  4307. the GObject type system and has additional code generation routines that make
  4308. targeting the GNOME stack simple.")
  4309. (license license:lgpl2.1+)))
  4310. ;;; An older variant kept to build libsoup-minimal-2.
  4311. (define-public vala-0.52
  4312. (package/inherit vala
  4313. (version "0.52.0")
  4314. (source (origin
  4315. (method url-fetch)
  4316. (uri (string-append "mirror://gnome/sources/vala/"
  4317. (version-major+minor version) "/"
  4318. "vala-" version ".tar.xz"))
  4319. (sha256
  4320. (base32
  4321. "12y6p8wdjp01vmfhxg2cgh32xnyqq6ivblvrar9clnj6vc867qhx"))))))
  4322. (define-public vte
  4323. (package
  4324. (name "vte")
  4325. (version "0.64.2")
  4326. (source (origin
  4327. (method url-fetch)
  4328. (uri (string-append "mirror://gnome/sources/vte/"
  4329. (version-major+minor version) "/"
  4330. "vte-" version ".tar.xz"))
  4331. (sha256
  4332. (base32
  4333. "063ys3330cvhbz1dln9irhciavb2prw098lvhpcc2rx6cl5q4g1b"))))
  4334. (build-system meson-build-system)
  4335. (arguments
  4336. `(#:configure-flags
  4337. '("-Dvapi=true"
  4338. "-D_systemd=false")))
  4339. (native-inputs
  4340. `(("pkg-config" ,pkg-config)
  4341. ("gettext" ,gettext-minimal)
  4342. ("vala" ,vala)
  4343. ("gobject-introspection" ,gobject-introspection)
  4344. ("glib" ,glib "bin") ; for glib-genmarshal, etc.
  4345. ("gperf" ,gperf)
  4346. ("python" ,python)
  4347. ("xmllint" ,libxml2)))
  4348. (propagated-inputs
  4349. (list gtk+ ; required by vte-2.91.pc
  4350. gnutls ; ditto
  4351. pcre2)) ; ditto
  4352. (home-page "https://www.gnome.org/")
  4353. (synopsis "Virtual Terminal Emulator")
  4354. (description
  4355. "VTE is a library (libvte) implementing a terminal emulator widget for
  4356. GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
  4357. gnome-terminal, but can also be used to embed a console/terminal in games,
  4358. editors, IDEs, etc.")
  4359. (license license:lgpl2.1+)))
  4360. (define-public vte-ng
  4361. (package
  4362. (inherit vte)
  4363. (name "vte-ng")
  4364. (version "0.58.2.a")
  4365. (home-page "https://github.com/thestinger/vte-ng")
  4366. (source (origin
  4367. (method git-fetch)
  4368. (uri (git-reference (url home-page) (commit version)))
  4369. (file-name (git-file-name name version))
  4370. (sha256
  4371. (base32
  4372. "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
  4373. (build-system meson-build-system)
  4374. (arguments
  4375. (list #:configure-flags #~(list "-Ddocs=false")))
  4376. (synopsis "Enhanced VTE terminal widget")
  4377. (description
  4378. "VTE is a library (libvte) implementing a terminal emulator widget for
  4379. GTK+, this fork provides additional functions exposed for keyboard text
  4380. selection and URL hints.")))
  4381. ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
  4382. (define-public vte/gtk+-2
  4383. (package (inherit vte)
  4384. (name "vte")
  4385. (version "0.28.2")
  4386. (source (origin
  4387. (method url-fetch)
  4388. (uri (string-append "mirror://gnome/sources/" name "/"
  4389. (version-major+minor version) "/"
  4390. name "-" version ".tar.xz"))
  4391. (sha256
  4392. (base32
  4393. "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
  4394. (patches (search-patches
  4395. "vte-CVE-2012-2738-pt1.patch"
  4396. "vte-CVE-2012-2738-pt2.patch"))))
  4397. (build-system gnu-build-system)
  4398. (arguments
  4399. '(#:configure-flags '("--disable-python")))
  4400. (native-inputs
  4401. (list pkg-config intltool
  4402. `(,glib "bin"))) ; for glib-genmarshal, etc.
  4403. (propagated-inputs
  4404. (list gtk+-2 ; required by libvte.pc
  4405. ncurses)))) ; required by libvte.la
  4406. (define-public vinagre
  4407. (package
  4408. (name "vinagre")
  4409. (version "3.22.0")
  4410. (source (origin
  4411. (method url-fetch)
  4412. (uri (string-append "mirror://gnome/sources/" name "/"
  4413. (version-major+minor version) "/"
  4414. name "-" version ".tar.xz"))
  4415. (patches (search-patches "vinagre-newer-freerdp.patch"
  4416. "vinagre-newer-rdp-parameters.patch"))
  4417. (sha256
  4418. (base32
  4419. "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
  4420. (build-system glib-or-gtk-build-system)
  4421. (arguments
  4422. ;; Disable -Werror and such, to avoid build failures on compilation
  4423. ;; warnings.
  4424. '(#:configure-flags '("--enable-compile-warnings=minimum"
  4425. "CFLAGS=-O2 -g -fcommon")
  4426. #:phases
  4427. (modify-phases %standard-phases
  4428. (add-before 'install 'skip-gtk-update-icon-cache
  4429. (lambda _
  4430. ;; Don't create 'icon-theme.cache'
  4431. (substitute* (find-files "." "^Makefile$")
  4432. (("gtk-update-icon-cache") (which "true")))
  4433. #t))
  4434. (add-after 'unpack 'patch-configure
  4435. (lambda _
  4436. (substitute* "configure"
  4437. (("freerdp") "freerdp2"))
  4438. #t)))))
  4439. (native-inputs
  4440. `(("pkg-config" ,pkg-config)
  4441. ("intltool" ,intltool)
  4442. ("itstool" ,itstool)
  4443. ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
  4444. (inputs
  4445. (list libxml2
  4446. gtk-vnc
  4447. gnome-keyring
  4448. libsecret
  4449. freerdp
  4450. spice
  4451. spice-gtk
  4452. telepathy-glib
  4453. vte))
  4454. (home-page "https://wiki.gnome.org/Apps/Vinagre")
  4455. (synopsis "Remote desktop viewer for GNOME")
  4456. (description "Vinagre is a remote display client supporting the VNC, SPICE
  4457. and RDP protocols.")
  4458. (license license:gpl3+)))
  4459. (define-public dconf
  4460. (package
  4461. (name "dconf")
  4462. (version "0.40.0")
  4463. (source (origin
  4464. (method url-fetch)
  4465. (uri (string-append
  4466. "mirror://gnome/sources/" name "/"
  4467. (version-major+minor version) "/"
  4468. name "-" version ".tar.xz"))
  4469. (sha256
  4470. (base32
  4471. "0cs5nayg080y8pb9b7qccm1ni8wkicdmqp1jsgc22110r6j24zyg"))))
  4472. (build-system meson-build-system)
  4473. (propagated-inputs
  4474. ;; In Requires of dconf.pc.
  4475. (list glib))
  4476. (inputs
  4477. (list gtk+ dbus))
  4478. (native-inputs
  4479. `(("bash-completion" ,bash-completion)
  4480. ("libxslt" ,libxslt) ;for xsltproc
  4481. ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
  4482. ("docbook-xml" ,docbook-xml-4.2)
  4483. ("docbook-xsl" ,docbook-xsl)
  4484. ("glib:bin" ,glib "bin")
  4485. ("gtk-doc" ,gtk-doc/stable)
  4486. ("pkg-config" ,pkg-config)
  4487. ("python" ,python)
  4488. ("vala" ,vala)))
  4489. (arguments
  4490. `(#:glib-or-gtk? #t
  4491. #:configure-flags '("-Dgtk_doc=true")
  4492. #:phases (modify-phases %standard-phases
  4493. (add-after 'unpack 'increase-test-timeout
  4494. (lambda _
  4495. ;; On big-memory systems, the engine test may take
  4496. ;; much longer than the default of 30 seconds.
  4497. (substitute* "tests/meson.build"
  4498. (("test\\(unit_test\\[0\\], exe" all)
  4499. (string-append all ", timeout: 300"))))))))
  4500. (home-page "https://developer.gnome.org/dconf/")
  4501. (synopsis "Low-level GNOME configuration system")
  4502. (description "Dconf is a low-level configuration system. Its main purpose
  4503. is to provide a backend to GSettings on platforms that don't already have
  4504. configuration storage systems.")
  4505. (license license:lgpl2.1+)))
  4506. (define-public json-glib-minimal
  4507. (package
  4508. (name "json-glib-minimal")
  4509. (version "1.6.2")
  4510. (source (origin
  4511. (method url-fetch)
  4512. (uri (string-append "mirror://gnome/sources/json-glib/"
  4513. (version-major+minor version)
  4514. "/json-glib-" version ".tar.xz"))
  4515. (sha256
  4516. (base32
  4517. "092g2dyy1hhl0ix9kp33wcab0pg1qicnsv0cj5ms9g9qs336cgd3"))))
  4518. (build-system meson-build-system)
  4519. (arguments
  4520. `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
  4521. (native-inputs
  4522. `(("gettext" ,gettext-minimal)
  4523. ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
  4524. ("pkg-config" ,pkg-config)))
  4525. (inputs
  4526. (list bash-minimal))
  4527. (propagated-inputs
  4528. (list glib)) ;according to json-glib-1.0.pc
  4529. (home-page "https://wiki.gnome.org/Projects/JsonGlib")
  4530. (synopsis "Glib and GObject implementation of JSON")
  4531. (description "JSON-GLib is a library providing serialization and
  4532. described by RFC 4627. It implements a full JSON parser and generator using
  4533. GLib and GObject, and integrates JSON with GLib data types.")
  4534. (license license:lgpl2.1+)))
  4535. (define-public json-glib
  4536. (package/inherit json-glib-minimal
  4537. (name "json-glib")
  4538. (outputs (cons "doc" (package-outputs json-glib-minimal)))
  4539. (arguments
  4540. (substitute-keyword-arguments (package-arguments json-glib-minimal)
  4541. ((#:configure-flags _)
  4542. `(list "-Ddocs=true"
  4543. "-Dman=true"
  4544. ,@(if (%current-target-system)
  4545. ;; If enabled, gtkdoc-scangobj will try to execute a
  4546. ;; cross-compiled binary.
  4547. '("-Dgtk_doc=disabled"
  4548. ;; Trying to build introspection data when cross-compiling
  4549. ;; causes errors during linking.
  4550. "-Dintrospection=disabled")
  4551. '())))
  4552. ((#:phases phases '%standard-phases)
  4553. `(modify-phases ,phases
  4554. (add-after 'unpack 'patch-docbook
  4555. (lambda* (#:key native-inputs inputs #:allow-other-keys)
  4556. (with-directory-excursion "doc"
  4557. (substitute* (find-files "." "\\.xml$")
  4558. (("http://www.oasis-open.org/docbook/xml/4\\.3/")
  4559. (string-append (assoc-ref (or native-inputs inputs)
  4560. "docbook-xml")
  4561. "/xml/dtd/docbook/")))
  4562. (substitute* "meson.build"
  4563. (("http://docbook.sourceforge.net/release/xsl/current/")
  4564. (string-append (assoc-ref (or native-inputs inputs)
  4565. "docbook-xsl")
  4566. "/xml/xsl/docbook-xsl-1.79.2/"))))))
  4567. ;; When cross-compiling, there are no docs to move.
  4568. ,(if (%current-target-system)
  4569. '(add-after 'install 'stub-docs
  4570. (lambda* (#:key outputs #:allow-other-keys)
  4571. ;; The daemon doesn't like empty output paths.
  4572. (mkdir (assoc-ref outputs "doc"))))
  4573. '(add-after 'install 'move-docs
  4574. (lambda* (#:key outputs #:allow-other-keys)
  4575. (let* ((out (assoc-ref outputs "out"))
  4576. (doc (assoc-ref outputs "doc")))
  4577. (mkdir-p (string-append doc "/share"))
  4578. (rename-file
  4579. (string-append out "/share/gtk-doc")
  4580. (string-append doc "/share/gtk-doc"))))))))))
  4581. (native-inputs
  4582. (append
  4583. `(("docbook-xml" ,docbook-xml-4.3)
  4584. ("docbook-xsl" ,docbook-xsl)
  4585. ("gobject-introspection" ,gobject-introspection)
  4586. ("gtk-doc" ,gtk-doc)
  4587. ("xsltproc" ,libxslt))
  4588. (package-native-inputs json-glib-minimal)))))
  4589. (define-public libxklavier
  4590. (package
  4591. (name "libxklavier")
  4592. (version "5.4")
  4593. (source (origin
  4594. ;; Note: There's no tarball at ftp.gnome.org for this version.
  4595. (method git-fetch)
  4596. (uri (git-reference
  4597. (url "https://anongit.freedesktop.org/git/libxklavier")
  4598. (commit (string-append "libxklavier-" version))))
  4599. (sha256
  4600. (base32
  4601. "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
  4602. (file-name (git-file-name name version))))
  4603. (build-system gnu-build-system)
  4604. (arguments
  4605. '(#:configure-flags
  4606. (list (string-append "--with-xkb-base="
  4607. (assoc-ref %build-inputs "xkeyboard-config")
  4608. "/share/X11/xkb")
  4609. "--disable-xmodmap-support")))
  4610. (native-inputs
  4611. `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
  4612. ("gobject-introspection" ,gobject-introspection)
  4613. ("pkg-config" ,pkg-config)
  4614. ("gtk-doc" ,gtk-doc/stable)
  4615. ("intltool" ,intltool)
  4616. ("which" ,which)
  4617. ("autoconf" ,autoconf)
  4618. ("automake" ,automake)
  4619. ("libtool" ,libtool)))
  4620. (propagated-inputs
  4621. ;; Required by libxklavier.pc.
  4622. (list glib libxml2))
  4623. (inputs
  4624. (list iso-codes libxi libxkbfile xkbcomp xkeyboard-config))
  4625. (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
  4626. (synopsis "High-level API for X Keyboard Extension")
  4627. (description
  4628. "LibXklavier is a library providing high-level API for X Keyboard
  4629. Extension known as XKB. This library is intended to support XFree86 and other
  4630. commercial X servers. It is useful for creating XKB-related software (layout
  4631. indicators etc).")
  4632. (license license:lgpl2.0+)))
  4633. (define-public python2-rsvg
  4634. ;; XXX: This is actually a subset of gnome-python-desktop.
  4635. (package
  4636. (name "python2-rsvg")
  4637. (version "2.32.0")
  4638. (source
  4639. (origin
  4640. (method url-fetch)
  4641. (uri (string-append
  4642. "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
  4643. version ".tar.bz2"))
  4644. (sha256
  4645. (base32
  4646. "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
  4647. (build-system gnu-build-system)
  4648. (native-inputs
  4649. (list pkg-config))
  4650. (inputs
  4651. (list python-2 python2-pygtk librsvg))
  4652. (home-page "https://www.gnome.org")
  4653. (synopsis "Python bindings to librsvg")
  4654. (description
  4655. "This package provides Python bindings to librsvg, the SVG rendering
  4656. library.")
  4657. ;; This is the license of the rsvg bindings. The license of each module
  4658. ;; of gnome-python-desktop is given in 'COPYING'.
  4659. (license license:lgpl2.1+)))
  4660. (define-public glib-networking
  4661. (package
  4662. (name "glib-networking")
  4663. (version "2.70.0")
  4664. (source (origin
  4665. (method url-fetch)
  4666. (uri (string-append "mirror://gnome/sources/glib-networking/"
  4667. (version-major+minor version) "/"
  4668. "glib-networking-" version ".tar.xz"))
  4669. (sha256
  4670. (base32
  4671. "0dbg1na239mbavn4hknkax5sns9q2dbdnqw9wcpmhv58mzkhid36"))
  4672. (patches
  4673. (search-patches "glib-networking-gnutls-binding.patch"))))
  4674. (build-system meson-build-system)
  4675. (arguments
  4676. (if (target-64bit?)
  4677. '()
  4678. (list #:phases
  4679. #~(modify-phases %standard-phases
  4680. (add-after 'unpack 'work-around-32-bit-time-t
  4681. (lambda _
  4682. (invoke "patch" "--force" "-p1" "-i"
  4683. #$(local-file
  4684. (search-patch
  4685. "glib-networking-32-bit-time.patch")))))))))
  4686. (native-inputs
  4687. `(("pkg-config" ,pkg-config)
  4688. ("gettext" ,gettext-minimal)))
  4689. (inputs
  4690. (list glib gnutls gsettings-desktop-schemas libproxy))
  4691. (home-page "https://wiki.gnome.org/Projects/GLib")
  4692. (synopsis "Network extensions for GLib")
  4693. (description
  4694. "Glib-networking contains the implementations of certain GLib networking
  4695. features that cannot be implemented directly in GLib itself because of their
  4696. dependencies. Currently it contains GnuTLS and OpenSSL-based implementations of
  4697. GTlsBackend, a libproxy-based implementation of GProxyResolver,
  4698. GLibproxyResolver, and a GNOME GProxyResolver that uses the proxy information
  4699. from the GSettings schemas in gsettings-desktop-schemas.")
  4700. (license license:lgpl2.1+)))
  4701. (define-public rest
  4702. (package
  4703. (name "rest")
  4704. (version "0.8.1")
  4705. (source (origin
  4706. (method url-fetch)
  4707. (uri (string-append "mirror://gnome/sources/rest/"
  4708. (version-major+minor version) "/"
  4709. name "-" version ".tar.xz"))
  4710. (sha256
  4711. (base32
  4712. "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
  4713. (build-system gnu-build-system)
  4714. (arguments
  4715. '(#:tests? #f ; tests require internet connection
  4716. #:configure-flags
  4717. '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
  4718. (native-inputs
  4719. `(("glib-mkenums" ,glib "bin")
  4720. ("gobject-introspection" ,gobject-introspection)
  4721. ("pkg-config" ,pkg-config)))
  4722. (propagated-inputs
  4723. ;; rest-0.7.pc refers to all these.
  4724. `(("glib" ,glib)
  4725. ("libsoup" ,libsoup-minimal-2)
  4726. ("libxml2" ,libxml2)))
  4727. (home-page "https://www.gtk.org/")
  4728. (synopsis "RESTful web api query library")
  4729. (description
  4730. "This library was designed to make it easier to access web services that
  4731. claim to be \"RESTful\". It includes convenience wrappers for libsoup and
  4732. libxml to ease remote use of the RESTful API.")
  4733. (license license:lgpl2.1+)))
  4734. ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
  4735. (define-public libsoup-minimal
  4736. (package
  4737. (name "libsoup-minimal")
  4738. (version "3.0.4")
  4739. (source (origin
  4740. (method url-fetch)
  4741. (uri (string-append "mirror://gnome/sources/libsoup/"
  4742. (version-major+minor version) "/"
  4743. "libsoup-" version ".tar.xz"))
  4744. (sha256
  4745. (base32
  4746. "0ysnvvfd2f6w2z6g31spqqb8wgyamixc7mryzbbpyw0z15g8plsv"))))
  4747. (build-system meson-build-system)
  4748. (arguments
  4749. `(#:configure-flags '("-Dgtk_doc=false")
  4750. #:phases
  4751. (modify-phases %standard-phases
  4752. (add-after 'unpack 'adjust-tests
  4753. (lambda _
  4754. ;; This test fails due to missing /etc/nsswitch.conf
  4755. ;; in the build environment.
  4756. (substitute* "tests/socket-test.c"
  4757. ((".*/sockets/unconnected.*") ""))
  4758. ;; These fail because "subdomain.localhost" does not resolve in
  4759. ;; the build environment. Moreover, the hsts-test suite fails on
  4760. ;; i686-linux because of errors from `session_get_uri' like
  4761. ;; "Unexpected status 200 OK (expected 301 Moved Permanently)"
  4762. ;; (see: https://gitlab.gnome.org/GNOME/libsoup/-/issues/239).
  4763. (substitute* "tests/meson.build"
  4764. ((".*'name': 'hsts'.*") ""))
  4765. (substitute* "tests/hsts-db-test.c"
  4766. ((".*/hsts-db/subdomains.*") "")))))))
  4767. (native-inputs
  4768. (list `(,glib "bin") ;for glib-mkenums
  4769. gobject-introspection
  4770. intltool
  4771. pkg-config
  4772. python-wrapper
  4773. vala
  4774. curl
  4775. gnutls ;for 'certtool'
  4776. httpd))
  4777. (propagated-inputs
  4778. ;; libsoup-3.0.pc refers to all of these (except where otherwise noted)
  4779. (list brotli
  4780. glib
  4781. glib-networking ; for GIO runtime modules
  4782. libpsl
  4783. nghttp2 ;for pkg-config
  4784. `(,nghttp2 "lib")
  4785. libxml2
  4786. sqlite
  4787. zlib))
  4788. (inputs
  4789. (list mit-krb5 samba/fixed)) ; For ntlm_auth support
  4790. (home-page "https://wiki.gnome.org/Projects/libsoup")
  4791. (synopsis "GLib-based HTTP Library")
  4792. (description
  4793. "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
  4794. and the GLib main loop, to integrate well with GNOME applications.")
  4795. (license license:lgpl2.0+)))
  4796. ;;; An older variant kept to build the 'rest' package.
  4797. (define-public libsoup-minimal-2
  4798. (package/inherit libsoup-minimal
  4799. (version "2.72.0")
  4800. (source (origin
  4801. (method url-fetch)
  4802. (uri (string-append "mirror://gnome/sources/libsoup/"
  4803. (version-major+minor version) "/"
  4804. "libsoup-" version ".tar.xz"))
  4805. (sha256
  4806. (base32
  4807. "11skbyw2pw32178q3h8pi7xqa41b2x4k6q4k9f75zxmh8s23y30p"))))
  4808. (arguments
  4809. (substitute-keyword-arguments (package-arguments libsoup-minimal)
  4810. ((#:phases phases)
  4811. `(modify-phases ,phases
  4812. (add-after 'unpack 'disable-failing-tests
  4813. (lambda _
  4814. ;; Disable the SSL test, failing since 2.68 and resolved in
  4815. ;; libsoup 3.
  4816. (substitute* "tests/meson.build"
  4817. (("[ \t]*\\['ssl', true, \\[\\]\\],") ""))))))))
  4818. (native-inputs
  4819. (modify-inputs (package-native-inputs libsoup-minimal)
  4820. (replace "vala" vala-0.52)))))
  4821. (define-public libsoup
  4822. (package/inherit libsoup-minimal
  4823. (name "libsoup")
  4824. (outputs (cons "doc" (package-outputs libsoup-minimal)))
  4825. (arguments
  4826. (substitute-keyword-arguments (package-arguments libsoup-minimal)
  4827. ((#:configure-flags configure-flags)
  4828. `(cons "-Dgtk_doc=true"
  4829. (delete "-Dgtk_doc=false" ,configure-flags)))
  4830. ((#:phases phases)
  4831. `(modify-phases ,phases
  4832. (add-after 'unpack 'patch-docbook-xml
  4833. (lambda* (#:key inputs #:allow-other-keys)
  4834. (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
  4835. "/xml/dtd/docbook")))
  4836. (substitute* (find-files "docs/reference")
  4837. (("http://.*/docbookx\\.dtd")
  4838. (string-append xmldoc "/docbookx.dtd"))))))
  4839. (add-after 'install 'move-doc
  4840. (lambda* (#:key outputs #:allow-other-keys)
  4841. (let ((out (assoc-ref outputs "out"))
  4842. (doc (assoc-ref outputs "doc")))
  4843. (mkdir-p (string-append doc "/share"))
  4844. (copy-recursively (string-append out "/share/gtk-doc")
  4845. (string-append doc "/share/gtk-doc"))
  4846. (delete-file-recursively
  4847. (string-append out "/share/gtk-doc")))))))))
  4848. (native-inputs (modify-inputs (package-native-inputs libsoup-minimal)
  4849. (prepend docbook-xml-4.1.2 gtk-doc)))))
  4850. (define-public libsecret
  4851. (package
  4852. (name "libsecret")
  4853. (version "0.20.4")
  4854. (source (origin
  4855. (method url-fetch)
  4856. (uri (string-append
  4857. "mirror://gnome/sources/libsecret/"
  4858. (version-major+minor version) "/"
  4859. "libsecret-" version ".tar.xz"))
  4860. (sha256
  4861. (base32
  4862. "0a4xnfmraxchd9cq5ai66j12jv2vrgjmaaxz25kl031jvda4qnij"))))
  4863. (build-system gnu-build-system)
  4864. (outputs '("out" "doc"))
  4865. (arguments
  4866. `(#:tests? #f ; FIXME: Testing hangs.
  4867. #:configure-flags
  4868. (list (string-append "--with-html-dir="
  4869. (assoc-ref %outputs "doc")
  4870. "/share/gtk-doc/html"))))
  4871. (native-inputs
  4872. `(("gettext" ,gettext-minimal)
  4873. ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
  4874. ("gobject-introspection" ,gobject-introspection)
  4875. ("pkg-config" ,pkg-config)
  4876. ("vala" ,vala)
  4877. ("xsltproc" ,libxslt)))
  4878. ;; These are needed for the tests.
  4879. ;; FIXME: Add gjs once available.
  4880. ;("dbus" ,dbus)
  4881. ;("python2" ,python-2)
  4882. ;("python2-dbus" ,python2-dbus)
  4883. ;("python2-pygobject" ,python2-pygobject)
  4884. ;("python2-pygobject-2" ,python2-pygobject-2)))
  4885. (propagated-inputs
  4886. (list glib)) ; required by libsecret-1.pc
  4887. (inputs
  4888. ;; The ‘build’ phase complains about missing docbook-xml-4.2 but adding it
  4889. ;; doesn't seem to affect the build result.
  4890. (list docbook-xsl libgcrypt libxml2)) ; for XML_CATALOG_FILES
  4891. (home-page "https://wiki.gnome.org/Projects/Libsecret/")
  4892. (synopsis "GObject bindings for \"Secret Service\" API")
  4893. (description
  4894. "Libsecret is a GObject based library for storing and retrieving passwords
  4895. and other secrets. It communicates with the \"Secret Service\" using DBus.")
  4896. (license license:lgpl2.1+)))
  4897. (define-public five-or-more
  4898. (package
  4899. (name "five-or-more")
  4900. (version "3.32.2")
  4901. (source
  4902. (origin
  4903. (method url-fetch)
  4904. (uri (string-append "mirror://gnome/sources/five-or-more/"
  4905. (version-major+minor version) "/"
  4906. "five-or-more-" version ".tar.xz"))
  4907. (sha256
  4908. (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
  4909. (build-system meson-build-system)
  4910. (arguments
  4911. '(#:glib-or-gtk? #t
  4912. #:phases
  4913. (modify-phases %standard-phases
  4914. (add-after 'unpack 'skip-gtk-update-icon-cache
  4915. (lambda _
  4916. (substitute* "meson_post_install.py"
  4917. (("gtk-update-icon-cache") (which "true")))
  4918. #t)))))
  4919. (native-inputs
  4920. `(("pkg-config" ,pkg-config)
  4921. ("appstream-glib" ,appstream-glib)
  4922. ("desktop-file-utils" ,desktop-file-utils)
  4923. ("glib:bin" ,glib "bin") ; for glib-compile-resources
  4924. ("intltool" ,intltool)
  4925. ("itstool" ,itstool)
  4926. ("vala" ,vala)
  4927. ("xmllint" ,libxml2)))
  4928. (inputs
  4929. (list gtk+ libgnome-games-support librsvg))
  4930. (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
  4931. (synopsis "Logic puzzle game")
  4932. (description "Five or More is a game where you try to align
  4933. five or more objects of the same color and shape causing them to disappear.
  4934. On every turn more objects will appear, until the board is full.
  4935. Try to last as long as possible.")
  4936. (license license:gpl2+)))
  4937. (define-public gnome-mines
  4938. (package
  4939. (name "gnome-mines")
  4940. (version "40.0")
  4941. (source
  4942. (origin
  4943. (method url-fetch)
  4944. (uri (string-append "mirror://gnome/sources/" name "/"
  4945. (version-major version) "/"
  4946. name "-" version ".tar.xz"))
  4947. (sha256
  4948. (base32 "0sf6kdvhr4pr3hddnj6ql9larz2wy108sri31id6x9g459nbly8z"))))
  4949. (build-system meson-build-system)
  4950. (arguments
  4951. `(#:glib-or-gtk? #t
  4952. #:phases
  4953. (modify-phases %standard-phases
  4954. (add-after 'unpack 'skip-gtk-update-icon-cache
  4955. (lambda _
  4956. (substitute* "build-aux/meson_post_install.py"
  4957. (("gtk-update-icon-cache") (which "true"))))))))
  4958. (native-inputs
  4959. `(("glib:bin" ,glib "bin") ; for glib-compile-resources
  4960. ("pkg-config" ,pkg-config)
  4961. ("desktop-file-utils" ,desktop-file-utils)
  4962. ("intltool" ,intltool)
  4963. ("itstool" ,itstool)
  4964. ("python" ,python-wrapper) ; for meson_post_install.py
  4965. ("vala" ,vala)
  4966. ("yelp" ,yelp)
  4967. ("appstream-glib" ,appstream-glib)))
  4968. (inputs
  4969. (list gtk+ libgnome-games-support librsvg))
  4970. (home-page "https://wiki.gnome.org/Apps/Mines")
  4971. (synopsis "Minesweeper game")
  4972. (description
  4973. "Mines (previously gnomine) is a puzzle game where you locate mines
  4974. floating in an ocean using only your brain and a little bit of luck.")
  4975. (license license:gpl2+)))
  4976. (define-public gnome-multi-writer
  4977. (package
  4978. (name "gnome-multi-writer")
  4979. (version "3.35.90")
  4980. (source
  4981. (origin
  4982. (method url-fetch)
  4983. (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
  4984. (version-major+minor version) "/"
  4985. "gnome-multi-writer-" version ".tar.xz"))
  4986. (sha256
  4987. (base32
  4988. "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
  4989. (build-system meson-build-system)
  4990. (arguments
  4991. '(#:glib-or-gtk? #t
  4992. #:phases
  4993. (modify-phases %standard-phases
  4994. (add-after 'unpack 'skip-post-install
  4995. (lambda _
  4996. (substitute* "meson.build"
  4997. (("meson.add_install_script" &) (string-append "# " &)))
  4998. #t)))))
  4999. (native-inputs
  5000. `(("glib:bin" ,glib "bin")
  5001. ("pkg-config" ,pkg-config)))
  5002. (inputs
  5003. (list gtk+
  5004. glib ; for gio
  5005. gusb
  5006. udisks
  5007. libgudev
  5008. libcanberra
  5009. polkit))
  5010. (home-page "https://wiki.gnome.org/Apps/MultiWriter")
  5011. (synopsis "Write to multiple USB devices at once")
  5012. (description
  5013. "MultiWriter can be used to write an ISO file to multiple USB devices at
  5014. once.")
  5015. (license license:gpl2+)))
  5016. (define-public gnome-sudoku
  5017. (package
  5018. (name "gnome-sudoku")
  5019. (version "40.2")
  5020. (source
  5021. (origin
  5022. (method url-fetch)
  5023. (uri (string-append "mirror://gnome/sources/" name "/"
  5024. (version-major version) "/"
  5025. name "-" version ".tar.xz"))
  5026. (sha256
  5027. (base32
  5028. "18slsxifad5cjz4fqi818i66jc9b7kzgn01qxa0ra4y7wcqha4in"))))
  5029. (build-system meson-build-system)
  5030. (arguments
  5031. `(#:glib-or-gtk? #t
  5032. #:phases
  5033. (modify-phases %standard-phases
  5034. (add-after 'unpack 'skip-gtk-update-icon-cache
  5035. (lambda _
  5036. (substitute* "build-aux/post_install.py"
  5037. (("gtk-update-icon-cache") (which "true"))))))))
  5038. (native-inputs
  5039. (list pkg-config
  5040. python ;for 'build-aux/post_install.py'
  5041. desktop-file-utils
  5042. `(,glib "bin") ;for glib-compile-resources
  5043. intltool
  5044. itstool
  5045. vala
  5046. libxml2))
  5047. (inputs
  5048. (list gtk+ json-glib libgee librsvg qqwing))
  5049. (home-page "https://wiki.gnome.org/Apps/Sudoku")
  5050. (synopsis "Japanese logic game")
  5051. (description
  5052. "Sudoku is a Japanese logic game that exploded in popularity in 2005.
  5053. GNOME Sudoku is meant to have an interface as simple and unobstrusive as
  5054. possible while still providing features that make playing difficult Sudoku
  5055. more fun.")
  5056. (license license:gpl2+)))
  5057. (define-public gnome-terminal
  5058. (package
  5059. (name "gnome-terminal")
  5060. (version "3.40.3")
  5061. (source
  5062. (origin
  5063. (method url-fetch)
  5064. (uri (string-append "mirror://gnome/sources/" name "/"
  5065. (version-major+minor version) "/"
  5066. name "-" version ".tar.xz"))
  5067. (sha256
  5068. (base32
  5069. "08hsic7sn32xw12i3j0ard2bhfhp8gmzqm0pa8xzl5l1jhzsmsfb"))))
  5070. (build-system glib-or-gtk-build-system)
  5071. (arguments
  5072. '(#:configure-flags
  5073. (list "--disable-migration" "--disable-search-provider"
  5074. "--without-nautilus-extension")
  5075. #:phases
  5076. (modify-phases %standard-phases
  5077. (add-before 'configure 'patch-/bin/true
  5078. (lambda _
  5079. (substitute* "configure"
  5080. (("/bin/true") (which "true"))))))))
  5081. (native-inputs
  5082. `(("docbook-xsl" ,docbook-xsl)
  5083. ("pkg-config" ,pkg-config)
  5084. ("desktop-file-utils" ,desktop-file-utils)
  5085. ("intltool" ,intltool)
  5086. ("itstool" ,itstool)
  5087. ("libxslt" ,libxslt)
  5088. ("xmllint" ,libxml2)))
  5089. (propagated-inputs
  5090. (list dconf))
  5091. (inputs
  5092. (list gtk+
  5093. vte
  5094. gnutls
  5095. gsettings-desktop-schemas
  5096. `(,util-linux "lib")
  5097. vala))
  5098. (home-page "https://wiki.gnome.org/Apps/Terminal")
  5099. (synopsis "Terminal emulator")
  5100. (description
  5101. "GNOME Terminal is a terminal emulator application for accessing a
  5102. UNIX shell environment which can be used to run programs available on
  5103. your system.
  5104. It supports several profiles, multiple tabs and implements several
  5105. keyboard shortcuts.")
  5106. (license license:gpl3+)))
  5107. (define-public colord-minimal
  5108. (package
  5109. (name "colord-minimal")
  5110. (version "1.4.5")
  5111. (source
  5112. (origin
  5113. (method url-fetch)
  5114. (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
  5115. "colord-" version ".tar.xz"))
  5116. (sha256
  5117. (base32 "05sydi6qqqx1rrqwnga1vbg9srkf89wdcfw5w4p4m7r37m2flx5p"))))
  5118. (build-system meson-build-system)
  5119. (arguments
  5120. '( ;; FIXME: One test fails:
  5121. ;; /colord/icc-store (in lib/colord/colord-self-test-private):
  5122. ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
  5123. ;; application/x-zerosize
  5124. #:tests? #f
  5125. #:glib-or-gtk? #t
  5126. #:configure-flags (list "-Dargyllcms_sensor=false" ;requires spotread
  5127. "-Dbash_completion=false"
  5128. "-Ddaemon_user=colord"
  5129. "-Ddocs=false"
  5130. "-Dlocalstatedir=/var"
  5131. "-Dman=false"
  5132. "-Dsane=true"
  5133. "-Dsystemd=false") ;no systemd
  5134. #:phases
  5135. (modify-phases %standard-phases
  5136. (add-before 'configure 'patch-build-system
  5137. (lambda* (#:key outputs #:allow-other-keys)
  5138. (substitute* "rules/meson.build"
  5139. (("udev.get_pkgconfig_variable\\('udevdir'\\)")
  5140. (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))))
  5141. (add-before 'configure 'set-sqlite3-file-name
  5142. (lambda* (#:key inputs #:allow-other-keys)
  5143. ;; "colormgr dump" works by invoking the "sqlite3" command.
  5144. ;; Record its absolute file name.
  5145. (let ((sqlite (assoc-ref inputs "sqlite")))
  5146. (substitute* "client/cd-util.c"
  5147. (("\"sqlite3\"")
  5148. (string-append "\"" sqlite "/bin/sqlite3\"")))))))))
  5149. (native-inputs
  5150. `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
  5151. ("gettext" ,gettext-minimal)
  5152. ("pkg-config" ,pkg-config)
  5153. ("vala" ,vala)))
  5154. (propagated-inputs
  5155. ;; colord.pc refers to all these.
  5156. `(("glib" ,glib)
  5157. ("lcms" ,lcms)
  5158. ("udev" ,eudev)))
  5159. (inputs
  5160. `(("dbus-glib" ,dbus-glib)
  5161. ("gobject-introspection" ,gobject-introspection)
  5162. ("gusb" ,gusb-minimal)
  5163. ("libgudev" ,libgudev)
  5164. ("libusb" ,libusb)
  5165. ("polkit" ,polkit)
  5166. ("python" ,python-wrapper)
  5167. ("sqlite" ,sqlite)
  5168. ("sane-backends" ,sane-backends)))
  5169. (home-page "https://www.freedesktop.org/software/colord/")
  5170. (synopsis "Color management service")
  5171. (description "Colord is a system service that makes it easy to manage,
  5172. install and generate color profiles to accurately color manage input and
  5173. output devices.")
  5174. (license license:gpl2+)))
  5175. (define-public colord
  5176. (package/inherit colord-minimal
  5177. (name "colord")
  5178. (arguments
  5179. (substitute-keyword-arguments
  5180. (package-arguments colord-minimal)
  5181. ((#:configure-flags flags)
  5182. `(begin
  5183. (use-modules (srfi srfi-1))
  5184. (append '("-Dbash_completion=true"
  5185. "-Ddocs=true"
  5186. "-Dman=true"
  5187. "-Dvapi=true")
  5188. (fold delete ,flags '("-Dbash_completion=false"
  5189. "-Ddocs=false"
  5190. "-Dman=false")))))
  5191. ((#:phases phases)
  5192. `(modify-phases ,phases
  5193. (add-after 'unpack 'fix-bash-completion-dir
  5194. (lambda* (#:key outputs #:allow-other-keys)
  5195. (substitute* "data/meson.build"
  5196. (("bash_completion.get_pkgconfig_variable\
  5197. \\('completionsdir'\\)")
  5198. (string-append "'" (assoc-ref outputs "out")
  5199. "/etc/bash_completion.d'")))))))))
  5200. (native-inputs
  5201. (append
  5202. `(("bash-completion" ,bash-completion)
  5203. ("docbook-xsl-ns" ,docbook-xsl-ns)
  5204. ("gtk-doc" ,gtk-doc/stable)
  5205. ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
  5206. ("libxslt" ,libxslt)
  5207. ("vala" ,vala)) ;for VAPI, needed by simple-scan
  5208. (package-native-inputs colord-minimal)))))
  5209. (define-public geoclue
  5210. (package
  5211. (name "geoclue")
  5212. (version "2.5.7")
  5213. (source
  5214. (origin
  5215. (method url-fetch)
  5216. (uri
  5217. (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
  5218. version "/geoclue-" version ".tar.bz2"))
  5219. (sha256
  5220. (base32 "09ww26a76kanldhgwnn5sqy9ly2940k45zpp68spykkv2zjdpivc"))
  5221. (patches (search-patches "geoclue-config.patch"))))
  5222. (build-system meson-build-system)
  5223. (arguments
  5224. '(#:configure-flags (list "-Ddbus-srv-user=geoclue")))
  5225. (native-inputs
  5226. (list pkg-config
  5227. gobject-introspection
  5228. modem-manager
  5229. libnotify
  5230. gtk-doc/stable
  5231. intltool))
  5232. (inputs
  5233. `(("avahi" ,avahi)
  5234. ("glib:bin" ,glib "bin")
  5235. ("glib-networking" ,glib-networking)
  5236. ("json-glib" ,json-glib)
  5237. ("libsoup" ,libsoup-minimal-2)))
  5238. (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
  5239. (synopsis "Geolocation service")
  5240. (description "Geoclue is a D-Bus service that provides location
  5241. information. The primary goal of the Geoclue project is to make creating
  5242. location-aware applications as simple as possible, while the secondary goal is
  5243. to ensure that no application can access location information without explicit
  5244. permission from user.")
  5245. (license license:gpl2+)))
  5246. (define-public geocode-glib
  5247. (package
  5248. (name "geocode-glib")
  5249. (version "3.26.2")
  5250. (source (origin
  5251. (method url-fetch)
  5252. (uri (string-append "mirror://gnome/sources/geocode-glib/"
  5253. (version-major+minor version) "/"
  5254. "geocode-glib-" version ".tar.xz"))
  5255. (sha256
  5256. (base32
  5257. "1l8g0f13xgkrk335afr9w8k46mziwb2jnyhl07jccl5yl37q9zh1"))))
  5258. (build-system meson-build-system)
  5259. (arguments
  5260. `(#:phases
  5261. (modify-phases %standard-phases
  5262. ;; The tests require a bunch of locales.
  5263. (add-before 'check 'set-locales
  5264. (lambda* (#:key inputs #:allow-other-keys)
  5265. (setenv "GUIX_LOCPATH"
  5266. (search-input-directory inputs "lib/locale")))))))
  5267. (native-inputs
  5268. `(("glib:bin" ,glib "bin") ; for glib-mkenums
  5269. ("glibc-locales" ,glibc-locales) ; for tests
  5270. ("gettext" ,gettext-minimal)
  5271. ("gobject-introspection" ,gobject-introspection)
  5272. ("gtk-doc" ,gtk-doc/stable)
  5273. ("pkg-config" ,pkg-config)
  5274. ("json-glib" ,json-glib)))
  5275. (propagated-inputs
  5276. ;; geocode-glib-1.0.pc refers to GIO.
  5277. (list glib))
  5278. (inputs
  5279. `(("libsoup" ,libsoup-minimal-2)))
  5280. (home-page "https://github.com/GNOME/geocode-glib/")
  5281. (synopsis "Geocoding and reverse-geocoding library")
  5282. (description
  5283. "geocode-glib is a convenience library for geocoding (finding longitude,
  5284. and latitude from an address) and reverse geocoding (finding an address from
  5285. coordinates) using the Nominatim service. geocode-glib caches requests for
  5286. faster results and to avoid unnecessary server load.")
  5287. (license license:lgpl2.0+)))
  5288. (define-public upower
  5289. (package
  5290. (name "upower")
  5291. (version "0.99.15")
  5292. (source
  5293. (origin
  5294. (method git-fetch)
  5295. (uri (git-reference
  5296. (url "https://gitlab.freedesktop.org/upower/upower")
  5297. (commit (string-append "v" version))))
  5298. (file-name (git-file-name name version))
  5299. (sha256
  5300. (base32 "1zk7w7pw8dhlnxhxzcbk33gmxmg8f32mppd67556v9z2qgcg4lhs"))
  5301. (modules '((guix build utils)))
  5302. (snippet
  5303. ;; Upstream commit
  5304. ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
  5305. ;; moved 'dbus-1/system.d' from etc/ to share/. However,
  5306. ;; 'dbus-configuration-directory' in (gnu services dbus)
  5307. ;; expects it in etc/. Thus, move it back to its previous
  5308. ;; location.
  5309. #~(substitute* "src/meson.build"
  5310. (("dbusdir / 'system.d'")
  5311. "get_option('sysconfdir') / 'dbus-1/system.d'")
  5312. ;; Avoid writing to /var during the build, this is
  5313. ;; not possible in Guix!
  5314. (("^install_subdir\\('does-not-exist'.*$") "")))))
  5315. (build-system meson-build-system)
  5316. (arguments
  5317. (list
  5318. #:glib-or-gtk? #t
  5319. #:configure-flags
  5320. #~(list "-Dsystemdsystemunitdir=no"
  5321. ;; If not specified, udev will try putting history information
  5322. ;; in /gnu/store.
  5323. "-Dhistorydir=/var/lib/upower"
  5324. (string-append "-Dudevrulesdir=" #$output "/bin/udev/rules.d"))))
  5325. (native-inputs
  5326. (list `(,glib "bin") ; for gdbus-codegen
  5327. gobject-introspection
  5328. gtk-doc
  5329. intltool
  5330. pkg-config
  5331. python
  5332. ;; For tests.
  5333. python-dbus
  5334. python-dbusmock
  5335. python-packaging
  5336. python-pygobject
  5337. umockdev
  5338. ;; For man pages.
  5339. docbook-xsl
  5340. libxslt ; for 'xsltproc'
  5341. libxml2)) ; for 'XML_CATALOG_FILES'
  5342. (inputs
  5343. (list dbus-glib libgudev libusb))
  5344. (propagated-inputs
  5345. ;; In Requires of upower-glib.pc.
  5346. (list glib))
  5347. (home-page "https://upower.freedesktop.org/")
  5348. (synopsis "System daemon for managing power devices")
  5349. (description
  5350. "UPower is an abstraction for enumerating power devices,
  5351. listening to device events and querying history and statistics. Any
  5352. application or service on the system can access the org.freedesktop.UPower
  5353. service via the system message bus.")
  5354. (license license:gpl2+)
  5355. ;; Old versions of upower are tagged as UPOWER_0_99_13, which confuses
  5356. ;; the 'generic-git' updater. Give it a little help.
  5357. (properties '((release-tag-prefix . "v")
  5358. (release-tag-version-delimiter . ".")))))
  5359. (define-public libgweather
  5360. (package
  5361. (name "libgweather")
  5362. (version "40.0")
  5363. (source (origin
  5364. (method url-fetch)
  5365. (uri (string-append "mirror://gnome/sources/" name "/"
  5366. (version-major version) "/"
  5367. name "-" version ".tar.xz"))
  5368. (sha256
  5369. (base32
  5370. "1rkf4yv43qcahyx7bismdv6z2vh5azdnm1fqfmnzrada9cm8ykna"))))
  5371. (build-system meson-build-system)
  5372. (arguments
  5373. `(#:tests? #f ; one of two tests requires network access
  5374. #:configure-flags
  5375. `(,(string-append "-Dzoneinfo_dir="
  5376. (assoc-ref %build-inputs "tzdata")
  5377. "/share/zoneinfo"))))
  5378. (native-inputs
  5379. `(("glib:bin" ,glib "bin") ; for glib-mkenums
  5380. ("gobject-introspection" ,gobject-introspection)
  5381. ("pkg-config" ,pkg-config)
  5382. ("python" ,python)
  5383. ("vala" ,vala)
  5384. ("intltool" ,intltool)
  5385. ("python-pygobject" ,python-pygobject)))
  5386. (propagated-inputs
  5387. ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
  5388. ;; libsoup.
  5389. `(("gtk+" ,gtk+)
  5390. ("gdk-pixbuf" ,gdk-pixbuf)
  5391. ("libxml2" ,libxml2)
  5392. ("libsoup" ,libsoup-minimal-2)
  5393. ("geocode-glib" ,geocode-glib)))
  5394. (inputs
  5395. (list tzdata))
  5396. (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
  5397. (synopsis "Location, time zone, and weather library for GNOME")
  5398. (description
  5399. "libgweather is a library to access weather information from online
  5400. services for numerous locations.")
  5401. (license license:gpl2+)))
  5402. (define-public gnome-settings-daemon
  5403. (package
  5404. (name "gnome-settings-daemon")
  5405. (version "41.0")
  5406. (source
  5407. (origin
  5408. (method url-fetch)
  5409. (uri (string-append "mirror://gnome/sources/" name "/"
  5410. (version-major version) "/"
  5411. name "-" version ".tar.xz"))
  5412. (sha256
  5413. (base32
  5414. "111qcvlqjpasnswdniy5n53wyrs1y7a91qx1w4nsppnizdhn7jp6"))
  5415. (patches (search-patches "gnome-settings-daemon-gc.patch"))))
  5416. (build-system meson-build-system)
  5417. (arguments
  5418. `(#:glib-or-gtk? #t
  5419. #:configure-flags
  5420. (list (string-append "-Dudev_dir="
  5421. (assoc-ref %outputs "out") "/lib/udev")
  5422. "-Dsystemd=false"
  5423. ;; Otherwise, the RUNPATH will lack the final path component.
  5424. (string-append "-Dc_link_args=-Wl,-rpath="
  5425. (assoc-ref %outputs "out")
  5426. "/lib/gnome-settings-daemon-3.0"))
  5427. #:phases (modify-phases %standard-phases
  5428. (add-before 'configure 'set-baobab-file-name
  5429. (lambda* (#:key inputs #:allow-other-keys)
  5430. ;; Hard-code the file name of Baobab instead of looking
  5431. ;; it up in $PATH. This ensures users get the "Examine"
  5432. ;; button in the low disk space notification of GDM even
  5433. ;; if they don't have GNOME in their main profile.
  5434. (let ((baobab (assoc-ref inputs "baobab")))
  5435. (substitute* "plugins/housekeeping/gsd-disk-space.c"
  5436. (("g_find_program_in_path \\(DISK_SPACE_ANALYZER\\)")
  5437. (string-append "g_strdup (\"" baobab
  5438. "/bin/baobab\")")))))))
  5439. ;; Color management test can't reach the colord system service.
  5440. #:tests? #f))
  5441. (native-inputs
  5442. `(("glib:bin" ,glib "bin") ; for glib-mkenums
  5443. ("pkg-config" ,pkg-config)
  5444. ("intltool" ,intltool)
  5445. ("xsltproc" ,libxslt)
  5446. ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
  5447. ("docbook-xml" ,docbook-xml-4.2)
  5448. ("docbook-xsl" ,docbook-xsl)))
  5449. (inputs
  5450. (list alsa-lib
  5451. baobab
  5452. colord
  5453. libgudev
  5454. upower
  5455. polkit
  5456. pulseaudio
  5457. libcanberra
  5458. libx11
  5459. libxtst
  5460. lcms
  5461. libnotify
  5462. geoclue
  5463. geocode-glib
  5464. libgweather
  5465. gnome-desktop
  5466. nss
  5467. cups
  5468. gsettings-desktop-schemas
  5469. libwacom
  5470. (librsvg-for-system)
  5471. xf86-input-wacom
  5472. wayland
  5473. network-manager
  5474. gcr
  5475. modem-manager))
  5476. (home-page "https://www.gnome.org")
  5477. (synopsis "GNOME settings daemon")
  5478. (description
  5479. "This package contains the daemon responsible for setting the various
  5480. parameters of a GNOME session and the applications that run under it. It
  5481. handles settings such keyboard layout, shortcuts, and accessibility, clipboard
  5482. settings, themes, mouse settings, and startup of other daemons.")
  5483. (license license:gpl2+)))
  5484. (define-public totem-pl-parser
  5485. (package
  5486. (name "totem-pl-parser")
  5487. (version "3.26.6")
  5488. (source (origin
  5489. (method url-fetch)
  5490. (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
  5491. (version-major+minor version) "/"
  5492. "totem-pl-parser-" version ".tar.xz"))
  5493. (sha256
  5494. (base32
  5495. "075csd5x0frgf93jvhlqiwv5i0qm24zz3iw17jj7v7fgsml0zpy0"))))
  5496. (build-system meson-build-system)
  5497. (arguments
  5498. ;; FIXME: Tests require gvfs.
  5499. `(#:tests? #f))
  5500. (native-inputs
  5501. (list intltool
  5502. `(,glib "bin") gobject-introspection pkg-config))
  5503. (propagated-inputs
  5504. (list glib gmime libarchive libgcrypt libxml2))
  5505. (inputs
  5506. (list libsoup))
  5507. (home-page "https://projects.gnome.org/totem")
  5508. (synopsis "Library to parse and save media playlists for GNOME")
  5509. (description "Totem-pl-parser is a GObjects-based library to parse and save
  5510. playlists in a variety of formats.")
  5511. (license license:lgpl2.0+)))
  5512. (define-public aisleriot
  5513. (package
  5514. (name "aisleriot")
  5515. (version "3.22.9")
  5516. (source (origin
  5517. (method url-fetch)
  5518. (uri (string-append "mirror://gnome/sources/aisleriot/"
  5519. (version-major+minor version) "/"
  5520. "aisleriot-" version ".tar.xz"))
  5521. (sha256
  5522. (base32
  5523. "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
  5524. (build-system glib-or-gtk-build-system)
  5525. (arguments
  5526. '(#:configure-flags
  5527. '("--with-platform=gtk-only"
  5528. "--with-card-theme-formats=svg")))
  5529. (native-inputs
  5530. `(("desktop-file-utils" ,desktop-file-utils)
  5531. ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
  5532. ("intltool" ,intltool)
  5533. ("itstool" ,itstool)
  5534. ("pkg-config" ,pkg-config)
  5535. ("xmllint" ,libxml2)))
  5536. (inputs
  5537. (list gtk+ guile-2.2 libcanberra librsvg))
  5538. (home-page "https://wiki.gnome.org/Apps/Aisleriot")
  5539. (synopsis "Solitaire card games")
  5540. (description
  5541. "Aisleriot (also known as Solitaire or sol) is a collection of card games
  5542. which are easy to play with the aid of a mouse.")
  5543. (license license:gpl3+)))
  5544. (define-public amtk
  5545. (package
  5546. (name "amtk")
  5547. (version "5.3.1")
  5548. (source (origin
  5549. (method url-fetch)
  5550. (uri (string-append "mirror://gnome/sources/amtk/"
  5551. (version-major+minor version) "/"
  5552. "amtk-" version ".tar.xz"))
  5553. (sha256
  5554. (base32
  5555. "12v3nj1bb7507ndprjggq0hpz8k719b4bwvl8sm43p3ibmn27anm"))))
  5556. (build-system meson-build-system)
  5557. (native-inputs
  5558. (list gobject-introspection
  5559. `(,glib "bin") ; for glib-mkenums
  5560. gtk-doc/stable pkg-config))
  5561. (inputs
  5562. (list glib gtk+))
  5563. (home-page "https://wiki.gnome.org/Projects/Amtk")
  5564. (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
  5565. (description
  5566. "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
  5567. It is a basic GtkUIManager replacement based on GAction. It is suitable for
  5568. both a traditional UI or a modern UI with a GtkHeaderBar.")
  5569. (license license:lgpl2.1+)))
  5570. (define-public devhelp
  5571. (package
  5572. (name "devhelp")
  5573. (version "41.2")
  5574. (source (origin
  5575. (method url-fetch)
  5576. (uri (string-append "mirror://gnome/sources/" name "/"
  5577. (version-major version) "/"
  5578. name "-" version ".tar.xz"))
  5579. (sha256
  5580. (base32
  5581. "1lk0gycjvs6gibhy0zs3ffkrkzrkyl5nkp7n60hgpa6syjq91apc"))))
  5582. (build-system meson-build-system)
  5583. (arguments
  5584. `(#:glib-or-gtk? #t
  5585. #:phases
  5586. (modify-phases %standard-phases
  5587. (add-after 'unpack 'skip-gtk-update-icon-cache
  5588. ;; Don't create 'icon-theme.cache'.
  5589. (lambda _
  5590. (substitute* "build-aux/meson/meson_post_install.py"
  5591. (("gtk-update-icon-cache") "true"))))
  5592. (add-after 'unpack 'fix-devhelp-gir-inputs
  5593. ;; It still mentions webkitgtk 4.0
  5594. (lambda _
  5595. (substitute* "devhelp/meson.build"
  5596. (("'WebKit2-4.0'") "'WebKit2-4.1'")))))))
  5597. (propagated-inputs
  5598. (list gsettings-desktop-schemas))
  5599. (native-inputs
  5600. `(("intltool" ,intltool)
  5601. ("itstool" ,itstool)
  5602. ("gobject-introspection" ,gobject-introspection)
  5603. ("glib:bin" ,glib "bin") ; for glib-mkmenus
  5604. ("pkg-config" ,pkg-config)))
  5605. (inputs
  5606. (list amtk gsettings-desktop-schemas webkitgtk))
  5607. (home-page "https://wiki.gnome.org/Apps/Devhelp")
  5608. (synopsis "API documentation browser for GNOME")
  5609. (description
  5610. "Devhelp is an API documentation browser for GTK+ and GNOME. It works
  5611. natively with GTK-Doc (the API reference system developed for GTK+ and used
  5612. throughout GNOME for API documentation).")
  5613. (license license:gpl2+)))
  5614. (define-public devhelp-with-libsoup2
  5615. (package/inherit devhelp
  5616. (arguments
  5617. (substitute-keyword-arguments (package-arguments devhelp)
  5618. ((#:phases phases '%standard-phases)
  5619. `(modify-phases %standard-phases
  5620. (add-after 'unpack 'skip-gtk-update-icon-cache
  5621. ;; Don't create 'icon-theme.cache'.
  5622. (lambda _
  5623. (substitute* "build-aux/meson/meson_post_install.py"
  5624. (("gtk-update-icon-cache") "true"))))))))
  5625. (inputs
  5626. `(("amtk" ,amtk)
  5627. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  5628. ("webkitgtk" ,webkitgtk-with-libsoup2)))))
  5629. (define-public cogl
  5630. (package
  5631. (name "cogl")
  5632. (version "1.22.8")
  5633. (source
  5634. (origin
  5635. (method url-fetch)
  5636. (uri (string-append "mirror://gnome/sources/cogl/"
  5637. (version-major+minor version) "/"
  5638. "cogl-" version ".tar.xz"))
  5639. (sha256
  5640. (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
  5641. ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
  5642. ;; cogl, corresponding changes may be appropriate in mutter as well.
  5643. (build-system gnu-build-system)
  5644. (native-inputs
  5645. `(("glib:bin" ,glib "bin") ; for glib-mkenums
  5646. ("gobject-introspection" ,gobject-introspection)
  5647. ("xorg-server" ,xorg-server-for-tests)
  5648. ("pkg-config" ,pkg-config)))
  5649. (propagated-inputs
  5650. (list glib
  5651. gdk-pixbuf
  5652. libx11
  5653. libxext
  5654. libxfixes
  5655. libxdamage
  5656. libxcomposite
  5657. libxrandr))
  5658. (inputs
  5659. (list mesa
  5660. cairo
  5661. pango
  5662. gstreamer
  5663. gst-plugins-base
  5664. wayland))
  5665. (arguments
  5666. `(#:disallowed-references (,xorg-server-for-tests)
  5667. #:configure-flags (list "--enable-cogl-gst"
  5668. "--enable-wayland-egl-platform"
  5669. "--enable-wayland-egl-server"
  5670. ;; Arrange to pass an absolute file name to
  5671. ;; dlopen for libGL.so.
  5672. (string-append "--with-gl-libname="
  5673. (assoc-ref %build-inputs "mesa")
  5674. "/lib/libGL.so"))
  5675. #:phases
  5676. (modify-phases %standard-phases
  5677. (add-after 'unpack 'fix-build-with-mesa-20
  5678. (lambda _
  5679. ;; Work around a problem with Mesa 20 where some macros used by
  5680. ;; Cogl went missing from eglext.h. This can likely be removed
  5681. ;; for newer versions of Cogl or Mesa.
  5682. ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
  5683. (substitute* '("configure"
  5684. "cogl/winsys/cogl-winsys-egl-kms.c")
  5685. (("#include <EGL/eglext.h>" all)
  5686. (string-append all "\n#include <EGL/eglmesaext.h>\n")))
  5687. #t))
  5688. (add-before 'check 'start-xorg-server
  5689. (lambda* (#:key tests? inputs #:allow-other-keys)
  5690. (if tests?
  5691. (begin
  5692. ;; The test suite requires a running X server.
  5693. (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
  5694. (assoc-ref inputs "xorg-server")))
  5695. (setenv "DISPLAY" ":1")
  5696. #t)
  5697. (format #t "test suite not run~%"))
  5698. #t)))))
  5699. (home-page "http://www.clutter-project.org")
  5700. (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
  5701. (description
  5702. "Cogl is a small library for using 3D graphics hardware to draw pretty
  5703. pictures. The API departs from the flat state machine style of OpenGL and is
  5704. designed to make it easy to write orthogonal components that can render
  5705. without stepping on each others toes.")
  5706. (license (list license:expat ; most of the code
  5707. license:bsd-3 ; cogl/cogl-point-in-poly.c
  5708. license:sgifreeb2.0 ; cogl-path/tesselator/
  5709. license:asl2.0)))) ; examples/android/
  5710. (define-public clutter
  5711. (package
  5712. (name "clutter")
  5713. (version "1.26.2")
  5714. (source
  5715. (origin
  5716. (method url-fetch)
  5717. (uri (string-append "mirror://gnome/sources/" name "/"
  5718. (version-major+minor version) "/"
  5719. name "-" version ".tar.xz"))
  5720. (sha256
  5721. (base32
  5722. "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
  5723. ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
  5724. ;; to clutter, corresponding changes may be appropriate in mutter as well.
  5725. (build-system gnu-build-system)
  5726. (outputs '("out"
  5727. "doc")) ;9 MiB of gtk-doc HTML pages
  5728. (native-inputs
  5729. `(("glib:bin" ,glib "bin") ; for glib-genmarshal
  5730. ("gobject-introspection" ,gobject-introspection)
  5731. ("pkg-config" ,pkg-config)
  5732. ("xsltproc" ,libxslt)))
  5733. (propagated-inputs
  5734. (list cogl
  5735. cairo
  5736. atk
  5737. gtk+
  5738. json-glib
  5739. glib
  5740. libxcomposite
  5741. libxdamage
  5742. libxext
  5743. xinput))
  5744. (inputs
  5745. `(("libxkbcommon" ,libxkbcommon)
  5746. ("udev" ,eudev)))
  5747. (arguments
  5748. `(#:configure-flags (list "--enable-x11-backend=yes"
  5749. ;; This produces share/doc/{clutter,cally}.
  5750. (string-append "--with-html-dir="
  5751. (assoc-ref %outputs "doc")
  5752. "/share/doc"))
  5753. ;; XXX FIXME: Get test suite working. It would probably fail in the
  5754. ;; same way the cogl tests fail, since clutter is based on cogl.
  5755. #:tests? #f))
  5756. (home-page "http://www.clutter-project.org")
  5757. (synopsis "OpenGL-based interactive canvas library")
  5758. (description
  5759. "Clutter is an OpenGL-based interactive canvas library, designed for
  5760. creating fast, mainly 2D single window applications such as media box UIs,
  5761. presentations, kiosk style applications and so on.")
  5762. (license license:lgpl2.0+)))
  5763. (define-public clutter-gtk
  5764. (package
  5765. (name "clutter-gtk")
  5766. (version "1.8.4")
  5767. (source
  5768. (origin
  5769. (method url-fetch)
  5770. (uri (string-append "mirror://gnome/sources/" name "/"
  5771. (version-major+minor version) "/"
  5772. name "-" version ".tar.xz"))
  5773. (sha256
  5774. (base32
  5775. "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
  5776. (build-system gnu-build-system)
  5777. (native-inputs
  5778. (list pkg-config gobject-introspection))
  5779. (propagated-inputs
  5780. ;; clutter-gtk.pc refers to all these.
  5781. (list clutter gtk+))
  5782. (home-page "http://www.clutter-project.org")
  5783. (synopsis "OpenGL-based interactive canvas library GTK+ widget")
  5784. (description
  5785. "Clutter is an OpenGL-based interactive canvas library, designed for
  5786. creating fast, mainly 2D single window applications such as media box UIs,
  5787. presentations, kiosk style applications and so on.")
  5788. (license license:lgpl2.0+)))
  5789. (define-public clutter-gst
  5790. (package
  5791. (name "clutter-gst")
  5792. (version "3.0.27")
  5793. (source
  5794. (origin
  5795. (method url-fetch)
  5796. (uri (string-append "mirror://gnome/sources/clutter-gst/"
  5797. (version-major+minor version) "/"
  5798. "clutter-gst-" version ".tar.xz"))
  5799. (sha256
  5800. (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
  5801. (build-system gnu-build-system)
  5802. (native-inputs
  5803. (list `(,glib "bin") ; for glib-mkenums
  5804. pkg-config gobject-introspection))
  5805. (inputs
  5806. (list clutter gstreamer gst-plugins-base))
  5807. (home-page "http://www.clutter-project.org")
  5808. (synopsis "Integration library for using GStreamer with Clutter")
  5809. (description
  5810. "Clutter-Gst is an integration library for using GStreamer with Clutter.
  5811. It provides a GStreamer sink to upload frames to GL and an actor that
  5812. implements the ClutterGstPlayer interface using playbin. Clutter is an
  5813. OpenGL-based interactive canvas library.")
  5814. (license license:lgpl2.0+)))
  5815. (define-public libchamplain
  5816. (package
  5817. (name "libchamplain")
  5818. (version "0.12.20")
  5819. (source (origin
  5820. (method url-fetch)
  5821. (uri (string-append
  5822. "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
  5823. version ".tar.xz"))
  5824. (sha256
  5825. (base32
  5826. "0rihpb0npqpihqcdz4w03rq6xl7jdckfqskvv9diq2hkrnzv8ch2"))))
  5827. (build-system meson-build-system)
  5828. (native-inputs
  5829. (list gobject-introspection pkg-config vala))
  5830. (propagated-inputs
  5831. (list libsoup-minimal-2
  5832. sqlite
  5833. clutter
  5834. clutter-gtk
  5835. `(,glib "bin") ;glib-mkenums, etc.
  5836. cairo
  5837. gtk+
  5838. glib))
  5839. (home-page "https://projects.gnome.org/libchamplain/")
  5840. (synopsis "C library providing a ClutterActor to display maps")
  5841. (description
  5842. "libchamplain is a C library providing a ClutterActor to display maps.
  5843. It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
  5844. and Perl bindings are also available. It supports numerous free map sources
  5845. such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
  5846. (license license:lgpl2.1+)))
  5847. (define-public gom
  5848. (package
  5849. (name "gom")
  5850. (version "0.3.2")
  5851. (source
  5852. (origin
  5853. (method url-fetch)
  5854. (uri (string-append "mirror://gnome/sources/gom/"
  5855. (version-major+minor version) "/"
  5856. "gom-" version ".tar.xz"))
  5857. (sha256
  5858. (base32
  5859. "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
  5860. (build-system gnu-build-system)
  5861. (native-inputs
  5862. (list intltool pkg-config gobject-introspection))
  5863. (inputs
  5864. (list glib gdk-pixbuf sqlite))
  5865. ;; XXX TODO: Figure out how to run the test suite.
  5866. (arguments `(#:tests? #f))
  5867. (home-page "https://wiki.gnome.org/Projects/Gom")
  5868. (synopsis "Object mapper from GObjects to SQLite")
  5869. (description
  5870. "Gom provides an object mapper from GObjects to SQLite. It helps you
  5871. write applications that need to store structured data as well as make complex
  5872. queries upon that data.")
  5873. (license license:lgpl2.1+)))
  5874. (define-public libgnome-games-support
  5875. (package
  5876. (name "libgnome-games-support")
  5877. (version "1.7.1")
  5878. (source (origin
  5879. (method url-fetch)
  5880. (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
  5881. (version-major+minor version) "/"
  5882. "libgnome-games-support-" version ".tar.xz"))
  5883. (sha256
  5884. (base32
  5885. "11g1r3ppb9v8m3anks9gxf7fv1x38vmjiya3lr7zjjv328pb69d6"))))
  5886. (build-system meson-build-system)
  5887. (arguments
  5888. '(#:glib-or-gtk? #t
  5889. #:phases
  5890. (modify-phases %standard-phases
  5891. (add-before 'check 'pre-check
  5892. (lambda _
  5893. ;; Tests require a writable HOME.
  5894. (setenv "HOME" (getcwd))
  5895. #t)))))
  5896. (native-inputs
  5897. (list intltool pkg-config vala))
  5898. (propagated-inputs
  5899. ;; Required by libgnome-games-support-1.0.pc
  5900. (list gtk+ libgee))
  5901. (home-page "https://www.gnome.org/")
  5902. (synopsis "Useful functionality shared among GNOME games")
  5903. (description
  5904. "libgnome-games-support is a small library intended for internal use by
  5905. GNOME Games, but it may be used by others.")
  5906. (license license:lgpl3+)))
  5907. (define-public gnome-klotski
  5908. (package
  5909. (name "gnome-klotski")
  5910. (version "3.34.0")
  5911. (source (origin
  5912. (method url-fetch)
  5913. (uri (string-append "mirror://gnome/sources/" name "/"
  5914. (version-major+minor version) "/"
  5915. name "-" version ".tar.xz"))
  5916. (sha256
  5917. (base32
  5918. "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
  5919. (build-system meson-build-system)
  5920. (arguments
  5921. '(#:glib-or-gtk? #t
  5922. #:phases
  5923. (modify-phases %standard-phases
  5924. (add-after 'unpack 'skip-gtk-update-icon-cache
  5925. ;; Don't create 'icon-theme.cache'.
  5926. (lambda _
  5927. (substitute* "build-aux/meson_post_install.py"
  5928. (("gtk-update-icon-cache") (which "true")))
  5929. #t)))))
  5930. (native-inputs
  5931. `(("desktop-file-utils" ,desktop-file-utils)
  5932. ("glib:bin" ,glib "bin") ; for glib-compile-resources
  5933. ("intltool" ,intltool)
  5934. ("itstool" ,itstool)
  5935. ("pkg-config" ,pkg-config)
  5936. ("vala" ,vala)
  5937. ("xmllint" ,libxml2)))
  5938. (inputs
  5939. (list gtk+ libgnome-games-support librsvg))
  5940. (home-page "https://wiki.gnome.org/Apps/Klotski")
  5941. (synopsis "Sliding block puzzles")
  5942. (description
  5943. "GNOME Klotski is a set of block sliding puzzles. The objective is to move
  5944. the patterned block to the area bordered by green markers. To do so, you will
  5945. need to slide other blocks out of the way. Complete each puzzle in as few moves
  5946. as possible!")
  5947. (license license:gpl2+)))
  5948. (define-public grilo
  5949. (package
  5950. (name "grilo")
  5951. (version "0.3.13")
  5952. (source
  5953. (origin
  5954. (method url-fetch)
  5955. (uri (string-append "mirror://gnome/sources/grilo/"
  5956. (version-major+minor version) "/"
  5957. "grilo-" version ".tar.xz"))
  5958. (sha256
  5959. (base32 "0ywjvh7xw4ql1q4fvl0q5n06n08pga1g1nc9l7c3x5214gr3fj6i"))))
  5960. (build-system meson-build-system)
  5961. (native-inputs
  5962. (list `(,glib "bin") ; for glib-mkenums and glib-genmarshal
  5963. intltool
  5964. pkg-config
  5965. gobject-introspection
  5966. gtk-doc/stable
  5967. vala))
  5968. (inputs
  5969. (list cyrus-sasl
  5970. glib
  5971. gtk+
  5972. libxml2
  5973. liboauth
  5974. libsoup-minimal-2
  5975. totem-pl-parser))
  5976. (native-search-paths
  5977. (list (search-path-specification
  5978. (variable "GRL_PLUGIN_PATH")
  5979. (files (list (string-append "lib/grilo-"
  5980. (version-major+minor version)))))))
  5981. (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
  5982. (synopsis "Framework for discovering and browsing media")
  5983. (description
  5984. "Grilo is a framework focused on making media discovery and browsing easy
  5985. for application developers.")
  5986. (license license:lgpl2.1+)))
  5987. (define-public grilo-plugins
  5988. (package
  5989. (name "grilo-plugins")
  5990. (version "0.3.13")
  5991. (source
  5992. (origin
  5993. (method url-fetch)
  5994. (uri (string-append "mirror://gnome/sources/" name "/"
  5995. (version-major+minor version) "/"
  5996. name "-" version ".tar.xz"))
  5997. (sha256
  5998. (base32 "1y10nnd711qxwgpz6spzp1rnk50fyf11kk1n71a31ab4fgb0ahqw"))))
  5999. (build-system meson-build-system)
  6000. (native-inputs
  6001. `(("gettext" ,gettext-minimal)
  6002. ("glib:bin" ,glib "bin")
  6003. ("gtk+:bin" ,gtk+ "bin")
  6004. ("itstool" ,itstool)
  6005. ("pkg-config" ,pkg-config)))
  6006. ;; TODO: ahavi, gstreamer
  6007. (inputs
  6008. `(("grilo" ,grilo)
  6009. ;("gmime" ,gmime) ; unused
  6010. ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
  6011. ("gom" ,gom)
  6012. ;("gssdp" ,gssdp) ; unused
  6013. ;("gupnp" ,gupnp) ; unused
  6014. ;("gupnp-av" ,gupnp-av) ; unused
  6015. ("json-glib" ,json-glib)
  6016. ("avahi" ,avahi)
  6017. ("libgdata" ,libgdata)
  6018. ("libmediaart" ,libmediaart)
  6019. ;("librest" ,rest) ; unused
  6020. ("libsoup" ,libsoup)
  6021. ("python-pygobject" ,python-pygobject)
  6022. ("totam-pl-parser" ,totem-pl-parser)
  6023. ("tracker" ,tracker)
  6024. ("tracker-miners" ,tracker-miners)))
  6025. (arguments
  6026. `(#:glib-or-gtk? #t
  6027. ;;Disable lua-factory as it needs missing dependencies
  6028. #:configure-flags '("-Denable-lua-factory=no")
  6029. #:phases
  6030. (modify-phases %standard-phases
  6031. (add-before 'configure 'set-shell
  6032. (lambda _
  6033. (setenv "SHELL" (which "bash"))))
  6034. ;; Disable the tracker test that requires the UPower daemon.
  6035. (add-before 'configure 'fix-tests
  6036. (lambda* (#:key inputs #:allow-other-keys)
  6037. (substitute* "tests/tracker3/meson.build"
  6038. (("'test_tracker3'.*") "")))))))
  6039. (home-page "https://live.gnome.org/Grilo")
  6040. (synopsis "Plugins for the Grilo media discovery library")
  6041. (description
  6042. "Grilo is a framework focused on making media discovery and browsing easy
  6043. for application developers. This package provides plugins for common media
  6044. discovery protocols.")
  6045. (license license:lgpl2.1+)))
  6046. (define-public totem
  6047. (package
  6048. (name "totem")
  6049. (version "3.38.1")
  6050. (source
  6051. (origin
  6052. (method url-fetch)
  6053. (uri (string-append "mirror://gnome/sources/totem/"
  6054. (version-major+minor version) "/"
  6055. "totem-" version ".tar.xz"))
  6056. (sha256
  6057. (base32 "02510lvzvxvmpcs64k6sqix8ysl7sihhhwvp0vmfv7521ryczylg"))))
  6058. (build-system meson-build-system)
  6059. (native-inputs
  6060. `(("pkg-config" ,pkg-config)
  6061. ("desktop-file-utils" ,desktop-file-utils)
  6062. ("gettext" ,gettext-minimal)
  6063. ("gobject-introspection" ,gobject-introspection)
  6064. ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
  6065. ("itstool" ,itstool)
  6066. ("xmllint" ,libxml2)
  6067. ("xorg-server" ,xorg-server-for-tests)))
  6068. (propagated-inputs
  6069. (list dconf))
  6070. (inputs
  6071. (list gtk+
  6072. gdk-pixbuf
  6073. atk
  6074. cairo
  6075. dbus-glib
  6076. clutter
  6077. clutter-gtk
  6078. clutter-gst
  6079. xorgproto
  6080. libxxf86vm
  6081. libxtst
  6082. libxrandr
  6083. libxml2
  6084. libsoup
  6085. libpeas
  6086. librsvg
  6087. lirc
  6088. gnome-desktop
  6089. gstreamer
  6090. gst-plugins-base
  6091. gst-plugins-good
  6092. gsettings-desktop-schemas
  6093. adwaita-icon-theme
  6094. python
  6095. python-pygobject
  6096. totem-pl-parser
  6097. grilo
  6098. grilo-plugins
  6099. vala))
  6100. (arguments
  6101. `(#:glib-or-gtk? #t
  6102. ;; Disable automatic GStreamer plugin installation via PackageKit and
  6103. ;; all that.
  6104. #:configure-flags '("-D" "enable-easy-codec-installation=no"
  6105. ;; Do not build .a files for the plugins, it's
  6106. ;; completely useless. This saves 2 MiB.
  6107. "--default-library" "shared")
  6108. #:phases
  6109. (modify-phases %standard-phases
  6110. (add-after 'unpack 'skip-gtk-update-icon-cache
  6111. ;; Don't create 'icon-theme.cache'.
  6112. (lambda _
  6113. (substitute* "meson_post_install.py"
  6114. (("gtk-update-icon-cache") "true"))
  6115. #t))
  6116. (add-before
  6117. 'install 'disable-cache-generation
  6118. (lambda _
  6119. (setenv "DESTDIR" "/")
  6120. #t))
  6121. (add-before
  6122. 'check 'pre-check
  6123. (lambda _
  6124. ;; Tests require a running X server.
  6125. (system "Xvfb :1 &")
  6126. (setenv "DISPLAY" ":1")
  6127. #t))
  6128. (add-after
  6129. 'install 'wrap-totem
  6130. (lambda* (#:key inputs outputs #:allow-other-keys)
  6131. (let ((out (assoc-ref outputs "out"))
  6132. (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
  6133. (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
  6134. (wrap-program (string-append out "/bin/totem")
  6135. `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
  6136. `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
  6137. (wrap-program (string-append out "/bin/totem-video-thumbnailer")
  6138. `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
  6139. #t)))))
  6140. (home-page "https://wiki.gnome.org/Apps/Videos")
  6141. (synopsis "Simple media player for GNOME based on GStreamer")
  6142. (description "Totem is a simple yet featureful media player for GNOME
  6143. which can read a large number of file formats.")
  6144. ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
  6145. ;; to be used and distributed together with GStreamer and Totem. See
  6146. ;; file://COPYING in the source distribution for details.
  6147. (license license:gpl2+)))
  6148. (define-public rhythmbox
  6149. (package
  6150. (name "rhythmbox")
  6151. (version "3.4.4")
  6152. (source (origin
  6153. (method url-fetch)
  6154. (uri (string-append "mirror://gnome/sources/rhythmbox/"
  6155. (version-major+minor version) "/"
  6156. "rhythmbox-" version ".tar.xz"))
  6157. (sha256
  6158. (base32
  6159. "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
  6160. (build-system glib-or-gtk-build-system)
  6161. (arguments
  6162. `(#:configure-flags
  6163. (list "--enable-lirc"
  6164. "--enable-python"
  6165. "--enable-vala"
  6166. "--with-brasero"
  6167. "--with-gudev"
  6168. "--with-libsecret")
  6169. #:phases
  6170. (modify-phases %standard-phases
  6171. (add-after
  6172. 'install 'wrap-rhythmbox
  6173. (lambda* (#:key inputs outputs #:allow-other-keys)
  6174. (let ((out (assoc-ref outputs "out"))
  6175. (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
  6176. (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
  6177. (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
  6178. (python-path (getenv "GUIX_PYTHONPATH")))
  6179. (wrap-program (string-append out "/bin/rhythmbox")
  6180. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
  6181. `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
  6182. `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
  6183. `("GUIX_PYTHONPATH" ":" prefix (,python-path))))
  6184. #t)))))
  6185. (propagated-inputs
  6186. (list dconf))
  6187. (native-inputs
  6188. `(("itstool" ,itstool)
  6189. ("intltool" ,intltool)
  6190. ("glib" ,glib "bin")
  6191. ("gobject-introspection" ,gobject-introspection)
  6192. ("desktop-file-utils" ,desktop-file-utils)
  6193. ("pkg-config" ,pkg-config)
  6194. ("xmllint" ,libxml2)))
  6195. (inputs
  6196. `(("json-glib" ,json-glib)
  6197. ("tdb" ,tdb)
  6198. ("gnome-desktop" ,gnome-desktop)
  6199. ("python" ,python)
  6200. ("python-pygobject" ,python-pygobject)
  6201. ("vala" ,vala)
  6202. ("gmime" ,gmime)
  6203. ("adwaita-icon-theme" ,adwaita-icon-theme)
  6204. ("grilo" ,grilo)
  6205. ("grilo-plugins" ,grilo-plugins)
  6206. ("gstreamer" ,gstreamer)
  6207. ("gst-plugins-base" ,gst-plugins-base)
  6208. ("gst-plugins-good" ,gst-plugins-good)
  6209. ("totem-pl-parser" ,totem-pl-parser)
  6210. ("libgudev" ,libgudev)
  6211. ;;("libmtp" ,libmtp) FIXME: Not detected
  6212. ("libsecret" ,libsecret)
  6213. ("libsoup" ,libsoup)
  6214. ("libnotify" ,libnotify)
  6215. ("libpeas" ,libpeas)
  6216. ("libsoup" ,libsoup-minimal-2)
  6217. ("lirc" ,lirc)
  6218. ;; TODO: clutter* only used by visualizer plugin, which also requires mx
  6219. ;;("clutter" ,clutter)
  6220. ;;("clutter-gtk" ,clutter-gtk)
  6221. ;;("clutter-gst" ,clutter-gst)
  6222. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  6223. ("atk" ,atk)
  6224. ("pango" ,pango)
  6225. ("gtk+" ,gtk+)
  6226. ;; TODO:
  6227. ;; * libgpod
  6228. ;; * mx
  6229. ("brasero" ,brasero)))
  6230. (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
  6231. (synopsis "Music player for GNOME")
  6232. (description "Rhythmbox is a music playing application for GNOME. It
  6233. supports playlists, song ratings, and any codecs installed through gstreamer.")
  6234. (license license:gpl2+)))
  6235. (define-public eog
  6236. (package
  6237. (name "eog")
  6238. (version "40.3")
  6239. (source (origin
  6240. (method url-fetch)
  6241. (uri (string-append "mirror://gnome/sources/" name "/"
  6242. (version-major version) "/"
  6243. name "-" version ".tar.xz"))
  6244. (sha256
  6245. (base32
  6246. "0ddjwcd77nw0rxb5x5bz5hd671m8gya9827p8rsnb58x103kpai8"))
  6247. ;; XXX: Remove when upgrading to 42.0
  6248. (patches (search-patches "eog-update-libportal-usage.patch"))))
  6249. (build-system meson-build-system)
  6250. (arguments
  6251. `(#:glib-or-gtk? #t
  6252. #:configure-flags
  6253. ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
  6254. (list (string-append "-Dc_link_args=-Wl,-rpath="
  6255. (assoc-ref %outputs "out") "/lib/eog"))
  6256. #:phases
  6257. (modify-phases %standard-phases
  6258. (add-after 'unpack 'skip-gtk-update-icon-cache
  6259. ;; Don't create 'icon-theme.cache'.
  6260. (lambda _
  6261. (substitute* "meson_post_install.py"
  6262. (("gtk-update-icon-cache") "true"))))
  6263. (add-after 'install 'wrap-eog
  6264. (lambda* (#:key outputs #:allow-other-keys)
  6265. (let ((out (assoc-ref outputs "out"))
  6266. (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
  6267. (wrap-program (string-append out "/bin/eog")
  6268. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))))))
  6269. (propagated-inputs
  6270. (list dconf))
  6271. (native-inputs
  6272. `(("intltool" ,intltool)
  6273. ("itstool" ,itstool)
  6274. ("glib" ,glib "bin")
  6275. ("gobject-introspection" ,gobject-introspection)
  6276. ("pkg-config" ,pkg-config)
  6277. ("xmllint" ,libxml2)))
  6278. (inputs
  6279. `(("gnome-desktop" ,gnome-desktop)
  6280. ("shared-mime-info" ,shared-mime-info)
  6281. ("adwaita-icon-theme" ,adwaita-icon-theme)
  6282. ("exempi" ,exempi)
  6283. ("lcms" ,lcms)
  6284. ("libexif" ,libexif)
  6285. ("libpeas" ,libpeas)
  6286. ("libportal" ,libportal)
  6287. ("libjpeg" ,libjpeg-turbo)
  6288. ("librsvg" ,librsvg)
  6289. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  6290. ("gtk+" ,gtk+)))
  6291. (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
  6292. (synopsis "GNOME image viewer")
  6293. (description "Eye of GNOME is the GNOME image viewer. It
  6294. supports image conversion, rotation, and slideshows.")
  6295. (license license:gpl2+)))
  6296. (define-public eog-plugins
  6297. ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
  6298. ;; $DATA/eog/plugins, where DATA is one of the entries in
  6299. ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
  6300. ;; 'XDG_DATA_DIRS' appropriately set.
  6301. (package
  6302. (name "eog-plugins")
  6303. (version "3.26.8")
  6304. (source (origin
  6305. (method url-fetch)
  6306. (uri (string-append "mirror://gnome/sources/eog-plugins/"
  6307. (version-major+minor version) "/"
  6308. "eog-plugins-" version ".tar.xz"))
  6309. (sha256
  6310. (base32
  6311. "1dcxdjp7x092wn0iq7975f9b05ksb5kl5mxmyiqmydrja91ryw40"))))
  6312. (build-system gnu-build-system)
  6313. (arguments
  6314. '(#:phases
  6315. (modify-phases %standard-phases
  6316. (add-after 'install 'fix-plugins-path
  6317. ;; XXX: EOG looks its plugins in "share/eog/plugins", not in
  6318. ;; "lib/eog/plugins".
  6319. (lambda* (#:key outputs #:allow-other-keys)
  6320. (let* ((out (assoc-ref outputs "out"))
  6321. (plugins (string-append out "/share/eog/plugins")))
  6322. (mkdir (dirname plugins))
  6323. (symlink (string-append out "/lib/eog/plugins") plugins)))))))
  6324. (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
  6325. (synopsis "Extensions for the Eye of GNOME image viewer")
  6326. (native-inputs
  6327. (list pkg-config gettext-minimal))
  6328. (inputs
  6329. (list eog
  6330. glib
  6331. gtk+
  6332. libpeas
  6333. libexif
  6334. libchamplain))
  6335. (description
  6336. "This package provides plugins for the Eye of GNOME (EOG) image viewer,
  6337. notably:
  6338. @itemize
  6339. @item @dfn{EXIF Display}, which displays camera (EXIF) information;
  6340. @item @dfn{Map}, which displays a map of where the picture was taken on the
  6341. side panel;
  6342. @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
  6343. @end itemize\n")
  6344. ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
  6345. ;; long suspicious byte stream that goes to a
  6346. ;; ".gresource.eog_postasa_plugin" ELF section.
  6347. (license license:gpl2+)))
  6348. (define-public libgudev
  6349. (package
  6350. (name "libgudev")
  6351. (version "236")
  6352. (source (origin
  6353. (method url-fetch)
  6354. (uri (string-append "mirror://gnome/sources/" name "/"
  6355. version "/" name "-" version ".tar.xz"))
  6356. (sha256
  6357. (base32
  6358. "094mgjmwgsgqrr1i0vd20ynvlkihvs3vgbmpbrhswjsrdp86j0z5"))))
  6359. (build-system meson-build-system)
  6360. (native-inputs
  6361. `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
  6362. ("gobject-introspection" ,gobject-introspection)
  6363. ("pkg-config" ,pkg-config)))
  6364. (propagated-inputs
  6365. (list glib ; in Requires of gudev-1.0.pc
  6366. eudev)) ; in Requires.private of gudev-1.0.pc
  6367. (inputs
  6368. `(("udev" ,eudev)))
  6369. (home-page "https://wiki.gnome.org/Projects/libgudev")
  6370. (synopsis "GObject bindings for libudev")
  6371. (description
  6372. "This library provides GObject bindings for libudev. It was originally
  6373. part of udev-extras, then udev, then systemd. It's now a project on its own.")
  6374. (license license:lgpl2.1+)))
  6375. (define-public gvfs
  6376. (package
  6377. (name "gvfs")
  6378. (version "1.48.1")
  6379. (source (origin
  6380. (method url-fetch)
  6381. (uri (string-append "mirror://gnome/sources/gvfs/"
  6382. (version-major+minor version) "/"
  6383. "gvfs-" version ".tar.xz"))
  6384. (sha256
  6385. (base32
  6386. "1hlxl6368h6nyqp1888szxs9hnpcw98k3h23dgqi29xd38klzsmj"))))
  6387. (build-system meson-build-system)
  6388. (arguments
  6389. `(#:glib-or-gtk? #t
  6390. #:configure-flags
  6391. (list "-Dsystemduserunitdir=no"
  6392. "-Dtmpfilesdir=no"
  6393. ;; Otherwise, the RUNPATH will lack the final path component.
  6394. (string-append "-Dc_link_args=-Wl,-rpath="
  6395. (assoc-ref %outputs "out") "/lib/gvfs"))))
  6396. (native-inputs
  6397. `(("glib:bin" ,glib "bin") ;for glib-genmarshal, etc.
  6398. ("gettext" ,gettext-minimal)
  6399. ("gtk-doc" ,gtk-doc/stable)
  6400. ("pkg-config" ,pkg-config)
  6401. ("xsltproc" ,libxslt)))
  6402. (inputs
  6403. `(("avahi" ,avahi)
  6404. ("docbook-xml" ,docbook-xml-4.2)
  6405. ("docbook-xsl" ,docbook-xsl)
  6406. ("dbus" ,dbus)
  6407. ("elogind" ,elogind)
  6408. ("fuse" ,fuse-3)
  6409. ("gcr" ,gcr)
  6410. ("glib" ,glib)
  6411. ("gnome-online-accounts" ,gnome-online-accounts)
  6412. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  6413. ("libarchive" ,libarchive)
  6414. ("libbluray" ,libbluray)
  6415. ("libcap" ,libcap)
  6416. ("libcdio-paranoia" ,libcdio-paranoia)
  6417. ("libgcrypt" ,libgcrypt)
  6418. ("libgdata" ,libgdata)
  6419. ("libgphoto2" ,libgphoto2)
  6420. ("libgudev" ,libgudev)
  6421. ("libimobiledevice" ,libimobiledevice)
  6422. ("libmtp" ,libmtp)
  6423. ("libnfs" ,libnfs)
  6424. ("libsecret" ,libsecret)
  6425. ("libsmbclient" ,samba)
  6426. ("libsoup" ,libsoup)
  6427. ("libxml2" ,libxml2)
  6428. ("openssh" ,openssh)
  6429. ("polkit" ,polkit)
  6430. ("udisks" ,udisks)))
  6431. (home-page "https://wiki.gnome.org/gvfs/")
  6432. (synopsis "Userspace virtual file system for GIO")
  6433. (description
  6434. "GVFS is a userspace virtual file system designed to work with the I/O
  6435. abstraction of GIO. It contains a GIO module that seamlessly adds GVFS
  6436. support to all applications using the GIO API. It also supports exposing the
  6437. GVFS mounts to non-GIO applications using FUSE.
  6438. GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
  6439. DAV, and others.")
  6440. (license license:lgpl2.0+)))
  6441. (define-public gusb-minimal
  6442. (package
  6443. (name "gusb-minimal")
  6444. (version "0.3.5")
  6445. (source (origin
  6446. (method git-fetch)
  6447. (uri (git-reference
  6448. (url "https://github.com/hughsie/libgusb")
  6449. (commit version)))
  6450. (file-name (git-file-name name version))
  6451. (sha256
  6452. (base32
  6453. "0ifhdqhpyxwsg0z9s1anj7cf5pya5qsqyp5ksh9n7mqwa4lrjkl8"))))
  6454. (build-system meson-build-system)
  6455. (arguments
  6456. `(#:tests? #f ;libusb fails to initialize. Wonder what that is.
  6457. #:configure-flags
  6458. (cons "-Ddocs=false"
  6459. (if ,(%current-target-system)
  6460. ;; Introspection data cannot currently be cross-compiled.
  6461. '("-Dintrospection=false"
  6462. ;; Requires introspection data.
  6463. "-Dvapi=false")
  6464. '()))))
  6465. (native-inputs
  6466. (list gobject-introspection pkg-config python vala))
  6467. (propagated-inputs
  6468. ;; Both of these are required by gusb.pc.
  6469. (list glib libusb))
  6470. (home-page "https://github.com/hughsie/libgusb")
  6471. (synopsis "GLib binding for libusb1")
  6472. (description
  6473. "GUsb is a GObject wrapper for libusb1 that makes it easy to do
  6474. asynchronous control, bulk and interrupt transfers with proper cancellation
  6475. and integration into a mainloop. This makes it easy to integrate low level
  6476. USB transfers with your high-level application or system daemon.")
  6477. (license license:lgpl2.1+)))
  6478. (define-public gusb
  6479. (package/inherit gusb-minimal
  6480. (name "gusb")
  6481. (arguments
  6482. (substitute-keyword-arguments (package-arguments gusb-minimal)
  6483. ((#:configure-flags flags)
  6484. `(cons "-Ddocs=true"
  6485. (delete "-Ddocs=false" ,flags)))))
  6486. (native-inputs
  6487. (cons `("gtk-doc" ,gtk-doc/stable)
  6488. (package-native-inputs gusb-minimal)))))
  6489. (define-public simple-scan
  6490. (package
  6491. (name "simple-scan")
  6492. (version "40.7")
  6493. (source
  6494. (origin
  6495. (method url-fetch)
  6496. (uri (string-append "mirror://gnome/sources/simple-scan/"
  6497. (version-major version) "/"
  6498. "simple-scan-" version ".tar.xz"))
  6499. (sha256
  6500. (base32 "0lrxmk8xqvrb5gn5mpgqij133giwvrgavy49m55d7xssrd91hmbw"))))
  6501. (build-system meson-build-system)
  6502. ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
  6503. (arguments
  6504. `(#:glib-or-gtk? #t))
  6505. (native-inputs
  6506. (list gettext-minimal
  6507. itstool
  6508. `(,glib "bin") ; glib-compile-schemas, etc.
  6509. pkg-config
  6510. python
  6511. vala
  6512. libxml2))
  6513. (inputs
  6514. (list gtk+
  6515. zlib
  6516. cairo
  6517. colord
  6518. gdk-pixbuf
  6519. gusb
  6520. libhandy
  6521. sane-backends))
  6522. (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
  6523. (synopsis "Document and image scanner")
  6524. (description
  6525. "Document Scanner is an easy-to-use application that lets you connect your
  6526. scanner and quickly capture images and documents in an appropriate format. It
  6527. supports any scanner for which a suitable SANE driver is available, which is
  6528. almost all of them.")
  6529. (license license:gpl3+)))
  6530. (define-public eolie
  6531. (package
  6532. (name "eolie")
  6533. (version "0.9.101")
  6534. (source (origin
  6535. (method url-fetch)
  6536. (uri (string-append "https://adishatz.org/eolie/eolie-"
  6537. version ".tar.xz"))
  6538. (sha256
  6539. (base32
  6540. "1v8n21y75abdzsnx5idyd0q6yfb6cd0sqbknlbkwh5fdgvjzyvwn"))))
  6541. (build-system meson-build-system)
  6542. (arguments
  6543. `(#:glib-or-gtk? #t
  6544. #:phases
  6545. (modify-phases %standard-phases
  6546. (add-after 'unpack 'skip-gtk-update-icon-cache
  6547. ;; Don't create 'icon-theme.cache'.
  6548. (lambda _
  6549. (substitute* "meson_post_install.py"
  6550. (("gtk-update-icon-cache") "true"))
  6551. #t))
  6552. (add-after 'wrap 'wrap-more
  6553. (lambda* (#:key inputs outputs #:allow-other-keys)
  6554. (let* ((out (assoc-ref outputs "out"))
  6555. ;; These libraries must be on LD_LIBRARY_PATH.
  6556. (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
  6557. "atk" "gtk+" "gsettings-desktop-schemas"
  6558. "gobject-introspection"))
  6559. (path (string-join
  6560. (map (lambda (lib)
  6561. (string-append (assoc-ref inputs lib) "/lib"))
  6562. libs)
  6563. ":")))
  6564. (wrap-program (string-append out "/bin/eolie")
  6565. `("LD_LIBRARY_PATH" ":" prefix (,path))
  6566. `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
  6567. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
  6568. #t)))))
  6569. (native-inputs
  6570. `(("intltool" ,intltool)
  6571. ("itstool" ,itstool)
  6572. ("pkg-config" ,pkg-config)
  6573. ("python" ,python)
  6574. ("glib:bin" ,glib "bin")))
  6575. (inputs
  6576. `(("gobject-introspection" ,gobject-introspection)
  6577. ("glib-networking" ,glib-networking)
  6578. ("cairo" ,cairo)
  6579. ("gtk+" ,gtk+)
  6580. ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
  6581. ("python" ,python-wrapper)
  6582. ("python-dateutil" ,python-dateutil)
  6583. ("python-pyfxa" ,python-pyfxa)
  6584. ("python-pygobject" ,python-pygobject)
  6585. ("python-pycairo" ,python-pycairo)
  6586. ("python-pycrypto" ,python-pycrypto)
  6587. ("libhandy" ,libhandy)
  6588. ("libsecret" ,libsecret)
  6589. ("gtkspell3" ,gtkspell3)
  6590. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  6591. ("gnome-settings-daemon" ,gnome-settings-daemon) ; desktop-schemas are not enough
  6592. ("webkitgtk" ,webkitgtk)))
  6593. (home-page "https://wiki.gnome.org/Apps/Eolie")
  6594. (synopsis "Web browser for GNOME")
  6595. (description
  6596. "Eolie is a new web browser for GNOME. It features Firefox sync support,
  6597. a secret password store, an adblocker, and a modern UI.")
  6598. (license license:gpl3+)))
  6599. (define-public epiphany
  6600. (package
  6601. (name "epiphany")
  6602. (version "41.2")
  6603. (source (origin
  6604. (method url-fetch)
  6605. (uri (string-append "mirror://gnome/sources/epiphany/"
  6606. (version-major version) "/"
  6607. "epiphany-" version ".tar.xz"))
  6608. (sha256
  6609. (base32
  6610. "0k7b22zq3z1kllzqxgwsvwb1lp0j6rjb3k1hvhna3i573wc4mpji"))
  6611. (patches
  6612. (search-patches "epiphany-update-libportal-usage.patch"))))
  6613. (build-system meson-build-system)
  6614. (arguments
  6615. `(#:glib-or-gtk? #t
  6616. #:phases
  6617. (modify-phases %standard-phases
  6618. (add-after 'unpack 'skip-gtk-update-icon-cache
  6619. ;; Don't create 'icon-theme.cache'.
  6620. (lambda _
  6621. (substitute* "post_install.py"
  6622. (("gtk-update-icon-cache") "true"))))
  6623. (add-after 'unpack 'disable-failing-tests
  6624. (lambda _
  6625. (substitute* "tests/meson.build"
  6626. ;; embed_shell fails, because webkitgtk apparently no longer
  6627. ;; supports overriding the ftp schema web_app_utils fails due
  6628. ;; to missing network access.
  6629. (("(embed_shell|web_app_utils)_test,")
  6630. "find_program('sh'), args: ['-c', 'exit 77'],"))))
  6631. (add-before 'check 'pre-check
  6632. (lambda _
  6633. ;; Tests require a running X server.
  6634. (system "Xvfb :1 &")
  6635. (setenv "DISPLAY" ":1"))))
  6636. #:configure-flags
  6637. ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
  6638. (list (string-append "-Dc_link_args=-Wl,-rpath="
  6639. (assoc-ref %outputs "out") "/lib/epiphany"))))
  6640. (propagated-inputs
  6641. (list dconf))
  6642. (native-inputs
  6643. `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
  6644. ("glib:bin" ,glib "bin") ; for glib-mkenums
  6645. ("intltool" ,intltool)
  6646. ("itstool" ,itstool)
  6647. ("pkg-config" ,pkg-config)
  6648. ("xmllint" ,libxml2)
  6649. ("xorg-server" ,xorg-server-for-tests)))
  6650. (inputs
  6651. `(("avahi" ,avahi)
  6652. ("gcr" ,gcr)
  6653. ("librsvg" ,librsvg) ; for loading SVG files
  6654. ("glib-networking" ,glib-networking)
  6655. ("gnome-desktop" ,gnome-desktop)
  6656. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  6657. ("json-glib" ,json-glib)
  6658. ("iso-codes" ,iso-codes)
  6659. ("libarchive" ,libarchive)
  6660. ("libdazzle" ,libdazzle)
  6661. ("libhandy" ,libhandy)
  6662. ("libnotify" ,libnotify)
  6663. ("libportal" ,libportal)
  6664. ("libsecret" ,libsecret)
  6665. ("libxslt" ,libxslt)
  6666. ("nettle" ,nettle) ; for hogweed
  6667. ("sqlite" ,sqlite)
  6668. ("webkitgtk" ,webkitgtk-with-libsoup2)))
  6669. (home-page "https://wiki.gnome.org/Apps/Web")
  6670. (synopsis "GNOME web browser")
  6671. (description
  6672. "Epiphany is a GNOME web browser targeted at non-technical users. Its
  6673. principles are simplicity and standards compliance.")
  6674. (license license:gpl2+)))
  6675. (define-public d-feet
  6676. (package
  6677. (name "d-feet")
  6678. (version "0.3.14")
  6679. (source (origin
  6680. (method url-fetch)
  6681. (uri (string-append "mirror://gnome/sources/" name "/"
  6682. (version-major+minor version) "/"
  6683. name "-" version ".tar.xz"))
  6684. (sha256
  6685. (base32
  6686. "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
  6687. (build-system glib-or-gtk-build-system)
  6688. (arguments
  6689. '(#:out-of-source? #f ; tests need to run in the source directory.
  6690. #:phases
  6691. (modify-phases %standard-phases
  6692. (add-before
  6693. 'check 'pre-check
  6694. (lambda _
  6695. ;; The test suite requires a running X server.
  6696. (system "Xvfb :1 &")
  6697. (setenv "DISPLAY" ":1")
  6698. ;; Don't fail on missing '/etc/machine-id'.
  6699. (setenv "DBUS_FATAL_WARNINGS" "0")
  6700. ;; tests.py and window.py don't meet E402:
  6701. ;; E402 module level import not at top of file
  6702. (substitute* "src/tests/Makefile"
  6703. (("--ignore=E123") "--ignore=E123,E402"))
  6704. #t))
  6705. (add-after
  6706. 'install 'wrap-program
  6707. (lambda* (#:key outputs #:allow-other-keys)
  6708. (let ((prog (string-append (assoc-ref outputs "out")
  6709. "/bin/d-feet")))
  6710. (wrap-program prog
  6711. `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
  6712. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
  6713. #t))))))
  6714. (native-inputs
  6715. `(("intltool" ,intltool)
  6716. ("itstool" ,itstool)
  6717. ("pkg-config" ,pkg-config)
  6718. ("python-pep8" ,python-pep8)
  6719. ("xmllint" ,libxml2)
  6720. ("xorg-server" ,xorg-server-for-tests)))
  6721. (inputs
  6722. `(("gobject-introspection" ,gobject-introspection)
  6723. ("gtk+" ,gtk+)
  6724. ("python" ,python-wrapper)
  6725. ("hicolor-icon-theme" ,hicolor-icon-theme)
  6726. ("python-pygobject" ,python-pygobject)))
  6727. (home-page "https://wiki.gnome.org/Apps/DFeet")
  6728. (synopsis "D-Bus debugger")
  6729. (description
  6730. "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
  6731. of running programs and invoke methods on those interfaces.")
  6732. (license license:gpl2+)))
  6733. (define-public yelp-xsl
  6734. (package
  6735. (name "yelp-xsl")
  6736. (version "41.0")
  6737. (source
  6738. (origin
  6739. (method url-fetch)
  6740. (uri
  6741. (string-append "mirror://gnome/sources/" name "/"
  6742. (version-major version) "/"
  6743. name "-" version ".tar.xz"))
  6744. (sha256
  6745. (base32 "19d46rkajvr0f04560vlrzwvac88x5j8ilvzwkawbn5vjg069kf8"))))
  6746. (build-system gnu-build-system)
  6747. (arguments
  6748. `(#:configure-flags
  6749. (list
  6750. "--enable-doc")))
  6751. (native-inputs
  6752. `(("ducktype" ,mallard-ducktype)
  6753. ("gettext" ,gettext-minimal)
  6754. ("intltool" ,intltool)
  6755. ("itstool" ,itstool)
  6756. ("xmllint" ,libxml2)
  6757. ("xsltproc" ,libxslt)))
  6758. (synopsis "XSL stylesheets for Yelp")
  6759. (description "Yelp-XSL is a collection of programs and data files to help
  6760. you build, maintain, and distribute documentation. It provides XSLT stylesheets
  6761. that can be built upon for help viewers and publishing systems. These
  6762. stylesheets output JavaScript and CSS content, and reference images
  6763. provided by yelp-xsl. It also redistributes copies of the jQuery and
  6764. jQuery.Syntax JavaScript libraries.")
  6765. (home-page "https://wiki.gnome.org/Apps/Yelp")
  6766. (license
  6767. (list
  6768. ;; XSLT
  6769. license:gpl2+
  6770. ;; Images
  6771. license:lgpl2.1+
  6772. ;; JavaScript
  6773. license:expat))))
  6774. (define-public yelp
  6775. (package
  6776. (name "yelp")
  6777. (version "41.0")
  6778. (source (origin
  6779. (method url-fetch)
  6780. (uri (string-append "mirror://gnome/sources/" name "/"
  6781. (version-major version) "/"
  6782. name "-" version ".tar.xz"))
  6783. (sha256
  6784. (base32
  6785. "11shrqass8ak8m10nayqssa6sbrrxa13ffpamvqi1c0yzkxdk9r5"))))
  6786. (build-system glib-or-gtk-build-system)
  6787. (native-inputs
  6788. (list `(,glib "bin") ; for glib-genmarshal, etc.
  6789. intltool itstool pkg-config))
  6790. (propagated-inputs
  6791. (list dconf))
  6792. (inputs
  6793. (list gsettings-desktop-schemas libxslt sqlite webkitgtk yelp-xsl))
  6794. (home-page "https://wiki.gnome.org/Apps/Yelp")
  6795. (synopsis "GNOME help browser")
  6796. (description
  6797. "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
  6798. man, info, and HTML documents. It can locate documents according to the
  6799. freedesktop.org help system specification.")
  6800. (license license:gpl2+)))
  6801. (define-public yelp-tools
  6802. (package
  6803. (name "yelp-tools")
  6804. (version "3.32.2")
  6805. (source
  6806. (origin
  6807. (method url-fetch)
  6808. (uri
  6809. (string-append "mirror://gnome/sources/" name "/"
  6810. (version-major+minor version) "/"
  6811. name "-" version ".tar.xz"))
  6812. (sha256
  6813. (base32 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
  6814. (build-system gnu-build-system)
  6815. (native-inputs
  6816. (list pkg-config))
  6817. (inputs
  6818. (list yelp-xsl))
  6819. (propagated-inputs
  6820. ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
  6821. `(("itstool" ,itstool)
  6822. ("xmllint" ,libxml2)
  6823. ("xsltproc" ,libxslt)))
  6824. (synopsis "Yelp documentation tools")
  6825. (description
  6826. "Yelp-tools is a collection of scripts and build utilities to help create,
  6827. manage, and publish documentation for Yelp and the web. Most of the heavy
  6828. lifting is done by packages like yelp-xsl and itstool. This package just
  6829. wraps things up in a developer-friendly way.")
  6830. (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
  6831. (license license:gpl2+)))
  6832. (define-public libgee
  6833. (package
  6834. (name "libgee")
  6835. (version "0.20.3")
  6836. (source (origin
  6837. (method url-fetch)
  6838. (uri (string-append "mirror://gnome/sources/libgee/"
  6839. (version-major+minor version) "/"
  6840. "libgee-" version ".tar.xz"))
  6841. (sha256
  6842. (base32
  6843. "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
  6844. (build-system gnu-build-system)
  6845. (arguments
  6846. `(#:phases
  6847. (modify-phases %standard-phases
  6848. (add-after 'unpack 'fix-introspection-install-dir
  6849. (lambda* (#:key outputs #:allow-other-keys)
  6850. (let ((out (assoc-ref outputs "out")))
  6851. (substitute* "gee/Makefile.in"
  6852. (("@INTROSPECTION_GIRDIR@")
  6853. (string-append out "/share/gir-1.0/"))
  6854. (("@INTROSPECTION_TYPELIBDIR@")
  6855. (string-append out "/lib/girepository-1.0/")))))))))
  6856. (native-inputs
  6857. (list `(,glib "bin") pkg-config))
  6858. (inputs
  6859. (list glib gobject-introspection))
  6860. (home-page "https://wiki.gnome.org/Projects/Libgee")
  6861. (synopsis "GObject collection library")
  6862. (description
  6863. "Libgee is a utility library providing GObject-based interfaces and
  6864. classes for commonly used data structures.")
  6865. (license license:lgpl2.1+)))
  6866. (define-public gexiv2
  6867. (package
  6868. (name "gexiv2")
  6869. (version "0.12.2")
  6870. (source (origin
  6871. (method url-fetch)
  6872. (uri (string-append "mirror://gnome/sources/" name "/"
  6873. (version-major+minor version) "/"
  6874. name "-" version ".tar.xz"))
  6875. (sha256
  6876. (base32
  6877. "0k4ljzzz5dwqndw8awvlw3ala8rh3b2rk9i4jzvywc53mi9ba8i3"))))
  6878. (build-system meson-build-system)
  6879. (native-inputs
  6880. (list gcr
  6881. `(,glib "bin") pkg-config vala))
  6882. (propagated-inputs
  6883. ;; Listed in "Requires" section of gexiv2.pc
  6884. (list exiv2))
  6885. (inputs
  6886. (list glib gobject-introspection))
  6887. (home-page "https://wiki.gnome.org/Projects/gexiv2")
  6888. (synopsis "GObject wrapper around the Exiv2 photo metadata library")
  6889. (description
  6890. "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
  6891. allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
  6892. metadata in photo and video files of various formats.")
  6893. (license license:gpl2+)))
  6894. (define-public shotwell
  6895. (package
  6896. (name "shotwell")
  6897. (version "0.30.12")
  6898. (source (origin
  6899. (method url-fetch)
  6900. (uri (string-append "mirror://gnome/sources/shotwell/"
  6901. (version-major+minor version) "/"
  6902. "shotwell-" version ".tar.xz"))
  6903. (sha256
  6904. (base32
  6905. "1h5crjq59lqi8f8mdkadzi8pc3i9i2ik4lsx2nrhzq486fzdfhw6"))))
  6906. (build-system meson-build-system)
  6907. (arguments
  6908. '(#:glib-or-gtk? #t
  6909. #:phases
  6910. (modify-phases %standard-phases
  6911. (add-after 'unpack 'skip-gtk-update-icon-cache
  6912. (lambda _
  6913. (substitute* "build-aux/meson/postinstall.py"
  6914. (("gtk-update-icon-cache") (which "true"))
  6915. (("update-desktop-database") (which "true")))
  6916. #t)))))
  6917. (propagated-inputs
  6918. (list dconf))
  6919. (native-inputs
  6920. `(("gettext" ,gettext-minimal)
  6921. ("glib:bin" ,glib "bin")
  6922. ("itstool" ,itstool)
  6923. ("pkg-config" ,pkg-config)
  6924. ("python" ,python)
  6925. ("vala" ,vala)))
  6926. (inputs
  6927. `(("gcr" ,gcr)
  6928. ("gexiv2" ,gexiv2)
  6929. ("gst-plugins-base" ,gst-plugins-base)
  6930. ("gstreamer" ,gstreamer)
  6931. ("json-glib" ,json-glib)
  6932. ("libgdata" ,libgdata)
  6933. ("libgee" ,libgee)
  6934. ("libgphoto2" ,libgphoto2)
  6935. ("libgudev" ,libgudev)
  6936. ("libraw" ,libraw)
  6937. ("libxml2" ,libxml2)
  6938. ("sqlite" ,sqlite)
  6939. ("webkitgtk" ,webkitgtk-with-libsoup2)))
  6940. (home-page "https://wiki.gnome.org/Apps/Shotwell")
  6941. (synopsis "Photo manager for GNOME 3")
  6942. (description
  6943. "Shotwell is a digital photo manager designed for the GNOME desktop
  6944. environment. It allows you to import photos from disk or camera, organize
  6945. them by keywords and events, view them in full-window or fullscreen mode, and
  6946. share them with others via social networking and more.")
  6947. (license license:lgpl2.1+)))
  6948. (define-public file-roller
  6949. (package
  6950. (name "file-roller")
  6951. (version "3.40.0")
  6952. (source (origin
  6953. (method url-fetch)
  6954. (uri (string-append "mirror://gnome/sources/file-roller/"
  6955. (version-major+minor version) "/"
  6956. "file-roller-" version ".tar.xz"))
  6957. (sha256
  6958. (base32
  6959. "039w1dcpa5ypmv6sm634alk9vbcdkyvy595vkh5gn032jsiqca2a"))))
  6960. (build-system meson-build-system)
  6961. (native-inputs
  6962. (list desktop-file-utils ; for update-desktop-database
  6963. intltool
  6964. itstool
  6965. pkg-config
  6966. python
  6967. `(,gtk+ "bin") ; gtk-update-icon-cache
  6968. `(,glib "bin")))
  6969. ;; TODO: Add libnautilus.
  6970. (inputs
  6971. (list gtk+
  6972. gdk-pixbuf
  6973. json-glib
  6974. libarchive
  6975. libnotify
  6976. nettle
  6977. libxml2))
  6978. (synopsis "Graphical archive manager for GNOME")
  6979. (description "File Roller is an archive manager for the GNOME desktop
  6980. environment that allows users to view, unpack, and create compressed archives
  6981. such as gzip tarballs.")
  6982. (home-page "http://fileroller.sourceforge.net/")
  6983. (license license:gpl2+)))
  6984. (define-public gnome-session
  6985. (package
  6986. (name "gnome-session")
  6987. (version "40.1")
  6988. (source (origin
  6989. (method url-fetch)
  6990. (uri (string-append "mirror://gnome/sources/" name "/"
  6991. (version-major version) "/"
  6992. name "-" version ".tar.xz"))
  6993. (patches (search-patches "gnome-session-support-elogind.patch"))
  6994. (sha256
  6995. (base32
  6996. "02z0xr6sv9ibl7awbw9j4y05hf4jk1zgvsbbmh7n27hhjvsvc8pl"))))
  6997. (arguments
  6998. `(#:glib-or-gtk? #t
  6999. #:phases
  7000. (modify-phases %standard-phases
  7001. (add-after 'install 'wrap-gnome-session
  7002. (lambda* (#:key inputs outputs #:allow-other-keys)
  7003. ;; Make sure 'gnome-session' finds the 'gsettings' program.
  7004. (let ((glib (assoc-ref inputs "glib:bin"))
  7005. (out (assoc-ref outputs "out")))
  7006. (wrap-program (string-append out "/bin/gnome-session")
  7007. `("PATH" ":" prefix (,(string-append glib "/bin"))))))))
  7008. #:configure-flags
  7009. '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
  7010. "-Dman=false" ; FIXME: disabled because of docbook validation error
  7011. "-Delogind=true"
  7012. "-Dsystemd=false"
  7013. "-Dsystemd_session=disable"
  7014. "-Dsystemd_journal=false")))
  7015. (build-system meson-build-system)
  7016. (native-inputs
  7017. `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
  7018. ("pkg-config" ,pkg-config)
  7019. ("intltool" ,intltool)
  7020. ("xsltproc" ,libxslt)
  7021. ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
  7022. ("docbook-xsl" ,docbook-xsl)
  7023. ("docbook-xml" ,docbook-xml)
  7024. ("xmlto" ,xmlto)))
  7025. (inputs
  7026. (list elogind
  7027. gnome-desktop
  7028. gsettings-desktop-schemas
  7029. gtk+
  7030. json-glib
  7031. libsm
  7032. libxcomposite
  7033. libxtst
  7034. mesa
  7035. upower
  7036. xtrans))
  7037. (synopsis "Session manager for GNOME")
  7038. (description
  7039. "This package contains the GNOME session manager, as well as a
  7040. configuration program to choose applications starting on login.")
  7041. (home-page "https://wiki.gnome.org/Projects/SessionManagement")
  7042. (license license:gpl2+)))
  7043. (define-public gjs
  7044. (package
  7045. (name "gjs")
  7046. (version "1.70.0")
  7047. (source (origin
  7048. (method url-fetch)
  7049. (uri (string-append "mirror://gnome/sources/" name "/"
  7050. (version-major+minor version) "/"
  7051. name "-" version ".tar.xz"))
  7052. (sha256
  7053. (base32
  7054. "0pqwhq0znprs0h5ixz396912acwzk9zvjfhi9qvh52ii38s2j1jb"))
  7055. (modules '((guix build utils)))
  7056. (snippet
  7057. '(begin
  7058. (substitute* "installed-tests/scripts/testCommandLine.sh"
  7059. (("Valentín") "")
  7060. (("☭") ""))))))
  7061. (build-system meson-build-system)
  7062. (arguments
  7063. ;; Use meson-0.59, otherwise we'd get "ERROR: "install_dir" must be
  7064. ;; specified when installing a target".
  7065. `(#:meson ,meson-0.59
  7066. #:configure-flags '("-Dinstalled_tests=false")
  7067. #:phases
  7068. (modify-phases %standard-phases
  7069. (add-before 'check 'pre-check
  7070. (lambda _
  7071. ;; The test suite requires a running X server.
  7072. (system "Xvfb :1 &")
  7073. (setenv "DISPLAY" ":1")
  7074. ;; For the missing /etc/machine-id.
  7075. (setenv "DBUS_FATAL_WARNINGS" "0"))))))
  7076. (native-inputs
  7077. `(("glib:bin" ,glib "bin") ; for glib-compile-resources
  7078. ("pkg-config" ,pkg-config)
  7079. ("xmllint" ,libxml2)
  7080. ;; For testing
  7081. ("dbus-launch" ,dbus)
  7082. ("dconf" ,dconf) ; required to properly store settings
  7083. ("uuidgen" ,util-linux)
  7084. ("xvfb" ,xorg-server-for-tests)))
  7085. (propagated-inputs
  7086. ;; These are all in the Requires.private field of gjs-1.0.pc.
  7087. (list cairo gobject-introspection mozjs-78))
  7088. (inputs
  7089. (list gtk+ readline))
  7090. (synopsis "Javascript bindings for GNOME")
  7091. (home-page "https://live.gnome.org/Gjs")
  7092. (description
  7093. "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
  7094. javascript engine and the GObject introspection framework.")
  7095. (license license:gpl2+)))
  7096. (define-public gedit
  7097. (package
  7098. (name "gedit")
  7099. (version "40.1")
  7100. (source (origin
  7101. (method url-fetch)
  7102. (uri (string-append "mirror://gnome/sources/" name "/"
  7103. (version-major version) "/"
  7104. name "-" version ".tar.xz"))
  7105. (sha256
  7106. (base32
  7107. "149ngl9qw6h59546lir1pa7hvw23ppsnqlj9mfqphmmn5jl99qsm"))))
  7108. (build-system meson-build-system)
  7109. (arguments
  7110. `(#:glib-or-gtk? #t
  7111. #:configure-flags
  7112. ;; Otherwise, the RUNPATH will lack the final path component.
  7113. (list (string-append "-Dc_link_args=-Wl,-rpath="
  7114. (assoc-ref %outputs "out") "/lib/gedit"))
  7115. ;; XXX: Generated .h files are sometimes used before being built.
  7116. #:parallel-build? #f
  7117. #:phases
  7118. (modify-phases %standard-phases
  7119. (add-after 'unpack 'skip-gtk-update-icon-cache
  7120. ;; Don't create 'icon-theme.cache'.
  7121. (lambda _
  7122. (substitute* "build-aux/meson/post_install.py"
  7123. (("gtk-update-icon-cache") (which "true")))
  7124. #t))
  7125. (add-after 'unpack 'patch-libgd-fetch
  7126. (lambda* (#:key inputs #:allow-other-keys)
  7127. (let ((libgd (assoc-ref inputs "libgd")))
  7128. ;; Calling git is unnecessary because libgd is fetched as a
  7129. ;; native input to this package.
  7130. (substitute* "meson.build"
  7131. ((".*git.*") ""))
  7132. (copy-recursively libgd "subprojects/libgd")
  7133. #t)))
  7134. (add-after 'install 'wrap-gedit
  7135. (lambda* (#:key inputs outputs #:allow-other-keys)
  7136. (let ((out (assoc-ref outputs "out"))
  7137. (gtksourceview (assoc-ref inputs "gtksourceview"))
  7138. (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
  7139. (python-path (getenv "GUIX_PYTHONPATH")))
  7140. (wrap-program (string-append out "/bin/gedit")
  7141. ;; For plugins.
  7142. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
  7143. `("GUIX_PYTHONPATH" ":" prefix (,python-path))
  7144. ;; For language-specs.
  7145. `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
  7146. "/share")))))
  7147. #t)))))
  7148. (propagated-inputs
  7149. (list dconf))
  7150. (native-inputs
  7151. `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
  7152. ("intltool" ,intltool)
  7153. ("itstool" ,itstool)
  7154. ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
  7155. ("gobject-introspection" ,gobject-introspection)
  7156. ("libgd"
  7157. ,(origin
  7158. (method git-fetch)
  7159. (uri (git-reference
  7160. (url "https://gitlab.gnome.org/GNOME/libgd")
  7161. (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
  7162. (file-name (git-file-name "libgd" version))
  7163. (sha256
  7164. (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
  7165. ("pkg-config" ,pkg-config)))
  7166. (inputs
  7167. (list amtk
  7168. glib
  7169. gspell
  7170. gtk+
  7171. gtksourceview
  7172. libpeas
  7173. libxml2
  7174. iso-codes
  7175. python-pygobject
  7176. python
  7177. tepl
  7178. gsettings-desktop-schemas
  7179. libx11
  7180. vala
  7181. adwaita-icon-theme
  7182. libsoup
  7183. gnome-desktop))
  7184. (home-page "https://wiki.gnome.org/Apps/Gedit")
  7185. (synopsis "GNOME text editor")
  7186. (description "While aiming at simplicity and ease of use, gedit is a
  7187. powerful general purpose text editor.")
  7188. (license license:gpl2+)))
  7189. (define-public zenity
  7190. (package
  7191. (name "zenity")
  7192. (version "3.32.0")
  7193. (source (origin
  7194. (method url-fetch)
  7195. (uri (string-append "mirror://gnome/sources/zenity/"
  7196. (version-major+minor version) "/"
  7197. "zenity-" version ".tar.xz"))
  7198. (sha256
  7199. (base32
  7200. "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
  7201. (build-system gnu-build-system)
  7202. (native-inputs
  7203. (list gettext-minimal itstool pkg-config))
  7204. (inputs
  7205. (list libnotify webkitgtk))
  7206. (synopsis "Display graphical dialog boxes from shell scripts")
  7207. (home-page "https://www.gnome.org")
  7208. (description
  7209. "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
  7210. to display dialog boxes from the commandline and shell scripts.")
  7211. (license license:lgpl2.0+)))
  7212. (define-public mutter
  7213. (package
  7214. (name "mutter")
  7215. (version "41.0")
  7216. (source (origin
  7217. (method url-fetch)
  7218. (uri (string-append "mirror://gnome/sources/" name "/"
  7219. (version-major version) "/"
  7220. name "-" version ".tar.xz"))
  7221. (sha256
  7222. (base32
  7223. "17pqrm48kddqrc3fl96n5knhaxyn0crg0zv7zpmqhk848jks307s"))))
  7224. ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
  7225. ;; versions of cogl and clutter. As a result, many of the inputs,
  7226. ;; propagated-inputs, and configure flags used in cogl and clutter are
  7227. ;; needed here as well.
  7228. (build-system meson-build-system)
  7229. (arguments
  7230. `(#:imported-modules (,@%meson-build-system-modules
  7231. (guix build syscalls))
  7232. #:modules ((guix build meson-build-system)
  7233. (guix build syscalls)
  7234. (guix build utils)
  7235. (ice-9 match))
  7236. #:glib-or-gtk? #t
  7237. #:configure-flags
  7238. (list
  7239. ;; Otherwise, the RUNPATH will lack the final path component.
  7240. (string-append "-Dc_link_args=-Wl,-rpath="
  7241. (assoc-ref %outputs "out") "/lib:"
  7242. (assoc-ref %outputs "out") "/lib/mutter-9")
  7243. ;; Disable systemd support.
  7244. "-Dsystemd=false"
  7245. ;; The following flags are needed for the bundled clutter
  7246. (string-append "-Dxwayland_path="
  7247. (assoc-ref %build-inputs "xorg-server-xwayland")
  7248. "/bin/Xwayland")
  7249. ;; the remaining flags are needed for the bundled cogl
  7250. (string-append "-Dopengl_libname="
  7251. (assoc-ref %build-inputs "mesa")
  7252. "/lib/libGL.so")
  7253. (string-append "-Dgles2_libname="
  7254. (assoc-ref %build-inputs "mesa")
  7255. "/lib/libGLESv2.so")
  7256. "-Degl_device=true" ;false by default
  7257. "-Dwayland_eglstream=true") ;false by default
  7258. #:test-options
  7259. (list "--verbose")
  7260. #:phases
  7261. (modify-phases %standard-phases
  7262. (add-after 'unpack 'patch-dlopen-calls
  7263. (lambda* (#:key inputs #:allow-other-keys)
  7264. (substitute* "src/wayland/meta-wayland-egl-stream.c"
  7265. (("libnvidia-egl-wayland.so.1")
  7266. (string-append (assoc-ref inputs "egl-wayland")
  7267. "/lib/libnvidia-egl-wayland.so.1")))))
  7268. (add-before 'configure 'set-udev-dir
  7269. (lambda* (#:key inputs outputs #:allow-other-keys)
  7270. (setenv "PKG_CONFIG_UDEV_UDEVDIR"
  7271. (string-append (assoc-ref outputs "out")
  7272. "/lib/udev"))))
  7273. (add-after 'unpack 'disable-problematic-tests
  7274. (lambda _
  7275. ;; The native-headless test hangs due to attempting to use audio,
  7276. ;; unavailable in the container.
  7277. ;; Note: the following sed expression deletes the whole test(...)
  7278. ;; expression paragraph. For an explanation, see: info '(sed)
  7279. ;; Multiline techniques'.
  7280. (invoke "sed" "/./{H;$!d} ; x ; s/^.*native-headless.*$//"
  7281. "-i" "src/tests/meson.build")
  7282. ;; Timeline tests may unexpectedly fail on missed frames, so
  7283. ;; let's disable them as well.
  7284. ;; See <https://gitlab.gnome.org/GNOME/mutter/-/issues/2125>
  7285. (substitute* "src/tests/clutter/conform/meson.build"
  7286. (("'timeline.*',") ""))))
  7287. (replace 'check
  7288. (lambda* (#:key tests? test-options parallel-tests?
  7289. #:allow-other-keys)
  7290. (when tests?
  7291. ;; Setup (see the 'test-mutter' CI target at
  7292. ;; https://gitlab.gnome.org/GNOME/mutter/-/raw/main/.gitlab-ci.yml).
  7293. (setenv "XDG_RUNTIME_DIR" "runtime-dir")
  7294. (setenv "GSETTINGS_SCHEMA_DIR" "data")
  7295. (setenv "MUTTER_DEBUG_DUMMY_MODE_SPECS" "800x600@10.0")
  7296. (setenv "PIPEWIRE_DEBUG" "2")
  7297. (setenv "PIPEWIRE_LOG" "meson-logs/pipewire.log")
  7298. (setenv "XVFB_SERVER_ARGS" "+iglx -noreset")
  7299. (setenv "G_SLICE" "always-malloc")
  7300. (setenv "MALLOC_CHECK" "3")
  7301. (setenv "NO_AT_BRIDGE" "1")
  7302. ;; This is needed, otherwise the "mutter:core+mutter/unit /
  7303. ;; anonymous-file" test would fail (see:
  7304. ;; https://gitlab.gnome.org/GNOME/mutter/-/issues/2017).
  7305. (setenv "CI_JOB_ID" "1")
  7306. (invoke "glib-compile-schemas" (getenv "GSETTINGS_SCHEMA_DIR"))
  7307. (mkdir-p (getenv "XDG_RUNTIME_DIR"))
  7308. (chmod (getenv "XDG_RUNTIME_DIR") #o755)
  7309. (invoke "pipewire" "--version") ;check for pipewire
  7310. (system "pipewire &") ;always returns 0 due to forking
  7311. (setenv "MESON_TESTTHREADS"
  7312. (if parallel-tests?
  7313. (number->string (parallel-job-count))
  7314. "1"))
  7315. (match (primitive-fork)
  7316. (0 ;child process
  7317. (set-child-subreaper!)
  7318. ;; Use tini so that signals are properly handled and
  7319. ;; doubly-forked processes get reaped; otherwise,
  7320. ;; python-dbusmock would waste time polling for the dbus
  7321. ;; processes it spawns to be reaped, in vain.
  7322. (apply execlp "tini" "--"
  7323. "dbus-run-session" "--"
  7324. "xvfb-run" "-a" "-s" (getenv "XVFB_SERVER_ARGS")
  7325. "meson" "test" "-t" "0" "--print-errorlogs"
  7326. test-options))
  7327. (pid
  7328. (match (waitpid pid)
  7329. ((_ . status)
  7330. (unless (zero? status)
  7331. (error "`meson test' exited with status"
  7332. status))))))))))))
  7333. (native-inputs
  7334. `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
  7335. ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
  7336. ("gobject-introspection" ,gobject-introspection)
  7337. ("intltool" ,intltool)
  7338. ("pkg-config" ,pkg-config)
  7339. ("xvfb-run" ,xvfb-run)
  7340. ;; For git build
  7341. ("autoconf" ,autoconf)
  7342. ("automake" ,automake)
  7343. ("libtool" ,libtool)
  7344. ;; For tests.
  7345. ;; Warnings are configured to be fatal during the tests; add an icon
  7346. ;; theme to please libxcursor.
  7347. ("adwaita-icon-theme" ,adwaita-icon-theme)
  7348. ("libxcursor" ,libxcursor) ;for XCURSOR_PATH
  7349. ("pipewire" ,pipewire-0.3)
  7350. ("python" ,python)
  7351. ("python-dbus" ,python-dbus)
  7352. ("python-dbusmock" ,python-dbusmock)
  7353. ("tini" ,tini))) ;acting as init (zombie reaper)
  7354. (propagated-inputs
  7355. `( ;; libmutter.pc refers to these:
  7356. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  7357. ("gtk+" ,gtk+)
  7358. ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
  7359. ("atk" ,atk)
  7360. ("cairo" ,cairo)
  7361. ("gdk-pixbuf" ,gdk-pixbuf)
  7362. ("glib" ,glib)
  7363. ("json-glib" ,json-glib)
  7364. ("libinput" ,libinput)
  7365. ("libx11" ,libx11)
  7366. ("libxcomposite" ,libxcomposite)
  7367. ("libxcvt" ,libxcvt)
  7368. ("libxdamage" ,libxdamage)
  7369. ("libxext" ,libxext)
  7370. ("libxfixes" ,libxfixes)
  7371. ("libxkbcommon" ,libxkbcommon)
  7372. ("libxml2" ,libxml2)
  7373. ("libxrandr" ,libxrandr)
  7374. ("mesa" ,mesa)
  7375. ("pango" ,pango)
  7376. ("udev" ,eudev)
  7377. ("xinput" ,xinput)))
  7378. (inputs
  7379. `(("egl-wayland" ,egl-wayland) ;for wayland-eglstream-protocols
  7380. ("elogind" ,elogind)
  7381. ("gnome-desktop" ,gnome-desktop)
  7382. ("gnome-settings-daemon" ,gnome-settings-daemon)
  7383. ("graphene" ,graphene)
  7384. ("libcanberra-gtk" ,libcanberra)
  7385. ("libgudev" ,libgudev)
  7386. ("libice" ,libice)
  7387. ("libsm" ,libsm)
  7388. ("libwacom" ,libwacom)
  7389. ("libxkbfile" ,libxkbfile)
  7390. ("libxrandr" ,libxrandr)
  7391. ("libxtst" ,libxtst)
  7392. ("pipewire" ,pipewire-0.3)
  7393. ("startup-notification" ,startup-notification)
  7394. ("sysprof" ,sysprof)
  7395. ("upower-glib" ,upower)
  7396. ("xkeyboard-config" ,xkeyboard-config)
  7397. ("xorg-server-xwayland" ,xorg-server-xwayland)
  7398. ("zenity" ,zenity)))
  7399. (synopsis "Window and compositing manager")
  7400. (home-page "https://www.gnome.org")
  7401. (description
  7402. "Mutter is a window and compositing manager that displays and manages your
  7403. desktop via OpenGL. Mutter combines a sophisticated display engine using the
  7404. Clutter toolkit with solid window-management logic inherited from the Metacity
  7405. window manager.")
  7406. (license license:gpl2+)))
  7407. (define-public gnome-online-accounts
  7408. (package
  7409. (name "gnome-online-accounts")
  7410. (version "3.43.1")
  7411. (source (origin
  7412. (method url-fetch)
  7413. (uri (string-append "mirror://gnome/sources/" name "/"
  7414. (version-major+minor version) "/"
  7415. name "-" version ".tar.xz"))
  7416. (sha256
  7417. (base32
  7418. "1s5pmy3hx6hhnyi40r7b773py9kn2qbkxnpxv6149z9fl5ikdjrv"))))
  7419. (outputs '("out" "lib"))
  7420. (build-system glib-or-gtk-build-system)
  7421. (arguments
  7422. `(#:configure-flags
  7423. (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
  7424. #:phases
  7425. (modify-phases %standard-phases
  7426. (add-before 'configure 'patch-libgoa-output
  7427. (lambda* (#:key outputs #:allow-other-keys)
  7428. (let ((lib (assoc-ref outputs "lib")))
  7429. (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
  7430. (("@prefix@") lib)
  7431. (("@exec_prefix@") lib)
  7432. (("@libdir@") (string-append lib "/lib"))
  7433. (("@includedir@") (string-append lib "/include"))
  7434. (("@datadir@") (string-append lib "/share")))
  7435. ;; Make sure gobject-introspection knows about the output
  7436. ;; too (see <https://bugs.gnu.org/36535>).
  7437. (setenv "outputs" "out lib")))))))
  7438. (native-inputs
  7439. `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
  7440. ("gobject-introspection" ,gobject-introspection)
  7441. ("intltool" ,intltool)
  7442. ("pkg-config" ,pkg-config)
  7443. ("vala" ,vala)
  7444. ("xsltproc" ,libxslt)))
  7445. (propagated-inputs
  7446. (list glib ; required by goa-1.0.pc
  7447. gtk+)) ; required by goa-backend-1.0.pc
  7448. (inputs
  7449. `(("docbook-xsl" ,docbook-xsl)
  7450. ("json-glib" ,json-glib)
  7451. ("libsecret" ,libsecret)
  7452. ("rest" ,rest)
  7453. ;; WebKitGtk propagates libsoup 3, which causes the build to fail; so
  7454. ;; use a special variant.
  7455. ("webkitgtk" ,webkitgtk-with-libsoup2)))
  7456. (synopsis "Single sign-on framework for GNOME")
  7457. (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
  7458. (description
  7459. "GNOME Online Accounts provides interfaces so that applications and
  7460. libraries in GNOME can access the user's online accounts. It has providers
  7461. for Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare,
  7462. Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
  7463. (license license:lgpl2.0+)))
  7464. (define-public evolution-data-server
  7465. (package
  7466. (name "evolution-data-server")
  7467. (version "3.42.1")
  7468. (source
  7469. (origin
  7470. (method url-fetch)
  7471. (uri (string-append "mirror://gnome/sources/" name "/"
  7472. (version-major+minor version) "/"
  7473. name "-" version ".tar.xz"))
  7474. (sha256
  7475. (base32 "0a7my8spwcaf2i2fz8ndddi1drv6l9gxq0qblmnkxzyhfwm7zrp6"))))
  7476. (build-system cmake-build-system)
  7477. (arguments
  7478. '(#:configure-flags
  7479. (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
  7480. (runpaths (map (lambda (s)
  7481. (string-append lib "/evolution-data-server/" s))
  7482. '("addressbook-backends" "calendar-backends"
  7483. "camel-providers" "credential-modules"
  7484. "registry-modules"))))
  7485. (list "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
  7486. "-DENABLE_VALA_BINDINGS=ON"
  7487. (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
  7488. (string-append lib "/evolution-data-server;")
  7489. (string-join runpaths ";"))
  7490. "-DENABLE_INTROSPECTION=ON" ;required for Vala bindings
  7491. "-DWITH_PHONENUMBER=ON"))
  7492. #:phases
  7493. (modify-phases %standard-phases
  7494. (add-after 'unpack 'disable-failing-tests
  7495. (lambda _
  7496. ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
  7497. ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
  7498. (delete-file-recursively "tests/book-migration")
  7499. (substitute* "tests/CMakeLists.txt"
  7500. (("add_subdirectory\\(book-migration\\)") ""))))
  7501. (add-after 'unpack 'patch-paths
  7502. (lambda _
  7503. (substitute* '("tests/test-server-utils/e-test-server-utils.c"
  7504. "tests/libedata-book/data-test-utils.c"
  7505. "tests/libedata-book/test-book-cache-utils.c"
  7506. "tests/libedata-cal/test-cal-cache-utils.c")
  7507. (("/bin/rm") (which "rm")))))
  7508. (add-before 'configure 'dont-override-rpath
  7509. (lambda _
  7510. (substitute* "CMakeLists.txt"
  7511. ;; CMakeLists.txt hard-codes runpath to just the libdir.
  7512. ;; Remove it so the configure flag is respected.
  7513. (("SET\\(CMAKE_INSTALL_RPATH .*") "")))))))
  7514. (native-inputs
  7515. `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
  7516. ("gobject-introspection" ,gobject-introspection)
  7517. ("gperf" ,gperf)
  7518. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  7519. ("intltool" ,intltool)
  7520. ("pkg-config" ,pkg-config)
  7521. ("protobuf" ,protobuf)
  7522. ("vala" ,vala)
  7523. ("python" ,python-wrapper)))
  7524. (propagated-inputs
  7525. ;; These are all in the Requires field of .pc files.
  7526. `(("gtk+" ,gtk+)
  7527. ("libical" ,libical)
  7528. ("libsecret" ,libsecret)
  7529. ("libsoup" ,libsoup-minimal-2)
  7530. ("nss" ,nss)
  7531. ("sqlite" ,sqlite)))
  7532. (inputs
  7533. `(("bdb" ,bdb)
  7534. ("boost" ,boost)
  7535. ("gcr" ,gcr)
  7536. ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
  7537. ("json-glib" ,json-glib)
  7538. ("libcanberra" ,libcanberra)
  7539. ("libgweather" ,libgweather)
  7540. ("libphonenumber" ,libphonenumber)
  7541. ("mit-krb5" ,mit-krb5)
  7542. ("openldap" ,openldap)
  7543. ("webkitgtk" ,webkitgtk-with-libsoup2)))
  7544. (synopsis "Store address books and calendars")
  7545. (home-page "https://wiki.gnome.org/Apps/Evolution")
  7546. (description
  7547. "This package provides a unified backend for programs that work with
  7548. contacts, tasks, and calendar information. It was originally developed for
  7549. Evolution (hence the name), but is now used by other packages as well.")
  7550. (license license:lgpl2.0)))
  7551. (define-public caribou
  7552. (package
  7553. (name "caribou")
  7554. (version "0.4.21")
  7555. (source (origin
  7556. (method url-fetch)
  7557. (uri (string-append "mirror://gnome/sources/" name "/"
  7558. (version-major+minor version) "/"
  7559. name "-" version ".tar.xz"))
  7560. (sha256
  7561. (base32
  7562. "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
  7563. (build-system glib-or-gtk-build-system)
  7564. (arguments
  7565. '(#:phases
  7566. (modify-phases %standard-phases
  7567. (add-before
  7568. 'build 'pre-build
  7569. (lambda* (#:key outputs #:allow-other-keys)
  7570. (let ((out (assoc-ref outputs "out")))
  7571. ;; Use absolute shared library path in Caribou-1.0.typelib.
  7572. (substitute* "libcaribou/Makefile"
  7573. (("--shared-library=libcaribou.so")
  7574. (string-append "--shared-library="
  7575. out "/lib/libcaribou.so")))
  7576. #t)))
  7577. (add-after 'install 'wrap-programs
  7578. (lambda* (#:key outputs #:allow-other-keys)
  7579. (let* ((out (assoc-ref outputs "out"))
  7580. (python-path (getenv "GUIX_PYTHONPATH"))
  7581. (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
  7582. (for-each
  7583. (lambda (prog)
  7584. (wrap-program prog
  7585. `("GUIX_PYTHONPATH" ":" prefix (,python-path))
  7586. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
  7587. (list (string-append out "/bin/caribou-preferences")
  7588. (string-append out "/libexec/antler-keyboard"))))
  7589. #t)))))
  7590. (native-inputs
  7591. `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
  7592. ("gobject-introspection" ,gobject-introspection)
  7593. ("intltool" ,intltool)
  7594. ("pkg-config" ,pkg-config)
  7595. ("python" ,python)
  7596. ("vala" ,vala)
  7597. ("xsltproc" ,libxslt)))
  7598. (propagated-inputs
  7599. ;; caribou-1.0.pc refers to all these.
  7600. (list libgee libxklavier libxtst gtk+))
  7601. (inputs
  7602. `(("clutter" ,clutter)
  7603. ("dconf" ,dconf)
  7604. ("gtk+-2" ,gtk+-2)
  7605. ("python-pygobject" ,python-pygobject)))
  7606. (synopsis "Text entry and UI navigation application")
  7607. (home-page "https://wiki.gnome.org/Projects/Caribou")
  7608. (description
  7609. "Caribou is an input assistive technology intended for switch and pointer
  7610. users.")
  7611. (license license:lgpl2.1)))
  7612. (define-public network-manager
  7613. (package
  7614. (name "network-manager")
  7615. (version "1.32.12")
  7616. (source (origin
  7617. (method url-fetch)
  7618. (uri (string-append "mirror://gnome/sources/NetworkManager/"
  7619. (version-major+minor version) "/"
  7620. "NetworkManager-" version ".tar.xz"))
  7621. (patches (search-patches "network-manager-plugin-path.patch"
  7622. "network-manager-meson.patch"))
  7623. (sha256
  7624. (base32
  7625. "0jzmz0zw64dgvdn2g7pppr7bkywpbxcbdb1viv6p7zh2lnh3dax8"))))
  7626. (build-system meson-build-system)
  7627. (outputs '("out"
  7628. "doc")) ; 8 MiB of gtk-doc HTML
  7629. (arguments
  7630. `(#:configure-flags
  7631. (let ((out (assoc-ref %outputs "out"))
  7632. (dhclient (search-input-file %build-inputs "/sbin/dhclient")))
  7633. (list
  7634. ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
  7635. ;; component.
  7636. (string-append "-Dc_link_args=-Wl,-rpath="
  7637. out "/lib:"
  7638. out "/lib/NetworkManager/" ,version)
  7639. "-Dsystemd_journal=false"
  7640. "-Dsession_tracking=elogind"
  7641. "-Dsuspend_resume=elogind"
  7642. "-Dsystemdsystemunitdir=no"
  7643. "-Dsession_tracking_consolekit=false"
  7644. "-Ddhcpcd=no"
  7645. "-Ddhcpcanon=no"
  7646. "-Dcrypto=gnutls"
  7647. "-Diwd=true"
  7648. "-Dlibaudit=yes"
  7649. "-Dqt=false"
  7650. "-Ddocs=true"
  7651. "--sysconfdir=/etc"
  7652. "--localstatedir=/var"
  7653. (string-append "-Dudev_dir="
  7654. out "/lib/udev")
  7655. (string-append "-Ddbus_conf_dir="
  7656. out "/etc/dbus-1/system.d")
  7657. (string-append "-Ddhclient=" dhclient)))
  7658. #:phases
  7659. (modify-phases %standard-phases
  7660. (add-after 'unpack 'patch-dlopen-call-to-libjansson.so
  7661. (lambda* (#:key inputs #:allow-other-keys)
  7662. (substitute* "src/libnm-glib-aux/nm-json-aux.c"
  7663. (("(handle = dlopen\\()soname" _ head)
  7664. (string-append
  7665. head "\"" (search-input-file inputs
  7666. "lib/libjansson.so") "\"")))))
  7667. (add-before 'configure 'pre-configure
  7668. (lambda _
  7669. ;; These tests try to test aspects of network-manager's
  7670. ;; functionality within restricted containers, but they don't
  7671. ;; cope with being already in the Guix build jail as that jail
  7672. ;; lacks some features that they would like to proxy over (like
  7673. ;; a /sys mount).
  7674. (substitute* "src/core/tests/meson.build"
  7675. ((".*test-l3cfg.*") ""))
  7676. (substitute* "src/core/devices/tests/meson.build"
  7677. ((".*test-acd.*") "")
  7678. ((".*test-lldp.*") ""))
  7679. (substitute* "src/core/platform/tests/meson.build"
  7680. ((".*test-address-linux.*") "")
  7681. ((".*test-cleanup-linux.*") "")
  7682. ((".*test-link-linux.*") "")
  7683. ((".*test-lldp.*") "")
  7684. ((".*test-route-linux.*") "")
  7685. ((".*test-tc-linux.*") ""))))
  7686. (add-after 'unpack 'patch-docbook-xml
  7687. (lambda* (#:key inputs #:allow-other-keys)
  7688. (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
  7689. "/xml/dtd/docbook")))
  7690. (substitute* (find-files "." ".*\\.(xsl|xml)")
  7691. (("http://.*/docbookx\\.dtd")
  7692. (string-append xmldoc "/docbookx.dtd"))))))
  7693. (add-before 'check 'pre-check
  7694. (lambda _
  7695. ;; For the missing /etc/machine-id.
  7696. (setenv "DBUS_FATAL_WARNINGS" "0")))
  7697. (add-before 'install 'no-polkit-magic
  7698. ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
  7699. (lambda _
  7700. (setenv "PKEXEC_UID" "something")))
  7701. (add-after 'install 'move-doc
  7702. (lambda* (#:key outputs #:allow-other-keys)
  7703. (let ((out (assoc-ref outputs "out"))
  7704. (doc (assoc-ref outputs "doc")))
  7705. (mkdir-p (string-append doc "/share"))
  7706. (for-each (lambda (directory)
  7707. (copy-recursively (string-append out directory)
  7708. (string-append doc directory))
  7709. (delete-file-recursively
  7710. (string-append out directory)))
  7711. '("/share/doc" "/share/gtk-doc"))))))))
  7712. (propagated-inputs
  7713. (list glib))
  7714. (native-inputs
  7715. `(("glib:bin" ,glib "bin") ; for gdbus-codegen
  7716. ("gtk-doc" ,gtk-doc/stable)
  7717. ("gobject-introspection" ,gobject-introspection)
  7718. ("docbook-xml" ,docbook-xml)
  7719. ("docbook-xsl" ,docbook-xsl)
  7720. ("intltool" ,intltool)
  7721. ("libxslt" ,libxslt)
  7722. ("libxml2" ,libxml2)
  7723. ("pkg-config" ,pkg-config)
  7724. ("vala" ,vala)
  7725. ;; For testing.
  7726. ("python" ,python-wrapper)
  7727. ("python-dbus" ,python-dbus)
  7728. ("python-pygobject" ,python-pygobject)))
  7729. (inputs
  7730. `(("curl" ,curl)
  7731. ("cyrus-sasl" ,cyrus-sasl)
  7732. ("dbus-glib" ,dbus-glib)
  7733. ("dnsmasq" ,dnsmasq)
  7734. ("eudev" ,eudev)
  7735. ("gnutls" ,gnutls)
  7736. ("iptables" ,iptables)
  7737. ("isc-dhcp" ,isc-dhcp)
  7738. ("iwd" ,iwd) ; wpa_supplicant alternative
  7739. ("jansson" ,jansson)
  7740. ("libaudit" ,audit)
  7741. ("libgcrypt" ,libgcrypt)
  7742. ("libgudev" ,libgudev)
  7743. ("libndp" ,libndp)
  7744. ("libnl" ,libnl)
  7745. ("libselinux" ,libselinux)
  7746. ("libsoup" ,libsoup)
  7747. ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
  7748. ("modem-manager" ,modem-manager)
  7749. ("newt" ,newt) ;for the 'nmtui' console interface
  7750. ("openresolv" ,openresolv) ; alternative resolv.conf manager
  7751. ("polkit" ,polkit)
  7752. ("ppp" ,ppp)
  7753. ("readline" ,readline)
  7754. ("util-linux" ,util-linux)
  7755. ("elogind" ,elogind)))
  7756. (synopsis "Network connection manager")
  7757. (home-page "https://wiki.gnome.org/Projects/NetworkManager")
  7758. (description
  7759. "NetworkManager is a system network service that manages your network
  7760. devices and connections, attempting to keep active network connectivity when
  7761. available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
  7762. devices, and provides VPN integration with a variety of different VPN
  7763. services.")
  7764. ;; “This NetworkManager project consists of the daemon, client tools, and
  7765. ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
  7766. ;; GPL-2.0+.”
  7767. (license (list license:gpl2+
  7768. license:lgpl2.1+))
  7769. (properties '((upstream-name . "NetworkManager")))))
  7770. (define-public network-manager-openvpn
  7771. (package
  7772. (name "network-manager-openvpn")
  7773. (version "1.8.12")
  7774. (source (origin
  7775. (method url-fetch)
  7776. (uri (string-append
  7777. "mirror://gnome/sources/NetworkManager-openvpn/"
  7778. (version-major+minor version)
  7779. "/NetworkManager-openvpn-" version ".tar.xz"))
  7780. (sha256
  7781. (base32
  7782. "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
  7783. (build-system gnu-build-system)
  7784. (arguments
  7785. `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
  7786. #:phases
  7787. (modify-phases %standard-phases
  7788. (add-after 'configure 'patch-path
  7789. (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
  7790. (let* ((ovpn (search-input-file inputs "/sbin/openvpn"))
  7791. (modprobe (search-input-file inputs "/bin/modprobe"))
  7792. (pretty-ovpn (string-append "\"" ovpn "\"")))
  7793. (for-each
  7794. (lambda (file)
  7795. (substitute* file
  7796. (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
  7797. (("\"/usr/sbin/openvpn\"") pretty-ovpn)
  7798. (("\"/sbin/openvpn\"") pretty-ovpn)
  7799. (("/sbin/modprobe") modprobe)))
  7800. '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
  7801. #t)))))
  7802. (native-inputs
  7803. (list pkg-config intltool))
  7804. (inputs
  7805. (list gtk+
  7806. kmod
  7807. openvpn
  7808. network-manager
  7809. libnma
  7810. libsecret))
  7811. (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
  7812. (synopsis "OpenVPN plug-in for NetworkManager")
  7813. (description
  7814. "This extension of NetworkManager allows it to take care of connections
  7815. to virtual private networks (VPNs) via OpenVPN.")
  7816. (license license:gpl2+)
  7817. (properties `((upstream-name . "NetworkManager-openvpn")))))
  7818. (define-public network-manager-vpnc
  7819. (package
  7820. (name "network-manager-vpnc")
  7821. (version "1.2.6")
  7822. (source (origin
  7823. (method url-fetch)
  7824. (uri (string-append
  7825. "mirror://gnome/sources/NetworkManager-vpnc/"
  7826. (version-major+minor version)
  7827. "/NetworkManager-vpnc-" version ".tar.xz"))
  7828. (sha256
  7829. (base32
  7830. "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
  7831. (build-system gnu-build-system)
  7832. (arguments
  7833. `(#:configure-flags '("--enable-absolute-paths"
  7834. "--localstatedir=/var"
  7835. ;; libnm-glib has been removed from network-manager
  7836. ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
  7837. "--with-libnm-glib=no")
  7838. #:phases
  7839. (modify-phases %standard-phases
  7840. (add-after 'configure 'patch-path
  7841. (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
  7842. (let* ((vpnc (search-input-file inputs "/sbin/vpnc"))
  7843. (modprobe (search-input-file inputs "/bin/modprobe"))
  7844. (pretty-ovpn (string-append "\"" vpnc "\"")))
  7845. (substitute* "src/nm-vpnc-service.c"
  7846. (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
  7847. (("\"/usr/sbin/vpnc\"") pretty-ovpn)
  7848. (("\"/sbin/vpnc\"") pretty-ovpn)
  7849. (("/sbin/modprobe") modprobe)))
  7850. #t)))))
  7851. (native-inputs
  7852. (list pkg-config intltool))
  7853. (inputs
  7854. (list gtk+
  7855. kmod
  7856. vpnc
  7857. network-manager
  7858. libnma
  7859. libsecret))
  7860. (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
  7861. (synopsis "VPNC plug-in for NetworkManager")
  7862. (description
  7863. "Support for configuring virtual private networks based on VPNC.
  7864. Compatible with Cisco VPN concentrators configured to use IPsec.")
  7865. (license license:gpl2+)
  7866. (properties `((upstream-name . "NetworkManager-vpnc")))))
  7867. (define-public network-manager-openconnect
  7868. (package
  7869. (name "network-manager-openconnect")
  7870. (version "1.2.6")
  7871. (source (origin
  7872. (method url-fetch)
  7873. (uri (string-append
  7874. "mirror://gnome/sources/NetworkManager-openconnect/"
  7875. (version-major+minor version)
  7876. "/NetworkManager-openconnect-" version ".tar.xz"))
  7877. (sha256
  7878. (base32
  7879. "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
  7880. (build-system gnu-build-system)
  7881. (arguments
  7882. `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
  7883. #:phases
  7884. (modify-phases %standard-phases
  7885. (add-after 'configure 'patch-path
  7886. (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
  7887. (let* ((openconnect (search-input-file inputs
  7888. "/sbin/openconnect"))
  7889. (modprobe (search-input-file inputs "/bin/modprobe"))
  7890. (pretty-ovpn (string-append "\"" openconnect "\"")))
  7891. (substitute* "src/nm-openconnect-service.c"
  7892. (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
  7893. (("/sbin/modprobe") modprobe)))
  7894. #t)))))
  7895. (native-inputs
  7896. (list intltool libnma pkg-config))
  7897. (inputs
  7898. (list gcr
  7899. gtk+
  7900. kmod
  7901. libsecret
  7902. libxml2
  7903. lz4
  7904. network-manager
  7905. openconnect))
  7906. (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
  7907. (synopsis "OpenConnect plug-in for NetworkManager")
  7908. (description
  7909. "This extension of NetworkManager allows it to take care of connections
  7910. to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
  7911. Cisco's AnyConnect SSL VPN.")
  7912. (license license:gpl2+)
  7913. (properties `((upstream-name . "NetworkManager-openconnect")
  7914. ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
  7915. ;; file refers to account "nm-openconnect". Specify it here
  7916. ;; so that 'network-manager-service-type' creates it.
  7917. (user-accounts . ("nm-openconnect"))))))
  7918. (define-public mobile-broadband-provider-info
  7919. (package
  7920. (name "mobile-broadband-provider-info")
  7921. (version "20190116")
  7922. (source (origin
  7923. (method url-fetch)
  7924. (uri (string-append
  7925. "mirror://gnome/sources/"
  7926. "mobile-broadband-provider-info/" version "/"
  7927. "mobile-broadband-provider-info-" version ".tar.xz"))
  7928. (sha256
  7929. (base32
  7930. "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
  7931. (build-system gnu-build-system)
  7932. (arguments
  7933. `(#:tests? #f)) ; no tests
  7934. (home-page "https://wiki.gnome.org/Projects/NetworkManager")
  7935. (synopsis "Database of broadband connection configuration")
  7936. (description "Database of broadband connection configuration.")
  7937. (license license:public-domain)))
  7938. (define-public network-manager-applet
  7939. (package
  7940. (name "network-manager-applet")
  7941. (version "1.22.0")
  7942. (source (origin
  7943. (method url-fetch)
  7944. (uri (string-append "mirror://gnome/sources/network-manager-applet/"
  7945. (version-major+minor version) "/"
  7946. "network-manager-applet-" version ".tar.xz"))
  7947. (sha256
  7948. (base32
  7949. "1gj6lqqi613j2m49v9i82lqg1rv7kwwc8z4nxjcwpaa0ins803f7"))))
  7950. (build-system meson-build-system)
  7951. (arguments
  7952. `(#:glib-or-gtk? #t
  7953. #:configure-flags
  7954. '("-Dappindicator=yes")))
  7955. (native-inputs
  7956. `(("intltool" ,intltool)
  7957. ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
  7958. ("gobject-introspection" ,gobject-introspection)
  7959. ("gtk-doc" ,gtk-doc/stable)
  7960. ("pkg-config" ,pkg-config)))
  7961. (propagated-inputs
  7962. ;; libnm-gtk.pc refers to all these.
  7963. (list dbus-glib gtk+ network-manager
  7964. ;; nm-applet need by org.gnome.nm-applet.gschema.xml
  7965. libnma))
  7966. (inputs
  7967. (list gcr
  7968. libappindicator
  7969. libgudev
  7970. libnotify
  7971. libsecret
  7972. libselinux
  7973. jansson ; for team support
  7974. modem-manager))
  7975. (synopsis "Applet for managing network connections")
  7976. (home-page "https://wiki.gnome.org/Projects/NetworkManager")
  7977. (description
  7978. "This package contains a systray applet for NetworkManager. It displays
  7979. the available networks and allows users to easily switch between them.")
  7980. (license license:gpl2+)))
  7981. (define-public libxml++
  7982. (package
  7983. (name "libxml++")
  7984. (version "3.2.0")
  7985. (source
  7986. (origin
  7987. (method git-fetch)
  7988. (uri (git-reference
  7989. (url "https://github.com/libxmlplusplus/libxmlplusplus")
  7990. (commit version)))
  7991. (file-name (git-file-name name version))
  7992. (sha256
  7993. (base32 "0wjz591rjlgbah7dcq8i0yn0zw9d62b7g6r0pppx81ic0cx8n8ga"))))
  7994. (build-system gnu-build-system)
  7995. (arguments
  7996. `(#:phases
  7997. (modify-phases %standard-phases
  7998. (add-after 'unpack 'fix-documentation
  7999. (lambda* (#:key inputs #:allow-other-keys)
  8000. (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
  8001. "/xml/dtd/docbook"))
  8002. (xsldoc (string-append (assoc-ref inputs "docbook-xsl")
  8003. "/xml/xsl/docbook-xsl-"
  8004. ,(package-version docbook-xsl))))
  8005. (substitute* '("examples/dom_xpath/example.xml"
  8006. "docs/manual/libxml++_without_code.xml")
  8007. (("http://.*/docbookx\\.dtd")
  8008. (string-append xmldoc "/docbookx.dtd")))
  8009. (setenv "SGML_CATALOG_FILES"
  8010. (string-append xmldoc "/catalog.xml"))
  8011. (substitute* "docs/manual/docbook-customisation.xsl"
  8012. (("http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl")
  8013. (string-append xsldoc "/html/chunk.xsl")))))))))
  8014. (propagated-inputs
  8015. ;; libxml++-3.0.pc refers to all these.
  8016. (list glibmm-2.64 libxml2))
  8017. (native-inputs
  8018. (list autoconf
  8019. automake
  8020. doxygen
  8021. docbook-xml
  8022. docbook-xsl
  8023. graphviz ; for dot
  8024. libtool
  8025. libxslt
  8026. mm-common
  8027. perl
  8028. pkg-config))
  8029. (home-page "https://github.com/libxmlplusplus/libxmlplusplus/")
  8030. (synopsis "C++ bindings to the libxml2 XML parser library")
  8031. (description
  8032. "This package provides a C++ interface to the libxml2 XML parser
  8033. library.")
  8034. (license license:lgpl2.1+)))
  8035. ;; This is the last release providing the 2.6 API, hence the name.
  8036. ;; This is needed by tascam-gtk
  8037. (define-public libxml++-2
  8038. (package
  8039. (inherit libxml++)
  8040. (name "libxml++")
  8041. (version "2.40.1")
  8042. (source
  8043. (origin
  8044. (method git-fetch)
  8045. (uri (git-reference
  8046. (url "https://github.com/libxmlplusplus/libxmlplusplus")
  8047. (commit version)))
  8048. (file-name (git-file-name name version))
  8049. (sha256
  8050. (base32 "0gbfi4l88w828gmyc9br11l003ylyi4vigp5d1kfgsn0k4cig3y9"))))))
  8051. (define-public gdm
  8052. (package
  8053. (name "gdm")
  8054. (version "40.1")
  8055. (source (origin
  8056. (method url-fetch)
  8057. (uri (string-append "mirror://gnome/sources/" name "/"
  8058. (version-major version) "/"
  8059. name "-" version ".tar.xz"))
  8060. (sha256
  8061. (base32
  8062. "1zbks7bwbys1pn7sk0aq0dbn09adx51amb441z4z4j28cvma3f5b"))
  8063. (patches
  8064. (search-patches
  8065. "gdm-default-session.patch"
  8066. "gdm-elogind-support.patch"
  8067. "gdm-remove-hardcoded-xwayland-path.patch"
  8068. "gdm-wayland-session-wrapper-from-env.patch"
  8069. "gdm-pass-gdk-pixbuf-loader-env.patch"))))
  8070. (build-system meson-build-system)
  8071. (arguments
  8072. `(#:glib-or-gtk? #t
  8073. #:configure-flags
  8074. ,#~(list
  8075. "-Dplymouth=disabled"
  8076. "-Dsystemd-journal=false"
  8077. ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
  8078. ;; instead of having to replace it (i.e., stopping the mingetty
  8079. ;; service for TTY 1 before starting GDM).
  8080. "-Dinitial-vt=7"
  8081. ;; Use elogind instead of systemd.
  8082. "-Dlogind-provider=elogind"
  8083. "-Dsystemdsystemunitdir=no"
  8084. "-Dsystemduserunitdir=no"
  8085. ;; Use '/etc/environment' for locale settings instead of the
  8086. ;; systemd-specific '/etc/locale.conf'.
  8087. "-Dlang-file=/etc/environment"
  8088. (string-append "-Dudev-dir=" #$output "/lib/udev")
  8089. "--localstatedir=/var"
  8090. (string-append "-Ddefault-path="
  8091. (string-join '("/run/setuid-programs"
  8092. "/run/current-system/profile/bin"
  8093. "/run/current-system/profile/sbin")
  8094. ":"))
  8095. ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
  8096. ;; XDG_DATA_DIRS so that it finds its schemas.
  8097. "--sbindir" (string-append #$output "/bin"))
  8098. #:phases
  8099. (modify-phases %standard-phases
  8100. (add-before
  8101. 'configure 'pre-configure
  8102. (lambda* (#:key inputs outputs #:allow-other-keys)
  8103. ;; We don't have <systemd/sd-daemon.h>.
  8104. (substitute* '("common/gdm-log.c"
  8105. "daemon/gdm-server.c"
  8106. "daemon/gdm-session-worker.c"
  8107. "daemon/gdm-session-worker-job.c")
  8108. (("#include <systemd/sd-daemon\\.h>") ""))
  8109. ;; Use elogind for sd-login.
  8110. (substitute* '("common/gdm-common.c"
  8111. "daemon/gdm-local-display-factory.c"
  8112. "daemon/gdm-manager.c"
  8113. "libgdm/gdm-user-switching.c")
  8114. (("#include <systemd/sd-login\\.h>")
  8115. "#include <elogind/sd-login.h>"))
  8116. ;; Look for system-installed sessions in
  8117. ;; /run/current-system/profile/share.
  8118. (substitute* '("libgdm/gdm-sessions.c"
  8119. "daemon/gdm-session.c"
  8120. "daemon/gdm-display.c"
  8121. "daemon/gdm-launch-environment.c")
  8122. (("DATADIR \"/x")
  8123. "\"/run/current-system/profile/share/x")
  8124. (("DATADIR \"/wayland")
  8125. "\"/run/current-system/profile/share/wayland")
  8126. (("DATADIR \"/gnome")
  8127. "\"/run/current-system/profile/share/gnome"))
  8128. (let ((propagate '("GDM_CUSTOM_CONF"
  8129. "GDM_DBUS_DAEMON"
  8130. "GDM_X_SERVER"
  8131. "GDM_X_SESSION"
  8132. ;; XXX: Remove this once GNOME Shell is
  8133. ;; a dependency of GDM.
  8134. "XDG_DATA_DIRS")))
  8135. (substitute* "daemon/gdm-session.c"
  8136. (("set_up_session_environment \\(self\\);")
  8137. (apply string-append
  8138. "set_up_session_environment (self);\n"
  8139. (map (lambda (name)
  8140. (string-append
  8141. "gdm_session_set_environment_variable "
  8142. "(self, \"" name "\","
  8143. "g_getenv (\"" name "\"));\n"))
  8144. propagate)))))
  8145. ;; Find the configuration file using an environment variable.
  8146. (substitute* '("common/gdm-settings.c")
  8147. (("GDM_CUSTOM_CONF")
  8148. (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
  8149. " ? g_getenv(\"GDM_CUSTOM_CONF\")"
  8150. " : GDM_CUSTOM_CONF)")))
  8151. ;; Use service-supplied path to X.
  8152. (substitute* '("daemon/gdm-server.c")
  8153. (("\\(X_SERVER X_SERVER_ARG_FORMAT")
  8154. "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
  8155. (substitute* '("daemon/gdm-wayland-session.c"
  8156. "daemon/gdm-x-session.c")
  8157. (("\"dbus-daemon\"")
  8158. "g_getenv (\"GDM_DBUS_DAEMON\")")
  8159. (("X_SERVER")
  8160. "g_getenv (\"GDM_X_SERVER\")")
  8161. (("GDMCONFDIR \"/Xsession\"")
  8162. "g_getenv (\"GDM_X_SESSION\")"))
  8163. ;; Use an absolute path for GNOME Session.
  8164. (substitute* "daemon/gdm-launch-environment.c"
  8165. (("\"gnome-session\"")
  8166. (string-append "\"" (assoc-ref inputs "gnome-session")
  8167. "/bin/gnome-session\"")))
  8168. ;; Do not automatically select the placeholder session.
  8169. (substitute* "daemon/gdm-session.c"
  8170. (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
  8171. (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
  8172. "(g_strcmp0(search_dirs[i], \""
  8173. (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
  8174. "\") == 0 && "
  8175. "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
  8176. (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
  8177. "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))))
  8178. (add-before 'install 'install-logo
  8179. (lambda* (#:key inputs outputs #:allow-other-keys)
  8180. (let* ((out (assoc-ref outputs "out"))
  8181. (guix-icons (assoc-ref inputs "guix-icons"))
  8182. (icon
  8183. (string-append guix-icons "/share/icons/hicolor/\
  8184. scalable/apps/guix-white-icon.svg"))
  8185. (schema
  8186. (string-append out "/share/glib-2.0/schemas/\
  8187. org.gnome.login-screen.gschema.override")))
  8188. (mkdir-p (dirname schema))
  8189. (with-output-to-file schema
  8190. (lambda ()
  8191. (format #t "\
  8192. [org.gnome.login-screen]
  8193. logo='~a'~%" icon))))))
  8194. ;; GDM requires that there be at least one desktop entry
  8195. ;; file. This phase installs a hidden one that simply
  8196. ;; fails. This enables users to use GDM with a
  8197. ;; '~/.xsession' script with no other desktop entry files.
  8198. ;; See <https://bugs.gnu.org/35068>.
  8199. (add-after 'install 'install-placeholder-desktop-entry
  8200. (lambda* (#:key inputs outputs #:allow-other-keys)
  8201. (let* ((out (assoc-ref outputs "out"))
  8202. (sessions (string-append out "/share/gdm/BuiltInSessions"))
  8203. (fail (string-append sessions "/fail.desktop")))
  8204. (mkdir-p sessions)
  8205. (with-output-to-file fail
  8206. (lambda ()
  8207. (for-each
  8208. display
  8209. '("[Desktop Entry]\n"
  8210. "Encoding=UTF-8\n"
  8211. "Type=Application\n"
  8212. "Name=Fail\n"
  8213. "Comment=This session fails immediately.\n"
  8214. "NoDisplay=true\n"
  8215. "Exec=false\n")))))))
  8216. ;; GDM needs GNOME Session to run these applications. We link
  8217. ;; their autostart files in `share/gdm/greeter/autostart'
  8218. ;; because GDM explicitly tells GNOME Session to look there.
  8219. ;;
  8220. ;; XXX: GNOME Shell should be linked here too, but currently
  8221. ;; GNOME Shell depends on GDM.
  8222. (add-after 'install 'link-autostart-files
  8223. (lambda* (#:key inputs outputs #:allow-other-keys)
  8224. (let* ((out (assoc-ref outputs "out"))
  8225. (autostart (string-append out "/share/gdm/"
  8226. "greeter/autostart"))
  8227. (settings (assoc-ref inputs "gnome-settings-daemon")))
  8228. (mkdir-p autostart)
  8229. (with-directory-excursion autostart
  8230. (for-each (lambda (desktop)
  8231. (symlink desktop (basename desktop)))
  8232. (find-files
  8233. (string-append settings "/etc/xdg"))))))))))
  8234. (native-inputs
  8235. `(("dconf" ,dconf)
  8236. ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
  8237. ("gobject-introspection" ,gobject-introspection)
  8238. ("guix-icons" ,guix-icons)
  8239. ("intltool" ,intltool)
  8240. ("itstool" ,itstool)
  8241. ("pkg-config" ,pkg-config)
  8242. ("xmllint" ,libxml2)))
  8243. (inputs
  8244. (list accountsservice
  8245. check-0.14 ;for testing
  8246. elogind
  8247. eudev
  8248. gnome-session
  8249. gnome-settings-daemon
  8250. gtk+
  8251. iso-codes
  8252. libcanberra
  8253. linux-pam))
  8254. (synopsis "Display manager for GNOME")
  8255. (home-page "https://wiki.gnome.org/Projects/GDM/")
  8256. (description
  8257. "GNOME Display Manager is a system service that is responsible for
  8258. providing graphical log-ins and managing local and remote displays.")
  8259. (license license:gpl2+)))
  8260. (define-public libgtop
  8261. (package
  8262. (name "libgtop")
  8263. (version "2.40.0")
  8264. (source (origin
  8265. (method url-fetch)
  8266. (uri (string-append "mirror://gnome/sources/libgtop/"
  8267. (version-major+minor version) "/"
  8268. "libgtop-" version ".tar.xz"))
  8269. (sha256
  8270. (base32
  8271. "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
  8272. (build-system gnu-build-system)
  8273. (native-inputs
  8274. (list gobject-introspection intltool perl pkg-config))
  8275. (propagated-inputs
  8276. (list glib)) ; required by libgtop-2.0.pc
  8277. (synopsis "Portable system access library")
  8278. (home-page "https://www.gnome.org/")
  8279. (description
  8280. "LibGTop is a library to get system specific data such as CPU and memory
  8281. usage and information about running processes.")
  8282. (license license:gpl2+)))
  8283. (define-public gnome-bluetooth
  8284. (package
  8285. (name "gnome-bluetooth")
  8286. (version "3.34.5")
  8287. (source (origin
  8288. (method url-fetch)
  8289. (uri (string-append "mirror://gnome/sources/gnome-bluetooth/"
  8290. (version-major+minor version) "/"
  8291. "gnome-bluetooth-" version ".tar.xz"))
  8292. (sha256
  8293. (base32
  8294. "1a9ynlwwkb3wpg293ym517vmrkk63y809mmcv9a21k5yr199x53c"))))
  8295. (build-system meson-build-system)
  8296. (native-inputs
  8297. `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
  8298. ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
  8299. ("gobject-introspection" ,gobject-introspection)
  8300. ("intltool" ,intltool)
  8301. ("pkg-config" ,pkg-config)
  8302. ("python" ,python)
  8303. ("python-dbus" ,python-dbus)
  8304. ("xmllint" ,libxml2)))
  8305. (propagated-inputs
  8306. ;; gnome-bluetooth-1.0.pc refers to all these.
  8307. (list glib gtk+))
  8308. (inputs
  8309. (list eudev libcanberra libnotify python-dbus))
  8310. (synopsis "GNOME Bluetooth subsystem")
  8311. (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
  8312. (description
  8313. "This package contains tools for managing and manipulating Bluetooth
  8314. devices using the GNOME desktop.")
  8315. (license license:lgpl2.1+)))
  8316. (define-public gnome-control-center
  8317. (package
  8318. (name "gnome-control-center")
  8319. (version "41.2")
  8320. (source (origin
  8321. (method url-fetch)
  8322. (uri (string-append "mirror://gnome/sources/" name "/"
  8323. (version-major version) "/"
  8324. name "-" version ".tar.xz"))
  8325. (sha256
  8326. (base32
  8327. "0j72ixhli621psbrma86qxy0spv6gpjx6k9hg2jih97c6dmzqwc2"))
  8328. (patches (search-patches
  8329. "gnome-control-center-libexecdir.patch"))))
  8330. (build-system meson-build-system)
  8331. (arguments
  8332. `(#:glib-or-gtk? #t
  8333. #:configure-flags
  8334. (list "-Dcheese=false"
  8335. (string-append "-Dgnome_session_libexecdir="
  8336. (assoc-ref %build-inputs "gnome-session")
  8337. "/libexec"))
  8338. #:phases
  8339. (modify-phases %standard-phases
  8340. (add-before 'configure 'patch-paths
  8341. (lambda* (#:key inputs #:allow-other-keys)
  8342. (let ((libc (assoc-ref inputs "libc"))
  8343. (tzdata (assoc-ref inputs "tzdata"))
  8344. (libgnomekbd (assoc-ref inputs "libgnomekbd"))
  8345. (nm-applet (assoc-ref inputs "network-manager-applet"))
  8346. (gnome-desktop (assoc-ref inputs "gnome-desktop")))
  8347. (substitute* "panels/datetime/tz.h"
  8348. (("/usr/share/zoneinfo/zone.tab")
  8349. (string-append tzdata "/share/zoneinfo/zone.tab")))
  8350. (substitute* "tests/datetime/test-endianess.c"
  8351. (("/usr/share/locale")
  8352. (string-append libc "/share/locale")))
  8353. (substitute* "panels/region/cc-region-panel.c"
  8354. (("\"gkbd-keyboard-display")
  8355. (string-append "\"" libgnomekbd
  8356. "/bin/gkbd-keyboard-display")))
  8357. (substitute* '("panels/network/net-device-bluetooth.c"
  8358. "panels/network/net-device-mobile.c"
  8359. "panels/network/connection-editor/net-connection-editor.c")
  8360. (("\"nm-connection-editor")
  8361. (string-append "\"" nm-applet
  8362. "/bin/nm-connection-editor")))
  8363. (substitute* '("panels/user-accounts/run-passwd.c")
  8364. (("/usr/bin/passwd")
  8365. "/run/setuid-programs/passwd"))
  8366. (substitute* "panels/info-overview/cc-info-overview-panel.c"
  8367. (("DATADIR \"/gnome/gnome-version.xml\"")
  8368. (string-append "\"" gnome-desktop
  8369. "/share/gnome/gnome-version.xml\""))))))
  8370. (add-after 'unpack 'skip-gtk-update-icon-cache
  8371. ;; Don't create 'icon-theme.cache'.
  8372. (lambda _
  8373. (substitute* "build-aux/meson/meson_post_install.py"
  8374. (("gtk-update-icon-cache") (which "true")))))
  8375. (add-before 'install 'no-polkit-magic
  8376. ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
  8377. (lambda _
  8378. (setenv "PKEXEC_UID" "something"))))))
  8379. (native-inputs
  8380. (list `(,glib "bin") ;for glib-mkenums, etc.
  8381. intltool
  8382. pkg-config
  8383. python
  8384. libxslt
  8385. ;; For tests
  8386. hicolor-icon-theme
  8387. python-dbusmock
  8388. xorg-server-for-tests))
  8389. (inputs
  8390. (list accountsservice
  8391. clutter-gtk
  8392. colord-gtk
  8393. cups
  8394. dconf
  8395. docbook-xsl
  8396. gcr
  8397. gnome-bluetooth
  8398. gnome-desktop
  8399. gnome-online-accounts
  8400. `(,gnome-online-accounts "lib")
  8401. gnome-session
  8402. gnome-settings-daemon
  8403. grilo
  8404. gsound
  8405. ibus
  8406. libcanberra
  8407. libgnomekbd
  8408. libgudev
  8409. libgtop
  8410. libnma
  8411. libpwquality
  8412. librsvg ;for loading SVG files
  8413. libsecret
  8414. libsoup-minimal-2
  8415. libxml2
  8416. libwacom
  8417. mesa
  8418. mit-krb5
  8419. modem-manager
  8420. network-manager-applet
  8421. polkit
  8422. pulseaudio
  8423. samba
  8424. tzdata
  8425. udisks
  8426. upower))
  8427. (synopsis "Utilities to configure the GNOME desktop")
  8428. (home-page "https://www.gnome.org/")
  8429. (description
  8430. "This package contains configuration applets for the GNOME desktop,
  8431. allowing to set accessibility configuration, desktop fonts, keyboard and mouse
  8432. properties, sound setup, desktop theme and background, user interface
  8433. properties, screen resolution, and other GNOME parameters.")
  8434. (license license:gpl2+)))
  8435. (define-public gnome-shell
  8436. (package
  8437. (name "gnome-shell")
  8438. (version "41.0")
  8439. (source (origin
  8440. (method url-fetch)
  8441. (uri (string-append "mirror://gnome/sources/" name "/"
  8442. (version-major version) "/"
  8443. name "-" version ".tar.xz"))
  8444. (sha256
  8445. (base32
  8446. "0ragmcln210zvzhc2br33yprbkj9drjzd7inp5sdxra0a7l73yaj"))))
  8447. (build-system meson-build-system)
  8448. (arguments
  8449. `(#:glib-or-gtk? #t
  8450. #:disallowed-references ,(list (gexp-input glib "bin")
  8451. (gexp-input libxslt)
  8452. (gexp-input ruby-sass))
  8453. #:configure-flags
  8454. (list "-Dsystemd=false"
  8455. ;; Otherwise, the RUNPATH will lack the final path component.
  8456. (string-append "-Dc_link_args=-Wl,-rpath="
  8457. (assoc-ref %outputs "out")
  8458. "/lib/gnome-shell"))
  8459. #:modules ((guix build meson-build-system)
  8460. (guix build utils)
  8461. (srfi srfi-1))
  8462. #:phases
  8463. (modify-phases %standard-phases
  8464. (add-after 'unpack 'fix-keysdir
  8465. (lambda* (#:key outputs #:allow-other-keys)
  8466. (let* ((out (assoc-ref outputs "out"))
  8467. (keysdir (string-append
  8468. out "/share/gnome-control-center/keybindings")))
  8469. (substitute* "meson.build"
  8470. (("keysdir =.*")
  8471. (string-append "keysdir = '" keysdir "'\n"))))))
  8472. (add-after 'unpack 'skip-gtk-update-icon-cache
  8473. ;; Don't create 'icon-theme.cache'.
  8474. (lambda _
  8475. (substitute* "meson/postinstall.py"
  8476. (("gtk-update-icon-cache") "true"))))
  8477. (add-before 'configure 'record-absolute-file-names
  8478. (lambda* (#:key inputs #:allow-other-keys)
  8479. (substitute* "js/misc/ibusManager.js"
  8480. (("'ibus-daemon'")
  8481. (string-append "'" (assoc-ref inputs "ibus")
  8482. "/bin/ibus-daemon'")))
  8483. (substitute* "js/ui/status/keyboard.js"
  8484. (("'gkbd-keyboard-display'")
  8485. (string-append "'" (assoc-ref inputs "libgnomekbd")
  8486. "/bin/gkbd-keyboard-display'")))))
  8487. (add-before 'check 'pre-check
  8488. (lambda* (#:key inputs #:allow-other-keys)
  8489. ;; Tests require a running X server.
  8490. (system "Xvfb :1 &")
  8491. (setenv "DISPLAY" ":1")
  8492. (setenv "HOME" "/tmp"))) ;to avoid "fatal" warnings
  8493. (add-after 'install 'wrap-programs
  8494. (lambda* (#:key inputs outputs #:allow-other-keys)
  8495. (let ((out (assoc-ref outputs "out"))
  8496. (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
  8497. (python-path (getenv "GUIX_PYTHONPATH")))
  8498. (for-each
  8499. (lambda (prog)
  8500. (wrap-program (string-append out "/bin/" prog)
  8501. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
  8502. '("gnome-shell" "gnome-extensions-app"))
  8503. (substitute* (string-append out "/share/gnome-shell/"
  8504. "org.gnome.Shell.Extensions")
  8505. (("imports\\.package\\.start" all)
  8506. (string-append "'" gi-typelib-path "'.split(':').forEach("
  8507. "path => imports.gi.GIRepository.Repository."
  8508. "prepend_search_path(path));\n"
  8509. all)))
  8510. (for-each
  8511. (lambda (prog)
  8512. (wrap-program (string-append out "/bin/" prog)
  8513. `("GUIX_PYTHONPATH" ":" prefix (,python-path))
  8514. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
  8515. '("gnome-shell-perf-tool")))))
  8516. (add-after 'install 'rewire
  8517. (lambda* (#:key inputs outputs #:allow-other-keys)
  8518. (for-each
  8519. (lambda (tool)
  8520. (call-with-output-file (string-append
  8521. (assoc-ref outputs "out")
  8522. "/bin/" tool)
  8523. (lambda (port)
  8524. (format port "#!~a
  8525. printf '~a is deprecated. Use the \"gnome-extensions\" CLI or \
  8526. \"gnome-extensions-app\" instead.\\n'"
  8527. (search-input-file inputs "bin/bash")
  8528. tool))))
  8529. '("gnome-shell-extension-tool" "gnome-shell-extension-prefs"))))
  8530. (replace 'glib-or-gtk-wrap
  8531. (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
  8532. (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
  8533. ;; By default intltool et al. would end up in the XDG_DATA_DIRS
  8534. ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
  8535. ;; phase. Fix that since we don't need these.
  8536. (wrap #:inputs (fold alist-delete inputs
  8537. '("intltool" "glib:bin"))
  8538. #:outputs outputs)))))))
  8539. (native-inputs
  8540. `(("asciidoc" ,asciidoc)
  8541. ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
  8542. ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
  8543. ("gobject-introspection" ,gobject-introspection)
  8544. ("hicolor-icon-theme" ,hicolor-icon-theme)
  8545. ("intltool" ,intltool)
  8546. ("pkg-config" ,pkg-config)
  8547. ("python" ,python)
  8548. ("ruby-sass" ,ruby-sass)
  8549. ("sassc" ,sassc)
  8550. ("xsltproc" ,libxslt)
  8551. ;; For tests
  8552. ("xorg-server" ,xorg-server-for-tests)))
  8553. (inputs
  8554. (list accountsservice
  8555. caribou
  8556. docbook-xsl
  8557. evolution-data-server
  8558. gcr
  8559. gdm
  8560. librsvg
  8561. gjs
  8562. gtk
  8563. gnome-autoar
  8564. gnome-bluetooth
  8565. gnome-desktop
  8566. gnome-settings-daemon
  8567. graphene
  8568. gst-plugins-base
  8569. ibus
  8570. libcanberra
  8571. libcroco
  8572. libgnomekbd ;for gkbd-keyboard-display
  8573. libgweather
  8574. libnma
  8575. libsoup
  8576. mesa-headers
  8577. mutter
  8578. network-manager-applet
  8579. polkit
  8580. pulseaudio
  8581. python-pygobject
  8582. startup-notification
  8583. telepathy-logger
  8584. upower
  8585. ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
  8586. ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
  8587. librsvg
  8588. geoclue))
  8589. (synopsis "Desktop shell for GNOME")
  8590. (home-page "https://wiki.gnome.org/Projects/GnomeShell")
  8591. (description
  8592. "GNOME Shell provides core user interface functions for the GNOME desktop,
  8593. like switching to windows and launching applications.")
  8594. (license license:gpl2+)))
  8595. (define-public gtk-vnc
  8596. (package
  8597. (name "gtk-vnc")
  8598. (version "1.0.0")
  8599. (source
  8600. (origin
  8601. (method url-fetch)
  8602. (uri
  8603. (string-append "mirror://gnome/sources/" name "/"
  8604. (version-major+minor version) "/"
  8605. name "-" version ".tar.xz"))
  8606. (sha256
  8607. (base32 "1060ws037v556rx1qhfrcg02859rscksrzr8fq11himdg4d1y6m8"))))
  8608. (build-system meson-build-system)
  8609. (arguments
  8610. `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
  8611. (native-inputs
  8612. `(;; GJS depends on Rust, which is x86_64-only so far, so remove the GJS
  8613. ;; dependency on other platforms (FIXME).
  8614. ,@(if (target-x86-64?)
  8615. `(("gjs" ,gjs))
  8616. '())
  8617. ("glib:bin" ,glib "bin")
  8618. ("gobject-introspection" ,gobject-introspection)
  8619. ("intltool" ,intltool)
  8620. ("node" ,node)
  8621. ("perl" ,perl)
  8622. ("pkg-config" ,pkg-config)
  8623. ("python" ,python-wrapper)
  8624. ("vala" ,vala)))
  8625. (inputs
  8626. `(("cairo" ,cairo)
  8627. ("librsvg" ,(librsvg-for-system))
  8628. ("glib" ,glib)
  8629. ("gnutls" ,gnutls)
  8630. ("libgcrypt" ,libgcrypt)
  8631. ("libsasl" ,cyrus-sasl)
  8632. ("pulseaudio" ,pulseaudio)
  8633. ("x11" ,libx11)
  8634. ("zlib" ,zlib)))
  8635. (propagated-inputs
  8636. (list gtk+))
  8637. (synopsis "VNC client viewer widget for GTK+")
  8638. (description "GTK-VNC is a project providing client side APIs for the RFB
  8639. protocol / VNC remote desktop technology. It is built using coroutines allowing
  8640. it to be completely asynchronous while remaining single threaded. It provides a
  8641. core C library, and bindings for Python (PyGTK).")
  8642. (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
  8643. (license license:lgpl2.1+)))
  8644. (define-public gnome-autoar
  8645. (package
  8646. (name "gnome-autoar")
  8647. (version "0.4.1")
  8648. (source (origin
  8649. (method url-fetch)
  8650. (uri (string-append "mirror://gnome/sources/" name "/"
  8651. (version-major+minor version) "/"
  8652. name "-" version ".tar.xz"))
  8653. (sha256
  8654. (base32
  8655. "03hmm7cjgjvyxlflghfa89s1amj16qapl2c9pv0r2bfrp87dasv4"))))
  8656. (build-system meson-build-system)
  8657. (native-inputs
  8658. (list gobject-introspection
  8659. `(,glib "bin") pkg-config))
  8660. (propagated-inputs
  8661. (list libarchive)) ; Required by gnome-autoar-0.pc
  8662. (inputs
  8663. (list gtk+))
  8664. (synopsis "Archives integration support for GNOME")
  8665. (home-page "https://git.gnome.org/browse/gnome-autoar/")
  8666. (description
  8667. "GNOME Autoar is a library which makes creating and extracting archives
  8668. easy, safe, and automatic.")
  8669. (license license:lgpl2.1+)))
  8670. (define-public tracker
  8671. (package
  8672. (name "tracker")
  8673. (version "3.1.2")
  8674. (source (origin
  8675. (method url-fetch)
  8676. (uri (string-append "mirror://gnome/sources/tracker/"
  8677. (version-major+minor version) "/"
  8678. "tracker-" version ".tar.xz"))
  8679. (sha256
  8680. (base32
  8681. "13zcc07wd51sz7kglk3xbjrsq7d835cxfr7iwjr7nn2xcri8jdns"))))
  8682. (build-system meson-build-system)
  8683. (arguments
  8684. `(#:glib-or-gtk? #t
  8685. #:configure-flags
  8686. ;; Otherwise, the RUNPATH will lack the final path component.
  8687. (list (string-append "-Dc_link_args=-Wl,-rpath="
  8688. (assoc-ref %outputs "out") "/lib:"
  8689. (assoc-ref %outputs "out") "/lib/tracker-3.0")
  8690. "-Ddocs=false"
  8691. "-Dsystemd_user_services=false")
  8692. #:phases
  8693. (modify-phases %standard-phases
  8694. (add-before 'configure 'set-shell
  8695. (lambda _
  8696. (setenv "SHELL" (which "bash"))))
  8697. (add-before 'configure 'fix-paths
  8698. (lambda* (#:key inputs #:allow-other-keys)
  8699. (let* ((manpage "/etc/asciidoc/docbook-xsl/manpage.xsl")
  8700. (file (search-input-file inputs manpage)))
  8701. (substitute* "docs/manpages/meson.build"
  8702. (("/etc/asciidoc[^']+")
  8703. file)))))
  8704. (replace 'check
  8705. (lambda* (#:key tests? #:allow-other-keys)
  8706. (when tests?
  8707. ;; Some tests expect to write to $HOME.
  8708. (setenv "HOME" "/tmp")
  8709. (invoke "dbus-run-session" "--" "meson" "test"
  8710. "--print-errorlogs")))))))
  8711. (native-inputs
  8712. `(("glib:bin" ,glib "bin")
  8713. ("gobject-introspection" ,gobject-introspection)
  8714. ("docbook-xsl" ,docbook-xsl)
  8715. ("docbook-xml-4.5" ,docbook-xml)
  8716. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  8717. ("asciidoc" ,asciidoc)
  8718. ("xsltproc" ,libxslt)
  8719. ("cmake-minimal" ,cmake-minimal)
  8720. ("python-pygobject" ,python-pygobject)
  8721. ("gtk-doc" ,gtk-doc/stable)
  8722. ("intltool" ,intltool)
  8723. ("dbus" ,dbus)
  8724. ("pkg-config" ,pkg-config)
  8725. ("python" ,python)
  8726. ("vala" ,vala)))
  8727. (inputs
  8728. `(("dbus" ,dbus)
  8729. ("sqlite" ,sqlite)
  8730. ("libxml2" ,libxml2)
  8731. ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
  8732. ("json-glib" ,json-glib)
  8733. ("libsoup" ,libsoup-minimal-2))) ; tracker-miners requires the same version.
  8734. (synopsis "Metadata database, indexer and search tool")
  8735. (home-page "https://wiki.gnome.org/Projects/Tracker")
  8736. (description
  8737. "Tracker is a search engine and triplestore for desktop, embedded and mobile.
  8738. It is a middleware component aimed at desktop application developers who want
  8739. their apps to browse and search user content. It's not designed to be used
  8740. directly by desktop users, but it provides a commandline tool named
  8741. @command{tracker} for the adventurous.
  8742. Tracker allows your application to instantly perform full-text searches across
  8743. all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
  8744. example. This is achieved by indexing the user's home directory in the
  8745. background.
  8746. Tracker also allows your application to query and list content that the user
  8747. has stored. For example, GNOME Music displays all the music files that are
  8748. found by Tracker. This means that GNOME Music doesn't need to maintain a
  8749. database of its own.
  8750. If you need to go beyond simple searches, Tracker is also a linked data
  8751. endpoint and it understands SPARQL.")
  8752. ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
  8753. ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
  8754. ;; libstemmer is bsd-3 and the rest is gpl2+.
  8755. (license (list license:gpl2+
  8756. license:bsd-3
  8757. license:lgpl2.1+))))
  8758. (define-public tracker-miners
  8759. (package
  8760. (name "tracker-miners")
  8761. (version "3.1.2")
  8762. (source (origin
  8763. (method url-fetch)
  8764. (uri (string-append "mirror://gnome/sources/tracker-miners/"
  8765. (version-major+minor version)
  8766. "/tracker-miners-" version ".tar.xz"))
  8767. (sha256
  8768. (base32
  8769. "0fpd69lgm8cckbamcf9c2q57glxf0s3jcfwkq8p3s4lfsvdclmd0"))))
  8770. (build-system meson-build-system)
  8771. (arguments
  8772. `(#:glib-or-gtk? #t
  8773. #:configure-flags
  8774. (list "-Dminer_rss=false" ; libgrss is required.
  8775. ;; Ensure the RUNPATH contains all installed library locations.
  8776. (string-append "-Dc_link_args=-Wl,-rpath="
  8777. (assoc-ref %outputs "out")
  8778. "/lib/tracker-miners-3.0")
  8779. ;; TODO: Enable functional tests. Currently, the following error
  8780. ;; appears:
  8781. ;; Exception: The functional tests require DConf to be the default
  8782. ;; GSettings backend. Got GKeyfileSettingsBackend instead.
  8783. "-Dfunctional_tests=false"
  8784. "-Dsystemd_user_services=false")
  8785. #:phases
  8786. (modify-phases %standard-phases
  8787. (add-before 'configure 'set-shell
  8788. (lambda _
  8789. (setenv "SHELL" (which "bash"))))
  8790. (add-before 'configure 'fix-paths
  8791. (lambda* (#:key inputs #:allow-other-keys)
  8792. (let* ((manpage "/etc/asciidoc/docbook-xsl/manpage.xsl")
  8793. (file (search-input-file inputs manpage)))
  8794. (substitute* "docs/manpages/meson.build"
  8795. (("/etc/asciidoc[^']+")
  8796. file)))))
  8797. (add-before 'configure 'fix-tests
  8798. (lambda* (#:key inputs #:allow-other-keys)
  8799. ;; Disable those tests that require the functional_tests option
  8800. ;; to be true and the UPower daemon to be started.
  8801. (substitute* "examples/python/meson.build"
  8802. (("foreach example_name:.*")
  8803. "foreach example_name: []"))
  8804. ;; Disable this test that is failing randomly:
  8805. ;; https://gitlab.gnome.org/GNOME/tracker-miners/-/issues/170.
  8806. (substitute* "tests/libtracker-miner/meson.build"
  8807. (("'miner-fs'.*")
  8808. ""))))
  8809. (replace 'check
  8810. (lambda* (#:key tests? #:allow-other-keys)
  8811. (when tests?
  8812. ;; Some tests expect to write to $HOME.
  8813. (setenv "HOME" "/tmp")
  8814. (setenv "LANG" "en_US.UTF-8")
  8815. (invoke "dbus-run-session" "--" "meson" "test"
  8816. "--print-errorlogs")))))))
  8817. (native-inputs
  8818. `(("dbus" ,dbus)
  8819. ("intltool" ,intltool)
  8820. ("glib:bin" ,glib "bin")
  8821. ("docbook-xsl" ,docbook-xsl)
  8822. ("docbook-xml-4.5" ,docbook-xml)
  8823. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  8824. ("asciidoc" ,asciidoc)
  8825. ("xsltproc" ,libxslt)
  8826. ("gobject-introspection" ,gobject-introspection)
  8827. ("pkg-config" ,pkg-config)
  8828. ("python-pygobject" ,python-pygobject)))
  8829. (inputs
  8830. `(("exempi" ,exempi)
  8831. ("ffmpeg" ,ffmpeg)
  8832. ("flac" ,flac)
  8833. ("giflib" ,giflib)
  8834. ("glib" ,glib)
  8835. ("gstreamer" ,gstreamer)
  8836. ("icu4c" ,icu4c)
  8837. ("json-glib" ,json-glib)
  8838. ("libcue" ,libcue)
  8839. ("libexif" ,libexif)
  8840. ("libgsf" ,libgsf)
  8841. ("libgxps" ,libgxps)
  8842. ("libiptcdata" ,libiptcdata)
  8843. ("libjpeg" ,libjpeg-turbo)
  8844. ("libosinfo" ,libosinfo)
  8845. ("libpng" ,libpng)
  8846. ("libseccomp" ,libseccomp)
  8847. ("libsoup" ,libsoup-minimal-2) ; because tracker requires this version.
  8848. ("libtiff" ,libtiff)
  8849. ("libvorbis" ,libvorbis)
  8850. ("libxml2" ,libxml2)
  8851. ("poppler" ,poppler)
  8852. ("shared-mime-info" ,shared-mime-info)
  8853. ("taglib" ,taglib)
  8854. ("totem-pl-parser" ,totem-pl-parser)
  8855. ("tracker" ,tracker)
  8856. ("upower" ,upower)
  8857. ("zlib" ,zlib)))
  8858. (synopsis "Metadata database, indexer and search tool")
  8859. (home-page "https://wiki.gnome.org/Projects/Tracker")
  8860. (description
  8861. "Tracker is an advanced framework for first class objects with associated
  8862. metadata and tags. It provides a one stop solution for all metadata, tags,
  8863. shared object databases, search tools and indexing.")
  8864. ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
  8865. ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
  8866. (license (list license:gpl2+
  8867. license:lgpl2.1+
  8868. license:lgpl2.0+))))
  8869. (define-public nautilus
  8870. (package
  8871. (name "nautilus")
  8872. (version "41.1")
  8873. (source (origin
  8874. (method url-fetch)
  8875. (uri (string-append "mirror://gnome/sources/" name "/"
  8876. (version-major version) "/"
  8877. name "-" version ".tar.xz"))
  8878. (sha256
  8879. (base32
  8880. "0bsqh241m43x3qb3z0mjakjic610ncl95zhjdgls649phnc30qry"))
  8881. (patches
  8882. ;; This patch is already upstream and can be removed next
  8883. ;; release.
  8884. (search-patches "nautilus-add-libportal-gtk3.patch"))))
  8885. (build-system meson-build-system)
  8886. (arguments
  8887. `(#:glib-or-gtk? #t
  8888. #:phases
  8889. (modify-phases %standard-phases
  8890. (add-after 'unpack 'make-extensible
  8891. (lambda _
  8892. (substitute* "src/nautilus-module.c"
  8893. (("static gboolean initialized = FALSE;" all)
  8894. (string-append all "
  8895. const char *extension_path;
  8896. char **extension_dirs, **d;
  8897. ")
  8898. )
  8899. (("load_module_dir \\(NAUTILUS_EXTENSIONDIR\\);" all)
  8900. (string-append all
  8901. "
  8902. extension_path = g_getenv (\"NAUTILUS_EXTENSION_PATH\");
  8903. if (extension_path)
  8904. {
  8905. extension_dirs = g_strsplit (extension_path, \":\", -1);
  8906. for (d = extension_dirs; d != NULL && *d != NULL; d++)
  8907. load_module_dir(*d);
  8908. g_strfreev(extension_dirs);
  8909. }
  8910. ")))))
  8911. (add-after 'unpack 'skip-gtk-update-icon-cache
  8912. ;; Don't create 'icon-theme.cache'.
  8913. (lambda _
  8914. (substitute* "build-aux/meson/postinstall.py"
  8915. (("gtk-update-icon-cache") "true")))))
  8916. ;; XXX: FAIL: check-nautilus
  8917. ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
  8918. #:tests? #f))
  8919. (native-inputs
  8920. (list desktop-file-utils ; for update-desktop-database
  8921. `(,glib "bin") ; for glib-mkenums, etc.
  8922. gobject-introspection
  8923. intltool
  8924. pkg-config
  8925. python))
  8926. (inputs
  8927. (list dconf
  8928. gexiv2
  8929. gvfs
  8930. exempi
  8931. gnome-desktop
  8932. gnome-autoar
  8933. gst-plugins-base
  8934. json-glib
  8935. libhandy
  8936. libportal
  8937. libseccomp
  8938. libselinux
  8939. libsoup-minimal-2 ; to satisfy tracker dependencies
  8940. tracker
  8941. tracker-miners
  8942. ;; XXX: gtk+ is required by libnautilus-extension.pc
  8943. ;;
  8944. ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
  8945. ;; package. See:
  8946. ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
  8947. gtk+
  8948. libexif
  8949. libxml2))
  8950. (native-search-paths
  8951. (list (search-path-specification
  8952. (variable "NAUTILUS_EXTENSION_PATH")
  8953. (files '("lib/nautilus/site-extensions")))))
  8954. (synopsis "File manager for GNOME")
  8955. (home-page "https://wiki.gnome.org/Apps/Nautilus")
  8956. (description
  8957. "Nautilus (Files) is a file manager designed to fit the GNOME desktop
  8958. design and behaviour, giving the user a simple way to navigate and manage its
  8959. files.")
  8960. (license license:gpl2+)))
  8961. (define-public baobab
  8962. (package
  8963. (name "baobab")
  8964. (version "40.0")
  8965. (source (origin
  8966. (method url-fetch)
  8967. (uri (string-append
  8968. "mirror://gnome/sources/" name "/"
  8969. (version-major version) "/"
  8970. name "-" version ".tar.xz"))
  8971. (sha256
  8972. (base32
  8973. "19yii3bdgivxrcka1c4g6dpbmql5nyawwhzlsph7z6bs68nambm6"))))
  8974. (build-system meson-build-system)
  8975. (arguments
  8976. '(#:glib-or-gtk? #t))
  8977. (native-inputs
  8978. `(("intltool" ,intltool)
  8979. ("pkg-config" ,pkg-config)
  8980. ("python" ,python)
  8981. ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
  8982. ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
  8983. ("itstool" ,itstool)
  8984. ("xmllint" ,libxml2)
  8985. ("glib" ,glib "bin")
  8986. ("vala" ,vala)))
  8987. (inputs
  8988. (list gtk+ libhandy))
  8989. (synopsis "Disk usage analyzer for GNOME")
  8990. (description
  8991. "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
  8992. usage in the GNOME desktop environment. It can easily scan device volumes or
  8993. a specific user-requested directory branch (local or remote). Once the scan
  8994. is complete it provides a graphical representation of each selected folder.")
  8995. (home-page "https://wiki.gnome.org/Apps/Baobab")
  8996. (license license:gpl2+)))
  8997. (define-public gnome-backgrounds
  8998. (package
  8999. (name "gnome-backgrounds")
  9000. (version "41.0")
  9001. (source
  9002. (origin
  9003. (method url-fetch)
  9004. (uri (string-append "mirror://gnome/sources/" name "/"
  9005. (version-major version) "/"
  9006. name "-" version ".tar.xz"))
  9007. (sha256
  9008. (base32
  9009. "0i9id5z72dqddh94648zylyf41amqq5lhny8sbyg1v8v4q6sr88x"))))
  9010. (build-system meson-build-system)
  9011. (native-inputs (list gettext-minimal))
  9012. (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
  9013. (synopsis "Background images for the GNOME desktop")
  9014. (description
  9015. "GNOME backgrounds package contains a collection of graphics files which
  9016. can be used as backgrounds in the GNOME Desktop environment. Additionally,
  9017. the package creates the proper framework and directory structure so that you
  9018. can add your own files to the collection.")
  9019. (license (list license:gpl2+
  9020. license:cc-by2.0
  9021. license:cc-by-sa2.0
  9022. license:cc-by-sa3.0))))
  9023. (define-public gnome-screenshot
  9024. (package
  9025. (name "gnome-screenshot")
  9026. (version "40.0")
  9027. (source
  9028. (origin
  9029. (method url-fetch)
  9030. (uri (string-append "mirror://gnome/sources/" name "/"
  9031. (version-major version) "/"
  9032. name "-" version ".tar.xz"))
  9033. (sha256
  9034. (base32
  9035. "1qm544ymwibk31s30k47vnn79xg30m18r7l4di0c57g375dak31n"))
  9036. (patches
  9037. (search-patches "gnome-screenshot-meson-0.60.patch"))))
  9038. (build-system meson-build-system)
  9039. (arguments
  9040. '(#:phases
  9041. (modify-phases %standard-phases
  9042. (add-after 'unpack 'skip-gtk-update-icon-cache
  9043. ;; Don't create 'icon-theme.cache'.
  9044. (lambda _
  9045. (substitute* "build-aux/postinstall.py"
  9046. (("gtk-update-icon-cache") "true")))))))
  9047. (native-inputs
  9048. `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
  9049. ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
  9050. ("intltool" ,intltool)
  9051. ("appstream-glib" ,appstream-glib)
  9052. ("pkg-config" ,pkg-config)
  9053. ("python" ,python)))
  9054. (inputs
  9055. (list gtk+ libcanberra libhandy libx11 libxext))
  9056. (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
  9057. (synopsis "Take pictures of your screen")
  9058. (description
  9059. "GNOME Screenshot is a utility used for taking screenshots of the entire
  9060. screen, a window or a user defined area of the screen, with optional
  9061. beautifying border effects.")
  9062. (license license:gpl2+)))
  9063. (define-public dconf-editor
  9064. (package
  9065. (name "dconf-editor")
  9066. (version "3.38.3")
  9067. (source
  9068. (origin
  9069. (method url-fetch)
  9070. (uri (string-append "mirror://gnome/sources/" name "/"
  9071. (version-major+minor version) "/"
  9072. name "-" version ".tar.xz"))
  9073. (sha256
  9074. (base32
  9075. "1qvrxrk1h8bd75xwasxbvlkqrw6xkavjimvc7sslkw6lvb3z86jp"))))
  9076. (build-system meson-build-system)
  9077. (native-inputs
  9078. `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
  9079. ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
  9080. ("intltool" ,intltool)
  9081. ("pkg-config" ,pkg-config)
  9082. ("vala" ,vala)))
  9083. (inputs
  9084. (list dconf gtk+ libxml2))
  9085. (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
  9086. (synopsis "Graphical editor for GNOME's dconf configuration system")
  9087. (description
  9088. "Dconf-editor is a graphical tool for browsing and editing the dconf
  9089. configuration system for GNOME. It allows users to configure desktop
  9090. software that do not provide their own configuration interface.")
  9091. (license license:lgpl2.1+)))
  9092. (define-public gnome-default-applications
  9093. (package
  9094. (name "gnome-default-applications")
  9095. (version "0")
  9096. (build-system trivial-build-system)
  9097. (source #f)
  9098. (propagated-inputs
  9099. (list nautilus evince))
  9100. (arguments
  9101. `(#:modules ((guix build utils))
  9102. #:builder
  9103. (begin
  9104. (use-modules (guix build utils))
  9105. (let* ((out (assoc-ref %outputs "out"))
  9106. (apps (string-append out "/share/applications")))
  9107. (mkdir-p apps)
  9108. (call-with-output-file (string-append apps "/gnome-mimeapps.list")
  9109. (lambda (port)
  9110. (format port "[Default Applications]\n")
  9111. (format port "inode/directory=org.gnome.Nautilus.desktop\n")
  9112. (format port "application/pdf=evince.desktop\n")
  9113. (format port "application/postscript=evince.desktop\n")))
  9114. #t))))
  9115. (synopsis "Default MIME type associations for the GNOME desktop")
  9116. (description
  9117. "Given many installed packages which might handle a given MIME type, a
  9118. user running the GNOME desktop probably has some preferences: for example,
  9119. that folders be opened by default by the Nautilus file manager, not the Baobab
  9120. disk usage analyzer. This package establishes that set of default MIME type
  9121. associations for GNOME.")
  9122. (license license:gpl3+)
  9123. (home-page #f)))
  9124. (define-public libgovirt
  9125. (package
  9126. (name "libgovirt")
  9127. (version "0.3.8")
  9128. (source (origin
  9129. (method url-fetch)
  9130. (uri (string-append "mirror://gnome/sources/" name "/"
  9131. (version-major+minor version) "/"
  9132. name "-" version ".tar.xz"))
  9133. (sha256
  9134. (base32
  9135. "1y0x1wyakj3ya33hgj0w1jkbcn50q21gmn2zyalxysqp55i1ij8x"))))
  9136. (build-system glib-or-gtk-build-system)
  9137. (native-inputs
  9138. (list gettext-minimal
  9139. `(,glib "bin")
  9140. gobject-introspection
  9141. gsettings-desktop-schemas
  9142. `(,gtk+ "bin")
  9143. pkg-config))
  9144. (inputs
  9145. (list glib-networking ; GIO plugin--for the tests
  9146. rest))
  9147. (synopsis "GoVirt Library")
  9148. (description "GoVirt is a GObject wrapper for the oVirt REST API.")
  9149. (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
  9150. (license license:gpl2+)))
  9151. (define-public gnome-weather
  9152. (package
  9153. (name "gnome-weather")
  9154. (version "40.1")
  9155. (source (origin
  9156. (method url-fetch)
  9157. (uri (string-append "mirror://gnome/sources/" name "/"
  9158. (version-major version) "/"
  9159. name "-" version ".tar.xz"))
  9160. (sha256
  9161. (base32
  9162. "0k9wnyinvx6433r07kvjyahgqc605g7gbpf3d0h6vi4p8x61849x"))))
  9163. (build-system meson-build-system)
  9164. (native-inputs
  9165. `(("gettext" ,gettext-minimal)
  9166. ("glib:bin" ,glib "bin")
  9167. ("gobject-introspection" ,gobject-introspection)
  9168. ("gtk+:bin" ,gtk+ "bin")
  9169. ("pkg-config" ,pkg-config)))
  9170. (inputs
  9171. (list appstream-glib
  9172. geoclue
  9173. gjs
  9174. gnome-desktop
  9175. libgweather
  9176. libhandy))
  9177. (arguments
  9178. `(#:glib-or-gtk? #t
  9179. #:phases
  9180. ,#~(modify-phases %standard-phases
  9181. (add-after 'unpack 'fix-service-file
  9182. (lambda _
  9183. (substitute* "data/org.gnome.Weather.service.in"
  9184. (("Exec=[[:graph:]]+")
  9185. (string-append "Exec=" #$output
  9186. "/bin/gnome-weather")))))
  9187. (add-after 'install 'fix-desktop-file
  9188. ;; FIXME: "gapplication launch org.gnome.Weather" fails for some
  9189. ;; reason. See https://issues.guix.gnu.org/issue/39324.
  9190. (lambda _
  9191. (let ((applications
  9192. (string-append #$output "/share/applications")))
  9193. (substitute* (string-append applications
  9194. "/org.gnome.Weather.desktop")
  9195. (("Exec=.*") "Exec=gnome-weather\n")))))
  9196. (add-after 'install 'wrap
  9197. (lambda _
  9198. (let ((gi-typelib-path (getenv "GI_TYPELIB_PATH")))
  9199. ;; GNOME Weather needs the typelib files of GTK+, Pango etc
  9200. ;; at runtime.
  9201. (wrap-program (string-append #$output "/bin/gnome-weather")
  9202. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))))))
  9203. (synopsis "Weather monitoring for GNOME desktop")
  9204. (description "GNOME Weather is a small application that allows you to
  9205. monitor the current weather conditions for your city, or anywhere in the
  9206. world.")
  9207. (home-page "https://wiki.gnome.org/Apps/Weather")
  9208. (license license:gpl2+)))
  9209. (define-public gnome
  9210. (package
  9211. (name "gnome")
  9212. (version (package-version gnome-shell))
  9213. (source #f)
  9214. (build-system trivial-build-system)
  9215. (arguments '(#:builder (begin (mkdir %output) #t)))
  9216. (propagated-inputs
  9217. `(;; GNOME-Core-OS-Services
  9218. ("accountsservice" ,accountsservice)
  9219. ("network-manager" ,network-manager)
  9220. ("packagekit" ,packagekit)
  9221. ("upower" ,upower)
  9222. ;; GNOME-Core-Shell
  9223. ("adwaita-icon-theme" ,adwaita-icon-theme)
  9224. ("gdm" ,gdm)
  9225. ("glib-networking" ,glib-networking)
  9226. ("gnome-backgrounds" ,gnome-backgrounds)
  9227. ("gnome-bluetooth" ,gnome-bluetooth)
  9228. ("gnome-color-manager" ,gnome-color-manager)
  9229. ("gnome-control-center" ,gnome-control-center)
  9230. ("gnome-desktop" ,gnome-desktop)
  9231. ("gnome-initial-setup" ,gnome-initial-setup)
  9232. ("gnome-keyring" ,gnome-keyring)
  9233. ("gnome-menus" ,gnome-menus)
  9234. ("gnome-session" ,gnome-session)
  9235. ("gnome-settings-daemon" ,gnome-settings-daemon)
  9236. ("gnome-shell-extensions" ,gnome-shell-extensions)
  9237. ("gnome-shell" ,gnome-shell)
  9238. ("gnome-themes-extra" ,gnome-themes-extra)
  9239. ("gnome-user-docs" ,gnome-user-docs)
  9240. ("gnome-user-share" ,gnome-user-share)
  9241. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  9242. ("gvfs" ,gvfs)
  9243. ("mutter" ,mutter)
  9244. ("orca" ,orca)
  9245. ("rygel" ,rygel)
  9246. ("sushi" ,sushi)
  9247. ;; GNOME-Core-Utilities
  9248. ("baobab" ,baobab)
  9249. ("cheese" ,cheese)
  9250. ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
  9251. ;; only works on x86_64, so exclude it on other architectures.
  9252. ,@(if (string-prefix? "x86_64" (%current-system))
  9253. `(("eog" ,eog))
  9254. '())
  9255. ("epiphany" ,epiphany)
  9256. ("evince" ,evince)
  9257. ("file-roller" ,file-roller)
  9258. ("gedit" ,gedit)
  9259. ("gnome-boxes" ,gnome-boxes)
  9260. ("gnome-calculator" ,gnome-calculator)
  9261. ("gnome-calendar" ,gnome-calendar)
  9262. ("gnome-characters" ,gnome-characters)
  9263. ("gnome-clocks" ,gnome-clocks)
  9264. ("gnome-contacts" ,gnome-contacts)
  9265. ("gnome-disk-utility" ,gnome-disk-utility)
  9266. ("gnome-font-viewer" ,gnome-font-viewer)
  9267. ("gnome-maps" ,gnome-maps)
  9268. ("gnome-music" ,gnome-music)
  9269. ("gnome-photos" ,gnome-photos)
  9270. ("gnome-screenshot" ,gnome-screenshot)
  9271. ("gnome-system-monitor" ,gnome-system-monitor)
  9272. ("gnome-terminal" ,gnome-terminal)
  9273. ("gnome-weather" ,gnome-weather)
  9274. ("nautilus" ,nautilus)
  9275. ("simple-scan" ,simple-scan)
  9276. ("totem" ,totem)
  9277. ("tracker-miners" ,tracker-miners)
  9278. ("yelp" ,yelp)
  9279. ;; Others
  9280. ("hicolor-icon-theme" ,hicolor-icon-theme)
  9281. ("gnome-online-accounts" ,gnome-online-accounts)
  9282. ;; Packages not part of GNOME proper but that are needed for a good
  9283. ;; experience. See <https://bugs.gnu.org/39646>.
  9284. ;; XXX: Find out exactly which ones are needed and why.
  9285. ("font-abattis-cantarell" ,font-abattis-cantarell)
  9286. ("font-dejavu" ,font-dejavu)
  9287. ("at-spi2-core" ,at-spi2-core-minimal)
  9288. ("dbus" ,dbus)
  9289. ("dconf" ,dconf)
  9290. ("desktop-file-utils" ,desktop-file-utils)
  9291. ("gnome-default-applications" ,gnome-default-applications)
  9292. ("gnome-themes-standard" ,gnome-themes-standard)
  9293. ("gst-plugins-base" ,gst-plugins-base)
  9294. ("gst-plugins-good" ,gst-plugins-good)
  9295. ("gucharmap" ,gucharmap)
  9296. ("pinentry-gnome3" ,pinentry-gnome3)
  9297. ("pulseaudio" ,pulseaudio)
  9298. ("shared-mime-info" ,shared-mime-info)
  9299. ("system-config-printer" ,system-config-printer)
  9300. ("xdg-user-dirs" ,xdg-user-dirs)
  9301. ("yelp" ,yelp)
  9302. ("zenity" ,zenity)))
  9303. (synopsis "The GNU desktop environment")
  9304. (home-page "https://www.gnome.org/")
  9305. (description
  9306. "GNOME is the graphical desktop for GNU. It includes a wide variety of
  9307. applications for browsing the web, editing text and images, creating
  9308. documents and diagrams, playing media, scanning, and much more.")
  9309. (license license:gpl2+)))
  9310. (define-public byzanz
  9311. ;; The last stable release of Byzanz was in 2011, but there have been many
  9312. ;; useful commits made to the Byzanz repository since then that it would be
  9313. ;; silly to use such an old release.
  9314. (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
  9315. (package
  9316. (name "byzanz")
  9317. (version (string-append "0.2-1." (string-take commit 7)))
  9318. (source (origin
  9319. (method git-fetch)
  9320. (uri (git-reference
  9321. (url "https://git.gnome.org/browse/byzanz")
  9322. (commit commit)))
  9323. (file-name (string-append name "-" version "-checkout"))
  9324. (sha256
  9325. (base32
  9326. "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
  9327. (build-system glib-or-gtk-build-system)
  9328. (arguments
  9329. '(#:phases
  9330. (modify-phases %standard-phases
  9331. (add-before 'bootstrap 'build-without-Werror
  9332. (lambda _
  9333. ;; The build system cleverly detects that we're not building from
  9334. ;; a release tarball and turns on -Werror for GCC.
  9335. ;; Unsurprisingly, there is a warning during compilation that
  9336. ;; causes the build to fail unnecessarily, so we remove the flag.
  9337. (substitute* '("configure.ac")
  9338. (("-Werror") ""))
  9339. #t)))))
  9340. (native-inputs
  9341. (list autoconf
  9342. automake
  9343. gnome-common
  9344. intltool
  9345. libtool
  9346. pkg-config
  9347. which))
  9348. (inputs
  9349. (list glib gstreamer gst-plugins-base gtk+))
  9350. (synopsis "Desktop recording program")
  9351. (description "Byzanz is a simple desktop recording program with a
  9352. command-line interface. It can record part or all of an X display for a
  9353. specified duration and save it as a GIF encoded animated image file.")
  9354. (home-page "https://git.gnome.org/browse/byzanz")
  9355. (license license:gpl2+))))
  9356. (define-public authenticator
  9357. (package
  9358. (name "authenticator")
  9359. (version "3.32.2")
  9360. (source
  9361. (origin
  9362. (method git-fetch)
  9363. (uri (git-reference
  9364. (url "https://gitlab.gnome.org/World/Authenticator")
  9365. (commit version)))
  9366. (file-name (git-file-name name version))
  9367. (sha256
  9368. (base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
  9369. (build-system meson-build-system)
  9370. (arguments
  9371. `(#:meson ,meson-0.59
  9372. #:glib-or-gtk? #t
  9373. #:phases
  9374. (modify-phases %standard-phases
  9375. (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
  9376. (lambda* (#:key inputs outputs #:allow-other-keys)
  9377. (let ((prog (string-append (assoc-ref outputs "out")
  9378. "/bin/authenticator"))
  9379. (pylib (string-append (assoc-ref outputs "out")
  9380. "/lib/python"
  9381. ,(version-major+minor
  9382. (package-version
  9383. (this-package-input "python")))
  9384. "/site-packages")))
  9385. (wrap-program prog
  9386. `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
  9387. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
  9388. (native-inputs
  9389. (list desktop-file-utils
  9390. gettext-minimal
  9391. `(,glib "bin")
  9392. gobject-introspection
  9393. `(,gtk+ "bin")
  9394. pkg-config))
  9395. (inputs
  9396. (list gsettings-desktop-schemas
  9397. gtk+
  9398. libhandy-0.0
  9399. libsecret
  9400. python
  9401. python-beautifulsoup4
  9402. python-pillow
  9403. python-pyfavicon
  9404. python-pygobject
  9405. python-pyotp
  9406. python-pyzbar
  9407. yoyo-migrations
  9408. zbar))
  9409. (home-page "https://gitlab.gnome.org/World/Authenticator/")
  9410. (synopsis "Two-factor authentication application built for GNOME")
  9411. (description
  9412. "Authenticator is a two-factor authentication (2FA) application built for
  9413. the GNOME desktop environment.
  9414. Features:
  9415. @itemize
  9416. @item QR code scanner
  9417. @item Beautiful UI
  9418. @item Huge database of more than 560 supported services
  9419. @item Keep your PIN tokens secure by locking the application with a password
  9420. @item Automatically fetch an image for services using their favicon
  9421. @item The possibility to add new services
  9422. @end itemize")
  9423. (license license:gpl3+)))
  9424. (define-public gsound
  9425. (package
  9426. (name "gsound")
  9427. (version "1.0.3")
  9428. (source (origin
  9429. (method url-fetch)
  9430. (uri (string-append "mirror://gnome/sources/gsound/"
  9431. (version-major+minor version) "/"
  9432. "gsound-" version ".tar.xz"))
  9433. (sha256
  9434. (base32
  9435. "06l80xgykj7x1kqkjvcq06pwj2rmca458zvs053qc55x3sg06bfa"))))
  9436. (build-system meson-build-system)
  9437. (native-inputs
  9438. (list pkg-config gobject-introspection vala))
  9439. (propagated-inputs
  9440. (list libcanberra)) ; in Requires.private of gsound.pc
  9441. (home-page "https://wiki.gnome.org/Projects/GSound")
  9442. (synopsis "GObject wrapper for libcanberra")
  9443. (description
  9444. "GSound is a small library for playing system sounds. It's designed to be
  9445. used via GObject Introspection, and is a thin wrapper around the libcanberra C
  9446. library.")
  9447. (license license:lgpl2.1+)))
  9448. (define-public libzapojit
  9449. (package
  9450. (name "libzapojit")
  9451. (version "0.0.3")
  9452. (source (origin
  9453. (method url-fetch)
  9454. (uri (string-append "mirror://gnome/sources/" name "/"
  9455. (version-major+minor version) "/"
  9456. name "-" version ".tar.xz"))
  9457. (sha256
  9458. (base32
  9459. "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
  9460. (build-system gnu-build-system)
  9461. (native-inputs
  9462. (list gobject-introspection intltool pkg-config))
  9463. (inputs
  9464. (list `(,gnome-online-accounts "lib") json-glib rest))
  9465. (home-page "https://wiki.gnome.org/Projects/Zapojit")
  9466. (synopsis "Library for accessing SkyDrive and Hotmail")
  9467. (description
  9468. "Libzapojit is a GLib-based library for accessing online service APIs of
  9469. Microsoft SkyDrive and Hotmail, using their REST protocols.")
  9470. (license license:lgpl2.1+)))
  9471. (define-public gnome-clocks
  9472. (package
  9473. (name "gnome-clocks")
  9474. (version "40.0")
  9475. (source (origin
  9476. (method url-fetch)
  9477. (uri (string-append "mirror://gnome/sources/" name "/"
  9478. (version-major version) "/"
  9479. name "-" version ".tar.xz"))
  9480. (sha256
  9481. (base32
  9482. "02d3jg46sn8d9gd4dsaly22gg5vkbz2gpq4pmwpvncb4rsqk7sn2"))))
  9483. (build-system meson-build-system)
  9484. (arguments
  9485. '(#:glib-or-gtk? #t
  9486. #:phases
  9487. (modify-phases %standard-phases
  9488. (add-after 'unpack 'skip-gtk-update-icon-cache
  9489. ;; Don't create 'icon-theme.cache'.
  9490. (lambda _
  9491. (substitute* "build-aux/post-install.py"
  9492. (("gtk-update-icon-cache") "true")))))))
  9493. (native-inputs
  9494. `(("vala" ,vala)
  9495. ("pkg-config" ,pkg-config)
  9496. ("glib" ,glib "bin") ; for glib-compile-resources
  9497. ("desktop-file-utils" ,desktop-file-utils)
  9498. ("gettext" ,gettext-minimal)
  9499. ("itstool" ,itstool)))
  9500. (inputs
  9501. (list glib
  9502. gtk+
  9503. gsound
  9504. geoclue
  9505. geocode-glib
  9506. libgweather
  9507. libhandy
  9508. gnome-desktop))
  9509. (home-page "https://wiki.gnome.org/Apps/Clocks")
  9510. (synopsis "GNOME's clock application")
  9511. (description
  9512. "GNOME Clocks is a simple clocks application designed to fit the GNOME
  9513. desktop. It supports world clock, stop watch, alarms, and count down timer.")
  9514. (license license:gpl3+)))
  9515. (define-public gnome-calendar
  9516. (package
  9517. (name "gnome-calendar")
  9518. (version "40.2")
  9519. (source (origin
  9520. (method url-fetch)
  9521. (uri (string-append "mirror://gnome/sources/" name "/"
  9522. (version-major version) "/"
  9523. name "-" version ".tar.xz"))
  9524. (sha256
  9525. (base32
  9526. "0czasxnmbw2zm21lmxam8qixacagciq3f815s809hn0f9byh2dwy"))))
  9527. (build-system meson-build-system)
  9528. (arguments
  9529. `(#:glib-or-gtk? #t
  9530. ;; gnome-calendar has to be installed before the tests can be run
  9531. ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
  9532. #:tests? #f
  9533. #:phases
  9534. (modify-phases %standard-phases
  9535. (add-after 'unpack 'skip-gtk-update-icon-cache
  9536. ;; Don't create 'icon-theme.cache'.
  9537. (lambda _
  9538. (substitute* "build-aux/meson/meson_post_install.py"
  9539. (("gtk-update-icon-cache") "true"))
  9540. #t)))))
  9541. (native-inputs
  9542. `(("gettext" ,gettext-minimal)
  9543. ("glib-bin" ,glib "bin") ; For glib-compile-schemas
  9544. ("pkg-config" ,pkg-config)))
  9545. (inputs
  9546. `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
  9547. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  9548. ("libdazzle" ,libdazzle)
  9549. ("libedataserverui" ,evolution-data-server)
  9550. ("libgweather" ,libgweather)
  9551. ("libhandy" ,libhandy)
  9552. ("geoclue" ,geoclue)))
  9553. (propagated-inputs
  9554. (list evolution-data-server))
  9555. (home-page "https://wiki.gnome.org/Apps/Calendar")
  9556. (synopsis "GNOME's calendar application")
  9557. (description
  9558. "GNOME Calendar is a simple calendar application designed to fit the GNOME
  9559. desktop. It supports multiple calendars, month, week and year view.")
  9560. (license license:gpl3+)))
  9561. (define-public gnome-todo
  9562. (package
  9563. (name "gnome-todo")
  9564. (version "41.0")
  9565. (source (origin
  9566. (method url-fetch)
  9567. (uri (string-append "mirror://gnome/sources/" name "/"
  9568. (version-major version) "/"
  9569. name "-" version ".tar.xz"))
  9570. (sha256
  9571. (base32
  9572. "1r94880d4khbjhhfnhaba3y3d4hv2bri82rzfzxn27s5iybpqras"))
  9573. (patches (search-patches "gnome-todo-libportal.patch"))))
  9574. (build-system meson-build-system)
  9575. (arguments
  9576. (list
  9577. #:glib-or-gtk? #t
  9578. #:phases
  9579. #~(modify-phases %standard-phases
  9580. (add-after 'unpack 'skip-gtk-update-icon-cache
  9581. (lambda _
  9582. (substitute* "build-aux/meson/meson_post_install.py"
  9583. (("gtk-update-icon-cache") "true"))))
  9584. (delete 'check)
  9585. (add-after 'install 'check
  9586. (assoc-ref %standard-phases
  9587. 'check))
  9588. (add-before 'check 'pre-check
  9589. (lambda _
  9590. (setenv "GSETTINGS_SCHEMA_DIR"
  9591. (string-append #$output "/share/glib-2.0/schemas")))))))
  9592. (native-inputs
  9593. (list gettext-minimal
  9594. gobject-introspection
  9595. `(,glib "bin") ;for glib-compile-resources
  9596. `(,gtk "bin") ;for gtk-update-icon-cache
  9597. itstool
  9598. pkg-config))
  9599. (inputs
  9600. (list rest ;for Todoist plugin
  9601. gtk
  9602. json-glib ;for Todoist plugin
  9603. libadwaita
  9604. evolution-data-server
  9605. libical
  9606. libpeas
  9607. libportal
  9608. python-pygobject
  9609. evolution-data-server
  9610. `(,gnome-online-accounts "lib")
  9611. gsettings-desktop-schemas))
  9612. (home-page "https://wiki.gnome.org/Apps/Todo")
  9613. (synopsis "GNOME's ToDo Application")
  9614. (description "GNOME To Do is a simplistic personal task manager designed
  9615. to perfectly fit the GNOME desktop.")
  9616. (license license:gpl3+)))
  9617. (define-public gnome-dictionary
  9618. (package
  9619. (name "gnome-dictionary")
  9620. (version "40.0")
  9621. (source (origin
  9622. (method url-fetch)
  9623. (uri (string-append "mirror://gnome/sources/" name "/"
  9624. (version-major version) "/"
  9625. name "-" version ".tar.xz"))
  9626. (sha256
  9627. (base32
  9628. "1d8dhcfys788vv27v34i3s3x3jdvdi2kqn2a5p8c937a9hm0qr9f"))))
  9629. (build-system meson-build-system)
  9630. (arguments
  9631. `(#:glib-or-gtk? #t
  9632. #:meson ,meson-0.59
  9633. #:phases
  9634. (modify-phases %standard-phases
  9635. (add-after 'unpack 'skip-gtk-update-icon-cache
  9636. ;; Don't create 'icon-theme.cache'.
  9637. (lambda _
  9638. (substitute* "build-aux/meson/post-install.py"
  9639. (("gtk-update-icon-cache") "true")))))))
  9640. (native-inputs
  9641. (list `(,glib "bin")
  9642. gobject-introspection
  9643. intltool
  9644. itstool
  9645. pkg-config
  9646. libxml2))
  9647. (inputs
  9648. (list gsettings-desktop-schemas gtk+))
  9649. (home-page "https://wiki.gnome.org/Apps/Dictionary")
  9650. (synopsis "Look up words in dictionary sources")
  9651. (description
  9652. "GNOME Dictionary can look for the definition or translation of a word in
  9653. existing databases over the internet.")
  9654. (license license:gpl3+)))
  9655. (define-public gnome-tweaks
  9656. (package
  9657. (name "gnome-tweaks")
  9658. (version "40.0")
  9659. (source (origin
  9660. (method url-fetch)
  9661. (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
  9662. (version-major version) "/"
  9663. "gnome-tweaks-" version ".tar.xz"))
  9664. (patches
  9665. (list (search-patch "gnome-tweaks-search-paths.patch")))
  9666. (sha256
  9667. (base32
  9668. "0sn3xsjhnini0f2dyi1ymrr3fb8mi7w5j5lsyw11rc5h67h3ypzr"))))
  9669. (build-system meson-build-system)
  9670. (arguments
  9671. `(#:glib-or-gtk? #t
  9672. #:configure-flags '("-Dlocalstatedir=/tmp"
  9673. "-Dsysconfdir=/tmp")
  9674. #:imported-modules ((guix build python-build-system)
  9675. ,@%meson-build-system-modules)
  9676. #:phases
  9677. (modify-phases %standard-phases
  9678. (add-after 'unpack 'skip-gtk-update-icon-cache
  9679. ;; Don't create 'icon-theme.cache'.
  9680. (lambda _
  9681. (substitute* "meson-postinstall.py"
  9682. (("gtk-update-icon-cache") "true"))))
  9683. (add-after 'install 'wrap
  9684. (@@ (guix build python-build-system) wrap))
  9685. (add-after 'wrap 'wrap-gi-typelib-and-python
  9686. (lambda* (#:key inputs outputs #:allow-other-keys)
  9687. (let ((out (assoc-ref outputs "out"))
  9688. (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
  9689. (let ((python-path
  9690. (string-append out "/lib/python"
  9691. ,(version-major+minor
  9692. (package-version python))
  9693. "/site-packages")))
  9694. (wrap-program (string-append out "/bin/gnome-tweaks")
  9695. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
  9696. `("GUIX_PYTHONPATH" ":" prefix (,python-path))))))))))
  9697. (native-inputs
  9698. `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
  9699. ("intltool" ,intltool)
  9700. ("pkg-config" ,pkg-config)))
  9701. (inputs
  9702. (list bash-minimal ; to execute the wrapper program
  9703. gnome-desktop
  9704. gtk+
  9705. gobject-introspection
  9706. gsettings-desktop-schemas
  9707. libhandy
  9708. libnotify
  9709. libsoup
  9710. nautilus
  9711. python
  9712. python-pygobject))
  9713. (synopsis "Customize advanced GNOME 3 options")
  9714. (home-page "https://wiki.gnome.org/Apps/Tweaks")
  9715. (description
  9716. "GNOME Tweaks allows adjusting advanced configuration settings in
  9717. GNOME 3. This includes things like the fonts used in user interface elements,
  9718. alternative user interface themes, changes in window management behavior,
  9719. GNOME Shell appearance and extension, etc.")
  9720. (license license:gpl3+)))
  9721. (define-public gnome-shell-extensions
  9722. (package
  9723. (name "gnome-shell-extensions")
  9724. (version "41.0")
  9725. (source (origin
  9726. (method url-fetch)
  9727. (uri (string-append "mirror://gnome/sources/" name "/"
  9728. (version-major version) "/"
  9729. name "-" version ".tar.xz"))
  9730. (sha256
  9731. (base32
  9732. "0s7wcsa0ysdgh5zpxpa95id5rz4ajb2r1561v5szjf4b8k0slkyq"))))
  9733. (build-system meson-build-system)
  9734. (arguments
  9735. '(#:configure-flags '("-Dextension_set=all")))
  9736. (native-inputs
  9737. `(("glib:bin" ,glib "bin")
  9738. ("intltool" ,intltool)
  9739. ("pkg-config" ,pkg-config)))
  9740. (propagated-inputs
  9741. (list glib))
  9742. (synopsis "Extensions for GNOME Shell")
  9743. (description "GNOME Shell extensions modify and extend GNOME Shell
  9744. functionality and behavior.")
  9745. (home-page "https://extensions.gnome.org/")
  9746. (license license:gpl3+)))
  9747. (define-public folks
  9748. (package
  9749. (name "folks")
  9750. (version "0.15.3")
  9751. (source (origin
  9752. (method url-fetch)
  9753. (uri (string-append
  9754. "mirror://gnome/sources/folks/"
  9755. (version-major+minor version) "/"
  9756. "folks-" version ".tar.xz"))
  9757. (sha256
  9758. (base32
  9759. "19a4qp9ry8y24jx1v5456qn9lnw843571vkkah3bxx4ky3x3gmr1"))))
  9760. (build-system meson-build-system)
  9761. (arguments
  9762. '(#:phases
  9763. (modify-phases %standard-phases
  9764. (add-after 'unpack 'skip-gtk-update-icon-cache
  9765. ;; Don't create 'icon-theme.cache'.
  9766. (lambda _
  9767. (substitute* "meson_post_install.py"
  9768. (("gtk-update-icon-cache") "true")))))))
  9769. (inputs
  9770. (list bdb
  9771. dbus-glib
  9772. evolution-data-server
  9773. glib
  9774. libgee
  9775. readline
  9776. telepathy-glib))
  9777. (native-inputs
  9778. (list `(,glib "bin")
  9779. gobject-introspection
  9780. python-dbusmock
  9781. intltool
  9782. pkg-config
  9783. python
  9784. vala))
  9785. (synopsis "Library to aggregate data about people")
  9786. (description "Libfolks is a library that aggregates information about people
  9787. from multiple sources (e.g., Telepathy connection managers for IM contacts,
  9788. Evolution Data Server for local contacts, libsocialweb for web service contacts,
  9789. etc.) to create metacontacts. It's written in Vala, which generates C code when
  9790. compiled.")
  9791. (home-page "https://wiki.gnome.org/Projects/Folks")
  9792. (license license:lgpl2.1+)))
  9793. (define-public gfbgraph
  9794. (package
  9795. (name "gfbgraph")
  9796. (version "0.2.4")
  9797. (source (origin
  9798. (method url-fetch)
  9799. (uri (string-append
  9800. "mirror://gnome/sources/gfbgraph/"
  9801. (version-major+minor version) "/"
  9802. "gfbgraph-" version ".tar.xz"))
  9803. (sha256
  9804. (base32
  9805. "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
  9806. (build-system glib-or-gtk-build-system)
  9807. (arguments
  9808. `(#:tests? #f ; tests appear to require the network
  9809. #:configure-flags '("--disable-static"
  9810. "--enable-gtk-doc"
  9811. "--enable-introspection")))
  9812. (native-inputs
  9813. (list gobject-introspection
  9814. gtk-doc/stable
  9815. pkg-config
  9816. ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
  9817. autoconf
  9818. automake
  9819. libtool
  9820. which))
  9821. (inputs
  9822. `(("json-glib" ,json-glib)
  9823. ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
  9824. ("rest" ,rest)))
  9825. (synopsis "GLib/GObject wrapper for the Facebook API")
  9826. (description "This library allows you to use the Facebook API from
  9827. GLib/GObject code.")
  9828. (home-page "https://wiki.gnome.org/Projects/GFBGraph")
  9829. (license license:lgpl2.1+)))
  9830. (define-public libgnomekbd
  9831. (package
  9832. (name "libgnomekbd")
  9833. (version "3.26.1")
  9834. (source (origin
  9835. (method url-fetch)
  9836. (uri (string-append "mirror://gnome/sources/libgnomekbd/"
  9837. (version-major+minor version) "/"
  9838. "libgnomekbd-" version ".tar.xz"))
  9839. (sha256
  9840. (base32
  9841. "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
  9842. (build-system gnu-build-system)
  9843. (native-inputs
  9844. (list pkg-config
  9845. `(,glib "bin") intltool))
  9846. (propagated-inputs
  9847. ;; Referred to in .h files and .pc.
  9848. (list glib gtk+ libxklavier))
  9849. (home-page "https://www.gnome.org")
  9850. (synopsis "GNOME keyboard configuration library")
  9851. (description
  9852. "Libgnomekbd is a keyboard configuration library for the GNOME desktop
  9853. environment, which can notably display keyboard layouts.")
  9854. (license license:lgpl2.0+)))
  9855. ;;; This package is no longer maintained:
  9856. ;;; https://wiki.gnome.org/Attic/LibUnique
  9857. ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
  9858. ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
  9859. (define-public libunique
  9860. (package
  9861. (name "libunique")
  9862. (version "3.0.2")
  9863. (source (origin
  9864. (method url-fetch)
  9865. (uri (string-append "mirror://gnome/sources/" name "/"
  9866. (version-major+minor version) "/"
  9867. name "-" version ".tar.xz"))
  9868. (sha256
  9869. (base32
  9870. "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
  9871. (build-system glib-or-gtk-build-system)
  9872. (arguments
  9873. `(#:configure-flags '("--disable-static"
  9874. "--disable-dbus" ; use gdbus
  9875. "--enable-introspection")))
  9876. (native-inputs
  9877. `(("pkg-config" ,pkg-config)
  9878. ("gobject-introspection" ,gobject-introspection)
  9879. ("glib:bin" ,glib "bin")
  9880. ("gtk-doc" ,gtk-doc/stable)))
  9881. (propagated-inputs
  9882. ;; Referred to in .h files and .pc.
  9883. (list gtk+))
  9884. (home-page "https://wiki.gnome.org/Attic/LibUnique")
  9885. (synopsis "Library for writing single instance applications")
  9886. (description
  9887. "Libunique is a library for writing single instance applications. If you
  9888. launch a single instance application twice, the second instance will either just
  9889. quit or will send a message to the running instance. Libunique makes it easy to
  9890. write this kind of application, by providing a base class, taking care of all
  9891. the IPC machinery needed to send messages to a running instance, and also
  9892. handling the startup notification side.")
  9893. (license license:lgpl2.1+)))
  9894. (define-public gnome-calculator
  9895. (package
  9896. (name "gnome-calculator")
  9897. (version "41.0")
  9898. (source
  9899. (origin
  9900. (method url-fetch)
  9901. (uri (string-append "mirror://gnome/sources/" name "/"
  9902. (version-major version) "/"
  9903. name "-" version ".tar.xz"))
  9904. (sha256
  9905. (base32
  9906. "16fwwfnw1w8p53ffny6zkff5cfsmg7xax9kmfgb7czjqv15w0vd6"))))
  9907. (build-system meson-build-system)
  9908. (arguments
  9909. '(#:glib-or-gtk? #t
  9910. #:phases
  9911. (modify-phases %standard-phases
  9912. (add-before 'check 'pre-check
  9913. (lambda _
  9914. ;; Tests require a writable HOME.
  9915. (setenv "HOME" (getcwd)))))))
  9916. (native-inputs
  9917. (list gettext-minimal
  9918. `(,glib "bin") ;for glib-compile-schemas, gio-2.0.
  9919. `(,gtk+ "bin") ;for gtk-update-icon-cache
  9920. itstool
  9921. vala
  9922. pkg-config
  9923. python))
  9924. (inputs
  9925. (list `(,glib "bin")
  9926. gtksourceview
  9927. libgee
  9928. libhandy
  9929. libsoup-minimal-2
  9930. libxml2
  9931. mpc
  9932. mpfr))
  9933. (home-page "https://wiki.gnome.org/Apps/Calculator")
  9934. (synopsis "Desktop calculator")
  9935. (description
  9936. "Calculator is an application that solves mathematical equations and
  9937. is suitable as a default application in a Desktop environment.")
  9938. (license license:gpl3)))
  9939. (define-public xpad
  9940. (package
  9941. (name "xpad")
  9942. (version "5.1.0")
  9943. (source
  9944. (origin
  9945. (method url-fetch)
  9946. (uri (string-append "https://launchpad.net/xpad/trunk/"
  9947. version "/+download/"
  9948. name "-" version ".tar.bz2"))
  9949. (sha256
  9950. (base32
  9951. "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
  9952. (build-system gnu-build-system)
  9953. (native-inputs
  9954. (list autoconf automake
  9955. `(,gtk+ "bin") intltool pkg-config))
  9956. (inputs
  9957. (list gtksourceview-3 libsm))
  9958. (home-page "https://wiki.gnome.org/Apps/Xpad")
  9959. (synopsis "Virtual sticky note")
  9960. (description
  9961. "Xpad is a sticky note that strives to be simple, fault tolerant,
  9962. and customizable. Xpad consists of independent pad windows, each is
  9963. basically a text box in which notes can be written.")
  9964. (license license:gpl3+)))
  9965. (define-public gucharmap
  9966. (let ((unicode-files
  9967. '(("Blocks.txt"
  9968. "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
  9969. ("DerivedAge.txt"
  9970. "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
  9971. ("NamesList.txt"
  9972. "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
  9973. ("Scripts.txt"
  9974. "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
  9975. ("UnicodeData.txt"
  9976. "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
  9977. ("Unihan.zip"
  9978. "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
  9979. (package
  9980. (name "gucharmap")
  9981. (version "12.0.1")
  9982. (source
  9983. (origin
  9984. (method url-fetch)
  9985. (uri (string-append "mirror://gnome/sources/" name "/"
  9986. (version-major+minor version) "/"
  9987. name "-" version ".tar.xz"))
  9988. (sha256
  9989. (base32
  9990. "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
  9991. (build-system glib-or-gtk-build-system)
  9992. (arguments
  9993. `(#:modules ((ice-9 match)
  9994. (guix build glib-or-gtk-build-system)
  9995. (guix build utils))
  9996. #:configure-flags
  9997. (list "--with-unicode-data=../unicode-data")
  9998. #:phases
  9999. (modify-phases %standard-phases
  10000. (add-after 'unpack 'prepare-unicode-data
  10001. (lambda* (#:key inputs #:allow-other-keys)
  10002. (mkdir-p "../unicode-data")
  10003. (with-directory-excursion "../unicode-data"
  10004. (for-each (match-lambda
  10005. ((file _)
  10006. (install-file (assoc-ref inputs file) ".")))
  10007. ',unicode-files))
  10008. #t)))))
  10009. (native-inputs
  10010. `(("desktop-file-utils" ,desktop-file-utils)
  10011. ("glib:bin" ,glib "bin") ; for glib-compile-resources.
  10012. ("gobject-introspection" ,gobject-introspection)
  10013. ("intltool" ,intltool)
  10014. ("itstool" ,itstool)
  10015. ("pkg-config" ,pkg-config)
  10016. ,@(map (match-lambda
  10017. ((file hash)
  10018. `(,file
  10019. ,(origin
  10020. (method url-fetch)
  10021. (uri (string-append
  10022. "http://www.unicode.org/Public/12.0.0/ucd/"
  10023. file))
  10024. (sha256 (base32 hash))))))
  10025. unicode-files)
  10026. ("unzip" ,unzip)))
  10027. (inputs
  10028. `(("gtk+" ,gtk+)
  10029. ("xmllint" ,libxml2)))
  10030. (home-page "https://wiki.gnome.org/Apps/Gucharmap")
  10031. (synopsis "Unicode character picker and font browser")
  10032. (description
  10033. "This program allows you to browse through all the available Unicode
  10034. characters and categories for the installed fonts, and to examine their
  10035. detailed properties. It is an easy way to find the character you might
  10036. only know by its Unicode name or code point.")
  10037. (license license:gpl3+))))
  10038. (define-public gcolor3
  10039. (package
  10040. (name "gcolor3")
  10041. (version "2.4.0")
  10042. (source
  10043. (origin
  10044. (method git-fetch)
  10045. (uri (git-reference
  10046. (url "https://gitlab.gnome.org/World/gcolor3")
  10047. (commit (string-append "v" version))))
  10048. (file-name (git-file-name name version))
  10049. (sha256
  10050. (base32 "1igqmach1vhcrvbpw346pmkbb5kabbb806ssswrvkp569n700wmc"))))
  10051. (build-system meson-build-system)
  10052. (arguments
  10053. `(#:glib-or-gtk? #t))
  10054. (native-inputs
  10055. `(("desktop-file-utils" ,desktop-file-utils)
  10056. ("gettext" ,gettext-minimal)
  10057. ("glib:bin" ,glib "bin")
  10058. ("gtk+:bin" ,gtk+ "bin")
  10059. ("pkg-config" ,pkg-config)))
  10060. (inputs
  10061. (list gsettings-desktop-schemas gtk+ libportal))
  10062. (home-page "https://www.hjdskes.nl/projects/gcolor3/")
  10063. (synopsis "Simple color chooser written in GTK3")
  10064. (description "Color Picker is a simple color chooser written in GTK3. It
  10065. supports both X and Wayland display servers.")
  10066. (license license:gpl2+)))
  10067. (define-public bluefish
  10068. (package
  10069. (name "bluefish")
  10070. (version "2.2.12")
  10071. (source
  10072. (origin
  10073. (method url-fetch)
  10074. (uri (string-append "https://www.bennewitz.com/bluefish/stable/source/"
  10075. "bluefish-" version ".tar.gz"))
  10076. (sha256
  10077. (base32 "09hgxq139kbkjda5y073lqhq1z1x7cx0j80jh77afrqa3y9c53wl"))))
  10078. (build-system gnu-build-system)
  10079. (native-inputs
  10080. (list desktop-file-utils intltool pkg-config))
  10081. (inputs
  10082. (list enchant gtk+ python-wrapper libxml2 gucharmap))
  10083. (home-page "http://bluefish.openoffice.nl")
  10084. (synopsis "Web development studio")
  10085. (description
  10086. "Bluefish is an editor aimed at programmers and web developers,
  10087. with many options to write web sites, scripts and other code.
  10088. Bluefish supports many programming and markup languages.")
  10089. (license license:gpl3+)))
  10090. (define-public gnome-system-monitor
  10091. (package
  10092. (name "gnome-system-monitor")
  10093. (version "41.0")
  10094. (source
  10095. (origin
  10096. (method url-fetch)
  10097. (uri (string-append "mirror://gnome/sources/" name "/"
  10098. (version-major version) "/"
  10099. name "-" version ".tar.xz"))
  10100. (sha256
  10101. (base32
  10102. "0pwy2c95rm0ym3x5pr6rqg7zh58crjxyns4r52q99ds937349z67"))))
  10103. (build-system meson-build-system)
  10104. (arguments
  10105. '(#:glib-or-gtk? #t
  10106. #:configure-flags '("-Dsystemd=false")))
  10107. (native-inputs
  10108. (list `(,glib "bin") ;for glib-mkenums.
  10109. `(,gtk+ "bin") ;gtk-update-icon-cache
  10110. intltool
  10111. itstool
  10112. libgtop
  10113. polkit
  10114. pkg-config))
  10115. (inputs
  10116. (list gdk-pixbuf ;for loading SVG files.
  10117. gtk+
  10118. gtkmm-3
  10119. libhandy
  10120. librsvg
  10121. libxml2
  10122. libwnck))
  10123. (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
  10124. (synopsis "Process viewer and system resource monitor for GNOME")
  10125. (description
  10126. "GNOME System Monitor is a GNOME process viewer and system monitor with
  10127. an attractive, easy-to-use interface. It has features, such as a tree view
  10128. for process dependencies, icons for processes, the ability to hide processes,
  10129. graphical time histories of CPU/memory/swap usage and the ability to
  10130. kill/reinice processes.")
  10131. (license license:gpl2+)))
  10132. (define-public python-pyatspi
  10133. (package
  10134. (name "python-pyatspi")
  10135. (version "2.34.0")
  10136. (source (origin
  10137. (method url-fetch)
  10138. (uri (string-append
  10139. "mirror://gnome/sources/pyatspi/"
  10140. (version-major+minor version)
  10141. "/pyatspi-" version ".tar.xz"))
  10142. (sha256
  10143. (base32
  10144. "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
  10145. (build-system gnu-build-system)
  10146. (arguments
  10147. `(#:phases
  10148. (modify-phases %standard-phases
  10149. (add-before 'build 'fix-atk-load
  10150. (lambda _
  10151. (substitute* "pyatspi/__init__.py"
  10152. (("from gi.repository import Atspi")
  10153. "gi.require_version('Gtk', '3.0')
  10154. from gi.repository import Gtk
  10155. from gi.repository import Atspi"))
  10156. #t)))))
  10157. (native-inputs
  10158. (list pkg-config))
  10159. (inputs
  10160. (list python))
  10161. (propagated-inputs
  10162. (list python-pygobject))
  10163. (synopsis "Python client bindings for D-Bus AT-SPI")
  10164. (home-page "https://wiki.linuxfoundation.org/accessibility\
  10165. /atk/at-spi/at-spi_on_d-bus")
  10166. (description
  10167. "This package includes a python client library for the AT-SPI D-Bus
  10168. accessibility infrastructure.")
  10169. (license license:lgpl2.0)
  10170. (properties '((upstream-name . "pyatspi")))))
  10171. (define-public python2-pyatspi
  10172. (package/inherit python-pyatspi
  10173. (name "python2-pyatspi")
  10174. (inputs
  10175. `(("python" ,python-2)))
  10176. (propagated-inputs
  10177. `(("python-pygobject" ,python2-pygobject)))))
  10178. (define-public orca
  10179. (package
  10180. (name "orca")
  10181. (version "41.0")
  10182. (source (origin
  10183. (method url-fetch)
  10184. (uri (string-append
  10185. "mirror://gnome/sources/" name "/"
  10186. (version-major version) "/"
  10187. name "-" version ".tar.xz"))
  10188. (sha256
  10189. (base32
  10190. "1gflnsv6d5qn5rh1f16yfa0q0yv8yvd0l5lbwrsdg7z18lafb5vn"))))
  10191. (build-system glib-or-gtk-build-system)
  10192. (arguments
  10193. '(#:phases
  10194. (modify-phases %standard-phases
  10195. (add-before 'configure 'qualify-xkbcomp
  10196. (lambda* (#:key inputs #:allow-other-keys)
  10197. (let ((xkbcomp (string-append
  10198. (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
  10199. (substitute* "src/orca/orca.py"
  10200. (("'xkbcomp'") (format #f "'~a'" xkbcomp))))))
  10201. (add-after 'install 'wrap-orca
  10202. (lambda* (#:key outputs #:allow-other-keys)
  10203. (let* ((out (assoc-ref outputs "out"))
  10204. (prog (string-append out "/bin/orca")))
  10205. (wrap-program prog
  10206. `("GI_TYPELIB_PATH" ":" prefix
  10207. (,(getenv "GI_TYPELIB_PATH")))
  10208. `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
  10209. (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
  10210. `("GUIX_PYTHONPATH" ":" prefix
  10211. (,(getenv "GUIX_PYTHONPATH"))))))))))
  10212. (native-inputs
  10213. (list intltool
  10214. itstool
  10215. pkg-config
  10216. libxml2))
  10217. (inputs
  10218. (list at-spi2-atk
  10219. gsettings-desktop-schemas
  10220. gstreamer
  10221. gst-plugins-base
  10222. gst-plugins-good
  10223. gtk+
  10224. python
  10225. python-pygobject
  10226. python-pyatspi
  10227. speech-dispatcher
  10228. xkbcomp))
  10229. (synopsis
  10230. "Screen reader for individuals who are blind or visually impaired")
  10231. (home-page "https://wiki.gnome.org/Projects/Orca")
  10232. (description
  10233. "Orca is a screen reader that provides access to the graphical desktop
  10234. via speech and refreshable braille. Orca works with applications and toolkits
  10235. that support the Assistive Technology Service Provider Interface (AT-SPI).")
  10236. (license license:lgpl2.1+)))
  10237. (define-public gspell
  10238. (package
  10239. (name "gspell")
  10240. (version "1.8.2")
  10241. (source (origin
  10242. (method url-fetch)
  10243. (uri (string-append "mirror://gnome/sources/" name "/"
  10244. (version-major+minor version) "/"
  10245. name "-" version ".tar.xz"))
  10246. (sha256
  10247. (base32
  10248. "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
  10249. (patches (search-patches "gspell-dash-test.patch"))))
  10250. (build-system glib-or-gtk-build-system)
  10251. (arguments
  10252. '(#:configure-flags (list "--enable-vala")
  10253. #:phases
  10254. (modify-phases %standard-phases
  10255. (add-before 'check 'pre-check
  10256. (lambda* (#:key inputs #:allow-other-keys)
  10257. ;; Tests require a running X server.
  10258. (system "Xvfb :1 &")
  10259. (setenv "DISPLAY" ":1")
  10260. ;; For the missing /etc/machine-id.
  10261. (setenv "DBUS_FATAL_WARNINGS" "0")
  10262. ;; Allow Enchant and its Aspell backend to find the en_US
  10263. ;; dictionary.
  10264. (setenv "ASPELL_DICT_DIR"
  10265. (search-input-directory inputs "/lib/aspell")))))))
  10266. (inputs
  10267. (list iso-codes))
  10268. (native-inputs
  10269. `(("glib" ,glib "bin")
  10270. ("gobject-introspection" ,gobject-introspection)
  10271. ("pkg-config" ,pkg-config)
  10272. ("vala" ,vala) ;for VAPI, needed by Geary
  10273. ("xmllint" ,libxml2)
  10274. ;; For tests.
  10275. ("aspell-dict-en" ,aspell-dict-en)
  10276. ("xorg-server" ,xorg-server-for-tests)))
  10277. (propagated-inputs
  10278. ;; Referred by .pc file.
  10279. (list enchant glib gtk+))
  10280. (home-page "https://wiki.gnome.org/Projects/gspell")
  10281. (synopsis "GNOME's alternative spell checker")
  10282. (description
  10283. "gspell provides a flexible API to add spell-checking to a GTK+
  10284. application. It provides a GObject API, spell-checking to text entries and
  10285. text views, and buttons to choose the language.")
  10286. (license license:gpl2+)))
  10287. (define-public gnome-planner
  10288. (package
  10289. (name "gnome-planner")
  10290. (version "0.14.6")
  10291. (source (origin
  10292. (method url-fetch)
  10293. (uri (string-append "mirror://gnome/sources/planner/"
  10294. (version-major+minor version) "/planner-"
  10295. version ".tar.xz"))
  10296. (sha256
  10297. (base32
  10298. "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
  10299. (build-system glib-or-gtk-build-system)
  10300. (arguments
  10301. ;; Disable the Python bindings because the Planner program functions
  10302. ;; without them, and (as of 2017-06-13) we have not packaged all of
  10303. ;; packages that are necessary for building the Python bindings.
  10304. `(#:configure-flags
  10305. (list "--disable-python"
  10306. ,@(if (string=? "aarch64-linux" (%current-system))
  10307. '("--build=aarch64-unknown-linux-gnu")
  10308. '()))))
  10309. (inputs
  10310. (list libgnomecanvas
  10311. libgnomeui
  10312. libglade
  10313. gnome-vfs
  10314. gconf
  10315. libxml2
  10316. libxslt
  10317. gtk+
  10318. glib))
  10319. (native-inputs
  10320. (list intltool scrollkeeper pkg-config))
  10321. (home-page "https://wiki.gnome.org/Apps/Planner")
  10322. (synopsis "Project management software for the GNOME desktop")
  10323. (description
  10324. "GNOME Planner is a project management tool based on the Work Breakdown
  10325. Structure (WBS). Its goal is to enable you to easily plan projects. Based on
  10326. the resources, tasks, and constraints that you define, Planner generates
  10327. various views into a project. For example, Planner can show a Gantt chart of
  10328. the project. It can show a detailed summary of tasks including their
  10329. duration, cost, and current progress. It can also show a report of resource
  10330. utilization that highlights under-utilized and over-utilized resources. These
  10331. views can be printed as PDF or PostScript files, or exported to HTML.")
  10332. (license license:gpl2+)))
  10333. (define-public lollypop
  10334. (package
  10335. (name "lollypop")
  10336. (version "1.4.24")
  10337. (source
  10338. (origin
  10339. (method url-fetch)
  10340. (uri (string-append "https://adishatz.org/lollypop/"
  10341. "lollypop-" version ".tar.xz"))
  10342. (sha256
  10343. (base32 "10cw3x75siibmnbh4zhfmf2vd08fqjs3lj3l4wpk6zj9h22ncfxw"))))
  10344. (build-system meson-build-system)
  10345. (arguments
  10346. `(#:imported-modules
  10347. (,@%meson-build-system-modules
  10348. (guix build python-build-system))
  10349. #:modules
  10350. ((guix build meson-build-system)
  10351. ((guix build python-build-system) #:prefix python:)
  10352. (guix build utils))
  10353. #:glib-or-gtk? #t
  10354. #:tests? #f ; no test suite
  10355. #:phases
  10356. (modify-phases %standard-phases
  10357. (add-after 'install 'wrap-program
  10358. (lambda* (#:key outputs #:allow-other-keys)
  10359. (let ((out (assoc-ref outputs "out"))
  10360. (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
  10361. (wrap-program (string-append out "/bin/lollypop")
  10362. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
  10363. #t))
  10364. (add-after 'install 'wrap-python
  10365. (assoc-ref python:%standard-phases 'wrap)))))
  10366. (native-inputs
  10367. `(("gettext" ,gettext-minimal)
  10368. ("glib:bin" ,glib "bin") ; For glib-compile-resources
  10369. ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
  10370. ("pkg-config" ,pkg-config)))
  10371. (inputs
  10372. `(("glib-networking" ,glib-networking)
  10373. ("gobject-introspection" ,gobject-introspection)
  10374. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  10375. ("gst-plugins-base" ,gst-plugins-base)
  10376. ("libnotify" ,libnotify)
  10377. ("libsecret" ,libsecret)
  10378. ("libhandy" ,libhandy)
  10379. ("libsoup" ,libsoup-minimal-2)
  10380. ("python" ,python)
  10381. ("python-beautifulsoup4" ,python-beautifulsoup4)
  10382. ("python-gst" ,python-gst)
  10383. ("python-pil" ,python-pillow)
  10384. ("python-pycairo" ,python-pycairo)
  10385. ("python-pygobject" ,python-pygobject)
  10386. ("python-pylast" ,python-pylast)
  10387. ("totem-pl-parser" ,totem-pl-parser)
  10388. ("webkitgtk" ,webkitgtk)))
  10389. (propagated-inputs
  10390. (list ;; gst-plugins-base is required to start Lollypop,
  10391. ;; the others are required to play streaming.
  10392. gst-plugins-good gst-plugins-ugly))
  10393. (home-page "https://wiki.gnome.org/Apps/Lollypop")
  10394. (synopsis "GNOME music playing application")
  10395. (description
  10396. "Lollypop is a music player designed to play well with GNOME desktop.
  10397. Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
  10398. from artists and tracks from the web. It also fetches cover artworks
  10399. automatically and it can stream songs from online music services and charts.")
  10400. (license license:gpl3+)))
  10401. (define-public gnome-video-effects
  10402. (package
  10403. (name "gnome-video-effects")
  10404. (version "0.5.0")
  10405. (source (origin
  10406. (method url-fetch)
  10407. (uri (string-append "mirror://gnome/sources/" name "/"
  10408. (version-major+minor version) "/" name "-"
  10409. version ".tar.xz"))
  10410. (sha256
  10411. (base32
  10412. "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
  10413. (build-system meson-build-system)
  10414. (native-inputs
  10415. (list gettext-minimal pkg-config))
  10416. (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
  10417. (synopsis "Video effects for Cheese and other GNOME applications")
  10418. (description
  10419. "A collection of GStreamer video filters and effects to be used in
  10420. photo-booth-like software, such as Cheese.")
  10421. (license license:gpl2+)))
  10422. (define-public cheese
  10423. (package
  10424. (name "cheese")
  10425. (version "3.38.0")
  10426. (source (origin
  10427. (method url-fetch)
  10428. (uri (string-append "mirror://gnome/sources/" name "/"
  10429. (version-major+minor version) "/" name "-"
  10430. version ".tar.xz"))
  10431. (sha256
  10432. (base32
  10433. "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8"))
  10434. (patches (search-patches "cheese-vala-update.patch"))))
  10435. (arguments
  10436. `(#:glib-or-gtk? #t
  10437. ;; Tests require GDK.
  10438. #:tests? #f
  10439. #:phases
  10440. (modify-phases %standard-phases
  10441. (add-after 'unpack 'skip-gtk-update-icon-cache
  10442. (lambda _
  10443. ;; Don't create 'icon-theme.cache'
  10444. (substitute* "meson_post_install.py"
  10445. (("gtk-update-icon-cache") (which "true")))
  10446. #t))
  10447. (add-after 'unpack 'patch-docbook-xml
  10448. (lambda* (#:key inputs #:allow-other-keys)
  10449. ;; Avoid a network connection attempt during the build.
  10450. (substitute* '("docs/reference/cheese.xml"
  10451. "docs/reference/cheese-docs.xml")
  10452. (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
  10453. (string-append (assoc-ref inputs "docbook-xml")
  10454. "/xml/dtd/docbook/docbookx.dtd")))
  10455. #t))
  10456. (add-after 'install 'wrap-cheese
  10457. (lambda* (#:key inputs outputs #:allow-other-keys)
  10458. (let ((out (assoc-ref outputs "out"))
  10459. (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
  10460. (wrap-program (string-append out "/bin/cheese")
  10461. `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
  10462. #t)))))
  10463. (build-system meson-build-system)
  10464. (native-inputs
  10465. `(("docbook-xsl" ,docbook-xsl)
  10466. ("docbook-xml" ,docbook-xml-4.3)
  10467. ("gettext" ,gettext-minimal)
  10468. ("glib:bin" ,glib "bin")
  10469. ("gtk-doc" ,gtk-doc/stable)
  10470. ("itstool" ,itstool)
  10471. ("libxml2" ,libxml2)
  10472. ("libxslt" ,libxslt)
  10473. ("pkg-config" ,pkg-config)
  10474. ("vala" ,vala)))
  10475. (propagated-inputs
  10476. (list gnome-video-effects
  10477. clutter
  10478. clutter-gst
  10479. clutter-gtk
  10480. libcanberra
  10481. gdk-pixbuf
  10482. glib
  10483. gstreamer))
  10484. (inputs
  10485. (list gnome-desktop
  10486. gobject-introspection
  10487. gst-plugins-base
  10488. gst-plugins-good
  10489. gst-plugins-bad
  10490. gtk+
  10491. libx11
  10492. libxtst))
  10493. (home-page "https://wiki.gnome.org/Apps/Cheese")
  10494. (synopsis "Webcam photo booth software for GNOME")
  10495. (description
  10496. "Cheese uses your webcam to take photos and videos. Cheese can also
  10497. apply fancy special effects and lets you share the fun with others.")
  10498. (license license:gpl2+)))
  10499. (define-public passwordsafe
  10500. (package
  10501. (name "passwordsafe")
  10502. (version "5.1")
  10503. (source
  10504. (origin
  10505. (method git-fetch)
  10506. (uri (git-reference
  10507. (url "https://gitlab.gnome.org/World/secrets")
  10508. (commit version)))
  10509. (file-name (git-file-name name version))
  10510. (sha256
  10511. (base32 "0kd43j6i017wdsqj6d5gnxhfv4ijnh3xahlw7md2gh51i8p682j6"))))
  10512. (build-system meson-build-system)
  10513. (arguments
  10514. (list #:glib-or-gtk? #t
  10515. #:meson meson-0.59
  10516. #:phases
  10517. #~(modify-phases %standard-phases
  10518. (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
  10519. (lambda* (#:key outputs #:allow-other-keys)
  10520. (let ((prog (string-append #$output
  10521. "/bin/gnome-passwordsafe"))
  10522. (pylib (string-append
  10523. #$output "/lib/python"
  10524. #$(version-major+minor
  10525. (package-version (this-package-input "python")))
  10526. "/site-packages")))
  10527. (wrap-program prog
  10528. `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
  10529. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
  10530. (native-inputs
  10531. (list desktop-file-utils
  10532. gettext-minimal
  10533. `(,glib "bin")
  10534. gobject-introspection
  10535. `(,gtk+ "bin")
  10536. pkg-config))
  10537. (inputs
  10538. (list glib
  10539. gsettings-desktop-schemas
  10540. gtk+
  10541. libhandy
  10542. libpwquality
  10543. python
  10544. python-pygobject
  10545. python-pykeepass))
  10546. (home-page "https://gitlab.gnome.org/World/PasswordSafe")
  10547. (synopsis "Password manager for the GNOME desktop")
  10548. (description
  10549. "Password Safe is a password manager which makes use of the KeePass v4
  10550. format. It integrates perfectly with the GNOME desktop and provides an easy
  10551. and uncluttered interface for the management of password databases.")
  10552. (license license:gpl3+)))
  10553. (define-public sound-juicer
  10554. (package
  10555. (name "sound-juicer")
  10556. (version "3.24.0")
  10557. (source
  10558. (origin
  10559. (method url-fetch)
  10560. (uri (string-append "mirror://gnome/sources/" name "/"
  10561. (version-major+minor version) "/"
  10562. name "-" version ".tar.xz"))
  10563. (sha256
  10564. (base32
  10565. "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
  10566. (build-system glib-or-gtk-build-system)
  10567. (native-inputs
  10568. (list desktop-file-utils intltool itstool pkg-config libxml2))
  10569. (inputs
  10570. (list gtk+
  10571. gsettings-desktop-schemas
  10572. gstreamer
  10573. gst-plugins-base
  10574. gst-plugins-good
  10575. iso-codes
  10576. brasero
  10577. libcanberra
  10578. libdiscid
  10579. libmusicbrainz
  10580. neon))
  10581. (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
  10582. (synopsis "Audio music cd ripper")
  10583. (description "Sound Juicer extracts audio from compact discs and convert it
  10584. into audio files that a personal computer or digital audio player can play.
  10585. It supports ripping to any audio codec supported by a GStreamer plugin, such as
  10586. mp3, Ogg Vorbis and FLAC")
  10587. (license license:gpl2+)))
  10588. (define-public soundconverter
  10589. (package
  10590. (name "soundconverter")
  10591. (version "3.0.2")
  10592. (source
  10593. (origin
  10594. (method url-fetch)
  10595. (uri (string-append "https://launchpad.net/soundconverter/trunk/"
  10596. version "/+download/"
  10597. "soundconverter-" version ".tar.xz"))
  10598. (sha256
  10599. (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
  10600. (build-system glib-or-gtk-build-system)
  10601. (arguments
  10602. `(#:imported-modules ((guix build python-build-system)
  10603. (guix build glib-or-gtk-build-system)
  10604. ,@%gnu-build-system-modules)
  10605. #:modules ((guix build glib-or-gtk-build-system)
  10606. (guix build utils)
  10607. ((guix build gnu-build-system) #:prefix gnu:)
  10608. ((guix build python-build-system) #:prefix python:))
  10609. #:phases
  10610. (modify-phases %standard-phases
  10611. (add-after 'install 'wrap-soundconverter-for-python
  10612. (assoc-ref python:%standard-phases 'wrap))
  10613. (add-after 'install 'wrap-soundconverter
  10614. (lambda* (#:key inputs outputs #:allow-other-keys)
  10615. (let ((out (assoc-ref outputs "out"))
  10616. (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
  10617. (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
  10618. (wrap-program (string-append out "/bin/soundconverter")
  10619. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
  10620. `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
  10621. #t)))))
  10622. (native-inputs
  10623. `(("intltool" ,intltool)
  10624. ("pkg-config" ,pkg-config)
  10625. ("glib:bin" ,glib "bin")))
  10626. (inputs
  10627. (list gtk+ python python-pygobject gstreamer gst-plugins-base))
  10628. (home-page "https://soundconverter.org/")
  10629. (synopsis "Convert between audio formats with a graphical interface")
  10630. (description
  10631. "SoundConverter supports converting between many audio formats including
  10632. Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
  10633. configurable file renaming.")
  10634. (license license:gpl3)))
  10635. (define-public workrave
  10636. (package
  10637. (name "workrave")
  10638. (version "1.10.48")
  10639. (source
  10640. (origin
  10641. (method git-fetch)
  10642. (uri (git-reference
  10643. (url "https://github.com/rcaelers/workrave")
  10644. (commit (string-append "v" (string-map
  10645. (match-lambda (#\. #\_) (chr chr))
  10646. version)))))
  10647. (file-name (git-file-name name version))
  10648. (sha256
  10649. (base32 "0qcknxylk9mr0xzszsd1rkgh2zpnix20m998dfclkm9x8zh9pvyr"))))
  10650. (build-system glib-or-gtk-build-system)
  10651. (arguments
  10652. ;; The only tests are maintainer tests (in po/), which fail.
  10653. `(#:tests? #f))
  10654. (inputs (list glib
  10655. gtk+
  10656. gdk-pixbuf
  10657. gtkmm-3
  10658. glibmm
  10659. libx11
  10660. libxtst
  10661. dconf
  10662. libice
  10663. libsm
  10664. libxscrnsaver))
  10665. (native-inputs `(("boost" ,boost)
  10666. ("pkg-config" ,pkg-config)
  10667. ("gettext" ,gettext-minimal)
  10668. ("autoconf" ,autoconf)
  10669. ("autoconf-archive" , autoconf-archive)
  10670. ("automake" ,automake)
  10671. ("libtool" ,libtool)
  10672. ("intltool" ,intltool)
  10673. ("gobject-introspection" ,gobject-introspection)
  10674. ("python3" ,python-3)
  10675. ("python-jinja2" ,python-jinja2)))
  10676. (synopsis "Tool to help prevent repetitive strain injury (RSI)")
  10677. (description
  10678. "Workrave is a program that assists in the recovery and prevention of
  10679. repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
  10680. micro-pauses and rest breaks, and restricts you to your daily limit.")
  10681. (home-page "http://www.workrave.org")
  10682. (license license:gpl3+)))
  10683. (define-public ghex
  10684. (package
  10685. (name "ghex")
  10686. (version "3.18.4")
  10687. (source (origin
  10688. (method url-fetch)
  10689. (uri (string-append "mirror://gnome/sources/ghex/"
  10690. (version-major+minor version) "/"
  10691. "ghex-" version ".tar.xz"))
  10692. (sha256
  10693. (base32
  10694. "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
  10695. (build-system meson-build-system)
  10696. (arguments
  10697. '(#:glib-or-gtk? #t
  10698. #:phases
  10699. (modify-phases %standard-phases
  10700. (add-after 'unpack 'skip-gtk-update-icon-cache
  10701. ;; Don't create 'icon-theme.cache'.
  10702. (lambda _
  10703. (substitute* "meson_post_install.py"
  10704. (("gtk-update-icon-cache") (which "true")))
  10705. #t)))))
  10706. (native-inputs
  10707. `(("pkg-config" ,pkg-config)
  10708. ("glib:bin" ,glib "bin") ; for glib-compile-schemas
  10709. ("gnome-common" ,gnome-common)
  10710. ("which" ,which)
  10711. ("intltool" ,intltool)
  10712. ("yelp-tools" ,yelp-tools)
  10713. ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
  10714. (inputs
  10715. `(("atk" ,atk)
  10716. ("gtk" ,gtk+)))
  10717. (synopsis "GNOME hexadecimal editor")
  10718. (description "The GHex program can view and edit files in two ways:
  10719. hexadecimal or ASCII. It is useful for editing binary files in general.")
  10720. (home-page "https://wiki.gnome.org/Apps/Ghex")
  10721. (license license:gpl2)))
  10722. (define-public libdazzle
  10723. (package
  10724. (name "libdazzle")
  10725. (version "3.37.1")
  10726. (source (origin
  10727. (method url-fetch)
  10728. (uri (string-append "mirror://gnome/sources/libdazzle/"
  10729. (version-major+minor version) "/"
  10730. "libdazzle-" version ".tar.xz"))
  10731. (sha256
  10732. (base32
  10733. "03r5cr11dc031qa3694bpgm3lajrhiiln67kvl7vjj4q0scf7w7x"))))
  10734. (build-system meson-build-system)
  10735. (arguments
  10736. `(#:phases
  10737. (modify-phases %standard-phases
  10738. (add-before 'check 'pre-check
  10739. (lambda _
  10740. ;; Tests require a running X server.
  10741. (system "Xvfb :1 &")
  10742. (setenv "DISPLAY" ":1")
  10743. #t)))))
  10744. (native-inputs
  10745. (list `(,glib "bin") ; glib-compile-resources
  10746. pkg-config
  10747. ;; For tests.
  10748. xorg-server-for-tests))
  10749. (inputs
  10750. (list glib gobject-introspection gtk+ vala))
  10751. (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
  10752. (synopsis "Companion library to GObject and Gtk+")
  10753. (description "The libdazzle library is a companion library to GObject and
  10754. Gtk+. It provides various features that the authors wish were in the
  10755. underlying library but cannot for various reasons. In most cases, they are
  10756. wildly out of scope for those libraries. In other cases, they are not quite
  10757. generic enough to work for everyone.")
  10758. (license license:gpl3+)))
  10759. (define-public evolution
  10760. (package
  10761. (name "evolution")
  10762. (version "3.42.1")
  10763. (source (origin
  10764. (method url-fetch)
  10765. (uri (string-append "mirror://gnome/sources/evolution/"
  10766. (version-major+minor version) "/"
  10767. "evolution-" version ".tar.xz"))
  10768. (sha256
  10769. (base32
  10770. "0igfzapdvgfx2gnpwfkjfkn7l5j186wk88ni39vqas1sl7ijlls6"))))
  10771. (build-system cmake-build-system)
  10772. (arguments
  10773. `(#:imported-modules (,@%cmake-build-system-modules
  10774. (guix build glib-or-gtk-build-system))
  10775. #:modules ((guix build cmake-build-system)
  10776. ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
  10777. (guix build utils))
  10778. #:configure-flags
  10779. (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
  10780. "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
  10781. ; in four years and cannot be built.
  10782. #:phases
  10783. (modify-phases %standard-phases
  10784. ;; The build system attempts to install user interface modules to the
  10785. ;; output directory of the "evolution-data-server" package. This
  10786. ;; change redirects that change.
  10787. (add-after 'unpack 'patch-ui-module-dir
  10788. (lambda* (#:key outputs #:allow-other-keys)
  10789. (substitute* "src/modules/alarm-notify/CMakeLists.txt"
  10790. (("\\$\\{edsuimoduledir\\}")
  10791. (string-append (assoc-ref outputs "out")
  10792. "/lib/evolution-data-server/ui-modules")))))
  10793. (add-after 'install 'glib-or-gtk-compile-schemas
  10794. (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
  10795. (add-after 'install 'glib-or-gtk-wrap
  10796. (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
  10797. (native-inputs
  10798. (list `(,glib "bin") ; glib-mkenums
  10799. pkg-config intltool itstool))
  10800. (inputs
  10801. `(("enchant" ,enchant)
  10802. ("evolution-data-server" ,evolution-data-server) ; must be the same version
  10803. ("gcr" ,gcr)
  10804. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  10805. ("gnome-autoar" ,gnome-autoar)
  10806. ("gnome-desktop" ,gnome-desktop)
  10807. ("gspell" ,gspell)
  10808. ("highlight" ,highlight)
  10809. ("libcanberra" ,libcanberra)
  10810. ("libgweather" ,libgweather)
  10811. ("libnotify" ,libnotify)
  10812. ("libsoup" ,libsoup)
  10813. ("nss" ,nss)
  10814. ("openldap" ,openldap)
  10815. ("webkitgtk" ,webkitgtk-with-libsoup2) ; because of evolution-data-server
  10816. ("ytnef" ,ytnef)))
  10817. (home-page "https://gitlab.gnome.org/GNOME/evolution")
  10818. (synopsis "Manage your email, contacts and schedule")
  10819. (description "Evolution is a personal information management application
  10820. that provides integrated mail, calendaring and address book
  10821. functionality.")
  10822. ;; See COPYING for details.
  10823. (license (list license:lgpl2.1 license:lgpl3 ; either one of these
  10824. license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
  10825. license:lgpl2.1+)))) ; smime/lib/*
  10826. (define-public gthumb
  10827. (package
  10828. (name "gthumb")
  10829. (version "3.12.0")
  10830. (source (origin
  10831. (method url-fetch)
  10832. (uri (string-append "mirror://gnome/sources/gthumb/"
  10833. (version-major+minor version) "/"
  10834. "gthumb-" version ".tar.xz"))
  10835. (sha256
  10836. (base32
  10837. "0grqiq6v26z8avl7mj24xy4i9bl1niwpqhqw6rblprl40c1zrvrx"))))
  10838. (build-system meson-build-system)
  10839. (arguments
  10840. `(#:glib-or-gtk? #t
  10841. #:configure-flags
  10842. ;; Ensure the RUNPATH contains all installed library locations.
  10843. (list (string-append "-Dc_link_args=-Wl,-rpath="
  10844. (assoc-ref %outputs "out")
  10845. "/lib/gthumb/extensions")
  10846. (string-append "-Dcpp_link_args=-Wl,-rpath="
  10847. (assoc-ref %outputs "out")
  10848. "/lib/gthumb/extensions"))))
  10849. (native-inputs
  10850. `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
  10851. ("glib:bin" ,glib "bin") ; for glib-compile-resources
  10852. ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
  10853. ("intltool" ,intltool)
  10854. ("itstool" ,itstool)
  10855. ("pkg-config" ,pkg-config)
  10856. ("python" ,python)))
  10857. (inputs
  10858. `(("clutter" ,clutter)
  10859. ("clutter-gst" ,clutter-gst)
  10860. ("clutter-gtk" ,clutter-gtk)
  10861. ("colord" ,colord)
  10862. ("exiv2" ,exiv2)
  10863. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  10864. ("gstreamer" ,gstreamer)
  10865. ("gtk" ,gtk+)
  10866. ("libheif" ,libheif)
  10867. ("libjpeg" ,libjpeg-turbo)
  10868. ("libraw" ,libraw)
  10869. ("librsvg" ,librsvg)
  10870. ("libtiff" ,libtiff)
  10871. ("libwebp" ,libwebp)))
  10872. (home-page "https://wiki.gnome.org/Apps/Gthumb")
  10873. (synopsis "GNOME image viewer and browser")
  10874. (description "GThumb is an image viewer, browser, organizer, editor and
  10875. advanced image management tool")
  10876. (license license:gpl2+)))
  10877. (define-public terminator
  10878. (package
  10879. (name "terminator")
  10880. (version "2.1.1")
  10881. (source
  10882. (origin
  10883. (method url-fetch)
  10884. (uri (string-append "https://github.com/gnome-terminator/terminator/"
  10885. "releases/download/v" version "/"
  10886. name "-" version ".tar.gz"))
  10887. (sha256
  10888. (base32 "0xdgmam7ghnxw6g38a4gjw3kk3rhga8c66lns18k928jlr9fmddw"))))
  10889. (build-system python-build-system)
  10890. (native-inputs
  10891. `(("gettext" ,gettext-minimal)
  10892. ("glib:bin" ,glib "bin") ; for glib-compile-resources
  10893. ("gobject-introspection" ,gobject-introspection)
  10894. ("intltool" ,intltool)
  10895. ("pkg-config" ,pkg-config)
  10896. ("python-psutil" ,python-psutil)
  10897. ("python-pytest-runner" ,python-pytest-runner)
  10898. ("python-pytest" ,python-pytest)))
  10899. (inputs
  10900. `(("cairo" ,cairo)
  10901. ("dbus-glib" ,dbus-glib)
  10902. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  10903. ("gtk+" ,gtk+)
  10904. ("python" ,python-wrapper)
  10905. ("python-dbus" ,python-dbus)
  10906. ("python-notify2" ,python-notify2)
  10907. ("python-pycairo" ,python-pycairo)
  10908. ("python-pygobject" ,python-pygobject)
  10909. ("vte" ,vte)))
  10910. (propagated-inputs
  10911. (list python-configobj))
  10912. (arguments
  10913. ;; One test out of 28 fails due to dbus-python and python-notify; skip
  10914. ;; tests.
  10915. `(#:tests? #f
  10916. #:imported-modules ((guix build glib-or-gtk-build-system)
  10917. ,@%python-build-system-modules)
  10918. #:modules ((guix build python-build-system)
  10919. ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
  10920. (guix build utils))
  10921. #:phases
  10922. (modify-phases %standard-phases
  10923. (add-after 'unpack 'handle-dbus-python
  10924. (lambda _
  10925. ;; python-dbus cannot be found but it's really there. See
  10926. ;; https://github.com/SpotlightKid/jack-select/issues/2
  10927. (substitute* "setup.py"
  10928. (("'dbus-python',") ""))))
  10929. (add-after 'install 'wrap-program
  10930. (lambda* (#:key outputs #:allow-other-keys)
  10931. (let ((prog (string-append (assoc-ref outputs "out")
  10932. "/bin/terminator"))
  10933. (pylib (string-append (assoc-ref outputs "out")
  10934. "/lib/python"
  10935. ,(version-major+minor
  10936. (package-version python))
  10937. "/site-packages")))
  10938. (wrap-program prog
  10939. `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
  10940. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))
  10941. (add-after 'wrap-program 'glib-or-gtk-wrap
  10942. (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
  10943. (home-page "https://gnome-terminator.org/")
  10944. (synopsis "Store and run multiple GNOME terminals in one window")
  10945. (description
  10946. "Terminator allows you to run multiple GNOME terminals in a grid and
  10947. tabs, and it supports drag and drop re-ordering of terminals.")
  10948. (license license:gpl2)))
  10949. (define-public libhandy
  10950. (package
  10951. (name "libhandy")
  10952. (version "1.5.0")
  10953. (source
  10954. (origin
  10955. (method git-fetch)
  10956. (uri (git-reference
  10957. (url "https://gitlab.gnome.org/GNOME/libhandy")
  10958. (commit version)))
  10959. (file-name (git-file-name name version))
  10960. (sha256
  10961. (base32 "19gl0xxybraw2iyn6cdi9w7nps825lb2bhav7d2x51wla0lq3kdc"))))
  10962. (build-system meson-build-system)
  10963. (arguments
  10964. `(#:configure-flags
  10965. '("-Dglade_catalog=enabled"
  10966. ;; XXX: Generating the documentation fails because the
  10967. ;; libhandy.devhelp2 document cannot be created. This seems to be
  10968. ;; caused by a problem during the XSL transformation.
  10969. "-Dgtk_doc=false")
  10970. #:phases
  10971. (modify-phases %standard-phases
  10972. (add-after 'unpack 'patch-docbook-xml
  10973. (lambda* (#:key inputs #:allow-other-keys)
  10974. (for-each
  10975. (lambda (file)
  10976. (substitute* file
  10977. (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
  10978. (search-input-file inputs
  10979. "/xml/dtd/docbook/docbookx.dtd"))))
  10980. (find-files "doc" "\\.xml"))))
  10981. (add-before 'check 'pre-check
  10982. (lambda _
  10983. ;; Tests require a running X server.
  10984. (system "Xvfb :1 &")
  10985. (setenv "DISPLAY" ":1")
  10986. #t)))))
  10987. (inputs
  10988. (list gtk+ glade3))
  10989. (native-inputs
  10990. `(("glib:bin" ,glib "bin")
  10991. ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
  10992. ("vala" ,vala)
  10993. ("libxml2" ,libxml2)
  10994. ("libxslt" ,libxslt)
  10995. ("docbook-xsl" ,docbook-xsl)
  10996. ("docbook-xml" ,docbook-xml-4.3)
  10997. ("gtk-doc" ,gtk-doc/stable)
  10998. ("pkg-config" ,pkg-config)
  10999. ("gettext" ,gettext-minimal)
  11000. ;; Test suite dependencies.
  11001. ("xorg-server" ,xorg-server-for-tests)
  11002. ("hicolor-icon-theme" ,hicolor-icon-theme)))
  11003. (home-page "https://gitlab.gnome.org/GNOME/libhandy/")
  11004. (synopsis "Library full of GTK+ widgets for mobile phones")
  11005. (description "The aim of the handy library is to help with developing user
  11006. interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
  11007. for usage on small and big screens.")
  11008. (license license:lgpl2.1+)))
  11009. (define-public libhandy-0.0
  11010. (package
  11011. (inherit libhandy)
  11012. (version "0.0.13")
  11013. (source
  11014. (origin
  11015. (method git-fetch)
  11016. (uri (git-reference
  11017. (url "https://gitlab.gnome.org/GNOME/libhandy")
  11018. (commit (string-append "v" version))))
  11019. (file-name (git-file-name "libhandy" version))
  11020. (sha256
  11021. (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
  11022. (arguments
  11023. (substitute-keyword-arguments (package-arguments libhandy)
  11024. ((#:configure-flags flags)
  11025. '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
  11026. (define-public libgit2-glib
  11027. (package
  11028. (name "libgit2-glib")
  11029. (version "1.0.0.1")
  11030. (source (origin
  11031. (method url-fetch)
  11032. (uri (string-append "mirror://gnome/sources/" name "/"
  11033. (version-major+minor version) "/"
  11034. name "-" version ".tar.xz"))
  11035. (sha256
  11036. (base32
  11037. "0mrb21cgqmbhbxqxwx76yry1ifqj1k4vy6455n6s034m6rlms2j6"))))
  11038. (build-system meson-build-system)
  11039. (native-inputs
  11040. (list `(,glib "bin") ;; For glib-mkenums
  11041. gobject-introspection
  11042. pkg-config
  11043. python-pygobject
  11044. python-wrapper
  11045. vala))
  11046. (inputs
  11047. (list glib libssh2))
  11048. (propagated-inputs
  11049. (list ;; In Requires of libgit2-glib.pc.
  11050. libgit2))
  11051. (synopsis "GLib wrapper around the libgit2 Git access library")
  11052. (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
  11053. access library. It only implements the core plumbing functions, not really the
  11054. higher level porcelain stuff.")
  11055. (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
  11056. (license license:gpl2+)))
  11057. (define-public gitg
  11058. (package
  11059. (name "gitg")
  11060. (version "41")
  11061. (source (origin
  11062. (method url-fetch)
  11063. (uri (string-append "mirror://gnome/sources/" name "/"
  11064. (version-major version) "/"
  11065. name "-" version ".tar.xz"))
  11066. (sha256
  11067. (base32
  11068. "0aa6djcf7rjw0q688mfy47k67bbjpnx6aw1xs94abfhgn6gipdkz"))))
  11069. (build-system meson-build-system)
  11070. (arguments
  11071. (list
  11072. #:glib-or-gtk? #t
  11073. #:phases
  11074. #~(modify-phases %standard-phases
  11075. (add-after 'unpack 'disable-post-install-partially
  11076. (lambda _
  11077. (substitute* "meson_post_install.py"
  11078. (("'python'") ; there are no python sources to compile
  11079. (string-append "'" (which "true") "'"))
  11080. (("gtk-update-icon-cache") (which "true")))))
  11081. (add-after 'unpack 'fix-test-sources
  11082. (lambda _
  11083. (substitute* "tests/libgitg/test-commit.vala"
  11084. (("/bin/bash") (which "bash")))))
  11085. (add-after 'glib-or-gtk-wrap 'wrap-typelib
  11086. (lambda* (#:key outputs #:allow-other-keys)
  11087. (let ((prog (string-append #$output "/bin/gitg")))
  11088. (wrap-program prog
  11089. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
  11090. (inputs
  11091. (list glib
  11092. gsettings-desktop-schemas
  11093. gspell
  11094. gtk+
  11095. gtksourceview
  11096. json-glib
  11097. libdazzle
  11098. libgee
  11099. libgit2-glib
  11100. libpeas
  11101. libsecret
  11102. libsoup-minimal-2
  11103. libxml2))
  11104. (native-inputs
  11105. (list `(,glib "bin")
  11106. `(,gtk+ "bin")
  11107. gobject-introspection
  11108. intltool
  11109. pkg-config
  11110. python
  11111. vala))
  11112. (synopsis "Graphical user interface for git")
  11113. (description
  11114. "gitg is a graphical user interface for git. It aims at being a small,
  11115. fast and convenient tool to visualize the history of git repositories.
  11116. Besides visualization, gitg also provides several utilities to manage your
  11117. repository and commit your work.")
  11118. (home-page "https://wiki.gnome.org/Apps/Gitg")
  11119. (license license:gpl2+)))
  11120. (define-public gamin
  11121. (package
  11122. (name "gamin")
  11123. (version "0.1.10")
  11124. (source (origin
  11125. (method url-fetch)
  11126. (uri (string-append "mirror://gnome/sources/" name "/"
  11127. (version-major+minor version) "/"
  11128. name "-" version ".tar.bz2"))
  11129. (sha256
  11130. (base32
  11131. "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
  11132. (build-system gnu-build-system)
  11133. (arguments
  11134. `(#:phases
  11135. (modify-phases %standard-phases
  11136. ;; The 'config.sub' is too old to recognise aarch64.
  11137. ,@(if (and=> (%current-target-system) target-aarch64?)
  11138. `((add-after 'unpack 'replace-config.sub
  11139. (lambda _
  11140. (delete-file "config.sub")
  11141. (symlink (which "config.sub") "config.sub"))))
  11142. '())
  11143. (add-after 'unpack 'remove-deprecated-macro
  11144. (lambda _
  11145. (substitute* '("server/gam_node.c"
  11146. "server/gam_subscription.h"
  11147. "server/gam_node.h"
  11148. "server/gam_subscription.c")
  11149. (("G_CONST_RETURN") "const"))
  11150. #t))
  11151. ;; The configure script runs a test program unconditionally,
  11152. ;; without an option to manually set the test result.
  11153. ;; Override this test anyway.
  11154. ,@(if (%current-target-system)
  11155. `((add-after 'bootstrap 'set-have-abstract-sockets
  11156. (lambda _
  11157. (define in-abstract-sockets-test? #f)
  11158. (substitute* "configure"
  11159. (("^#### Abstract sockets\n$")
  11160. (set! in-abstract-sockets-test? #t)
  11161. "#### Abstract sockets\n")
  11162. (("^have_abstract_sockets=no\n$")
  11163. (set! in-abstract-sockets-test? #f)
  11164. ;; ‘Abstract sockets’ appear to be Linux-only.
  11165. (string-append "have_abstract_sockets="
  11166. ,(if (target-linux?)
  11167. "yes"
  11168. "no")
  11169. "\nif false; then\nif false; then :\n"))
  11170. (("^(.*\n)$" line)
  11171. (if in-abstract-sockets-test?
  11172. "" ; delete
  11173. line))))))
  11174. '()))))
  11175. (inputs
  11176. (list glib))
  11177. (native-inputs
  11178. `(("pkg-config" ,pkg-config)
  11179. ,@(if (and=> (%current-target-system) target-aarch64?)
  11180. `(("config" ,config))
  11181. '())))
  11182. (home-page "https://people.gnome.org/~veillard/gamin/")
  11183. (synopsis "File alteration monitor")
  11184. (description
  11185. "Gamin is a file and directory monitoring system defined to be a subset
  11186. of the FAM (File Alteration Monitor) system. This is a service provided by a
  11187. library which detects when a file or a directory has been modified.")
  11188. (license license:gpl2+)))
  11189. (define-public gnome-mahjongg
  11190. (package
  11191. (name "gnome-mahjongg")
  11192. (version "3.38.3")
  11193. (source (origin
  11194. (method url-fetch)
  11195. (uri (string-append "mirror://gnome/sources/" name "/"
  11196. (version-major+minor version) "/" name "-"
  11197. version ".tar.xz"))
  11198. (sha256
  11199. (base32
  11200. "144ia3zn9rhwa1xbdkvsz6m0dsysl6mxvqw9bnrlh845hmyy9cfj"))))
  11201. (build-system meson-build-system)
  11202. (arguments
  11203. `(#:meson ,meson-0.59
  11204. #:glib-or-gtk? #t))
  11205. (native-inputs
  11206. `(("appstream-glib" ,appstream-glib)
  11207. ("gettext" ,gettext-minimal)
  11208. ("glib:bin" ,glib "bin") ;; For glib-compile-resources
  11209. ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
  11210. ("itstool" ,itstool)
  11211. ("pkg-config" ,pkg-config)
  11212. ("vala" ,vala)))
  11213. (propagated-inputs
  11214. (list dconf))
  11215. (inputs
  11216. (list glib gtk+))
  11217. (synopsis "Mahjongg tile-matching game")
  11218. (description "GNOME Mahjongg is a game based on the classic Chinese
  11219. tile-matching game Mahjongg. It features multiple board layouts, tile themes,
  11220. and a high score table.")
  11221. (home-page "https://wiki.gnome.org/Apps/Mahjongg")
  11222. (license license:gpl2+)))
  11223. (define-public gnome-themes-extra
  11224. (package
  11225. (name "gnome-themes-extra")
  11226. (version "3.28")
  11227. (source
  11228. (origin
  11229. (method url-fetch)
  11230. (uri (string-append "mirror://gnome/sources/" name "/"
  11231. (version-major+minor version) "/" name "-"
  11232. version ".tar.xz"))
  11233. (sha256
  11234. (base32
  11235. "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
  11236. (build-system gnu-build-system)
  11237. (arguments
  11238. '(#:configure-flags
  11239. ;; Don't create 'icon-theme.cache'.
  11240. (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
  11241. (true (string-append coreutils "/bin/true")))
  11242. (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
  11243. (native-inputs
  11244. `(("glib:bin" ,glib "bin")
  11245. ("intltool" ,intltool)
  11246. ("pkg-config" ,pkg-config)))
  11247. (inputs
  11248. `(("glib" ,glib)
  11249. ("gtk+" ,gtk+)
  11250. ("gtk+-2" ,gtk+-2)
  11251. ("librsvg" ,librsvg)
  11252. ("libxml2" ,libxml2)))
  11253. (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
  11254. (synopsis "GNOME Extra Themes")
  11255. (description "This package provides themes and related elements that don't
  11256. really fit in other upstream packages. It offers legacy support for GTK+ 2
  11257. versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
  11258. index files needed for Adwaita to be used outside of GNOME.")
  11259. (license license:lgpl2.1+)))
  11260. (define-public gnote
  11261. (package
  11262. (name "gnote")
  11263. (version "41.2")
  11264. (source
  11265. (origin
  11266. (method url-fetch)
  11267. (uri (string-append "mirror://gnome/sources/" name "/"
  11268. (version-major version) "/"
  11269. "gnote-" version ".tar.xz"))
  11270. (sha256
  11271. (base32 "0gs2j988rwfrxckb8qxlkyxnvqsv30q32myqish6hssfa51yzc11"))))
  11272. (build-system meson-build-system)
  11273. (arguments
  11274. `(#:glib-or-gtk? #t
  11275. #:phases (modify-phases %standard-phases
  11276. (add-after 'unpack 'skip-gtk-update-icon-cache
  11277. ;; Don't create 'icon-theme.cache'.
  11278. (lambda _
  11279. (substitute* "post-install.py"
  11280. (("gtk-update-icon-cache") "true")))))))
  11281. (native-inputs
  11282. (list desktop-file-utils
  11283. `(,glib "bin")
  11284. gobject-introspection
  11285. intltool
  11286. itstool
  11287. pkg-config
  11288. python))
  11289. (inputs
  11290. (list glibmm
  11291. gsettings-desktop-schemas
  11292. gspell
  11293. gtk+
  11294. gtkmm-3
  11295. libsecret
  11296. `(,util-linux "lib")
  11297. libxml2
  11298. libxslt))
  11299. (synopsis "Note-taking application for the GNOME desktop")
  11300. (description "Gnote is a note-taking application written for the GNOME
  11301. desktop environment.")
  11302. (home-page "https://wiki.gnome.org/Apps/Gnote")
  11303. (license license:gpl3+)))
  11304. (define-public polari
  11305. (package
  11306. (name "polari")
  11307. (version "41.0")
  11308. (source (origin
  11309. (method url-fetch)
  11310. (uri (string-append "mirror://gnome/sources/polari/"
  11311. (version-major version)
  11312. "/polari-" version ".tar.xz"))
  11313. (sha256
  11314. (base32
  11315. "1ss0x8idwar1q9p9535kzqb8idy7k2r48vrbjiyccw03cs0mzc53"))))
  11316. (build-system meson-build-system)
  11317. (arguments
  11318. `(#:glib-or-gtk? #t
  11319. #:phases
  11320. (modify-phases %standard-phases
  11321. (add-after 'unpack 'skip-gtk-update-icon-cache
  11322. (lambda _
  11323. (substitute* "meson/meson-postinstall.sh"
  11324. (("gtk-update-icon-cache") (which "true")))))
  11325. (add-after 'install 'fix-desktop-file
  11326. ;; Hardcode launcher to be on the safe side
  11327. (lambda* (#:key outputs #:allow-other-keys)
  11328. (let ((out (assoc-ref outputs "out")))
  11329. (substitute* (string-append out "/share/applications/"
  11330. "org.gnome.Polari.desktop")
  11331. (("Exec=.*") (string-append "Exec=" out "/bin/polari\n"))))))
  11332. (add-after 'glib-or-gtk-wrap 'wrap-typelib
  11333. (lambda* (#:key outputs #:allow-other-keys)
  11334. (let ((prog (string-append (assoc-ref outputs "out")
  11335. "/bin/polari")))
  11336. (wrap-program prog
  11337. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
  11338. (inputs
  11339. (list glib
  11340. gsettings-desktop-schemas
  11341. gspell
  11342. gtk
  11343. gjs
  11344. libsecret
  11345. libsoup-minimal-2
  11346. telepathy-glib
  11347. telepathy-logger))
  11348. (native-inputs
  11349. (list `(,glib "bin")
  11350. gobject-introspection
  11351. intltool
  11352. pkg-config
  11353. yelp-tools))
  11354. (propagated-inputs
  11355. (list telepathy-idle telepathy-mission-control))
  11356. (synopsis "Simple IRC Client")
  11357. (description
  11358. "Polari is a simple Internet Relay Chat (IRC) client that is designed to
  11359. integrate seamlessly with the GNOME desktop.")
  11360. (home-page "https://wiki.gnome.org/Apps/Polari")
  11361. (license license:gpl2+)))
  11362. (define-public gnome-boxes
  11363. (package
  11364. (name "gnome-boxes")
  11365. (version "41.1")
  11366. (source
  11367. (origin
  11368. (method url-fetch)
  11369. (uri (string-append "mirror://gnome/sources/gnome-boxes/"
  11370. (version-major version) "/"
  11371. "gnome-boxes-" version ".tar.xz"))
  11372. (sha256
  11373. (base32 "1wzhm8n485cqhbai4qshgrwl05ix881g8gjshilrj6vg8p1li79h"))
  11374. (patches
  11375. (search-patches "gnome-boxes-add-guix-logo.patch"))))
  11376. (build-system meson-build-system)
  11377. (arguments
  11378. `(#:glib-or-gtk? #t
  11379. #:configure-flags (list "-Drdp=false"
  11380. (string-append "-Dc_link_args=-Wl,-rpath="
  11381. (assoc-ref %outputs "out")
  11382. "/lib/gnome-boxes"))))
  11383. (native-inputs
  11384. (list `(,glib "bin") ;for glib-compile-resources
  11385. `(,gtk+ "bin") ;for gtk-update-icon-cache
  11386. desktop-file-utils ;for update-desktop-database
  11387. itstool
  11388. intltool
  11389. vala
  11390. pkg-config
  11391. python))
  11392. (inputs
  11393. (list libarchive
  11394. glib-networking ;for TLS support
  11395. gsettings-desktop-schemas
  11396. gtk+
  11397. gtk-vnc
  11398. gtksourceview
  11399. json-glib
  11400. libhandy
  11401. libosinfo
  11402. libsecret
  11403. libsoup-minimal-2
  11404. libusb
  11405. libvirt
  11406. libvirt-glib
  11407. libxml2
  11408. spice-gtk
  11409. sparql-query
  11410. vte
  11411. webkitgtk-with-libsoup2 ;for webkit2gtk-4.0
  11412. tracker
  11413. libgudev))
  11414. (home-page "https://wiki.gnome.org/Apps/Boxes")
  11415. (synopsis "View, access, and manage remote and virtual systems")
  11416. (description "GNOME Boxes is a simple application to view, access, and
  11417. manage remote and virtual systems. Note that this application requires the
  11418. @code{libvirt} and @code{virtlog} daemons to run. Use the command
  11419. @command{info '(guix) Virtualization Services'} to learn how to configure
  11420. these services on the Guix System.")
  11421. (license (list
  11422. ;; For data/icons/empty-boxes.png.
  11423. license:cc-by2.0
  11424. ;; For all others.
  11425. license:lgpl2.0+))))
  11426. (define-public geary
  11427. (package
  11428. (name "geary")
  11429. (version "40.0")
  11430. (source (origin
  11431. (method git-fetch)
  11432. (uri (git-reference
  11433. (url "https://gitlab.gnome.org/GNOME/geary.git")
  11434. (commit (string-append "gnome-" version))))
  11435. (file-name (git-file-name name version))
  11436. (sha256
  11437. (base32
  11438. "04hvw86r8sczvjm1z3ls5y5y5h6nyfb648rjkfx05ib00mqq5v1x"))))
  11439. (build-system meson-build-system)
  11440. (arguments
  11441. `(#:glib-or-gtk? #t
  11442. #:configure-flags
  11443. '("-Dprofile=release")
  11444. #:phases (modify-phases %standard-phases
  11445. (add-after 'unpack 'disable-failing-tests
  11446. (lambda _
  11447. (substitute* "test/test-client.vala"
  11448. (("client.add_suite\\(new Application.CertificateManagerTest\\(\\).suite\\);")
  11449. ""))))
  11450. (add-after 'unpack 'generate-vapis
  11451. (lambda* (#:key inputs #:allow-other-keys)
  11452. ;; It’s not possible to generate the GMime vapi, because
  11453. ;; there’s custom metadata that gmime didn’t
  11454. ;; install. Thus, the vapi should be built and installed
  11455. ;; with gmime.
  11456. (define gmime
  11457. (assoc-ref inputs "gmime"))
  11458. (copy-file (string-append gmime "/share/vala/vapi/gmime-3.0.vapi")
  11459. "bindings/vapi/gmime-3.0.vapi")))
  11460. (add-after 'unpack 'disable-postinstall-script
  11461. (lambda _
  11462. (substitute* "build-aux/post_install.py"
  11463. (("gtk-update-icon-cache")
  11464. "true"))))
  11465. (add-before 'check 'setup-home
  11466. (lambda _
  11467. ;; Tests require a writable HOME.
  11468. (setenv "HOME" (getcwd))))
  11469. (add-before 'check 'setup-xvfb
  11470. (lambda _
  11471. (system "Xvfb :1 &")
  11472. (setenv "DISPLAY" ":1"))))))
  11473. (inputs
  11474. `(("enchant" ,enchant)
  11475. ("folks" ,folks)
  11476. ("gcr" ,gcr)
  11477. ("glib" ,glib)
  11478. ("gmime" ,gmime)
  11479. ("gnome-online-accounts:lib"
  11480. ,gnome-online-accounts "lib")
  11481. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  11482. ("gspell" ,gspell)
  11483. ("gsound" ,gsound)
  11484. ("gtk+" ,gtk+)
  11485. ("iso-codes" ,iso-codes)
  11486. ("json-glib" ,json-glib)
  11487. ("libcanberra" ,libcanberra)
  11488. ("libgee" ,libgee)
  11489. ("libhandy" ,libhandy)
  11490. ("libpeas" ,libpeas)
  11491. ("libsecret" ,libsecret)
  11492. ("libstemmer" ,libstemmer)
  11493. ("libunwind" ,libunwind)
  11494. ("sqlite" ,sqlite)
  11495. ("webkitgtk" ,webkitgtk-with-libsoup2)
  11496. ("ytnef" ,ytnef)))
  11497. (native-inputs
  11498. `(("appstream-glib" ,appstream-glib)
  11499. ("cmake-minimal" ,cmake-minimal)
  11500. ("desktop-file-utils" ,desktop-file-utils)
  11501. ("gettext" ,gettext-minimal)
  11502. ("glib" ,glib)
  11503. ("glib:bin" ,glib "bin")
  11504. ("gmime" ,gmime)
  11505. ("gobject-introspection" ,gobject-introspection)
  11506. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  11507. ("itstool" ,itstool)
  11508. ("libarchive" ,libarchive)
  11509. ("libxml2" ,libxml2)
  11510. ("pkg-config" ,pkg-config)
  11511. ("vala" ,vala)
  11512. ("xvfb" ,xorg-server-for-tests)))
  11513. (synopsis "GNOME email application built around conversations")
  11514. (description
  11515. "Geary collects related messages together into conversations,
  11516. making it easy to find and follow your discussions. Full-text and keyword
  11517. search makes it easy to find the email you are looking for. Geary's
  11518. full-featured composer lets you send rich, styled text with images, links, and
  11519. lists, but also send lightweight, easy to read text messages. Geary
  11520. automatically picks up your existing GNOME Online Accounts, and adding more is
  11521. easy. Geary has a clean, fast, modern interface that works like you want it
  11522. to.")
  11523. (home-page "https://wiki.gnome.org/Apps/Geary")
  11524. (license (list
  11525. ;; geary
  11526. license:lgpl2.1+
  11527. ;; icons
  11528. license:cc-by3.0
  11529. license:cc-by-sa3.0
  11530. license:public-domain
  11531. ;; snowball
  11532. license:bsd-2))))
  11533. (define-public glabels
  11534. (package
  11535. (name "glabels")
  11536. (version "3.4.1")
  11537. (source
  11538. (origin
  11539. (method url-fetch)
  11540. (uri (string-append "mirror://gnome/sources/" name "/"
  11541. (version-major+minor version) "/"
  11542. "glabels-" version ".tar.xz"))
  11543. (sha256
  11544. (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
  11545. (build-system glib-or-gtk-build-system)
  11546. (native-inputs
  11547. `(("gettext" ,gettext-minimal)
  11548. ("glib:bin" ,glib "bin")
  11549. ("intltool" ,intltool)
  11550. ("itstool" ,itstool)
  11551. ("pkg-config" ,pkg-config)))
  11552. (inputs
  11553. (list gtk+ librsvg libxml2))
  11554. (arguments
  11555. `(#:configure-flags '("CFLAGS=-fcommon")))
  11556. (home-page "https://glabels.org/")
  11557. (synopsis "Program for creating labels and business cards")
  11558. (description
  11559. "gLabels is a program for creating labels and business cards. It is
  11560. designed to work with various laser/ink-jet peel-off label and business
  11561. card sheets that you’ll find at most office supply stores.")
  11562. (license license:gpl3+)))
  11563. (define-public gnome-latex
  11564. (package
  11565. (name "gnome-latex")
  11566. (version "3.38.0")
  11567. (source
  11568. (origin
  11569. (method url-fetch)
  11570. (uri (string-append "mirror://gnome/sources/" name "/"
  11571. (version-major+minor version) "/"
  11572. "gnome-latex-" version ".tar.xz"))
  11573. (sha256
  11574. (base32 "0xqd49pgi82dygqnxj08i1v22b0vwwhx3zvdinhrx4jny339yam8"))))
  11575. (build-system glib-or-gtk-build-system)
  11576. (native-inputs
  11577. (list gettext-minimal
  11578. `(,glib "bin")
  11579. gobject-introspection
  11580. gtk-doc/stable
  11581. intltool
  11582. itstool
  11583. pkg-config
  11584. vala))
  11585. (inputs
  11586. (list amtk
  11587. dconf
  11588. glib
  11589. gsettings-desktop-schemas
  11590. gspell
  11591. gtk+
  11592. gtksourceview
  11593. libgee
  11594. tepl-5
  11595. uchardet))
  11596. (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
  11597. (synopsis "LaTeX editor for the GNOME desktop")
  11598. (description
  11599. "GNOME LaTeX is a LaTeX editor for the GNOME desktop. It has features
  11600. such as build tools, completion of LaTeX commands, structure navigation,
  11601. symbol tables, document templates, project management, spell-checking, menus
  11602. and toolbars.")
  11603. (license license:gpl3+)))
  11604. (define-public setzer
  11605. (package
  11606. (name "setzer")
  11607. (version "0.4.1")
  11608. (source
  11609. (origin
  11610. (method git-fetch)
  11611. (uri (git-reference
  11612. (url "https://github.com/cvfosammmm/Setzer")
  11613. (commit (string-append "v" version))))
  11614. (file-name (git-file-name name version))
  11615. (sha256
  11616. (base32 "1rcx2c07jg1ij81pnvg3px49hfbjmkagn68d3gp79z3gcajbp2av"))))
  11617. (build-system meson-build-system)
  11618. (arguments
  11619. `(#:glib-or-gtk? #t
  11620. #:phases
  11621. (modify-phases %standard-phases
  11622. (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
  11623. (lambda* (#:key outputs #:allow-other-keys)
  11624. (let ((prog (string-append (assoc-ref outputs "out")
  11625. "/bin/setzer"))
  11626. (pylib (string-append (assoc-ref outputs "out")
  11627. "/lib/python"
  11628. ,(version-major+minor
  11629. (package-version python))
  11630. "/site-packages")))
  11631. (wrap-program prog
  11632. `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
  11633. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
  11634. #t))))))
  11635. (native-inputs
  11636. `(("desktop-file-utils" ,desktop-file-utils)
  11637. ("gettext" ,gettext-minimal)
  11638. ("glib:bin" ,glib "bin")
  11639. ("gobject-introspection" ,gobject-introspection)
  11640. ("gtk+:bin" ,gtk+ "bin")))
  11641. (inputs
  11642. `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  11643. ("gspell" ,gspell)
  11644. ("gtk+" ,gtk+)
  11645. ("gtksourceview" ,gtksourceview)
  11646. ("pango" ,pango)
  11647. ("poppler" ,poppler)
  11648. ("python-pdfminer" ,python-pdfminer-six)
  11649. ("python-pycairo" ,python-pycairo)
  11650. ("python-pygobject" ,python-pygobject)
  11651. ("python-pyxdg" ,python-pyxdg)
  11652. ("webkitgtk" ,webkitgtk)
  11653. ("xdg-utils" ,xdg-utils)))
  11654. (home-page "https://www.cvfosammmm.org/setzer/")
  11655. (synopsis "LaTeX editor written in Python with GTK+")
  11656. (description
  11657. "Setzer is a simple yet full-featured LaTeX editor written in Python with
  11658. GTK+. It integrates well with the GNOME desktop environment.")
  11659. (license license:gpl3+)))
  11660. (define-public apostrophe
  11661. (package
  11662. (name "apostrophe")
  11663. (version "2.5")
  11664. (source (origin
  11665. (method git-fetch)
  11666. (uri (git-reference
  11667. (url "https://gitlab.gnome.org/somas/apostrophe")
  11668. (commit (string-append "v" version))))
  11669. (file-name (git-file-name name version))
  11670. (sha256
  11671. (base32
  11672. "06yfiflmj3ip7ppcz41nb3xpgb5ggw5h74w0v87yaqqkq7qh31lp"))))
  11673. (build-system meson-build-system)
  11674. (arguments
  11675. `(#:glib-or-gtk? #t
  11676. #:meson ,meson-0.59 ;fails with 0.60
  11677. #:phases
  11678. (modify-phases %standard-phases
  11679. (add-after 'unpack 'patch-meson
  11680. (lambda _
  11681. (substitute* "build-aux/meson_post_install.py"
  11682. (("gtk-update-icon-cache") "true"))))
  11683. (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
  11684. (lambda* (#:key inputs outputs #:allow-other-keys)
  11685. (let ((prog (string-append (assoc-ref outputs "out")
  11686. "/bin/apostrophe"))
  11687. (pylib (string-append (assoc-ref outputs "out")
  11688. "/lib/python"
  11689. ,(version-major+minor
  11690. (package-version
  11691. (this-package-input "python")))
  11692. "/site-packages")))
  11693. (wrap-program prog
  11694. `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
  11695. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
  11696. `("PATH" prefix (,(dirname
  11697. (search-input-file inputs
  11698. "/bin/pandoc")))))))))))
  11699. (inputs
  11700. (list glib
  11701. gobject-introspection
  11702. gspell
  11703. gtk+
  11704. libhandy
  11705. pandoc
  11706. python
  11707. python-chardet
  11708. python-levenshtein
  11709. python-regex
  11710. python-pycairo
  11711. python-pygobject
  11712. python-pyenchant
  11713. python-pypandoc
  11714. webkitgtk))
  11715. (native-inputs
  11716. (list gettext-minimal
  11717. `(,glib "bin")
  11718. pkg-config
  11719. sassc))
  11720. (home-page "https://gitlab.gnome.org/somas/apostrophe")
  11721. (synopsis "Markdown editor written in Python with GTK+")
  11722. (description "Apostrophe is a GTK+ based distraction-free Markdown editor.
  11723. It uses pandoc as back-end for parsing Markdown.")
  11724. (license license:gpl3)))
  11725. (define-public libratbag
  11726. (package
  11727. (name "libratbag")
  11728. (version "0.16")
  11729. (source
  11730. (origin
  11731. (method git-fetch)
  11732. (uri (git-reference
  11733. (url "https://github.com/libratbag/libratbag")
  11734. (commit (string-append "v" version))))
  11735. (file-name (git-file-name name version))
  11736. (sha256
  11737. (base32 "0jjf6xc3a37icp5dvbxla3ai9is2ns31m0llbfq1bmb6dk8cd4n0"))))
  11738. (build-system meson-build-system)
  11739. (arguments
  11740. `(#:configure-flags
  11741. (list "-Dsystemd=false"
  11742. "-Dlogind-provider=elogind")
  11743. #:phases
  11744. (modify-phases %standard-phases
  11745. (add-after 'install 'wrap
  11746. (lambda* (#:key inputs outputs #:allow-other-keys)
  11747. (let* ((out (assoc-ref outputs "out"))
  11748. (site (string-append
  11749. "/lib/python"
  11750. ,(version-major+minor (package-version python))
  11751. "/site-packages"))
  11752. (evdev (string-append
  11753. (assoc-ref inputs "python-evdev") site))
  11754. (pygo (string-append
  11755. (assoc-ref inputs "python-pygobject") site))
  11756. (python-wrap
  11757. `("GUIX_PYTHONPATH" = (,evdev ,pygo))))
  11758. (wrap-program (string-append out "/bin/" "ratbagctl")
  11759. python-wrap)
  11760. #t))))))
  11761. (native-inputs
  11762. (list check pkg-config swig valgrind))
  11763. (inputs
  11764. `(("glib" ,glib)
  11765. ("json-glib" ,json-glib)
  11766. ("libevdev" ,libevdev)
  11767. ("libsystemd" ,elogind)
  11768. ("libunistring" ,libunistring)
  11769. ("python" ,python)
  11770. ("python-evdev" ,python-evdev)
  11771. ("python-pygobject" ,python-pygobject)
  11772. ("udev" ,eudev)))
  11773. (home-page "https://github.com/libratbag/libratbag")
  11774. (synopsis "DBus daemon and utility for configuring gaming mice")
  11775. (description "libratbag provides @command{ratbagd}, a DBus daemon to
  11776. configure input devices, mainly gaming mice. The daemon provides a generic
  11777. way to access the various features exposed by these mice and abstracts away
  11778. hardware-specific and kernel-specific quirks. There is also the
  11779. @command{ratbagctl} command line interface for configuring devices.
  11780. libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
  11781. Steelseries.
  11782. The ratbagd DBus service can be enabled by adding the following service to
  11783. your operating-system definition:
  11784. (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
  11785. (license license:expat)))
  11786. (define-public piper
  11787. (package
  11788. (name "piper")
  11789. (version "0.6")
  11790. (source
  11791. (origin
  11792. (method git-fetch)
  11793. (uri (git-reference
  11794. (url "https://github.com/libratbag/piper")
  11795. (commit version)))
  11796. (sha256
  11797. (base32 "02x4d4n0078slj2pl0rvgayrrxvna6y6vj8fxfamvazsh5xyfzwk"))
  11798. (file-name (git-file-name name version))))
  11799. (build-system meson-build-system)
  11800. (native-inputs
  11801. (list gettext-minimal
  11802. `(,glib "bin")
  11803. gobject-introspection
  11804. pkg-config
  11805. python-flake8))
  11806. (inputs
  11807. (list adwaita-icon-theme
  11808. gtk+
  11809. `(,gtk+ "bin")
  11810. libratbag
  11811. python
  11812. python-evdev
  11813. python-lxml
  11814. python-pycairo
  11815. python-pygobject))
  11816. (arguments
  11817. `(#:imported-modules ((guix build python-build-system)
  11818. ,@%meson-build-system-modules)
  11819. #:modules (((guix build python-build-system) #:prefix python:)
  11820. (guix build meson-build-system)
  11821. (guix build utils))
  11822. #:tests? #f ;; The flake8 test fails trying to validate piper.in as code.
  11823. #:phases
  11824. (modify-phases %standard-phases
  11825. (add-after 'unpack 'dont-update-gtk-icon-cache
  11826. (lambda _
  11827. (substitute* "meson.build"
  11828. (("meson.add_install_script('meson_install.sh')") ""))))
  11829. ;; TODO: Switch to wrap-script when it is fixed.
  11830. (add-after 'install 'wrap-python
  11831. (assoc-ref python:%standard-phases 'wrap))
  11832. (add-after 'wrap-python 'wrap
  11833. (lambda* (#:key outputs #:allow-other-keys)
  11834. (wrap-program
  11835. (string-append (assoc-ref outputs "out" )"/bin/piper")
  11836. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
  11837. (home-page "https://github.com/libratbag/piper/")
  11838. (synopsis "Configure bindings and LEDs on gaming mice")
  11839. (description "Piper is a GTK+ application for configuring gaming mice with
  11840. onboard configuration for key bindings via libratbag. Piper requires
  11841. a @command{ratbagd} daemon running with root privileges. It can be run
  11842. manually as root, but is preferably configured as a DBus service that can
  11843. launch on demand. This can be configured by enabling the following service,
  11844. provided there is a DBus service present:
  11845. (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
  11846. (license license:gpl2)))
  11847. (define-public parlatype
  11848. (package
  11849. (name "parlatype")
  11850. (version "3.1")
  11851. (source
  11852. (origin
  11853. (method git-fetch)
  11854. (uri (git-reference
  11855. (url "https://github.com/gkarsay/parlatype")
  11856. (commit (string-append "v" version))))
  11857. (file-name (git-file-name name version))
  11858. (sha256
  11859. (base32 "0cqrzbkyksfsm57riirmjkwf2nf2dgl1xpps1wvqxpij475qcb9b"))))
  11860. (build-system meson-build-system)
  11861. (arguments
  11862. `(#:glib-or-gtk? #t
  11863. #:tests? #f ;require internet access
  11864. #:phases
  11865. (modify-phases %standard-phases
  11866. (add-after 'unpack 'skip-gtk-update-icon-cache
  11867. (lambda _
  11868. (substitute* "data/meson_post_install.py"
  11869. (("gtk-update-icon-cache") "true"))))
  11870. (add-after 'install 'wrap-parlatype
  11871. ;; Add gstreamer plugin provided in this package to system's
  11872. ;; plugins.
  11873. (lambda* (#:key outputs #:allow-other-keys)
  11874. (let* ((out (assoc-ref outputs "out"))
  11875. (gst-plugin-path (string-append
  11876. out "/lib/gstreamer-1.0/"
  11877. ":"
  11878. (getenv "GST_PLUGIN_SYSTEM_PATH"))))
  11879. (wrap-program (string-append out "/bin/parlatype")
  11880. `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path)))))))))
  11881. (native-inputs
  11882. (list appstream-glib
  11883. desktop-file-utils ;for desktop-file-validate
  11884. gettext-minimal
  11885. `(,glib "bin") ;for glib-compile-resources
  11886. pkg-config
  11887. yelp-tools))
  11888. (inputs
  11889. (list gst-plugins-base
  11890. gst-plugins-good
  11891. gstreamer
  11892. gtk+
  11893. iso-codes
  11894. pocketsphinx
  11895. pulseaudio
  11896. sphinxbase))
  11897. (home-page "https://www.parlatype.org")
  11898. (synopsis "GNOME audio player for transcription")
  11899. (description "Parlatype is an audio player for the GNOME desktop
  11900. environment. Its main purpose is the manual transcription of spoken
  11901. audio files.")
  11902. (license license:gpl3+)))
  11903. (define-public jsonrpc-glib
  11904. (package
  11905. (name "jsonrpc-glib")
  11906. (version "3.34.0")
  11907. (source (origin
  11908. (method url-fetch)
  11909. (uri (string-append "mirror://gnome/sources/" name "/"
  11910. (version-major+minor version) "/"
  11911. name "-" version ".tar.xz"))
  11912. (sha256
  11913. (base32
  11914. "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
  11915. (build-system meson-build-system)
  11916. (inputs
  11917. (list json-glib glib))
  11918. (native-inputs
  11919. (list pkg-config
  11920. `(,glib "bin") ; for glib-genmarshal, etc.
  11921. gobject-introspection vala))
  11922. (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
  11923. (synopsis "JSON-RPC library for GLib")
  11924. (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
  11925. peers in either a synchronous or asynchronous fashion. It also allows
  11926. communicating using the GVariant serialization format instead of JSON when
  11927. both peers support it. You might want that when communicating on a single
  11928. host to avoid parser overhead and memory-allocator fragmentation.")
  11929. (license license:lgpl2.1+)))
  11930. (define-public feedbackd
  11931. (package
  11932. (name "feedbackd")
  11933. (version "0.0.0+git20200527")
  11934. (source (origin
  11935. (method git-fetch)
  11936. (uri (git-reference
  11937. (url "https://source.puri.sm/Librem5/feedbackd.git")
  11938. (commit (string-append "v" version))))
  11939. (file-name (git-file-name name version))
  11940. (sha256
  11941. (base32
  11942. "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
  11943. (build-system meson-build-system)
  11944. (native-inputs
  11945. (list `(,glib "bin") gobject-introspection pkg-config vala))
  11946. (inputs
  11947. (list dbus gsound json-glib libgudev))
  11948. (propagated-inputs
  11949. (list glib)) ; in Requires of libfeedback-0.0.pc
  11950. (synopsis "Haptic/visual/audio feedback via DBus")
  11951. (description "Feedbackd provides a DBus daemon to act on events to provide
  11952. haptic, visual and audio feedback. It offers the libfeedbackd library and
  11953. GObject introspection bindings.")
  11954. (home-page "https://source.puri.sm/Librem5/feedbackd")
  11955. (license (list license:lgpl2.1+ ; libfeedbackd
  11956. license:lgpl3+)))) ; the rest
  11957. (define-public sysprof
  11958. (package
  11959. (name "sysprof")
  11960. (version "3.42.1")
  11961. (source
  11962. (origin
  11963. (method url-fetch)
  11964. (uri (string-append "mirror://gnome/sources/sysprof/"
  11965. (version-major+minor version) "/"
  11966. "sysprof-" version ".tar.xz"))
  11967. (sha256
  11968. (base32 "0090986ar3lz9m9fy7l5y9ibzzmgsx54cm6gp8ggsxgf0habi5hp"))))
  11969. (build-system meson-build-system)
  11970. (arguments
  11971. `(#:configure-flags
  11972. (list (string-append "-Dsystemdunitdir="
  11973. %output
  11974. "/share/systemd"))
  11975. #:tests? #f ; 3/4 test-model-filter barfs some dbus nonsense
  11976. #:phases
  11977. (modify-phases %standard-phases
  11978. (add-after 'unpack 'patch-install-script
  11979. (lambda _
  11980. (substitute* "build-aux/meson/post_install.sh"
  11981. (("gtk-update-icon-cache") "true")
  11982. (("update-desktop-database") "true"))
  11983. #t)))))
  11984. (propagated-inputs
  11985. (list polkit))
  11986. (inputs
  11987. (list glib gtk+ json-glib libdazzle polkit))
  11988. (native-inputs
  11989. `(("gettext" ,gettext-minimal)
  11990. ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
  11991. ("itstool" ,itstool)
  11992. ("pkg-config" ,pkg-config)
  11993. ("xmllint" ,libxml2)))
  11994. ;; This home page is so woefully out of date as to be essentially useless.
  11995. ;; (home-page "http://www.sysprof.com")
  11996. (home-page "https://wiki.gnome.org/Apps/Sysprof")
  11997. (synopsis "System-wide performance profiler for GNU/Linux")
  11998. (description
  11999. "Sysprof performs detailed, accurate, and fast CPU profiling of an entire
  12000. GNU/Linux system including the kernel and all user-space applications. This
  12001. helps find the function(s) in which a program spends most of its time.
  12002. It uses the kernel's built-in @code{ptrace} feature and handles shared
  12003. libraries. Applications do not need to be recompiled--or even restarted.")
  12004. (license license:gpl3+)))
  12005. (define-public gnome-builder
  12006. (package
  12007. (name "gnome-builder")
  12008. (version "41.2")
  12009. (source (origin
  12010. (method url-fetch)
  12011. (uri (string-append "mirror://gnome/sources/" name "/"
  12012. (version-major version) "/"
  12013. name "-" version ".tar.xz"))
  12014. (sha256
  12015. (base32
  12016. "04p031i999dccbnlbysmr6f93x7dji7b559j6yhdsqbqgxb7ncan"))
  12017. (patches
  12018. (search-patches "gnome-builder-update-libportal.patch"))))
  12019. (build-system meson-build-system)
  12020. (arguments
  12021. (list
  12022. #:glib-or-gtk? #t ;To wrap binaries and compile schemas
  12023. #:configure-flags
  12024. #~(list "-Dnetwork_tests=false"
  12025. ;; TODO: Enable all plugins...
  12026. ;; Flatpak plugin wants libsoup 2
  12027. "-Dplugin_flatpak=false"
  12028. ;; ... except this one.
  12029. "-Dplugin_update_manager=false")
  12030. #:phases
  12031. #~(modify-phases %standard-phases
  12032. (add-after 'unpack 'patch-meson
  12033. (lambda* (#:key inputs #:allow-other-keys)
  12034. (substitute* "build-aux/meson/post_install.py"
  12035. (("gtk-update-icon-cache") "true")
  12036. (("update-desktop-database") "true"))
  12037. (substitute* "src/libide/meson.build"
  12038. (("/usr/lib") (string-append (assoc-ref inputs
  12039. "python-pygobject")
  12040. "/lib")))))
  12041. (add-after 'configure 'fix-ninja
  12042. (lambda _
  12043. ;; #43296: meson(?) incorrectly assumes we want to link
  12044. ;; this PIE against a static libselinux.
  12045. (substitute* "build.ninja"
  12046. (("libselinux\\.a") "libselinux.so"))))
  12047. (add-before 'check 'pre-check
  12048. (lambda _
  12049. (system "Xvfb :1 &")
  12050. (setenv "DISPLAY" ":1"))))))
  12051. (inputs (list cmark
  12052. clang
  12053. devhelp-with-libsoup2
  12054. glade3
  12055. gspell
  12056. gtk+
  12057. json-glib
  12058. jsonrpc-glib
  12059. libdazzle
  12060. libgit2-glib
  12061. libpeas
  12062. libportal
  12063. libsoup-minimal-2
  12064. llvm
  12065. python
  12066. python-pygobject
  12067. sysprof
  12068. template-glib
  12069. vte
  12070. webkitgtk-with-libsoup2))
  12071. (propagated-inputs (list gtksourceview)) ; needed for settings
  12072. (native-inputs (list desktop-file-utils ; for desktop-file-validate
  12073. `(,glib "bin")
  12074. gettext-minimal
  12075. pkg-config
  12076. python ; for meson scripts
  12077. vala
  12078. xorg-server-for-tests))
  12079. (home-page "https://wiki.gnome.org/Apps/Builder")
  12080. (synopsis "Toolsmith for GNOME-based applications")
  12081. (description
  12082. "Builder aims to be an integrated development environment (IDE) for
  12083. writing GNOME-based software. It features fuzzy search, auto-completion,
  12084. a mini code map, documentation browsing, Git integration, an integrated
  12085. profiler via Sysprof, debugging support, and more.")
  12086. (license license:gpl3+)))
  12087. (define-public komikku
  12088. (package
  12089. (name "komikku")
  12090. (version "0.37.0")
  12091. (source
  12092. (origin
  12093. (method git-fetch)
  12094. (uri (git-reference
  12095. (url "https://gitlab.com/valos/Komikku/")
  12096. (commit (string-append "v" version))))
  12097. (file-name (git-file-name name version))
  12098. (sha256
  12099. (base32
  12100. "1ab17xjpfy9ks6dzgcnh2p5n9hl82mi6f8zbaz7s36115dmp4fbf"))))
  12101. (build-system meson-build-system)
  12102. (arguments
  12103. `(#:glib-or-gtk? #t
  12104. #:phases
  12105. (modify-phases %standard-phases
  12106. (add-after 'unpack 'patch-sources
  12107. (lambda _
  12108. (substitute* "komikku/utils.py"
  12109. (("from komikku\\.servers import get_servers_list")
  12110. ;; code following that line should migrate old databases
  12111. ;; but the line itself results in an import error
  12112. "return data_dir_path"))))
  12113. (add-after 'unpack 'skip-gtk-update-icon-cache
  12114. (lambda _
  12115. (substitute* "meson_post_install.py"
  12116. (("gtk-update-icon-cache") (which "true")))
  12117. #t))
  12118. (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
  12119. (lambda* (#:key outputs #:allow-other-keys)
  12120. (let ((prog (string-append (assoc-ref outputs "out")
  12121. "/bin/komikku")))
  12122. (wrap-program prog
  12123. `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
  12124. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
  12125. #t))))))
  12126. (inputs
  12127. (list gtk+
  12128. libhandy
  12129. libnotify
  12130. libsecret
  12131. python
  12132. python-beautifulsoup4
  12133. python-brotli
  12134. python-cloudscraper
  12135. python-dateparser
  12136. python-keyring
  12137. python-lxml
  12138. python-magic
  12139. python-natsort
  12140. python-pillow
  12141. python-pure-protobuf
  12142. python-pycairo
  12143. python-pygobject
  12144. python-requests
  12145. python-unidecode
  12146. webkitgtk-with-libsoup2))
  12147. (native-inputs
  12148. (list desktop-file-utils
  12149. gettext-minimal
  12150. `(,glib "bin")
  12151. gobject-introspection
  12152. pkg-config))
  12153. (home-page "https://gitlab.com/valos/Komikku")
  12154. (synopsis "Manga reader for GNOME")
  12155. (description "Komikku is an online/offline manga reader for GNOME,
  12156. developed with the aim of being used with the Librem 5 phone.")
  12157. (license license:gpl3+)))
  12158. (define-public libgda
  12159. (package
  12160. (name "libgda")
  12161. (version "5.2.10")
  12162. (source
  12163. (origin
  12164. (method git-fetch)
  12165. (uri (git-reference
  12166. (url "https://gitlab.gnome.org/GNOME/libgda.git/")
  12167. (commit (string-append "LIBGDA_" (string-replace-substring
  12168. version "." "_")))))
  12169. (file-name (git-file-name name version))
  12170. (sha256
  12171. (base32 "18rg773gq9v3cdywpmrp12c5xyp97ir9yqjinccpi22sksb1kl8a"))
  12172. (modules '((guix build utils)))
  12173. (snippet
  12174. ;; Remove the bundled sqlite, but keep its header because code relies
  12175. ;; on this header variant.
  12176. '(delete-file "libgda/sqlite/sqlite-src/sqlite3.c"))))
  12177. (build-system gnu-build-system)
  12178. (arguments
  12179. `(#:configure-flags '("--enable-system-sqlite" "--enable-vala")
  12180. ;; There's a race between check_cnc_lock and check_threaded_cnc
  12181. ;; in tests/multi-threading.
  12182. #:parallel-tests? #f
  12183. #:phases
  12184. (modify-phases %standard-phases
  12185. (add-after 'unpack 'fix-glade-install
  12186. (lambda _
  12187. (substitute* "configure.ac"
  12188. (("`\\$PKG_CONFIG --variable=catalogdir gladeui-2\\.0`")
  12189. "${datadir}/glade/catalogs")
  12190. (("`\\$PKG_CONFIG --variable=pixmapdir gladeui-2\\.0`")
  12191. "${datadir}/glade/pixmaps"))
  12192. #t))
  12193. (add-before 'check 'pre-check
  12194. (lambda* (#:key inputs #:allow-other-keys)
  12195. ;; Tests require a running X server.
  12196. (system "Xvfb :1 &")
  12197. (setenv "DISPLAY" ":1")
  12198. #t))
  12199. (add-after 'install 'symlink-glade-module
  12200. (lambda* (#:key outputs #:allow-other-keys)
  12201. (let* ((shlib "libgda-ui-5.0.so")
  12202. (out (assoc-ref outputs "out"))
  12203. (out/lib (string-append out "/lib"))
  12204. (moduledir (string-append out/lib "/glade/modules")))
  12205. (mkdir-p moduledir)
  12206. (symlink (string-append out/lib "/" shlib)
  12207. (string-append moduledir "/" shlib))
  12208. #t))))))
  12209. (propagated-inputs
  12210. (list libxml2)) ; required by libgda-5.0.pc
  12211. (inputs
  12212. (list glib
  12213. glade3
  12214. gtk+
  12215. libsecret
  12216. libxslt
  12217. openssl
  12218. sqlite
  12219. vala))
  12220. (native-inputs
  12221. `(("autoconf" ,autoconf)
  12222. ("autoconf-archive" ,autoconf-archive)
  12223. ("automake" ,automake)
  12224. ("glib:bin" ,glib "bin")
  12225. ("gnome-common" ,gnome-common)
  12226. ("gobject-introspection" ,gobject-introspection)
  12227. ("gtk-doc" ,gtk-doc/stable)
  12228. ("intltool" ,intltool)
  12229. ("libtool" ,libtool)
  12230. ("pkg-config" ,pkg-config)
  12231. ("vala" ,vala)
  12232. ("which" ,which)
  12233. ("xorg-server" ,xorg-server-for-tests)
  12234. ("yelp-tools" ,yelp-tools)))
  12235. (home-page "https://gitlab.gnome.org/GNOME/libgda")
  12236. (synopsis "Uniform data access")
  12237. (description
  12238. "GNU Data Access (GDA) is an attempt to provide uniform access to
  12239. different kinds of data sources (databases, information servers, mail spools,
  12240. etc). It is a complete architecture that provides all you need to access
  12241. your data.")
  12242. (license license:lgpl2.1+)))
  12243. (define-public gtranslator
  12244. (package
  12245. (name "gtranslator")
  12246. (version "40.0")
  12247. (source (origin
  12248. (method url-fetch)
  12249. (uri (string-append "mirror://gnome/sources/" name "/"
  12250. (version-major version) "/"
  12251. name "-" version ".tar.xz"))
  12252. (sha256
  12253. (base32
  12254. "0d48nc11z0m91scy21ah56ysxns82zvswx8lglvlkig1vqvblgpc"))))
  12255. (build-system meson-build-system)
  12256. (inputs
  12257. `(("json-glib" ,json-glib)
  12258. ("jsonrpc-glib" ,jsonrpc-glib)
  12259. ("gettext" ,gettext-minimal)
  12260. ("glib" ,glib)
  12261. ("gtk+" ,gtk+)
  12262. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  12263. ("gspell" ,gspell)
  12264. ("libdazzle" ,libdazzle)
  12265. ("libgda" ,libgda)
  12266. ("libhandy" ,libhandy)
  12267. ("libsoup" ,libsoup-minimal-2)))
  12268. (native-inputs
  12269. `(("glib:bin" ,glib "bin")
  12270. ("itstool" ,itstool)
  12271. ("pkg-config" ,pkg-config)))
  12272. (propagated-inputs
  12273. (list gtksourceview)) ; required for source view
  12274. (arguments
  12275. `(#:build-type "release"
  12276. #:glib-or-gtk? #t
  12277. #:phases
  12278. (modify-phases %standard-phases
  12279. (add-after 'unpack 'skip-gtk-update-icon-cache
  12280. (lambda _
  12281. (substitute* "build-aux/meson/meson_post_install.py"
  12282. (("gtk-update-icon-cache") (which "true")))
  12283. #t)))))
  12284. (home-page "https://wiki.gnome.org/Apps/Gtranslator")
  12285. (synopsis "Translation making program")
  12286. (description
  12287. "gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor
  12288. for the GNOME 3.x platform with many features. It aims to be a very complete
  12289. editing environment for translation issues within the GNU gettext/GNOME desktop
  12290. world.")
  12291. (license license:gpl3+)))
  12292. (define-public ocrfeeder
  12293. (package
  12294. (name "ocrfeeder")
  12295. (version "0.8.3")
  12296. (source (origin
  12297. (method url-fetch)
  12298. (uri (string-append "mirror://gnome/sources/ocrfeeder/"
  12299. (version-major+minor version) "/"
  12300. "ocrfeeder-" version ".tar.xz"))
  12301. (sha256
  12302. (base32
  12303. "12f5gnq92ffnd5zaj04df7jrnsdz1zn4zcgpbf5p9qnd21i2y529"))))
  12304. (build-system gnu-build-system)
  12305. (arguments
  12306. `(#:phases
  12307. (modify-phases %standard-phases
  12308. (add-after
  12309. 'install 'wrap-program
  12310. (lambda* (#:key outputs #:allow-other-keys)
  12311. (let ((prog (string-append (assoc-ref outputs "out")
  12312. "/bin/" "ocrfeeder"))
  12313. (pylib (string-append (assoc-ref outputs "out")
  12314. "/lib/python"
  12315. ,(version-major+minor
  12316. (package-version python))
  12317. "/site-packages")))
  12318. (wrap-program prog
  12319. `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
  12320. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
  12321. #t))))))
  12322. (native-inputs
  12323. `(("glib:bin" ,glib "bin") ; for glib-compile-resources
  12324. ("gobject-introspection" ,gobject-introspection)
  12325. ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
  12326. ("intltool" ,intltool)
  12327. ("itstool" ,itstool)
  12328. ("pkg-config" ,pkg-config)
  12329. ("xmllint" ,libxml2)))
  12330. (inputs
  12331. `(("enchant" ,enchant)
  12332. ("glib" ,glib)
  12333. ("goocanvas" ,goocanvas)
  12334. ("gtk" ,gtk+)
  12335. ("gtkspell3" ,gtkspell3)
  12336. ("libjpeg" ,libjpeg-turbo)
  12337. ("libtiff" ,libtiff)
  12338. ("libraw" ,libraw)
  12339. ("ocrad" ,ocrad)
  12340. ("python" ,python-wrapper)
  12341. ("python-pygobject" ,python-pygobject)
  12342. ("python-odfpy" ,python-odfpy)
  12343. ("python-pillow" ,python-pillow)
  12344. ("python-pyenchant" ,python-pyenchant)
  12345. ("python-reportlab" ,python-reportlab)
  12346. ("python-sane" ,python-sane)
  12347. ("sane-backends" ,sane-backends)
  12348. ("tesseract-ocr" ,tesseract-ocr)))
  12349. (home-page "https://wiki.gnome.org/Apps/OCRFeeder")
  12350. (synopsis "Complete OCR Suite")
  12351. (description "OCRFeeder is a complete Optical Character Recognition and
  12352. Document Analysis and Recognition program.")
  12353. (license license:gpl3+)))
  12354. (define-public libadwaita
  12355. (let ((commit "8d66b987a19979d9d7b85dacc6bad5ce0c8743fe")
  12356. (revision "1"))
  12357. (package
  12358. (name "libadwaita")
  12359. (version (git-version "0.0.1" revision commit))
  12360. (source (origin
  12361. (method git-fetch)
  12362. (uri (git-reference
  12363. (url "https://gitlab.gnome.org/GNOME/libadwaita.git")
  12364. (commit commit)))
  12365. (file-name (git-file-name name version))
  12366. (sha256
  12367. (base32
  12368. "0i3wav6jsyi4w4i2r1rad769m5y5s9djj4zqb7dfyh0bad24ba3q"))))
  12369. (build-system meson-build-system)
  12370. (arguments
  12371. `(#:phases
  12372. (modify-phases %standard-phases
  12373. (add-before 'check 'pre-check
  12374. (lambda* (#:key inputs #:allow-other-keys)
  12375. ;; Tests require a running X server.
  12376. (system "Xvfb :1 &")
  12377. (setenv "DISPLAY" ":1"))))))
  12378. (native-inputs
  12379. `(("sassc" ,sassc)
  12380. ("glib:bin" ,glib "bin")
  12381. ("gtk-doc" ,gtk-doc/stable)
  12382. ("pkg-config" ,pkg-config)
  12383. ("vala" ,vala)
  12384. ("xvfb" ,xorg-server-for-tests)))
  12385. (inputs
  12386. (list gtk gobject-introspection libportal))
  12387. (home-page "https://gnome.pages.gitlab.gnome.org/libadwaita/")
  12388. (synopsis "Building blocks for GNOME applications")
  12389. (description
  12390. "@code{libadwaita} offers widgets and objects to build GNOME
  12391. applications scaling from desktop workstations to mobile phones. It is the
  12392. successor of @code{libhandy} for GTK4.")
  12393. (license license:lgpl2.1+))))
  12394. (define-public gnome-power-manager
  12395. (package
  12396. (name "gnome-power-manager")
  12397. (version "3.32.0")
  12398. (source (origin
  12399. (method url-fetch)
  12400. (uri (string-append "mirror://gnome/sources/" name "/"
  12401. (version-major+minor version) "/"
  12402. name "-" version ".tar.xz"))
  12403. (sha256
  12404. (base32
  12405. "0drfn3wcc8l4n07qwv6p0rw2dwcd00hwzda282q62l6sasks2b2g"))))
  12406. (build-system meson-build-system)
  12407. (inputs
  12408. (list upower gtk+ gsettings-desktop-schemas adwaita-icon-theme))
  12409. (native-inputs
  12410. (list desktop-file-utils
  12411. `(,glib "bin") gettext-minimal pkg-config))
  12412. (home-page "https://gitlab.gnome.org/GNOME/gnome-power-manager")
  12413. (synopsis "Power management daemon for the GNOME desktop")
  12414. (description "@code{gnome-power-manager} is a tool for viewing present and
  12415. historical battery usage and related statistics.")
  12416. (license license:gpl2)))
  12417. (define-public xffm+
  12418. (package
  12419. (name "xffm+")
  12420. (version "0.94")
  12421. (source (origin
  12422. (method url-fetch)
  12423. (uri (string-append "mirror://sourceforge/xffm/xffm+/xffm+-"
  12424. version ".tar.bz2"))
  12425. (sha256
  12426. (base32
  12427. "0gwbgmjzlgv9ba95cgaigjnc9njzi7qznhvzp0qrnnlq3nbcm1k1"))))
  12428. (build-system cmake-build-system)
  12429. (arguments
  12430. `(#:tests? #f ; No tests exist
  12431. #:configure-flags
  12432. (let ((shared-mime-info (assoc-ref %build-inputs "shared-mime-info"))
  12433. (out (assoc-ref %outputs "out")))
  12434. (list (string-append "-DFREEDESKTOP_GLOBS=" shared-mime-info
  12435. "/share/mime/globs")
  12436. (string-append "-DFREEDESKTOP_ALIAS=" shared-mime-info
  12437. "/share/mime/aliases")
  12438. (string-append "-DFREEDESKTOP_ICONS=" shared-mime-info
  12439. "/share/mime/generic-icons")
  12440. (string-append "-DCMAKE_INSTALL_PREFIX=" out)
  12441. (string-append "-DPREFIX_BIN=" out "/bin")))
  12442. #:phases
  12443. (modify-phases %standard-phases
  12444. (add-after 'unpack 'patch-installation-destination
  12445. (lambda* (#:key outputs #:allow-other-keys)
  12446. (substitute* "CMakeLists.txt"
  12447. ;; This is done so we can override.
  12448. (("^set.CMAKE_INSTALL_PREFIX") "set(QCMAKE_INSTALL_PREFIX")
  12449. ;; This is done so we can override.
  12450. (("`set.PREFIX_BIN") "set(QPREFIX_BIN")))))))
  12451. (native-inputs
  12452. (list cmake pkg-config intltool gnu-gettext))
  12453. (inputs
  12454. (list glib gtk+ libx11 libsm libxv libxaw libxcb libxkbfile
  12455. shared-mime-info))
  12456. (synopsis "File manager")
  12457. (description "This package provides a graphical file manager.")
  12458. (home-page "http://xffm.org/")
  12459. (license license:gpl3+)
  12460. (properties '((upstream-name . "xffm")))))