gnome.scm 480 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543
  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
  3. ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 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 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 Marius Bakke <mbakke@fastmail.com>
  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 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 Leo Prikler <leo.prikler@student.tugraz.at>
  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 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 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 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 Guillaume Le Vaillant <glv@posteo.net>
  64. ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
  65. ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
  66. ;;; Copyright © 2021 Josselin Poiret <josselin.poiret@protonmail.ch>
  67. ;;;
  68. ;;; This file is part of GNU Guix.
  69. ;;;
  70. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  71. ;;; under the terms of the GNU General Public License as published by
  72. ;;; the Free Software Foundation; either version 3 of the License, or (at
  73. ;;; your option) any later version.
  74. ;;;
  75. ;;; GNU Guix is distributed in the hope that it will be useful, but
  76. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  77. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  78. ;;; GNU General Public License for more details.
  79. ;;;
  80. ;;; You should have received a copy of the GNU General Public License
  81. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  82. (define-module (gnu packages gnome)
  83. #:use-module (gnu packages)
  84. #:use-module (gnu packages admin)
  85. #:use-module (gnu packages aidc)
  86. #:use-module (gnu packages aspell)
  87. #:use-module (gnu packages autotools)
  88. #:use-module (gnu packages avahi)
  89. #:use-module (gnu packages backup)
  90. #:use-module (gnu packages base)
  91. #:use-module (gnu packages bash)
  92. #:use-module (gnu packages bison)
  93. #:use-module (gnu packages boost)
  94. #:use-module (gnu packages build-tools)
  95. #:use-module (gnu packages calendar)
  96. #:use-module (gnu packages cdrom)
  97. #:use-module (gnu packages check)
  98. #:use-module (gnu packages cmake)
  99. #:use-module (gnu packages compression)
  100. #:use-module (gnu packages crates-io)
  101. #:use-module (gnu packages crates-graphics)
  102. #:use-module (gnu packages crates-gtk)
  103. #:use-module (gnu packages cups)
  104. #:use-module (gnu packages curl)
  105. #:use-module (gnu packages cyrus-sasl)
  106. #:use-module (gnu packages databases)
  107. #:use-module (gnu packages dbm)
  108. #:use-module (gnu packages djvu)
  109. #:use-module (gnu packages dns)
  110. #:use-module (gnu packages docbook)
  111. #:use-module (gnu packages documentation)
  112. #:use-module (gnu packages enchant)
  113. #:use-module (gnu packages flex)
  114. #:use-module (gnu packages fonts)
  115. #:use-module (gnu packages file-systems)
  116. #:use-module (gnu packages fontutils)
  117. #:use-module (gnu packages freedesktop)
  118. #:use-module (gnu packages game-development)
  119. #:use-module (gnu packages gcc)
  120. #:use-module (gnu packages gettext)
  121. #:use-module (gnu packages ghostscript)
  122. #:use-module (gnu packages gimp)
  123. #:use-module (gnu packages gl)
  124. #:use-module (gnu packages glib)
  125. #:use-module (gnu packages gnupg)
  126. #:use-module (gnu packages gnuzilla)
  127. #:use-module (gnu packages geo)
  128. #:use-module (gnu packages gperf)
  129. #:use-module (gnu packages graphviz)
  130. #:use-module (gnu packages gstreamer)
  131. #:use-module (gnu packages gtk)
  132. #:use-module (gnu packages guile)
  133. #:use-module (gnu packages haskell-xyz)
  134. #:use-module (gnu packages ibus)
  135. #:use-module (gnu packages icu4c)
  136. #:use-module (gnu packages image)
  137. #:use-module (gnu packages imagemagick)
  138. #:use-module (gnu packages inkscape)
  139. #:use-module (gnu packages iso-codes)
  140. #:use-module (gnu packages kerberos)
  141. #:use-module (gnu packages libcanberra)
  142. #:use-module (gnu packages libffi)
  143. #:use-module (gnu packages libunistring)
  144. #:use-module (gnu packages libunwind)
  145. #:use-module (gnu packages libusb)
  146. #:use-module (gnu packages linux)
  147. #:use-module (gnu packages lirc)
  148. #:use-module (gnu packages lua)
  149. #:use-module (gnu packages mail)
  150. #:use-module (gnu packages man)
  151. #:use-module (gnu packages mp3)
  152. #:use-module (gnu packages multiprecision)
  153. #:use-module (gnu packages music)
  154. #:use-module (gnu packages ncurses)
  155. #:use-module (gnu packages nettle)
  156. #:use-module (gnu packages networking)
  157. #:use-module (gnu packages ninja)
  158. #:use-module (gnu packages node)
  159. #:use-module (gnu packages nss)
  160. #:use-module (gnu packages ocr)
  161. #:use-module (gnu packages openldap)
  162. #:use-module (gnu packages package-management)
  163. #:use-module (gnu packages password-utils)
  164. #:use-module (gnu packages pcre)
  165. #:use-module (gnu packages pdf)
  166. #:use-module (gnu packages perl)
  167. #:use-module (gnu packages photo)
  168. #:use-module (gnu packages php)
  169. #:use-module (gnu packages pkg-config)
  170. #:use-module (gnu packages polkit)
  171. #:use-module (gnu packages popt)
  172. #:use-module (gnu packages pretty-print)
  173. #:use-module (gnu packages protobuf)
  174. #:use-module (gnu packages pulseaudio)
  175. #:use-module (gnu packages python)
  176. #:use-module (gnu packages python-compression)
  177. #:use-module (gnu packages python-crypto)
  178. #:use-module (gnu packages python-web)
  179. #:use-module (gnu packages python-xyz)
  180. #:use-module (gnu packages rdesktop)
  181. #:use-module (gnu packages rdf)
  182. #:use-module (gnu packages readline)
  183. #:use-module (gnu packages ruby)
  184. #:use-module (gnu packages rust)
  185. #:use-module (gnu packages samba)
  186. #:use-module (gnu packages scanner)
  187. #:use-module (gnu packages sdl)
  188. #:use-module (gnu packages search)
  189. #:use-module (gnu packages selinux)
  190. #:use-module (gnu packages slang)
  191. #:use-module (gnu packages speech)
  192. #:use-module (gnu packages spice)
  193. #:use-module (gnu packages sqlite)
  194. #:use-module (gnu packages ssh)
  195. #:use-module (gnu packages swig)
  196. #:use-module (gnu packages tex)
  197. #:use-module (gnu packages time)
  198. #:use-module (gnu packages tls)
  199. #:use-module (gnu packages valgrind)
  200. #:use-module (gnu packages version-control)
  201. #:use-module (gnu packages video)
  202. #:use-module (gnu packages virtualization)
  203. #:use-module (gnu packages vpn)
  204. #:use-module (gnu packages web)
  205. #:use-module (gnu packages webkit)
  206. #:use-module (gnu packages xdisorg)
  207. #:use-module (gnu packages xiph)
  208. #:use-module (gnu packages xml)
  209. #:use-module (gnu packages xorg)
  210. #:use-module (gnu artwork)
  211. #:use-module (guix build-system cargo)
  212. #:use-module (guix build-system cmake)
  213. #:use-module (guix build-system glib-or-gtk)
  214. #:use-module (guix build-system gnu)
  215. #:use-module (guix build-system meson)
  216. #:use-module (guix build-system python)
  217. #:use-module (guix build-system trivial)
  218. #:use-module (guix download)
  219. #:use-module (guix git-download)
  220. #:use-module ((guix licenses) #:prefix license:)
  221. #:use-module (guix packages)
  222. #:use-module (guix utils)
  223. #:use-module (guix gexp)
  224. #:use-module (ice-9 match)
  225. #:use-module (srfi srfi-1))
  226. (define-public gupnp-igd
  227. (package
  228. (name "gupnp-igd")
  229. (version "1.2.0")
  230. (source
  231. (origin
  232. (method url-fetch)
  233. (uri
  234. (string-append "mirror://gnome/sources/" name "/"
  235. (version-major+minor version) "/"
  236. name "-" version ".tar.xz"))
  237. (sha256
  238. (base32 "1q9bw12ibih3yxpha3gm1dabyqg9gx6yxacbh4kxsgm1i84j0lab"))))
  239. (build-system meson-build-system)
  240. (outputs '("out" "doc"))
  241. (arguments
  242. `(#:glib-or-gtk? #t ; To wrap binaries and compile schemas
  243. #:configure-flags (list "-Dgtk_doc=true")
  244. #:phases
  245. (modify-phases %standard-phases
  246. (add-after 'unpack 'patch-docbook-xml
  247. (lambda* (#:key inputs #:allow-other-keys)
  248. (with-directory-excursion "doc"
  249. (substitute* "gupnp-igd-docs.xml"
  250. (("http://www.oasis-open.org/docbook/xml/4.1.2/")
  251. (string-append (assoc-ref inputs "docbook-xml-4.1.2")
  252. "/xml/dtd/docbook/"))))
  253. #t))
  254. (add-after 'install 'move-doc
  255. (lambda* (#:key outputs #:allow-other-keys)
  256. (let* ((out (assoc-ref outputs "out"))
  257. (doc (assoc-ref outputs "doc")))
  258. (mkdir-p (string-append doc "/share"))
  259. (rename-file
  260. (string-append out "/share/gtk-doc")
  261. (string-append doc "/share/gtk-doc"))
  262. #t))))))
  263. (native-inputs
  264. `(("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
  265. ("docbook-xsl" ,docbook-xsl)
  266. ("glib:bin" ,glib "bin")
  267. ("gobject-introspection" ,gobject-introspection)
  268. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  269. ("gtk-doc" ,gtk-doc/stable)
  270. ("pkg-config" ,pkg-config)))
  271. (propagated-inputs
  272. `(("glib" ,glib)
  273. ("glib-networking" ,glib-networking)
  274. ("gssdp" ,gssdp)
  275. ("gupnp" ,gupnp)
  276. ("libsoup" ,libsoup)))
  277. (synopsis "UPnP IGD for GNOME")
  278. (description "GUPnP-IGD is a library to handle UPnP IGD port mapping.")
  279. (home-page "https://gitlab.gnome.org/GNOME/gupnp-igd")
  280. (license license:lgpl2.1+)))
  281. (define-public brasero
  282. (package
  283. (name "brasero")
  284. (version "3.12.2")
  285. (source (origin
  286. (method url-fetch)
  287. (uri (string-append "mirror://gnome/sources/brasero/"
  288. (version-major+minor version) "/"
  289. "brasero-" version ".tar.xz"))
  290. (sha256
  291. (base32
  292. "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
  293. (build-system glib-or-gtk-build-system)
  294. (arguments
  295. `(#:configure-flags (list
  296. (string-append "--with-girdir="
  297. (assoc-ref %outputs "out")
  298. "/share/gir-1.0")
  299. (string-append "--with-typelibdir="
  300. (assoc-ref %outputs "out")
  301. "/lib/girepository-1.0"))
  302. #:phases
  303. (modify-phases %standard-phases
  304. (add-before 'configure 'embed-growisofs
  305. (lambda* (#:key inputs #:allow-other-keys)
  306. (substitute* "plugins/growisofs/burn-growisofs.c"
  307. (("\"growisofs") (string-append "\"" (which "growisofs"))))
  308. #t)))))
  309. (propagated-inputs
  310. `(("hicolor-icon-theme" ,hicolor-icon-theme)))
  311. (native-inputs
  312. `(("intltool" ,intltool)
  313. ("itstool" ,itstool)
  314. ("glib" ,glib "bin") ; glib-compile-schemas, etc.
  315. ("gobject-introspection" ,gobject-introspection)
  316. ("pkg-config" ,pkg-config)))
  317. (inputs
  318. `(("dvd+rw-tools" ,dvd+rw-tools)
  319. ("glib" ,glib)
  320. ("gnome-doc-utils" ,gnome-doc-utils)
  321. ("gstreamer" ,gstreamer)
  322. ("gst-plugins-base" ,gst-plugins-base)
  323. ("gtk+" ,gtk+)
  324. ("libcanberra" ,libcanberra)
  325. ("libice" ,libice)
  326. ("libnotify" ,libnotify)
  327. ("libsm" ,libsm)
  328. ("libxml2" ,libxml2)
  329. ("totem-pl-parser" ,totem-pl-parser)))
  330. (home-page "https://wiki.gnome.org/Apps/Brasero")
  331. (synopsis "CD/DVD burning tool for Gnome")
  332. (description "Brasero is an application to burn CD/DVD for the Gnome
  333. Desktop. It is designed to be as simple as possible and has some unique
  334. features to enable users to create their discs easily and quickly.")
  335. (license license:gpl2+)))
  336. (define-public libcloudproviders
  337. (package
  338. (name "libcloudproviders")
  339. (version "0.3.1")
  340. (source
  341. (origin
  342. (method url-fetch)
  343. (uri
  344. (string-append "mirror://gnome/sources/" name "/"
  345. (version-major+minor version) "/"
  346. name "-" version ".tar.xz"))
  347. (sha256
  348. (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
  349. (build-system meson-build-system)
  350. (outputs '("out" "doc"))
  351. (arguments
  352. `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
  353. #:configure-flags
  354. (list
  355. "-Denable-gtk-doc=true")
  356. #:phases
  357. (modify-phases %standard-phases
  358. (add-after 'install 'move-doc
  359. (lambda* (#:key outputs #:allow-other-keys)
  360. (let* ((out (assoc-ref outputs "out"))
  361. (doc (assoc-ref outputs "doc")))
  362. (mkdir-p (string-append doc "/share"))
  363. (rename-file
  364. (string-append out "/share/gtk-doc")
  365. (string-append doc "/share/gtk-doc"))
  366. #t))))))
  367. (native-inputs
  368. `(("glib:bin" ,glib "bin")
  369. ("gobject-introspection" ,gobject-introspection)
  370. ("gtk-doc" ,gtk-doc/stable)
  371. ("pkg-config" ,pkg-config)
  372. ("vala" ,vala)))
  373. (inputs
  374. `(("glib" ,glib)
  375. ("glib-networking" ,glib-networking)))
  376. (synopsis "Cloudproviders Integration API")
  377. (description "Libcloudproviders is a DBus API that allows cloud storage sync
  378. clients to expose their services. Clients such as file managers and desktop
  379. environments can then provide integrated access to the cloud providers
  380. services.")
  381. (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
  382. (license license:lgpl3+)))
  383. (define-public libgrss
  384. (package
  385. (name "libgrss")
  386. (version "0.7.0")
  387. (source
  388. (origin
  389. (method url-fetch)
  390. (uri
  391. (string-append "mirror://gnome/sources/" name "/"
  392. (version-major+minor version) "/"
  393. name "-" version ".tar.xz"))
  394. (sha256
  395. (base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))
  396. (patches
  397. (search-patches "libgrss-CVE-2016-2001.patch"))))
  398. (build-system glib-or-gtk-build-system)
  399. (outputs '("out" "doc"))
  400. (arguments
  401. `(#:configure-flags
  402. (list
  403. "--enable-gtk-doc"
  404. (string-append "--with-html-dir="
  405. (assoc-ref %outputs "doc")
  406. "/share/gtk-doc/html"))
  407. #:phases
  408. (modify-phases %standard-phases
  409. (add-after 'unpack 'patch-docbook-xml
  410. (lambda* (#:key inputs #:allow-other-keys)
  411. (with-directory-excursion "doc/reference"
  412. (substitute* "libgrss-docs.sgml"
  413. (("http://www.oasis-open.org/docbook/xml/4.1.2/")
  414. (string-append (assoc-ref inputs "docbook-xml")
  415. "/xml/dtd/docbook/"))))
  416. #t)))))
  417. (native-inputs
  418. `(("docbook-xml" ,docbook-xml-4.1.2)
  419. ("gobject-introspection" ,gobject-introspection)
  420. ("gtk-doc" ,gtk-doc/stable)
  421. ("pkg-config" ,pkg-config)))
  422. (propagated-inputs
  423. `(("glib" ,glib)
  424. ("libsoup" ,libsoup)
  425. ("libxml2" ,libxml2)))
  426. (synopsis "Glib library for feeds")
  427. (description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,
  428. and other formats.")
  429. (home-page "https://wiki.gnome.org/Projects/Libgrss")
  430. (license license:lgpl3+)))
  431. (define-public gnome-js-common
  432. (package
  433. (name "gnome-js-common")
  434. (version "0.1.2")
  435. (source
  436. (origin
  437. (method url-fetch)
  438. (uri
  439. (string-append "mirror://gnome/sources/" name "/"
  440. (version-major+minor version) "/"
  441. name "-" version ".tar.gz"))
  442. (sha256
  443. (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y"))))
  444. (build-system glib-or-gtk-build-system)
  445. (arguments
  446. `(#:configure-flags
  447. (list
  448. "--disable-static")))
  449. (native-inputs
  450. `(("gettext" ,gettext-minimal)
  451. ("intltool" ,intltool)
  452. ("pkg-config" ,pkg-config)))
  453. (synopsis "Common JS Modules")
  454. (description "GNOME-JS-Common provides common modules for GNOME JavaScript
  455. bindings.")
  456. (home-page "https://wiki.gnome.org/Projects/Seed")
  457. (license license:gpl3+)))
  458. (define-public seed
  459. (package
  460. (name "seed")
  461. (version "3.8.1")
  462. (source
  463. (origin
  464. (method url-fetch)
  465. (uri
  466. (string-append "mirror://gnome/sources/" name "/"
  467. (version-major+minor version) "/"
  468. name "-" version ".tar.xz"))
  469. (sha256
  470. (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0"))
  471. (patches
  472. (search-patches "seed-webkit.patch"))))
  473. (build-system glib-or-gtk-build-system)
  474. (outputs '("out" "doc"))
  475. (arguments
  476. `(#:configure-flags
  477. (list
  478. "--disable-static"
  479. "--enable-xorg-module"
  480. (string-append "--with-html-dir="
  481. (assoc-ref %outputs "doc")
  482. "/share/gtk-doc/html")
  483. "--with-webkit=4.0")
  484. #:phases
  485. (modify-phases %standard-phases
  486. ;; The seed-webkit.patch patches configure.ac.
  487. ;; So the source files need to be re-bootstrapped.
  488. (add-after 'unpack 'trigger-bootstrap
  489. (lambda _
  490. (for-each delete-file
  491. (list
  492. "configure"
  493. "Makefile.in"))
  494. #t))
  495. (add-after 'unpack 'patch-tests
  496. (lambda* (#:key outputs #:allow-other-keys)
  497. (substitute* (find-files "." "\\.js$")
  498. (("#!/usr/bin/env seed")
  499. (string-append "#!" (getcwd) "/src/seed")))
  500. #t))
  501. (add-before 'build 'patch-docbook-xml
  502. (lambda* (#:key inputs #:allow-other-keys)
  503. (with-directory-excursion "doc"
  504. (substitute* '("reference/seed-docs.sgml" "modules/book.xml")
  505. (("http://www.oasis-open.org/docbook/xml/4.1.2/")
  506. (string-append (assoc-ref inputs "docbook-xml")
  507. "/xml/dtd/docbook/"))))
  508. #t)))))
  509. (native-inputs
  510. `(("autoconf" ,autoconf)
  511. ("automake" ,automake)
  512. ("docbook-xml" ,docbook-xml-4.1.2)
  513. ("gettext" ,gettext-minimal)
  514. ("gobject-introspection" ,gobject-introspection)
  515. ("gtk-doc" ,gtk-doc/stable)
  516. ("intltool" ,intltool)
  517. ("libtool" ,libtool)
  518. ("pkg-config" ,pkg-config)))
  519. (inputs
  520. `(("cairo" ,cairo)
  521. ("dbus" ,dbus)
  522. ("dbus-glib" ,dbus-glib)
  523. ("gnome-js-common" ,gnome-js-common)
  524. ("gtk+" ,gtk+)
  525. ("gtk+-2" ,gtk+-2)
  526. ("libffi" ,libffi)
  527. ("libxml2" ,libxml2)
  528. ("mpfr" ,mpfr)
  529. ("readline" ,readline)
  530. ("sqlite" ,sqlite)
  531. ("xscrnsaver" ,libxscrnsaver)))
  532. (propagated-inputs
  533. `(("glib" ,glib)
  534. ("webkit" ,webkitgtk)))
  535. (synopsis "GObject JavaScriptCore bridge")
  536. (description "Seed is a library and interpreter, dynamically bridging
  537. (through GObjectIntrospection) the WebKit JavaScriptCore engine, with the
  538. GNOME platform. It serves as something which enables you to write standalone
  539. applications in JavaScript, or easily enable your application to be extensible
  540. in JavaScript.")
  541. (home-page "https://wiki.gnome.org/Projects/Seed")
  542. (license license:lgpl2.0+)))
  543. (define-public libdmapsharing
  544. (package
  545. (name "libdmapsharing")
  546. (version "3.9.10")
  547. (source
  548. (origin
  549. (method url-fetch)
  550. (uri
  551. (string-append "https://www.flyn.org/projects/"
  552. name "/" name "-" version ".tar.gz"))
  553. (sha256
  554. (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2"))))
  555. (build-system glib-or-gtk-build-system)
  556. (outputs '("out" "doc"))
  557. (arguments
  558. `(#:tests? #f ; Tests require networking.
  559. #:configure-flags
  560. (list
  561. "--disable-static"
  562. (string-append "--with-html-dir="
  563. (assoc-ref %outputs "doc")
  564. "/share/gtk-doc/html"))
  565. #:phases
  566. (modify-phases %standard-phases
  567. (add-after 'unpack 'patch-docbook-xml
  568. (lambda* (#:key inputs #:allow-other-keys)
  569. (with-directory-excursion "doc"
  570. (substitute* "libdmapsharing-4.0-docs.xml"
  571. (("http://www.oasis-open.org/docbook/xml/4.3/")
  572. (string-append (assoc-ref inputs "docbook-xml")
  573. "/xml/dtd/docbook/"))))
  574. #t)))))
  575. (native-inputs
  576. `(("check" ,check)
  577. ("docbook-xml" ,docbook-xml-4.3)
  578. ("gobject-introspection" ,gobject-introspection)
  579. ("pedansee" ,pedansee)
  580. ("pkg-config" ,pkg-config)
  581. ("vala" ,vala)))
  582. (inputs
  583. `(("avahi" ,avahi)
  584. ("gdk-pixbuf" ,gdk-pixbuf+svg)
  585. ("gee" ,libgee)
  586. ("gst-plugins-base" ,gst-plugins-base)
  587. ("gtk+" ,gtk+)))
  588. (propagated-inputs
  589. `(("glib" ,glib)
  590. ("glib-networking" ,glib-networking)
  591. ("gstreamer" ,gstreamer)
  592. ("libsoup" ,libsoup)))
  593. (synopsis "Media management library")
  594. (description "Libdmapsharing is a library which allows programs to access,
  595. share and control the playback of media content using DMAP (DAAP, DPAP & DACP).
  596. It is written in C using GObject and libsoup.")
  597. (home-page "https://launchpad.net/gtx")
  598. (license license:lgpl2.1+)))
  599. (define-public gtx
  600. (package
  601. (name "gtx")
  602. (version "0.2.2")
  603. (source
  604. (origin
  605. (method url-fetch)
  606. (uri
  607. (string-append "https://launchpad.net/gtx/trunk/"
  608. version "/+download/gtx-" version ".tar.gz"))
  609. (sha256
  610. (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
  611. (build-system glib-or-gtk-build-system)
  612. (outputs '("out" "doc"))
  613. (arguments
  614. `(#:configure-flags
  615. (list
  616. "--disable-static"
  617. "--enable-gtk-doc"
  618. (string-append "--with-html-dir="
  619. (assoc-ref %outputs "doc")
  620. "/share/gtk-doc/html"))))
  621. (native-inputs
  622. `(("gobject-introspection" ,gobject-introspection)
  623. ("gtk-doc" ,gtk-doc/stable)
  624. ("pkg-config" ,pkg-config)))
  625. (propagated-inputs
  626. `(("glib" ,glib)))
  627. (synopsis "GLib Testing Framework")
  628. (description "GTX is a small collection of convenience functions intended to
  629. enhance the GLib testing framework. With specific emphasis on easing the pain
  630. of writing test cases for asynchronous interactions.")
  631. (home-page "https://launchpad.net/gtx")
  632. (license license:lgpl2.1+)))
  633. (define-public dee
  634. (package
  635. (name "dee")
  636. (version "1.2.7")
  637. (source
  638. (origin
  639. (method url-fetch)
  640. (uri
  641. (string-append "https://launchpad.net/dee/1.0/"
  642. version "/+download/dee-" version ".tar.gz"))
  643. (sha256
  644. (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
  645. (patches
  646. (search-patches "dee-vapi.patch"))))
  647. (build-system glib-or-gtk-build-system)
  648. (outputs '("out" "doc"))
  649. (arguments
  650. `(#:configure-flags
  651. (list
  652. "--disable-maintainer-flags"
  653. (string-append "--with-pygi-overrides-dir="
  654. (assoc-ref %outputs "out")
  655. "/lib/python"
  656. ,(version-major+minor
  657. (package-version python))
  658. "/site-packages/gi/overrides")
  659. (string-append "--with-html-dir="
  660. (assoc-ref %outputs "doc")
  661. "/share/gtk-doc/html"))
  662. #:phases
  663. (modify-phases %standard-phases
  664. (add-after 'unpack 'patch-docbook-xml
  665. (lambda* (#:key inputs #:allow-other-keys)
  666. (with-directory-excursion "doc/reference/dee-1.0"
  667. (substitute* "dee-1.0-docs.sgml"
  668. (("http://www.oasis-open.org/docbook/xml/4.3/")
  669. (string-append (assoc-ref inputs "docbook-xml")
  670. "/xml/dtd/docbook/"))))
  671. #t))
  672. (add-after 'patch-docbook-xml 'disable-failing-tests
  673. (lambda _
  674. (substitute* "tests/test-icu.c"
  675. (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
  676. "")
  677. (("setup, test_ascii_folder, teardown\\);")
  678. ""))
  679. #t))
  680. (add-before 'check 'pre-check
  681. (lambda _
  682. ;; Tests require a running dbus-daemon.
  683. (system "dbus-daemon &")
  684. ;; For missing '/etc/machine-id'.
  685. (setenv "DBUS_FATAL_WARNINGS" "0")
  686. #t)))))
  687. (native-inputs
  688. `(("dbus" ,dbus)
  689. ("dbus-test-runner" ,dbus-test-runner)
  690. ("docbook-xml" ,docbook-xml-4.3)
  691. ("gobject-introspection" ,gobject-introspection)
  692. ("gtk-doc" ,gtk-doc/stable)
  693. ;; Would only be required by configure flag "--enable-extended-tests".
  694. ;("gtx" ,gtx)
  695. ("pkg-config" ,pkg-config)
  696. ("pygobject" ,python-pygobject)
  697. ("python" ,python-wrapper)
  698. ("vala" ,vala)))
  699. (inputs
  700. `(("icu" ,icu4c)))
  701. (propagated-inputs
  702. `(("glib" ,glib)))
  703. (synopsis "Model to synchronize multiple instances over DBus")
  704. (description "Dee is a library that uses DBus to provide objects allowing
  705. you to create Model-View-Controller type programs across DBus. It also consists
  706. of utility objects which extend DBus allowing for peer-to-peer discoverability
  707. of known objects without needing a central registrar.")
  708. (home-page "https://launchpad.net/dee")
  709. (license
  710. ;; Dual-licensed
  711. (list
  712. license:lgpl3+
  713. license:gpl3+))))
  714. (define-public zeitgeist
  715. (package
  716. (name "zeitgeist")
  717. (version "1.0.3")
  718. (source
  719. (origin
  720. (method git-fetch)
  721. (uri
  722. (git-reference
  723. (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git")
  724. (commit
  725. (string-append "v" version))))
  726. (file-name
  727. (git-file-name name version))
  728. (sha256
  729. (base32 "0y6fyzxl5np4yskcxibd0p03h619w9ir907nhf40h02y0pk1kgkp"))))
  730. (build-system glib-or-gtk-build-system)
  731. (arguments
  732. `(#:configure-flags
  733. (list
  734. "--enable-explain-queries"
  735. "--enable-fts"
  736. "--enable-docs")
  737. #:phases
  738. (modify-phases %standard-phases
  739. (add-after 'unpack 'patch-docbook-xml
  740. (lambda* (#:key inputs #:allow-other-keys)
  741. (with-directory-excursion "doc/libzeitgeist"
  742. (substitute* "zeitgeist-gtkdoc-index.sgml"
  743. (("http://www.oasis-open.org/docbook/xml/4.3/")
  744. (string-append (assoc-ref inputs "docbook-xml")
  745. "/xml/dtd/docbook/"))))
  746. #t))
  747. (add-after 'patch-docbook-xml 'disable-failing-tests
  748. (lambda _
  749. (substitute* "test/direct/Makefile.am"
  750. ((" log-test ")
  751. ""))
  752. (substitute* "test/c/Makefile.am"
  753. ((" test-log ")
  754. ""))
  755. #t))
  756. (add-before 'bootstrap 'remove-autogen-script
  757. (lambda _
  758. ;; To honor `autoreconf -vif` by build-system.
  759. (delete-file "autogen.sh")
  760. #t)))))
  761. (native-inputs
  762. `(("autoconf" ,autoconf)
  763. ("automake" ,automake)
  764. ("docbook-xml" ,docbook-xml-4.3)
  765. ("gettext" ,gettext-minimal)
  766. ("gobject-introspection" ,gobject-introspection)
  767. ("gtk-doc" ,gtk-doc/stable)
  768. ("libtool" ,libtool)
  769. ("pkg-config" ,pkg-config)
  770. ("vala" ,vala)
  771. ("xorg-server-for-tests" ,xorg-server-for-tests)))
  772. (inputs
  773. `(("dee-icu" ,dee)
  774. ("gtk+" ,gtk+)
  775. ("json-glib" ,json-glib)
  776. ("sqlite" ,sqlite)
  777. ("telepathy-glib" ,telepathy-glib)
  778. ("python" ,python-wrapper)
  779. ("python-rdflib" ,python-rdflib)
  780. ("xapian-config" ,xapian)))
  781. (propagated-inputs
  782. `(("glib" ,glib)))
  783. (synopsis "Desktop Activity Logging")
  784. (description "Zeitgeist is a service which logs the users’s activities and
  785. events, anywhere from files opened to websites visited and conversations. It
  786. makes this information readily available for other applications to use. It is
  787. able to establish relationships between items based on similarity and usage
  788. patterns.")
  789. (home-page "https://zeitgeist.freedesktop.org/")
  790. (license
  791. ;; Dual-licensed
  792. (list
  793. license:lgpl2.1+
  794. license:gpl2+))))
  795. (define-public gnome-recipes
  796. (package
  797. (name "gnome-recipes")
  798. (version "2.0.4")
  799. (source (origin
  800. (method git-fetch)
  801. (uri (git-reference
  802. (url "https://gitlab.gnome.org/GNOME/recipes")
  803. (commit version)))
  804. (file-name (git-file-name name version))
  805. (sha256
  806. (base32
  807. "1h049mzqnlcfqwrhmzbq3pzzdglvy2bn9fj1p8wql7a60pn8sr32"))))
  808. (build-system meson-build-system)
  809. (arguments
  810. `(#:glib-or-gtk? #t
  811. #:phases
  812. (modify-phases %standard-phases
  813. (add-after 'unpack 'skip-gtk-update-icon-cache
  814. (lambda _
  815. (substitute* "meson_post_install.py"
  816. (("gtk-update-icon-cache") (which "true")))
  817. #t))
  818. (add-after 'unpack 'unpack-libgd
  819. (lambda* (#:key inputs #:allow-other-keys)
  820. (let ((libgd (assoc-ref inputs "libgd")))
  821. (copy-recursively libgd "subprojects/libgd")
  822. #t))))))
  823. (inputs
  824. `(("glib" ,glib)
  825. ("gnome-autoar" ,gnome-autoar)
  826. ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
  827. ("gspell" ,gspell)
  828. ("gtk+" ,gtk+)
  829. ("json-glib" ,json-glib)
  830. ("libcanberra" ,libcanberra)
  831. ("libsoup" ,libsoup)
  832. ("rest" ,rest)))
  833. (native-inputs
  834. `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
  835. ("gettext" ,gettext-minimal)
  836. ("glib:bin" ,glib "bin")
  837. ("itstool" ,itstool)
  838. ("libgd"
  839. ,(origin
  840. (method git-fetch)
  841. (uri (git-reference
  842. (url "https://gitlab.gnome.org/GNOME/libgd")
  843. (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
  844. (file-name (git-file-name "libgd" version))
  845. (sha256
  846. (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
  847. ("pkg-config" ,pkg-config)))
  848. (home-page "https://wiki.gnome.org/Apps/Recipes")
  849. (synopsis "Discover recipes for preparing food")
  850. (description "GNOME Recipes helps you discover what to cook today,
  851. tomorrow, the rest of the week and for special occasions.")
  852. (license license:gpl3+)))
  853. (define-public gnome-photos
  854. (package
  855. (name "gnome-photos")
  856. (version "40.0")
  857. (source
  858. (origin
  859. (method url-fetch)
  860. (uri
  861. (string-append "mirror://gnome/sources/" name "/"
  862. (version-major version) "/"
  863. name "-" version ".tar.xz"))
  864. (sha256
  865. (base32
  866. "1bzi79plw6ji6qlckhxnwfnswy6jpnhzmmyanml2i2xg73hp6bg0"))))
  867. (build-system meson-build-system)
  868. (arguments
  869. `(#:glib-or-gtk? #t
  870. #:configure-flags
  871. (list "-Ddogtail=false" ; Not available
  872. ;; Required for RUNPATH validation.
  873. (string-append "-Dc_link_args=-Wl,-rpath="
  874. (assoc-ref %outputs "out") "/lib/gnome-photos"))
  875. #:phases
  876. (modify-phases %standard-phases
  877. (add-after 'install 'wrap-gnome-photos
  878. (lambda* (#:key inputs outputs #:allow-other-keys)
  879. (let*
  880. ((out (assoc-ref outputs "out")))
  881. (wrap-program (string-append out "/bin/gnome-photos")
  882. `("GRL_PLUGIN_PATH" =
  883. (,(getenv "GRL_PLUGIN_PATH"))))))))))
  884. (native-inputs
  885. `(("dbus" ,dbus)
  886. ("desktop-file-utils" ,desktop-file-utils)
  887. ("gettext" ,gettext-minimal)
  888. ("git" ,git-minimal)
  889. ("glib:bin" ,glib "bin")
  890. ("gobject-introspection" ,gobject-introspection)
  891. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  892. ("gtk+:bin" ,gtk+ "bin")
  893. ("itstool" ,itstool)
  894. ("pkg-config" ,pkg-config)))
  895. (inputs
  896. `(("babl" ,babl)
  897. ("cairo" ,cairo)
  898. ("gdk-pixbuf" ,gdk-pixbuf+svg)
  899. ("gegl" ,gegl)
  900. ("geocode-glib" ,geocode-glib)
  901. ("gexiv2" ,gexiv2)
  902. ("gnome-online-accounts" ,gnome-online-accounts)
  903. ("gnome-online-miners" ,gnome-online-miners)
  904. ("grilo" ,grilo)
  905. ("grilo-plugins" ,grilo-plugins)
  906. ("gtk+" ,gtk+)
  907. ("libdazzle" ,libdazzle)
  908. ("libgdata" ,libgdata)
  909. ("libgfbgraph" ,gfbgraph)
  910. ("libhandy" ,libhandy)
  911. ("libjpeg" ,libjpeg-turbo)
  912. ("libpng" ,libpng)
  913. ("librest" ,rest)
  914. ("pygobject" ,python-pygobject)
  915. ("tracker" ,tracker)
  916. ("tracker-miners" ,tracker-miners)))
  917. (synopsis "Access, organize and share your photos on GNOME desktop")
  918. (description "GNOME Photos is a simple and elegant replacement for using a
  919. file manager to deal with photos. Enhance, crop and edit in a snap. Seamless
  920. cloud integration is offered through GNOME Online Accounts.")
  921. (home-page "https://wiki.gnome.org/Apps/Photos")
  922. (license license:gpl3+)))
  923. (define-public gnome-music
  924. (package
  925. (name "gnome-music")
  926. (version "40.1.1")
  927. (source
  928. (origin
  929. (method url-fetch)
  930. (uri
  931. (string-append "mirror://gnome/sources/" name "/"
  932. (version-major version) "/"
  933. name "-" version ".tar.xz"))
  934. (sha256
  935. (base32
  936. "0lcdal4qdhclr8961p57xf010y92l6wwmkw86lyi9wy224z6gjr0"))))
  937. (build-system meson-build-system)
  938. (arguments
  939. `(#:glib-or-gtk? #t
  940. #:phases
  941. (modify-phases %standard-phases
  942. (add-after 'install 'wrap-gnome-music
  943. (lambda* (#:key inputs outputs #:allow-other-keys)
  944. (let*
  945. ((out (assoc-ref outputs "out"))
  946. (pylib (string-append out "/lib/python"
  947. ,(version-major+minor
  948. (package-version python))
  949. "/site-packages")))
  950. (wrap-program (string-append out "/bin/gnome-music")
  951. `("GI_TYPELIB_PATH" =
  952. (,(getenv "GI_TYPELIB_PATH")))
  953. `("GST_PLUGIN_SYSTEM_PATH" =
  954. (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
  955. `("GRL_PLUGIN_PATH" =
  956. (,(getenv "GRL_PLUGIN_PATH")))
  957. `("GUIX_PYTHONPATH" =
  958. (,(getenv "GUIX_PYTHONPATH") ,pylib)))))))))
  959. (native-inputs
  960. `(("desktop-file-utils" ,desktop-file-utils)
  961. ("gettext" ,gettext-minimal)
  962. ("glib:bin" ,glib "bin")
  963. ("gobject-introspection" ,gobject-introspection)
  964. ("gtk+:bin" ,gtk+ "bin")
  965. ("itstools" ,itstool)
  966. ("pkg-config" ,pkg-config)))
  967. (inputs
  968. `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
  969. ("grilo" ,grilo)
  970. ("grilo-plugins" ,grilo-plugins)
  971. ("gst-plugins-base" ,gst-plugins-base)
  972. ("gst-plugins-good" ,gst-plugins-good)
  973. ("gstreamer" ,gstreamer)
  974. ("gvfs" ,gvfs)
  975. ("json-glib" ,json-glib)
  976. ("libdazzle" ,libdazzle)
  977. ("libmediaart" ,libmediaart)
  978. ("libsoup" ,libsoup)
  979. ("pycairo" ,python-pycairo)
  980. ("pygobject" ,python-pygobject)
  981. ("tracker" ,tracker)
  982. ("tracker-miners" ,tracker-miners)))
  983. (synopsis "Simple music player for GNOME desktop")
  984. (description "GNOME Music is the new GNOME music playing application that
  985. aims to combine an elegant and immersive browsing experience with simple
  986. and straightforward controls.")
  987. (home-page "https://wiki.gnome.org/Apps/Music")
  988. (license license:gpl2+)))
  989. (define-public portablexdr
  990. (package
  991. (name "portablexdr")
  992. (version "4.9.1")
  993. (source
  994. (origin
  995. (method url-fetch)
  996. (uri
  997. (string-append "https://people.redhat.com/~rjones/" name "/files/"
  998. name "-" version ".tar.gz"))
  999. (sha256
  1000. (base32
  1001. "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
  1002. (build-system gnu-build-system)
  1003. (synopsis "External Data Representation Library")
  1004. (description "PortableXDR is an implementation of External Data
  1005. Representation (XDR) Library. It is a standard data serialization format, for
  1006. uses such as computer network protocols. It allows data to be transferred
  1007. between different kinds of computer systems.")
  1008. (home-page "https://people.redhat.com/~rjones/portablexdr/")
  1009. (license
  1010. (list
  1011. license:gpl2+
  1012. license:lgpl2.1+))))
  1013. (define-public tepl
  1014. (package
  1015. (name "tepl")
  1016. (version "6.00.0")
  1017. (source
  1018. (origin
  1019. (method url-fetch)
  1020. (uri
  1021. (string-append "mirror://gnome/sources/" name "/"
  1022. (version-major+minor version) "/"
  1023. name "-" version ".tar.xz"))
  1024. (sha256
  1025. (base32
  1026. "0qvs7s86gqyyrzi0r5fbrj8zczlgv8xhdjswgbgc1afwjnl9fqx8"))))
  1027. (build-system meson-build-system)
  1028. (arguments
  1029. `(#:glib-or-gtk? #t
  1030. #:tests? #f)) ; FIX-ME: Requires gvfs
  1031. (native-inputs
  1032. `(("glib" ,glib "bin")
  1033. ("gobject-introspection" ,gobject-introspection)
  1034. ("pkg-config" ,pkg-config)))
  1035. (inputs
  1036. `(("amtk" ,amtk)
  1037. ("glib" ,glib)
  1038. ("gtk+" ,gtk+)
  1039. ("gtksourceview" ,gtksourceview)
  1040. ("libxml2" ,libxml2)
  1041. ("uchardet" ,uchardet)))
  1042. (synopsis "Text editor product line")
  1043. (description "Tepl is a library that eases the development of
  1044. GtkSourceView-based text editors and IDEs.")
  1045. (home-page "https://wiki.gnome.org/Projects/Tepl")
  1046. (license license:lgpl2.1+)))
  1047. (define-public tepl-5
  1048. (package
  1049. (inherit tepl)
  1050. (name "tepl")
  1051. (version "5.0.1")
  1052. (source
  1053. (origin
  1054. (method url-fetch)
  1055. (uri
  1056. (string-append "mirror://gnome/sources/" name "/"
  1057. (version-major+minor version) "/"
  1058. name "-" version ".tar.xz"))
  1059. (sha256
  1060. (base32
  1061. "0118j64s4fb350phbgda2rk6sv19rfgglxc7nf248llzc1klj9xi"))))))
  1062. (define-public krb5-auth-dialog
  1063. (package
  1064. (name "krb5-auth-dialog")
  1065. (version "3.26.1")
  1066. (source
  1067. (origin
  1068. (method url-fetch)
  1069. (uri
  1070. (string-append "mirror://gnome/sources/" name "/"
  1071. (version-major+minor version) "/"
  1072. name "-" version ".tar.xz"))
  1073. (sha256
  1074. (base32
  1075. "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
  1076. (build-system glib-or-gtk-build-system)
  1077. (native-inputs
  1078. `(("intltool" ,intltool)
  1079. ("itstool" ,itstool)
  1080. ("libxml2" ,libxml2)
  1081. ("pkg-config" ,pkg-config)
  1082. ("python-wrapper" ,python-wrapper)))
  1083. (inputs
  1084. `(("glib" ,glib)
  1085. ("gtk+" ,gtk+)
  1086. ("libnotify" ,libnotify)
  1087. ("mit-krb5" ,mit-krb5)
  1088. ("network-manager" ,network-manager)))
  1089. (synopsis "Popup dialogs for Kerberos 5")
  1090. (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
  1091. tickets, and pops up a dialog when they are about to expire.")
  1092. (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
  1093. (license license:gpl2+)))
  1094. (define-public notification-daemon
  1095. (package
  1096. (name "notification-daemon")
  1097. (version "3.20.0")
  1098. (source
  1099. (origin
  1100. (method url-fetch)
  1101. (uri
  1102. (string-append "mirror://gnome/sources/" name "/"
  1103. (version-major+minor version) "/"
  1104. name "-" version ".tar.xz"))
  1105. (sha256
  1106. (base32
  1107. "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
  1108. (build-system glib-or-gtk-build-system)
  1109. (native-inputs
  1110. `(("intltool" ,intltool)
  1111. ("pkg-config" ,pkg-config)))
  1112. (inputs
  1113. `(("glib" ,glib)
  1114. ("gtk+" ,gtk+)
  1115. ("x11" ,libx11)))
  1116. (synopsis "Notification Daemon for GNOME Desktop")
  1117. (description "Notification-Daemon is the server implementation of the
  1118. freedesktop.org desktop notification specification.")
  1119. (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
  1120. (license license:gpl2+)))
  1121. (define-public mm-common
  1122. (package
  1123. (name "mm-common")
  1124. (version "1.0.3")
  1125. (source (origin
  1126. (method url-fetch)
  1127. (uri (string-append "mirror://gnome/sources/mm-common/"
  1128. (version-major+minor version) "/"
  1129. "mm-common-" version ".tar.xz"))
  1130. (sha256
  1131. (base32
  1132. "1x8yvjy0yg17qyhmqws8xh2k8dvzrhpwqz7j1cfwzalrb1i9c5g8"))))
  1133. (build-system meson-build-system)
  1134. (arguments
  1135. `(#:phases
  1136. (modify-phases %standard-phases
  1137. (add-after 'unpack 'patch
  1138. (lambda* (#:key inputs #:allow-other-keys)
  1139. (substitute* "util/mm-common-prepare.in"
  1140. (("ln") (search-input-file inputs "/bin/ln"))
  1141. (("cp") (search-input-file inputs "/bin/cp"))
  1142. (("sed") (search-input-file inputs "/bin/sed"))
  1143. (("cat") (search-input-file inputs "/bin/cat"))))))))
  1144. (native-inputs
  1145. `(("coreutils" ,coreutils)
  1146. ("gettext" ,gettext-minimal)
  1147. ("pkg-config" ,pkg-config)
  1148. ("sed" ,sed)))
  1149. (inputs
  1150. `(("python" ,python)))
  1151. (synopsis "Module of GNOME C++ bindings")
  1152. (description "The mm-common module provides the build infrastructure
  1153. and utilities shared among the GNOME C++ binding libraries. Release
  1154. archives of mm-common include the Doxygen tag file for the GNU C++
  1155. Library reference documentation.")
  1156. (home-page "https://gitlab.gnome.org/GNOME/mm-common")
  1157. (license license:gpl2+)))
  1158. (define-public phodav
  1159. (package
  1160. (name "phodav")
  1161. (version "2.5")
  1162. (source (origin
  1163. (method url-fetch)
  1164. (uri (string-append "mirror://gnome/sources/" name "/"
  1165. (version-major+minor version) "/"
  1166. name "-" version ".tar.xz"))
  1167. (sha256
  1168. (base32
  1169. "045rdzf8isqmzix12lkz6z073b5qvcqq6ad028advm5gf36skw3i"))))
  1170. (build-system meson-build-system)
  1171. (arguments
  1172. `(#:phases
  1173. (modify-phases %standard-phases
  1174. (add-after 'unpack 'fix-udev-rules-directory
  1175. (lambda* (#:key outputs #:allow-other-keys)
  1176. (let* ((out (assoc-ref outputs "out"))
  1177. (rules (string-append out "/lib/udev/rules.d")))
  1178. (substitute* "data/meson.build"
  1179. (("udev\\.get_pkgconfig_variable\\('udevdir'\\)")
  1180. (format #f "'~a'" rules))))))
  1181. (add-before 'check 'start-virtual-dir-server
  1182. ;; The same server when started by tests/virtual-dir returns an
  1183. ;; unexpected status (4 instead of 200) and fails a test. It is
  1184. ;; unclear why starting it manually here makes it pass.
  1185. (lambda _
  1186. (system "tests/virtual-dir-server &"))))))
  1187. (native-inputs
  1188. `(("docbook-xml" ,docbook-xml-4.3)
  1189. ("gettext" ,gettext-minimal)
  1190. ("glib:bin" ,glib "bin")
  1191. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  1192. ("gtk-doc" ,gtk-doc/stable)
  1193. ("pkg-config" ,pkg-config)))
  1194. (inputs
  1195. `(("avahi" ,avahi)
  1196. ("libgudev" ,libgudev)
  1197. ("libsoup" ,libsoup)))
  1198. (synopsis "WebDav server implementation using libsoup")
  1199. (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
  1200. but it is generic enough to be reused in other projects,
  1201. in particular in the GNOME desktop.")
  1202. (home-page "https://wiki.gnome.org/phodav")
  1203. (license license:lgpl2.1+)))
  1204. (define-public gnome-color-manager
  1205. (package
  1206. (name "gnome-color-manager")
  1207. (version "3.36.0")
  1208. (source (origin
  1209. (method url-fetch)
  1210. (uri (string-append "mirror://gnome/sources/" name "/"
  1211. (version-major+minor version) "/"
  1212. name "-" version ".tar.xz"))
  1213. (sha256
  1214. (base32
  1215. "0fxdng74d8hwhfx1nwl1i4jx9h9f6c2hkyc12f01kqbjcimrxnwx"))))
  1216. (build-system meson-build-system)
  1217. (arguments
  1218. `(#:glib-or-gtk? #t
  1219. #:phases
  1220. (modify-phases %standard-phases
  1221. (add-before
  1222. 'check 'pre-check
  1223. (lambda _
  1224. ;; Tests require a running X server.
  1225. (system "Xvfb :1 &")
  1226. (setenv "DISPLAY" ":1")
  1227. #t)))))
  1228. (native-inputs
  1229. `(("desktop-file-utils" ,desktop-file-utils)
  1230. ("gettext" ,gettext-minimal)
  1231. ("glib:bin" ,glib "bin")
  1232. ("gtk+:bin" ,gtk+ "bin")
  1233. ("itstool" ,itstool)
  1234. ("pkg-config" ,pkg-config)
  1235. ("xorg-server" ,xorg-server-for-tests)))
  1236. (inputs
  1237. `(("adwaita-icon-theme" ,adwaita-icon-theme)
  1238. ("appstream-glib" ,appstream-glib)
  1239. ("colord-gtk" ,colord-gtk)
  1240. ("exiv2" ,exiv2)
  1241. ("gnome-desktop" ,gnome-desktop)
  1242. ("libcanberra" ,libcanberra)
  1243. ("libexif" ,libexif)
  1244. ("libtiff" ,libtiff)
  1245. ("libxrandr" ,libxrandr)
  1246. ("libxtst" ,libxtst)
  1247. ("libxxf86vm" ,libxxf86vm)
  1248. ("vte" ,vte)
  1249. ("xorgproto" ,xorgproto)))
  1250. (synopsis "Color profile manager for the GNOME desktop")
  1251. (description "GNOME Color Manager is a session framework that makes
  1252. it easy to manage, install and generate color profiles
  1253. in the GNOME desktop.")
  1254. (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
  1255. (license license:gpl2+)))
  1256. (define-public gnome-online-miners
  1257. (package
  1258. (name "gnome-online-miners")
  1259. (version "3.34.0")
  1260. (source (origin
  1261. (method url-fetch)
  1262. (uri (string-append "mirror://gnome/sources/" name "/"
  1263. (version-major+minor version) "/"
  1264. name "-" version ".tar.xz"))
  1265. (sha256
  1266. (base32
  1267. "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))
  1268. (patches
  1269. (search-patches
  1270. "gnome-online-miners-tracker-3.patch"))))
  1271. (build-system glib-or-gtk-build-system)
  1272. (arguments
  1273. `(#:phases
  1274. (modify-phases %standard-phases
  1275. (add-after 'unpack 'fix-configure
  1276. (lambda _
  1277. (substitute* "configure.ac"
  1278. (("AX_CHECK_ENABLE_DEBUG.*")
  1279. ""))))
  1280. (add-after 'fix-configure 'autoreconf
  1281. (lambda _
  1282. (invoke "autoreconf" "-vif"))))))
  1283. (native-inputs
  1284. `(("autoconf" ,autoconf)
  1285. ("automake" ,automake)
  1286. ("gettext" ,gettext-minimal)
  1287. ("glib:bin" ,glib "bin")
  1288. ("gobject-introspection" ,gobject-introspection)
  1289. ("gtk+:bin" ,gtk+ "bin")
  1290. ("libtool" ,libtool)
  1291. ("pkg-config" ,pkg-config)))
  1292. (inputs
  1293. `(("gnome-online-accounts" ,gnome-online-accounts)
  1294. ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
  1295. ("grilo" ,grilo)
  1296. ("libgdata" ,libgdata)
  1297. ("libgfbgraph" ,gfbgraph)
  1298. ("libzapojit" ,libzapojit)
  1299. ("rest" ,rest)
  1300. ("tracker" ,tracker)))
  1301. (synopsis "Web Crawlers for GNOME")
  1302. (description "GNOME Online Miners provides a set of crawlers that
  1303. go through your online content and index them locally in Tracker.
  1304. It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
  1305. (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
  1306. (license license:gpl2+)))
  1307. (define-public gssdp
  1308. (package
  1309. (name "gssdp")
  1310. (version "1.2.3")
  1311. (source (origin
  1312. (method url-fetch)
  1313. (uri (string-append "mirror://gnome/sources/" name "/"
  1314. (version-major+minor version) "/"
  1315. name "-" version ".tar.xz"))
  1316. (sha256
  1317. (base32
  1318. "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
  1319. (build-system meson-build-system)
  1320. (native-inputs
  1321. `(("gettext" ,gettext-minimal)
  1322. ("glib:bin" ,glib "bin")
  1323. ("gobject-introspection" ,gobject-introspection)
  1324. ("gtk-doc" ,gtk-doc/stable)
  1325. ("pkg-config" ,pkg-config)
  1326. ("vala" ,vala)))
  1327. (inputs
  1328. `(("gtk+" ,gtk+)
  1329. ("libsoup" ,libsoup)))
  1330. (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
  1331. Protocol} for GNOME")
  1332. (description "This package provides a library to handle resource discovery
  1333. and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
  1334. a debugging tool, @command{gssdp-device-sniffer}.")
  1335. (home-page "https://gitlab.gnome.org/GNOME/gssdp")
  1336. (license license:lgpl2.0+)))
  1337. (define-public gupnp
  1338. (package
  1339. (name "gupnp")
  1340. (version "1.2.4")
  1341. (source (origin
  1342. (method url-fetch)
  1343. (uri (string-append "mirror://gnome/sources/" name "/"
  1344. (version-major+minor version) "/"
  1345. name "-" version ".tar.xz"))
  1346. (sha256
  1347. (base32
  1348. "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p"))))
  1349. (build-system meson-build-system)
  1350. (arguments
  1351. `(#:phases
  1352. (modify-phases %standard-phases
  1353. (add-before 'check 'pre-check
  1354. (lambda _
  1355. ;; Tests require a writable HOME.
  1356. (setenv "HOME" (getcwd)))))))
  1357. (native-inputs
  1358. `(("gettext" ,gettext-minimal)
  1359. ("glib:bin" ,glib "bin")
  1360. ("gobject-introspection" ,gobject-introspection)
  1361. ("gtk-doc" ,gtk-doc/stable)
  1362. ("pkg-config" ,pkg-config)
  1363. ("vala" ,vala)))
  1364. (inputs
  1365. `(("gssdp" ,gssdp)
  1366. ("gtk+" ,gtk+)
  1367. ("libsoup" ,libsoup)))
  1368. (propagated-inputs
  1369. `(;; For ‘org.gnome.system.proxy’.
  1370. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
  1371. (synopsis "PnP API for GNOME")
  1372. (description "This package provides GUPnP, an object-oriented framework
  1373. for creating UPnP devices and control points, written in C using
  1374. @code{GObject} and @code{libsoup}.")
  1375. (home-page "https://gitlab.gnome.org/GNOME/gupnp")
  1376. (license license:lgpl2.0+)))
  1377. (define-public gupnp-dlna
  1378. (package
  1379. (name "gupnp-dlna")
  1380. (version "0.10.5")
  1381. (source (origin
  1382. (method url-fetch)
  1383. (uri (string-append "mirror://gnome/sources/" name "/"
  1384. (version-major+minor version) "/"
  1385. name "-" version ".tar.xz"))
  1386. (sha256
  1387. (base32
  1388. "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
  1389. (build-system gnu-build-system)
  1390. (native-inputs
  1391. `(("gettext" ,gettext-minimal)
  1392. ("glib:bin" ,glib "bin")
  1393. ("gobject-introspection" ,gobject-introspection)
  1394. ("gtk-doc" ,gtk-doc/stable)
  1395. ("libxml" ,libxml2)
  1396. ("pkg-config" ,pkg-config)
  1397. ("vala" ,vala)))
  1398. (inputs
  1399. `(("gstreamer" ,gstreamer)
  1400. ("gupnp" ,gupnp)))
  1401. (propagated-inputs
  1402. `(("gst-plugins-base" ,gst-plugins-base)
  1403. ("gst-plugins-good" ,gst-plugins-good)))
  1404. (synopsis "GUPnP DLNA for GNOME")
  1405. (description "This package provides a small utility library to
  1406. support DLNA-related tasks such as media profile guessing, transcoding to a
  1407. given profile, etc. DLNA is a subset of UPnP A/V.")
  1408. (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
  1409. (license license:lgpl2.0+)))
  1410. (define-public gupnp-av
  1411. (package
  1412. (name "gupnp-av")
  1413. (version "0.12.11")
  1414. (source (origin
  1415. (method url-fetch)
  1416. (uri (string-append "mirror://gnome/sources/" name "/"
  1417. (version-major+minor version) "/"
  1418. name "-" version ".tar.xz"))
  1419. (sha256
  1420. (base32
  1421. "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
  1422. (build-system gnu-build-system)
  1423. (native-inputs
  1424. `(("gettext" ,gettext-minimal)
  1425. ("glib:bin" ,glib "bin")
  1426. ("gobject-introspection" ,gobject-introspection)
  1427. ("gtk-doc" ,gtk-doc/stable)
  1428. ("libxml" ,libxml2)
  1429. ("pkg-config" ,pkg-config)
  1430. ("vala" ,vala)))
  1431. (inputs
  1432. `(("gtk+" ,gtk+)
  1433. ("gupnp" ,gupnp)))
  1434. (synopsis "GUPnP A/V for GNOME")
  1435. (description "This package provides a small library for handling
  1436. and implementation of UPnP A/V profiles.")
  1437. (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
  1438. (license license:lgpl2.0+)))
  1439. (define-public libmediaart
  1440. (package
  1441. (name "libmediaart")
  1442. (version "1.9.5")
  1443. (source (origin
  1444. (method url-fetch)
  1445. (uri (string-append "mirror://gnome/sources/" name "/"
  1446. (version-major+minor version) "/"
  1447. name "-" version ".tar.xz"))
  1448. (sha256
  1449. (base32
  1450. "1mlw1qgj8nkd9ll6b6h54r1gfdy3zp8a8xqz7qfyfaj85jjgbph7"))))
  1451. (build-system meson-build-system)
  1452. (native-inputs
  1453. `(("glib:bin" ,glib "bin")
  1454. ("pkg-config" ,pkg-config)))
  1455. (inputs
  1456. `(("gdk-pixbuf" ,gdk-pixbuf)
  1457. ("gettext" ,gettext-minimal)
  1458. ("gobject-introspection" ,gobject-introspection)
  1459. ("gtk+:doc" ,gtk+ "doc")
  1460. ("vala" ,vala)))
  1461. (synopsis "Media art library for the GNOME desktop")
  1462. (description
  1463. "The libmediaart library is the foundation for media art caching,
  1464. extraction, and lookup for applications on the desktop.")
  1465. (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
  1466. (license license:lgpl2.1+)))
  1467. (define-public gnome-initial-setup
  1468. (package
  1469. (name "gnome-initial-setup")
  1470. (version "40.4")
  1471. (source (origin
  1472. (method url-fetch)
  1473. (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
  1474. (version-major version)
  1475. "/gnome-initial-setup-" version ".tar.xz"))
  1476. (sha256
  1477. (base32
  1478. "06q3p4f8g9zr7a4mw3qr556mi0dg9qzrj8n46ybdz93fxs26aaj1"))))
  1479. (build-system meson-build-system)
  1480. (arguments
  1481. '(#:configure-flags '(;; Enable camera support for user selfie.
  1482. "-Dcheese=auto"
  1483. "-Dsystemd=false")
  1484. #:phases (modify-phases %standard-phases
  1485. (add-after 'unpack 'set-gkbd-file-name
  1486. (lambda* (#:key inputs #:allow-other-keys)
  1487. ;; Allow the "Preview" button in the keyboard layout
  1488. ;; selection dialog to display the layout.
  1489. (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
  1490. (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
  1491. (("\"gkbd-keyboard-display")
  1492. (string-append "\"" libgnomekbd
  1493. "/bin/gkbd-keyboard-display")))
  1494. #t))))))
  1495. (native-inputs
  1496. `(("gettext" ,gettext-minimal)
  1497. ("glib:bin" ,glib "bin")
  1498. ("gobject-introspection" ,gobject-introspection)
  1499. ("gtk+:bin" ,gtk+ "bin")
  1500. ("pkg-config" ,pkg-config)))
  1501. (inputs
  1502. `(("accountsservice" ,accountsservice)
  1503. ;("adwaita-icon-theme" ,adwaita-icon-theme)
  1504. ("elogind" ,elogind)
  1505. ("gdm" ,gdm)
  1506. ("geoclue" ,geoclue)
  1507. ("gnome-desktop" ,gnome-desktop)
  1508. ("gnome-online-accounts" ,gnome-online-accounts)
  1509. ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
  1510. ("gstreamer" ,gstreamer)
  1511. ("ibus" ,ibus)
  1512. ("json-glib" ,json-glib)
  1513. ("krb5" ,mit-krb5)
  1514. ("libgweather" ,libgweather)
  1515. ("libnma" ,libnma)
  1516. ("libsecret" ,libsecret)
  1517. ("network-manager" ,network-manager)
  1518. ("packagekit" ,packagekit)
  1519. ("polkit" ,polkit)
  1520. ("pwquality" ,libpwquality)
  1521. ("rest" ,rest)
  1522. ("upower" ,upower)
  1523. ("webkitgtk" ,webkitgtk)
  1524. ("libgnomekbd" ,libgnomekbd)))
  1525. (synopsis "Initial setup wizard for GNOME desktop")
  1526. (description "This package provides a set-up wizard when a
  1527. user logs into GNOME for the first time. It typically provides a
  1528. tour of all gnome components and allows the user to set them up.")
  1529. (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
  1530. (license license:gpl2)))
  1531. (define-public gnome-user-share
  1532. (package
  1533. (name "gnome-user-share")
  1534. (version "3.34.0")
  1535. (source (origin
  1536. (method url-fetch)
  1537. (uri (string-append "mirror://gnome/sources/" name "/"
  1538. (version-major+minor version) "/"
  1539. name "-" version ".tar.xz"))
  1540. (sha256
  1541. (base32
  1542. "04r9ck9v4i0d31grbli1d4slw2d6dcsfkpaybkwbzi7wnj72l30x"))))
  1543. (build-system meson-build-system)
  1544. (arguments
  1545. `(#:glib-or-gtk? #t
  1546. #:configure-flags
  1547. `("-Dsystemduserunitdir=/tmp/empty"
  1548. ;; Enable nautilus extension for file sharing.
  1549. "-Dnautilus_extension=true")))
  1550. (native-inputs
  1551. `(("gettext" ,gettext-minimal)
  1552. ("glib:bin" ,glib "bin")
  1553. ("gobject-introspection" ,gobject-introspection)
  1554. ("gtk+:bin" ,gtk+ "bin")
  1555. ("pkg-config" ,pkg-config)
  1556. ("yelp-tools" ,yelp-tools)))
  1557. (inputs
  1558. `(("glib" ,glib)
  1559. ("gnome-bluetooth" ,gnome-bluetooth)
  1560. ("gtk+" ,gtk+)
  1561. ("libcanberra" ,libcanberra)
  1562. ("libnotify" ,libnotify)
  1563. ("nautilus" ,nautilus))) ; For nautilus extension.
  1564. (synopsis "File sharing for GNOME desktop")
  1565. (description "GNOME User Share is a small package that binds together
  1566. various free software projects to bring easy to use user-level file
  1567. sharing to the masses.")
  1568. (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
  1569. (license license:gpl2+)))
  1570. (define-public sushi
  1571. (package
  1572. (name "sushi")
  1573. (version "3.38.1")
  1574. (source (origin
  1575. (method url-fetch)
  1576. (uri (string-append "mirror://gnome/sources/" name "/"
  1577. (version-major+minor version) "/"
  1578. name "-" version ".tar.xz"))
  1579. (sha256
  1580. (base32
  1581. "1sc8i0vrw6bn43rklnwp2fl1gq0r0xfd3bszcqxd0a2mh46d3rpk"))))
  1582. (build-system meson-build-system)
  1583. (arguments
  1584. `(#:glib-or-gtk? #t
  1585. #:phases
  1586. (modify-phases %standard-phases
  1587. (add-after 'glib-or-gtk-wrap 'wrap-typelib
  1588. (lambda* (#:key outputs #:allow-other-keys)
  1589. (let ((prog (string-append (assoc-ref outputs "out")
  1590. "/bin/sushi")))
  1591. ;; Put existing typelibs before sushi's deps, so as to
  1592. ;; correctly infer gdk-pixbuf.
  1593. (wrap-program prog
  1594. `("GI_TYPELIB_PATH" suffix
  1595. (,(getenv "GI_TYPELIB_PATH"))))))))))
  1596. (native-inputs
  1597. `(("glib:bin" ,glib "bin")
  1598. ("gettext" ,gettext-minimal)
  1599. ("gobject-introspection" ,gobject-introspection)
  1600. ("pkg-config" ,pkg-config)))
  1601. (inputs
  1602. `(("clutter" ,clutter)
  1603. ("clutter-gst" ,clutter-gst)
  1604. ("clutter-gtk" ,clutter-gtk)
  1605. ("evince" ,evince) ; For file previewing.
  1606. ("freetype" ,freetype)
  1607. ("gdk-pixbuf" ,gdk-pixbuf)
  1608. ("gjs" ,gjs)
  1609. ("gst-plugins-base" ,gst-plugins-base)
  1610. ("gstreamer" ,gstreamer)
  1611. ("gtksourceview" ,gtksourceview)
  1612. ("harfbuzz" ,harfbuzz)
  1613. ("libepoxy" ,libepoxy)
  1614. ("libmusicbrainz" ,libmusicbrainz)
  1615. ("libxml2" ,libxml2)
  1616. ("neon" ,neon)
  1617. ("webkitgtk" ,webkitgtk)))
  1618. (synopsis "File previewer for the GNOME desktop")
  1619. (description "Sushi is a DBus-activated service that allows applications
  1620. to preview files on the GNOME desktop.")
  1621. (home-page "https://gitlab.gnome.org/GNOME/sushi")
  1622. (license license:gpl2+)))
  1623. (define-public rygel
  1624. (package
  1625. (name "rygel")
  1626. (version "0.40.1")
  1627. (source (origin
  1628. (method url-fetch)
  1629. (uri (string-append "mirror://gnome/sources/" name "/"
  1630. (version-major+minor version) "/"
  1631. name "-" version ".tar.xz"))
  1632. (sha256
  1633. (base32
  1634. "0bd3d2swa8lq47b9r04x8xwdr9nhjnrwqi6scygd134wb5vxfh22"))))
  1635. (build-system meson-build-system)
  1636. (arguments
  1637. ;; Disable the tracker plugin.
  1638. '(#:configure-flags
  1639. (list "-Dplugins=external,gst-launch,lms,media-export,
  1640. mpris,playbin,ruih,tracker3")))
  1641. (native-inputs
  1642. `(("gettext" ,gettext-minimal)
  1643. ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
  1644. ("gobject-introspection" ,gobject-introspection)
  1645. ("gtk-doc" ,gtk-doc/stable)
  1646. ("pkg-config" ,pkg-config)
  1647. ("vala" ,vala)
  1648. ("docbook-xml" ,docbook-xml)
  1649. ("dockbook-xsl" ,docbook-xsl)
  1650. ("xsltproc" ,libxslt)))
  1651. (inputs
  1652. `(("gdk-pixbuf" ,gdk-pixbuf)
  1653. ("gssdp" ,gssdp)
  1654. ("gstreamer" ,gstreamer)
  1655. ("gst-plugins-base" ,gst-plugins-base)
  1656. ("gst-editing-services" ,gst-editing-services)
  1657. ("gtk+" ,gtk+)
  1658. ("gupnp" ,gupnp)
  1659. ("gupnp-av" ,gupnp-av)
  1660. ("gupnp-dlna" ,gupnp-dlna)
  1661. ("json-glib" ,json-glib)
  1662. ("libgee" ,libgee)
  1663. ("libmediaart" ,libmediaart)
  1664. ("libsoup" ,libsoup)
  1665. ("libxslt" ,libxslt)
  1666. ("libunistring" ,libunistring)
  1667. ("tracker" ,tracker)))
  1668. (synopsis "Share audio, video, and pictures with other devices")
  1669. (description
  1670. "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
  1671. MediaRenderer}) for GNOME that allows you to easily share audio, video, and
  1672. pictures, and to control a media player on your home network.
  1673. Rygel achieves interoperability with other devices by trying to conform to the
  1674. strict requirements of DLNA and by converting media on-the-fly to formats that
  1675. client devices can handle.")
  1676. (home-page "https://wiki.gnome.org/Projects/Rygel")
  1677. (license (list
  1678. ;; For logo (data/icons/*).
  1679. license:cc-by-sa3.0
  1680. ;; For all others.
  1681. license:lgpl2.1+))))
  1682. (define-public libnma
  1683. (package
  1684. (name "libnma")
  1685. (version "1.8.28")
  1686. (source (origin
  1687. (method url-fetch)
  1688. (uri (string-append "mirror://gnome/sources/" name "/"
  1689. (version-major+minor version) "/"
  1690. name "-" version ".tar.xz"))
  1691. (sha256
  1692. (base32
  1693. "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
  1694. (build-system meson-build-system)
  1695. (arguments
  1696. `(#:phases
  1697. (modify-phases %standard-phases
  1698. (add-after 'unpack 'patch-docbook-xml
  1699. (lambda* (#:key inputs #:allow-other-keys)
  1700. (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
  1701. "/xml/dtd/docbook")))
  1702. (substitute* "libnma-docs.xml"
  1703. (("http://.*/docbookx\\.dtd")
  1704. (string-append xmldoc "/docbookx.dtd")))
  1705. #t))))))
  1706. (native-inputs
  1707. `(("docbook-xml" ,docbook-xml-4.3)
  1708. ("gettext" ,gettext-minimal)
  1709. ("glib:bin" ,glib "bin")
  1710. ("gtk-doc" ,gtk-doc/stable)
  1711. ("gobject-introspection" ,gobject-introspection)
  1712. ("pkg-config" ,pkg-config)
  1713. ("vala" ,vala)))
  1714. (inputs
  1715. `(("gcr" ,gcr)
  1716. ("gtk+" ,gtk+)
  1717. ("iso-codes" ,iso-codes)
  1718. ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
  1719. ("network-manager" ,network-manager)))
  1720. (synopsis "Network Manager's applet library")
  1721. (description "Libnma is an applet library for Network Manager. It was
  1722. initially part of network-manager-applet and has now become a separate
  1723. project.")
  1724. (home-page "https://gitlab.gnome.org/GNOME/libnma")
  1725. ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
  1726. ;; "LGPL-2.1+".
  1727. (license license:gpl2+)))
  1728. (define-public gnome-menus
  1729. (package
  1730. (name "gnome-menus")
  1731. (version "3.36.0")
  1732. (source (origin
  1733. (method url-fetch)
  1734. (uri (string-append "mirror://gnome/sources/gnome-menus/"
  1735. (version-major+minor version) "/"
  1736. name "-" version ".tar.xz"))
  1737. (sha256
  1738. (base32
  1739. "07xvaf8s0fiv0035nk8zpzymn5www76w2a1vflrgqmp9plw8yd6r"))))
  1740. (build-system gnu-build-system)
  1741. (native-inputs
  1742. `(("gettext" ,gettext-minimal)
  1743. ("glib" ,glib)
  1744. ("pkg-config" ,pkg-config)))
  1745. (synopsis "Menu support for GNOME desktop")
  1746. (description "GNOME Menus contains the libgnome-menu library, the layout
  1747. configuration files for the GNOME menu, as well as a simple menu editor.")
  1748. (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
  1749. (license license:lgpl2.0+)))
  1750. (define-public deja-dup
  1751. (package
  1752. (name "deja-dup")
  1753. (version "40.6")
  1754. (source (origin
  1755. (method url-fetch)
  1756. (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
  1757. version "/deja-dup-" version ".tar.bz2"))
  1758. (sha256
  1759. (base32
  1760. "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
  1761. (build-system meson-build-system)
  1762. (arguments
  1763. `(#:glib-or-gtk? #t
  1764. #:configure-flags
  1765. (list
  1766. ;; Otherwise, the RUNPATH will lack the final path component.
  1767. (string-append "-Dc_link_args=-Wl,-rpath="
  1768. (assoc-ref %outputs "out") "/lib/deja-dup"))
  1769. #:phases
  1770. (modify-phases %standard-phases
  1771. (add-after 'unpack 'patch-paths
  1772. (lambda* (#:key inputs #:allow-other-keys)
  1773. (let ((python (assoc-ref inputs "python")))
  1774. (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
  1775. "libdeja/tests/scripts/instance-error.test")
  1776. (("/bin/rm")
  1777. (which "rm")))
  1778. (substitute* "libdeja/tests/runner.vala"
  1779. (("/bin/sh")
  1780. (which "sh")))
  1781. (substitute* "libdeja/tests/scripts/instance-error.test"
  1782. (("`which python3`")
  1783. (string-append python "/bin/python3"))))))
  1784. (add-after 'unpack 'patch-libgpg-error
  1785. (lambda* (#:key inputs #:allow-other-keys)
  1786. (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
  1787. (substitute* "meson.build"
  1788. (("(gpgerror_libs = ).*" _ var)
  1789. (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
  1790. #t))
  1791. (add-after 'unpack 'skip-gtk-update-icon-cache
  1792. ;; Don't create 'icon-theme.cache'.
  1793. (lambda _
  1794. (substitute* "data/post-install.sh"
  1795. (("gtk-update-icon-cache") "true"))
  1796. #t)))))
  1797. (inputs
  1798. `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  1799. ("duplicity" ,duplicity)
  1800. ("python" ,python)
  1801. ("python-pygobject" ,python-pygobject)
  1802. ("gtk+" ,gtk+)
  1803. ("json-glib" ,json-glib)
  1804. ("libnotify" ,libnotify)
  1805. ("libgpg-error" ,libgpg-error)
  1806. ("libsecret" ,libsecret)
  1807. ("libsoup" ,libsoup)
  1808. ("packagekit" ,packagekit)))
  1809. (native-inputs
  1810. `(("appstream-glib" ,appstream-glib)
  1811. ("desktop-file-utils" ,desktop-file-utils)
  1812. ("gettext" ,gettext-minimal)
  1813. ("glib" ,glib "bin") ; for glib-compile-schemas.
  1814. ("gobject-introspection" ,gobject-introspection)
  1815. ("itstool" ,itstool)
  1816. ("pkg-config" ,pkg-config)
  1817. ("vala" ,vala)))
  1818. (home-page "https://wiki.gnome.org/Apps/DejaDup")
  1819. (synopsis "Simple backup tool, for regular encrypted backups")
  1820. (description
  1821. "Déjà Dup is a simple backup tool, for regular encrypted backups. It
  1822. uses duplicity as the backend, which supports incremental backups and storage
  1823. either on a local, or remote machine via a number of methods.")
  1824. (license license:gpl3+)))
  1825. (define-public gnome-commander
  1826. (package
  1827. (name "gnome-commander")
  1828. (version "1.12.2")
  1829. (source
  1830. (origin
  1831. (method url-fetch)
  1832. (uri (string-append "mirror://gnome/sources/" name "/"
  1833. (version-major+minor version) "/"
  1834. "gnome-commander-" version ".tar.xz"))
  1835. (sha256
  1836. (base32 "0f7l2pkyh3r1qk4hhavl7387l3bq5my3snpdppiavcpnji28dpa5"))))
  1837. (build-system glib-or-gtk-build-system)
  1838. (native-inputs
  1839. `(("desktop-file-utils" ,desktop-file-utils)
  1840. ("gettext" ,gettext-minimal)
  1841. ("glib:bin" ,glib "bin")
  1842. ("gobject-introspection" ,gobject-introspection)
  1843. ("googletest" ,googletest)
  1844. ("intltool" ,intltool)
  1845. ("itstool" ,itstool)
  1846. ("libtool" ,libtool)
  1847. ("pkg-config" ,pkg-config)))
  1848. (inputs
  1849. `(("gconf" ,gconf)
  1850. ("gnome-vfs" ,gnome-vfs)
  1851. ("gtk+" ,gtk+-2)
  1852. ("libxml2" ,libxml2)))
  1853. (home-page "https://gcmd.github.io/")
  1854. (synopsis "Two-pane graphical file manager for the GNOME desktop")
  1855. (description
  1856. "GNOME Commander is a two-pane graphical file manager using GNOME
  1857. libraries. It aims to fulfill the demands of more advanced users who
  1858. like to focus on file management, their work through special applications
  1859. and running smart commands.")
  1860. (license license:gpl2+)))
  1861. (define-public gnome-user-docs
  1862. (package
  1863. (name "gnome-user-docs")
  1864. (version "40.5")
  1865. (source
  1866. (origin
  1867. (method url-fetch)
  1868. (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
  1869. (version-major version)
  1870. "/gnome-user-docs-" version ".tar.xz"))
  1871. (sha256
  1872. (base32 "0p6ysdqlfc7vvzsrcanl9bhsc7666sv42xxzpbgsf5j55z3yrkpr"))))
  1873. (build-system gnu-build-system)
  1874. (native-inputs
  1875. `(("gettext" ,gettext-minimal)
  1876. ("itstool" ,itstool)
  1877. ("pkg-config" ,pkg-config)
  1878. ("xmllint" ,libxml2)))
  1879. (synopsis "User documentation for the GNOME desktop")
  1880. (description
  1881. "The GNOME User Documentation explains how to use the GNOME desktop and its
  1882. components. It covers usage and setup of the core GNOME programs by end-users
  1883. and system administrators.")
  1884. (home-page "https://live.gnome.org/DocumentationProject")
  1885. (license license:cc-by3.0)))
  1886. (define-public dia
  1887. ;; This version from GNOME's repository includes fixes for compiling with
  1888. ;; recent versions of the build tools. The latest activity on the
  1889. ;; pre-GNOME version has been in 2014, while GNOME has continued applying
  1890. ;; fixes since.
  1891. (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
  1892. (revision "2"))
  1893. (package
  1894. (name "dia")
  1895. (version (git-version "0.97.3" revision commit))
  1896. (source (origin
  1897. (method git-fetch)
  1898. (uri (git-reference
  1899. (url "https://gitlab.gnome.org/GNOME/dia.git/")
  1900. (commit commit)))
  1901. (file-name (git-file-name name version))
  1902. (sha256
  1903. (base32
  1904. "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
  1905. (build-system meson-build-system)
  1906. (inputs
  1907. `(("graphene" ,graphene)
  1908. ("gtk+" ,gtk+-2)
  1909. ("libxml2" ,libxml2)
  1910. ("libxslt" ,libxslt)
  1911. ("poppler" ,poppler)
  1912. ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
  1913. ;; ERROR: Unknown method "dependency" in object.
  1914. ("python-2" ,python-2)))
  1915. (native-inputs
  1916. `(("appstream-glib" ,appstream-glib)
  1917. ("docbook-xsl" ,docbook-xsl)
  1918. ("glib" ,glib "bin")
  1919. ("intltool" ,intltool)
  1920. ("pkg-config" ,pkg-config)))
  1921. (home-page "https://wiki.gnome.org/Apps/Dia")
  1922. (synopsis "Diagram creation for GNOME")
  1923. (description "Dia can be used to draw different types of diagrams, and
  1924. includes support for UML static structure diagrams (class diagrams), entity
  1925. relationship modeling, and network diagrams. The program supports various file
  1926. formats like PNG, SVG, PDF and EPS.")
  1927. (license license:gpl2+))))
  1928. (define-public libgdata
  1929. (package
  1930. (name "libgdata")
  1931. (version "0.18.1")
  1932. (source (origin
  1933. (method url-fetch)
  1934. (uri (string-append "mirror://gnome/sources/" name "/"
  1935. (version-major+minor version) "/"
  1936. name "-" version ".tar.xz"))
  1937. (sha256
  1938. (base32
  1939. "1iq4d1qy0vkmy29xvr13dgz4pxvn5v3yi2swryld0ajinvp951fx"))))
  1940. (build-system meson-build-system)
  1941. (arguments
  1942. '(#:phases
  1943. (modify-phases %standard-phases
  1944. (add-before 'check 'set-home-for-tests
  1945. (lambda _
  1946. (setenv "HOME" "/tmp"))))))
  1947. (native-inputs
  1948. `(("glib:bin" ,glib "bin")
  1949. ("gobject-introspection" ,gobject-introspection)
  1950. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  1951. ("intltool" ,intltool)
  1952. ("pkg-config" ,pkg-config)
  1953. ("uhttpmock" ,uhttpmock)))
  1954. (inputs
  1955. `(("cyrus-sasl" ,cyrus-sasl)
  1956. ("glib-networking" ,glib-networking)
  1957. ("vala" ,vala)))
  1958. (propagated-inputs
  1959. `(("gcr" ,gcr)
  1960. ("glib" ,glib)
  1961. ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
  1962. ("json-glib" ,json-glib)
  1963. ("liboauth" ,liboauth)
  1964. ("libsoup" ,libsoup)
  1965. ("libxml2" ,libxml2)))
  1966. (home-page "https://wiki.gnome.org/Projects/libgdata")
  1967. (synopsis "Library for accessing online service APIs")
  1968. (description
  1969. "libgdata is a GLib-based library for accessing online service APIs using
  1970. the GData protocol — most notably, Google's services. It provides APIs to
  1971. access the common Google services, and has full asynchronous support.")
  1972. (license license:lgpl2.1+)))
  1973. (define-public libgxps
  1974. (package
  1975. (name "libgxps")
  1976. (version "0.3.2")
  1977. (source (origin
  1978. (method url-fetch)
  1979. (uri (string-append "mirror://gnome/sources/" name "/"
  1980. (version-major+minor version) "/"
  1981. name "-" version ".tar.xz"))
  1982. (sha256
  1983. (base32
  1984. "07156nj7yrp3h9zyzx6mjwxwmfijialb4gi5d6dwyp53arr8c9vd"))))
  1985. (build-system meson-build-system)
  1986. (native-inputs
  1987. `(("gobject-introspection" ,gobject-introspection)
  1988. ("pkg-config" ,pkg-config)))
  1989. (inputs
  1990. `(("gtk+" ,gtk+)
  1991. ("libjpeg" ,libjpeg-turbo)
  1992. ("lcms" ,lcms)
  1993. ("libtiff" ,libtiff)))
  1994. (propagated-inputs
  1995. ;; In Requires of libgxps.pc.
  1996. `(("cairo" ,cairo)
  1997. ("glib" ,glib)
  1998. ("libarchive" ,libarchive)))
  1999. (home-page "https://wiki.gnome.org/Projects/libgxps")
  2000. (synopsis "GObject-based library for handling and rendering XPS documents")
  2001. (description
  2002. "libgxps is a GObject-based library for handling and rendering XPS
  2003. documents. This package also contains binaries that can convert XPS documents
  2004. to other formats.")
  2005. (license license:lgpl2.1+)))
  2006. (define-public gnome-characters
  2007. (package
  2008. (name "gnome-characters")
  2009. (version "40.0")
  2010. (source
  2011. (origin
  2012. (method url-fetch)
  2013. (uri (string-append "mirror://gnome/sources/"
  2014. "gnome-characters/" (version-major version)
  2015. "/gnome-characters-" version ".tar.xz"))
  2016. (sha256
  2017. (base32
  2018. "0z2xa4w921bzpzj6gv88pvbrijcnnwni6jxynwz0ybaravyzaqha"))))
  2019. (build-system meson-build-system)
  2020. (arguments
  2021. `(#:glib-or-gtk? #t
  2022. #:phases (modify-phases %standard-phases
  2023. (add-after 'install 'wrap
  2024. (lambda* (#:key outputs #:allow-other-keys)
  2025. ;; GNOME Characters needs Typelib files from GTK and
  2026. ;; gnome-desktop.
  2027. (wrap-program (string-append (assoc-ref outputs "out")
  2028. "/bin/gnome-characters")
  2029. `("GI_TYPELIB_PATH" ":" prefix
  2030. (,(getenv "GI_TYPELIB_PATH")))))))))
  2031. (native-inputs
  2032. `(("gettext" ,gettext-minimal)
  2033. ("glib:bin" ,glib "bin")
  2034. ("gtk+:bin" ,gtk+ "bin")
  2035. ("pkg-config" ,pkg-config)
  2036. ("python" ,python-minimal)))
  2037. (inputs
  2038. `(("gjs" ,gjs)
  2039. ("gtk+" ,gtk+)
  2040. ("libhandy" ,libhandy)
  2041. ("libunistring" ,libunistring)
  2042. ("gnome-desktop" ,gnome-desktop)))
  2043. (home-page "https://wiki.gnome.org/Apps/CharacterMap")
  2044. (synopsis "Find and insert unusual characters")
  2045. (description "Characters is a simple utility application to find
  2046. and insert unusual characters. It allows you to quickly find the
  2047. character you are looking for by searching for keywords.")
  2048. (license license:bsd-3)))
  2049. (define-public gnome-common
  2050. (package
  2051. (name "gnome-common")
  2052. (version "3.18.0")
  2053. (source
  2054. (origin
  2055. (method url-fetch)
  2056. (uri (string-append "mirror://gnome/sources/" name "/"
  2057. (version-major+minor version) "/"
  2058. name "-" version ".tar.xz"))
  2059. (sha256
  2060. (base32
  2061. "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
  2062. (build-system gnu-build-system)
  2063. (home-page "https://www.gnome.org/")
  2064. (synopsis "Bootstrap GNOME modules built from Git")
  2065. (description "gnome-common contains various files needed to bootstrap
  2066. GNOME modules built from Git. It contains a common \"autogen.sh\" script that
  2067. can be used to configure a source directory checked out from Git and some
  2068. commonly used macros.")
  2069. (license license:gpl2+)))
  2070. (define-public gnome-contacts
  2071. (package
  2072. (name "gnome-contacts")
  2073. (version "40.0")
  2074. (source (origin
  2075. (method url-fetch)
  2076. (uri (string-append "mirror://gnome/sources/gnome-contacts/"
  2077. (version-major version) "/"
  2078. name "-" version ".tar.xz"))
  2079. (sha256
  2080. (base32
  2081. "0w2g5xhw65adzvwzakrj5kaim4sw1w7s8qqwm3nm6inq50znzpn9"))))
  2082. (build-system meson-build-system)
  2083. (arguments
  2084. `(#:configure-flags '("-Dcheese=disabled")
  2085. #:phases
  2086. (modify-phases %standard-phases
  2087. (add-after 'unpack 'generate-vapis
  2088. (lambda* (#:key inputs #:allow-other-keys)
  2089. ;; To generate goa's missing .vapi file
  2090. (define goa
  2091. (assoc-ref inputs "gnome-online-accounts:lib"))
  2092. (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
  2093. "--library=goa-1.0"
  2094. (string-append goa "/share/gir-1.0/Goa-1.0.gir"))))
  2095. (add-after 'unpack 'skip-gtk-update-icon-cache
  2096. ;; Don't create 'icon-theme.cache'.
  2097. (lambda _
  2098. (substitute* "build-aux/meson_post_install.py"
  2099. (("gtk-update-icon-cache") "true")))))))
  2100. (native-inputs
  2101. `(("docbook-xml" ,docbook-xml-4.2)
  2102. ("docbook-xsl" ,docbook-xsl)
  2103. ("glib:bin" ,glib "bin")
  2104. ("pkg-config" ,pkg-config)))
  2105. (inputs
  2106. `(("docbook-xml" ,docbook-xml)
  2107. ("dockbook-xsl" ,docbook-xsl)
  2108. ("evolution-data-server" ,evolution-data-server)
  2109. ("gettext" ,gettext-minimal)
  2110. ("gnome-desktop" ,gnome-desktop)
  2111. ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
  2112. ("gobject-introspection" ,gobject-introspection)
  2113. ("gst-plugins-base" ,gst-plugins-base)
  2114. ("gtk+" ,gtk+)
  2115. ("libgee" ,libgee)
  2116. ("libhandy" ,libhandy)
  2117. ("libxslt" ,libxslt)
  2118. ("telepathy-glib" ,telepathy-glib)
  2119. ("vala" ,vala)))
  2120. (propagated-inputs
  2121. `(("folks" ,folks)
  2122. ("telepathy-mission-control" ,telepathy-mission-control)))
  2123. (synopsis "GNOME's integrated address book")
  2124. (description
  2125. "GNOME Contacts organizes your contact information from online and
  2126. offline sources, providing a centralized place for managing your contacts.")
  2127. (home-page "https://wiki.gnome.org/Apps/Contacts")
  2128. (license license:gpl2+)))
  2129. (define-public gnome-desktop
  2130. (package
  2131. (name "gnome-desktop")
  2132. (version "40.4")
  2133. (source
  2134. (origin
  2135. (method url-fetch)
  2136. (uri (string-append "mirror://gnome/sources/" name "/"
  2137. (version-major version) "/"
  2138. name "-" version ".tar.xz"))
  2139. (sha256
  2140. (base32
  2141. "1vs5knn2yj6a449p9bn5w5407i1yvxfxg8xv844qgl70hpsrdbl8"))))
  2142. (build-system meson-build-system)
  2143. (arguments
  2144. '(#:phases
  2145. (modify-phases %standard-phases
  2146. (add-before 'configure 'patch-path
  2147. (lambda* (#:key inputs #:allow-other-keys)
  2148. (let ((libc (assoc-ref inputs "libc")))
  2149. (substitute* "libgnome-desktop/gnome-languages.c"
  2150. (("\"locale\"")
  2151. (string-append "\"" libc "/bin/locale\"")))
  2152. #t)))
  2153. (add-before 'configure 'patch-bubblewrap
  2154. (lambda* (#:key inputs #:allow-other-keys)
  2155. (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
  2156. (("\"bwrap\",")
  2157. (string-append "\"" (which "bwrap") "\","))
  2158. (("\"--ro-bind\", \"/usr\", \"/usr\",")
  2159. (string-append "\"--ro-bind\", \""
  2160. (%store-directory)
  2161. "\", \""
  2162. (%store-directory)
  2163. "\","))
  2164. (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
  2165. #t))
  2166. (add-before 'check 'pre-check
  2167. (lambda* (#:key inputs #:allow-other-keys)
  2168. ;; Tests require a running X server and locales.
  2169. (system "Xvfb :1 &")
  2170. (setenv "DISPLAY" ":1")
  2171. (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache")
  2172. (setenv "XDG_CONFIG_HOME" "/tmp")
  2173. (setenv "GUIX_LOCPATH"
  2174. (search-input-directory inputs
  2175. "lib/locale")))))))
  2176. (native-inputs
  2177. `(("glib:bin" ,glib "bin") ; for gdbus-codegen
  2178. ("glibc-locales" ,glibc-locales) ; for tests
  2179. ("gobject-introspection" ,gobject-introspection)
  2180. ("itstool" ,itstool)
  2181. ("intltool" ,intltool)
  2182. ("pkg-config" ,pkg-config)
  2183. ("xmllint" ,libxml2)
  2184. ("xorg-server" ,xorg-server-for-tests)))
  2185. (propagated-inputs
  2186. ;; Required by gnome-desktop-3.0.pc.
  2187. `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  2188. ("gtk+" ,gtk+)
  2189. ("iso-codes" ,iso-codes)
  2190. ("libseccomp" ,libseccomp)
  2191. ("libx11" ,libx11)
  2192. ("xkeyboard-config" ,xkeyboard-config)))
  2193. (inputs
  2194. `(("gdk-pixbuf" ,gdk-pixbuf)
  2195. ("glib" ,glib)
  2196. ("bubblewrap" ,bubblewrap)
  2197. ("libxext" ,libxext)
  2198. ("libxkbfile" ,libxkbfile)
  2199. ("libxrandr" ,libxrandr)))
  2200. (home-page "https://www.gnome.org/")
  2201. (synopsis
  2202. "Libgnome-desktop, gnome-about, and desktop-wide documents")
  2203. (description
  2204. "The libgnome-desktop library provides API shared by several applications
  2205. on the desktop, but that cannot live in the platform for various reasons.
  2206. There is no API or ABI guarantee, although we are doing our best to provide
  2207. stability. Documentation for the API is available with gtk-doc.
  2208. The gnome-about program helps find which version of GNOME is installed.")
  2209. ; Some bits under the LGPL.
  2210. (license license:gpl2+)))
  2211. (define-public gnome-doc-utils
  2212. (package
  2213. (name "gnome-doc-utils")
  2214. (version "0.20.10")
  2215. (source
  2216. (origin
  2217. (method url-fetch)
  2218. (uri (string-append "mirror://gnome/sources/" name "/"
  2219. (version-major+minor version) "/"
  2220. name "-" version ".tar.xz"))
  2221. (sha256
  2222. (base32
  2223. "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
  2224. (build-system gnu-build-system)
  2225. (native-inputs
  2226. `(("intltool" ,intltool)
  2227. ("docbook-xml" ,docbook-xml-4.4)
  2228. ("python2-libxml2" ,python2-libxml2)
  2229. ("libxml2" ,libxml2)
  2230. ("libxslt" ,libxslt)
  2231. ("pkg-config" ,pkg-config)
  2232. ("python-2" ,python-2)))
  2233. (home-page "https://wiki.gnome.org/GnomeDocUtils")
  2234. (synopsis
  2235. "Documentation utilities for the Gnome project")
  2236. (description
  2237. "Gnome-doc-utils is a collection of documentation utilities for the
  2238. Gnome project. It includes xml2po tool which makes it easier to translate
  2239. and keep up to date translations of documentation.")
  2240. (license license:gpl2+))) ; xslt under lgpl
  2241. (define-public gnome-disk-utility
  2242. (package
  2243. (name "gnome-disk-utility")
  2244. (version "40.2")
  2245. (source (origin
  2246. (method url-fetch)
  2247. (uri (string-append "mirror://gnome/sources/" name "/"
  2248. (version-major version) "/"
  2249. name "-" version ".tar.xz"))
  2250. (sha256
  2251. (base32
  2252. "1rr1ypb89p51b6428yqvczmpmylwjfnhnkgx78hzm3vxm3m15lff"))))
  2253. (build-system meson-build-system)
  2254. (arguments
  2255. '(#:configure-flags '("-Dlogind=libelogind")
  2256. #:phases
  2257. (modify-phases %standard-phases
  2258. (add-after 'unpack 'skip-gtk-update-icon-cache
  2259. ;; Don't create 'icon-theme.cache'.
  2260. (lambda _
  2261. (substitute* "meson_post_install.py"
  2262. (("gtk-update-icon-cache") "true"))
  2263. #t)))))
  2264. (native-inputs
  2265. `(("glib:bin" ,glib "bin")
  2266. ("intltool" ,intltool)
  2267. ("pkg-config" ,pkg-config)
  2268. ("docbook-xml" ,docbook-xml)
  2269. ("docbook-xsl" ,docbook-xsl)
  2270. ("libxml2" ,libxml2)
  2271. ("libxslt" ,libxslt)))
  2272. (inputs
  2273. `(("elogind" ,elogind)
  2274. ("glib" ,glib)
  2275. ("appstream-glib" ,appstream-glib)
  2276. ("gnome-settings-daemon" ,gnome-settings-daemon)
  2277. ("gtk+" ,gtk+)
  2278. ("libcanberra" ,libcanberra)
  2279. ("libdvdread" ,libdvdread)
  2280. ("libhandy" ,libhandy)
  2281. ("libnotify" ,libnotify)
  2282. ("libpwquality" ,libpwquality)
  2283. ("libsecret" ,libsecret)
  2284. ("udisks" ,udisks)))
  2285. (home-page "https://git.gnome.org/browse/gnome-disk-utility")
  2286. (synopsis "Disk management utility for GNOME")
  2287. (description "Disk management utility for GNOME.")
  2288. (license license:gpl2+)))
  2289. (define-public gnome-font-viewer
  2290. (package
  2291. (name "gnome-font-viewer")
  2292. (version "40.0")
  2293. (source (origin
  2294. (method url-fetch)
  2295. (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
  2296. (version-major version)
  2297. "/gnome-font-viewer-" version ".tar.xz"))
  2298. (sha256
  2299. (base32
  2300. "0hpyi0sz3gcqqs9lkwyk8b6hr39m3n27432x98kxr436jj37dk6j"))))
  2301. (build-system meson-build-system)
  2302. (arguments
  2303. '(#:phases
  2304. (modify-phases %standard-phases
  2305. (add-after 'unpack 'patch-post-install-script
  2306. (lambda _
  2307. (substitute* "meson-postinstall.sh"
  2308. (("update-desktop-database") (which "true")))
  2309. #t))
  2310. (add-after 'install 'patch-thumbnailer
  2311. (lambda* (#:key outputs #:allow-other-keys)
  2312. (let ((out (assoc-ref outputs "out")))
  2313. (substitute*
  2314. (string-append
  2315. out
  2316. "/share/thumbnailers/gnome-font-viewer.thumbnailer")
  2317. (("gnome-thumbnail-font")
  2318. (string-append out "/bin/gnome-thumbnail-font"))))
  2319. #t)))))
  2320. (native-inputs
  2321. `(("gettext" ,gettext-minimal)
  2322. ("glib:bin" ,glib "bin")
  2323. ("pkg-config" ,pkg-config)))
  2324. (inputs
  2325. `(("glib" ,glib)
  2326. ("gnome-desktop" ,gnome-desktop)
  2327. ("gtk+" ,gtk+)
  2328. ("libhandy" ,libhandy)
  2329. ("libxml2" ,libxml2)))
  2330. (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
  2331. (synopsis "GNOME Fonts")
  2332. (description "Application to show you the fonts installed on your computer
  2333. for your use as thumbnails. Selecting any thumbnails shows the full view of how
  2334. the font would look under various sizes.")
  2335. (license license:gpl2+)))
  2336. (define-public gcr
  2337. (package
  2338. (name "gcr")
  2339. (version "3.34.0")
  2340. (source (origin
  2341. (method url-fetch)
  2342. (uri (string-append "mirror://gnome/sources/" name "/"
  2343. (version-major+minor version) "/"
  2344. name "-" version ".tar.xz"))
  2345. (sha256
  2346. (base32
  2347. "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
  2348. (build-system gnu-build-system)
  2349. (arguments
  2350. '(#:phases
  2351. (modify-phases %standard-phases
  2352. ;; These fail because /var/lib/dbus/machine-id is not present in the
  2353. ;; build environment.
  2354. (add-after 'unpack 'disable-failing-tests
  2355. (lambda _
  2356. (substitute* "Makefile.in"
  2357. (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
  2358. ""))
  2359. #t))
  2360. (add-before 'check 'pre-check
  2361. (lambda _
  2362. ;; Some tests expect to write to $HOME.
  2363. (setenv "HOME" "/tmp")
  2364. #t)))))
  2365. (inputs
  2366. `(("dbus" ,dbus)
  2367. ("gnupg" ,gnupg) ;called as a child process during tests
  2368. ("libgcrypt" ,libgcrypt)))
  2369. (native-inputs
  2370. `(("python" ,python-wrapper) ;for tests
  2371. ("pkg-config" ,pkg-config)
  2372. ("gettext" ,gettext-minimal)
  2373. ("glib" ,glib "bin")
  2374. ("gobject-introspection" ,gobject-introspection)
  2375. ("libxml2" ,libxml2)
  2376. ("vala" ,vala)
  2377. ("xsltproc" ,libxslt)))
  2378. ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
  2379. (propagated-inputs
  2380. `(("p11-kit" ,p11-kit)
  2381. ("glib" ,glib)
  2382. ("gtk+" ,gtk+)))
  2383. (home-page "https://www.gnome.org")
  2384. (synopsis "Libraries for displaying certificates and accessing key stores")
  2385. (description
  2386. "The GCR package contains libraries used for displaying certificates and
  2387. accessing key stores. It also provides the viewer for crypto files on the
  2388. GNOME Desktop.")
  2389. (license license:lgpl2.1+)))
  2390. (define-public gdl
  2391. (package
  2392. (name "gdl")
  2393. (version "3.34.0")
  2394. (source (origin
  2395. (method git-fetch)
  2396. (uri (git-reference
  2397. (url "https://gitlab.gnome.org/GNOME/gdl.git")
  2398. (commit (string-append "GDL_" (string-map (match-lambda
  2399. (#\. #\_)
  2400. (c c))
  2401. version)))))
  2402. (file-name (git-file-name name version))
  2403. (sha256
  2404. (base32
  2405. "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
  2406. (build-system gnu-build-system)
  2407. (native-inputs
  2408. `(("autoconf" ,autoconf)
  2409. ("automake" ,automake)
  2410. ("glib" ,glib "bin") ; for glib-genmarshal, etc.
  2411. ("gnome-common" ,gnome-common)
  2412. ("gtk-doc" ,gtk-doc/stable)
  2413. ("intltool" ,intltool)
  2414. ("pkg-config" ,pkg-config)
  2415. ("libtool" ,libtool)
  2416. ("which" ,which)))
  2417. (inputs
  2418. `(("libxml2" ,libxml2)))
  2419. (propagated-inputs
  2420. ;; The gdl-3.0.pc file 'Requires' GTK+.
  2421. `(("gtk+" ,gtk+)))
  2422. (home-page "https://gitlab.gnome.org/GNOME/gdl/")
  2423. (synopsis "GNOME docking library")
  2424. (description "This library provides docking features for gtk+.")
  2425. (license license:lgpl2.1+)))
  2426. ;;; A minimal variant used to break a cycle with Inkscape.
  2427. (define-public gdl-minimal
  2428. (package/inherit gdl
  2429. (name "gdl-minimal")
  2430. (arguments
  2431. '(#:phases
  2432. (modify-phases %standard-phases
  2433. (add-after 'unpack 'disable-doc-generation
  2434. ;; XXX: There is no easy way to disable generating the
  2435. ;; documentation.
  2436. (lambda _
  2437. (substitute* "configure.in"
  2438. (("GTK_DOC_CHECK.*") "")
  2439. (("docs/.*") ""))
  2440. (substitute* "Makefile.am"
  2441. (("gdl docs po") "gdl po"))
  2442. #t)))))
  2443. (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
  2444. (define-public libgnome-keyring
  2445. (package
  2446. (name "libgnome-keyring")
  2447. (version "3.12.0")
  2448. (source (origin
  2449. (method url-fetch)
  2450. (uri (string-append "mirror://gnome/sources/" name "/"
  2451. (version-major+minor version) "/"
  2452. name "-" version ".tar.xz"))
  2453. (sha256
  2454. (base32
  2455. "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
  2456. (build-system gnu-build-system)
  2457. (inputs
  2458. `(("libgcrypt" ,libgcrypt)
  2459. ("dbus" ,dbus)))
  2460. (native-inputs
  2461. `(("pkg-config" ,pkg-config)
  2462. ("glib" ,glib "bin")
  2463. ("intltool" ,intltool)))
  2464. (propagated-inputs
  2465. ;; Referred to in .h files and .pc.
  2466. `(("glib" ,glib)))
  2467. (home-page "https://www.gnome.org")
  2468. (synopsis "Accessing passwords from the GNOME keyring")
  2469. (description
  2470. "Client library to access passwords from the GNOME keyring.")
  2471. ;; Though a couple of files are LGPLv2.1+.
  2472. (license license:lgpl2.0+)))
  2473. (define-public gnome-keyring
  2474. (package
  2475. (name "gnome-keyring")
  2476. (version "40.0")
  2477. (source (origin
  2478. (method url-fetch)
  2479. (uri (string-append "mirror://gnome/sources/" name "/"
  2480. (version-major version) "/"
  2481. name "-" version ".tar.xz"))
  2482. (sha256
  2483. (base32
  2484. "0cdrlcw814zayhvlaxqs1sm9bqlfijlp22dzzd0g5zg2isq4vlm3"))))
  2485. (build-system gnu-build-system)
  2486. (arguments
  2487. `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
  2488. ;not exist
  2489. #:configure-flags
  2490. (list
  2491. (string-append "--with-pkcs11-config="
  2492. (assoc-ref %outputs "out") "/share/p11-kit/modules/")
  2493. (string-append "--with-pkcs11-modules="
  2494. (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
  2495. #:phases
  2496. (modify-phases %standard-phases
  2497. (add-after 'unpack 'fix-/bin/sh-reference
  2498. (lambda _
  2499. (substitute* "po/Makefile.in.in"
  2500. (("/bin/sh") (which "sh")))
  2501. #t))
  2502. (add-after 'unpack 'fix-docbook
  2503. (lambda* (#:key inputs #:allow-other-keys)
  2504. (substitute* "docs/Makefile.am"
  2505. (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
  2506. (string-append (assoc-ref inputs "docbook-xsl")
  2507. "/xml/xsl/docbook-xsl-"
  2508. ,(package-version docbook-xsl)
  2509. "/manpages/docbook.xsl")))
  2510. (setenv "XML_CATALOG_FILES"
  2511. (string-append (assoc-ref inputs "docbook-xml")
  2512. "/xml/dtd/docbook/catalog.xml"))
  2513. ;; Rerun the whole thing to avoid version mismatch ("This is
  2514. ;; Automake 1.15.1, but the definition used by this
  2515. ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
  2516. ;; use 'autoreconf' because it insists on running 'libtoolize'.
  2517. (invoke "autoconf")
  2518. (invoke "aclocal")
  2519. (invoke "automake" "-ac"))))))
  2520. (inputs
  2521. `(("libgcrypt" ,libgcrypt)
  2522. ("linux-pam" ,linux-pam)
  2523. ("openssh" ,openssh)
  2524. ("dbus" ,dbus)
  2525. ("gcr" ,gcr)))
  2526. (native-inputs
  2527. `(("pkg-config" ,pkg-config)
  2528. ("glib" ,glib "bin")
  2529. ("glib" ,glib) ; for m4 macros
  2530. ("python" ,python-2) ;for tests
  2531. ("intltool" ,intltool)
  2532. ("autoconf" ,autoconf)
  2533. ("automake" ,automake)
  2534. ("libxslt" ,libxslt) ;for documentation
  2535. ("docbook-xml" ,docbook-xml-4.3)
  2536. ("docbook-xsl" ,docbook-xsl)))
  2537. (propagated-inputs
  2538. `(("gcr" ,gcr)))
  2539. (home-page "https://www.gnome.org")
  2540. (synopsis "Daemon to store passwords and encryption keys")
  2541. (description
  2542. "gnome-keyring is a program that keeps passwords and other secrets for
  2543. users. It is run as a daemon in the session, similar to ssh-agent, and other
  2544. applications locate it via an environment variable or D-Bus.
  2545. The program can manage several keyrings, each with its own master password,
  2546. and there is also a session keyring which is never stored to disk, but
  2547. forgotten when the session ends.")
  2548. (license license:lgpl2.1+)))
  2549. (define-public evince
  2550. (package
  2551. (name "evince")
  2552. (version "40.2")
  2553. (source (origin
  2554. (method url-fetch)
  2555. (uri "mirror://gnome/sources/evince/40/evince-40.2.tar.xz")
  2556. (sha256
  2557. (base32
  2558. "0xrwls1bhvny8vvd7mfjy9p26zjch0pd6x6j9jn9g2ka6xwyrxqg"))))
  2559. (build-system meson-build-system)
  2560. (arguments
  2561. `(#:glib-or-gtk? #t
  2562. #:build-type "release"
  2563. #:configure-flags
  2564. '("-Dnautilus=false"
  2565. "-Dintrospection=true"
  2566. ;; XXX: Generating the documentation fails because the
  2567. ;; libevdocument.devhelp document cannot be created. This seems to be
  2568. ;; caused by a problem during the XSL transformation.
  2569. "-Dgtk_doc=false")
  2570. #:phases
  2571. (modify-phases %standard-phases
  2572. (add-after 'unpack 'skip-gtk-update-icon-cache
  2573. ;; Don't create 'icon-theme.cache'.
  2574. (lambda _
  2575. (substitute* "meson_post_install.py"
  2576. (("gtk-update-icon-cache") "true"))
  2577. #t)))))
  2578. (inputs
  2579. `(("libarchive" ,libarchive)
  2580. ("libgxps" ,libgxps)
  2581. ("libspectre" ,libspectre)
  2582. ("djvulibre" ,djvulibre)
  2583. ("ghostscript" ,ghostscript)
  2584. ("poppler" ,poppler)
  2585. ("libtiff" ,libtiff)
  2586. ("texlive-libkpathsea" ,texlive-libkpathsea) ; for DVI support
  2587. ("gnome-desktop" ,gnome-desktop)
  2588. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  2589. ("gspell" ,gspell)
  2590. ("libgnome-keyring" ,libgnome-keyring)
  2591. ("adwaita-icon-theme" ,adwaita-icon-theme)
  2592. ("gdk-pixbuf" ,gdk-pixbuf)
  2593. ("atk" ,atk)
  2594. ("pango" ,pango)
  2595. ("gtk+" ,gtk+)
  2596. ("glib" ,glib)
  2597. ("libxml2" ,libxml2)
  2598. ("libsm" ,libsm)
  2599. ("libice" ,libice)
  2600. ("shared-mime-info" ,shared-mime-info)
  2601. ("dconf" ,dconf)
  2602. ("libcanberra" ,libcanberra)
  2603. ("libsecret" ,libsecret)
  2604. ("libhandy" ,libhandy)))
  2605. (native-inputs
  2606. `(("itstool" ,itstool)
  2607. ("intltool" ,intltool)
  2608. ("glib" ,glib "bin")
  2609. ("gobject-introspection" ,gobject-introspection)
  2610. ("pkg-config" ,pkg-config)
  2611. ("xmllint" ,libxml2)))
  2612. (home-page "https://www.gnome.org/projects/evince/")
  2613. (synopsis "GNOME's document viewer")
  2614. (description
  2615. "Evince is a document viewer for multiple document formats. It
  2616. currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
  2617. of Evince is to replace the multiple document viewers that exist
  2618. on the GNOME Desktop with a single simple application.")
  2619. (license license:gpl2+)))
  2620. (define-public gsettings-desktop-schemas
  2621. (package
  2622. (name "gsettings-desktop-schemas")
  2623. (version "40.0")
  2624. (source
  2625. (origin
  2626. (method url-fetch)
  2627. (uri (string-append "mirror://gnome/sources/" name "/"
  2628. (version-major version) "/"
  2629. name "-" version ".tar.xz"))
  2630. (sha256
  2631. (base32
  2632. "11an29br55dp0b26kfqlrfxj19glfrmhcdpds2n1w9n04gq3pf7i"))))
  2633. (build-system meson-build-system)
  2634. (arguments
  2635. '(#:phases (modify-phases %standard-phases
  2636. (add-after 'unpack 'patch-schemas
  2637. (lambda* (#:key inputs #:allow-other-keys)
  2638. (let ((theme (assoc-ref inputs "gnome-backgrounds")))
  2639. (substitute* (find-files "schemas"
  2640. "\\.gschema\\.xml\\.in$")
  2641. ;; Provide the correct file name of the default
  2642. ;; GNOME background, 'adwaita-timed.xml'.
  2643. (("@datadir@/backgrounds/gnome")
  2644. (string-append theme "/share/backgrounds/gnome"))
  2645. ;; Do not reference fonts, that may not exist.
  2646. (("'Source Code Pro 10'") "'Monospace 11'"))))))))
  2647. (inputs
  2648. `(("glib" ,glib)
  2649. ("gnome-backgrounds" ,gnome-backgrounds)))
  2650. (native-inputs
  2651. `(("gettext" ,gettext-minimal)
  2652. ("glib" ,glib "bin") ; glib-compile-schemas, etc.
  2653. ("gobject-introspection" ,gobject-introspection)
  2654. ("pkg-config" ,pkg-config)))
  2655. (home-page "https://launchpad.net/gsettings-desktop-schemas")
  2656. (synopsis
  2657. "GNOME settings for various desktop components")
  2658. (description
  2659. "Gsettings-desktop-schemas contains a collection of GSettings schemas
  2660. for settings shared by various components of the GNOME desktop.")
  2661. (license license:lgpl2.1+)))
  2662. (define-public python-liblarch
  2663. (package
  2664. (name "python-liblarch")
  2665. (version "3.0.1")
  2666. (source
  2667. (origin
  2668. (method git-fetch)
  2669. (uri (git-reference
  2670. (url "https://github.com/getting-things-gnome/liblarch")
  2671. (commit (string-append "v" version))))
  2672. (file-name (git-file-name name version))
  2673. (sha256
  2674. (base32 "0xv2mfvyzipbny3iz8vll77wsqxfwh28xj6bj1ff0l452waph45m"))))
  2675. (build-system python-build-system)
  2676. (arguments
  2677. `(#:phases
  2678. (modify-phases %standard-phases
  2679. (add-before 'check 'start-xserver
  2680. (lambda* (#:key inputs #:allow-other-keys)
  2681. (system (format #f "~a/bin/Xvfb :1 &"
  2682. (assoc-ref inputs "xorg-server")))
  2683. (setenv "DISPLAY" ":1")
  2684. #t)))))
  2685. (native-inputs
  2686. `(("xorg-server" ,xorg-server-for-tests)))
  2687. (inputs
  2688. `(("gtk+" ,gtk+)))
  2689. (propagated-inputs
  2690. `(("python-pygobject" ,python-pygobject)))
  2691. (home-page "https://wiki.gnome.org/Projects/liblarch")
  2692. (synopsis "Library to easily handle complex data structures")
  2693. (description
  2694. "Liblarch is a Python library built to easily handle data structures such
  2695. as lists, trees and acyclic graphs. There's also a GTK binding that will
  2696. allow you to use your data structure in a @code{Gtk.Treeview}.
  2697. Liblarch support multiple views of one data structure and complex filtering.
  2698. That way, you have a clear separation between your data themselves (Model)
  2699. and how they are displayed (View).")
  2700. (license license:lgpl3+)))
  2701. (define-public gtg
  2702. (package
  2703. (name "gtg")
  2704. (version "0.5")
  2705. (source
  2706. (origin
  2707. (method git-fetch)
  2708. (uri (git-reference
  2709. (url "https://github.com/getting-things-gnome/gtg")
  2710. (commit (string-append "v" version))))
  2711. (file-name (git-file-name name version))
  2712. (sha256
  2713. (base32 "0b2slm7kjq6q8c7v4m7aqc8m1ynjxn3bl7445srpv1xc0dilq403"))))
  2714. (build-system meson-build-system)
  2715. (arguments
  2716. `(#:glib-or-gtk? #t
  2717. #:phases
  2718. (modify-phases %standard-phases
  2719. (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
  2720. (lambda* (#:key outputs #:allow-other-keys)
  2721. (let ((prog (string-append (assoc-ref outputs "out")
  2722. "/bin/gtg"))
  2723. (pylib (string-append (assoc-ref outputs "out")
  2724. "/lib/python"
  2725. ,(version-major+minor
  2726. (package-version python))
  2727. "/site-packages")))
  2728. (wrap-program prog
  2729. `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
  2730. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
  2731. #t))))))
  2732. (native-inputs
  2733. `(("desktop-file-utils" ,desktop-file-utils)
  2734. ("gettext" ,gettext-minimal)
  2735. ("glib:bin" ,glib "bin")
  2736. ("gobject-introspection" ,gobject-introspection)
  2737. ("gtk+:bin" ,gtk+ "bin")
  2738. ("pkg-config" ,pkg-config)))
  2739. (inputs
  2740. `(("gdk-pixbuf" ,gdk-pixbuf+svg)
  2741. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  2742. ("gtk+" ,gtk+)
  2743. ("pango" ,pango)
  2744. ("python-dbus" ,python-dbus)
  2745. ("python-liblarch" ,python-liblarch)
  2746. ("python-lxml" ,python-lxml)
  2747. ("python-pycairo" ,python-pycairo)
  2748. ("python-pygobject" ,python-pygobject)
  2749. ("python-pyxdg" ,python-pyxdg)))
  2750. (home-page "https://wiki.gnome.org/Apps/GTG")
  2751. (synopsis "Personal organizer for the GNOME desktop")
  2752. (description
  2753. "Getting Things GNOME! (GTG) is a personal tasks and TODO list items
  2754. organizer for the GNOME desktop environment inspired by the Getting Things
  2755. Done (GTD) methodology. GTG is designed with flexibility, adaptability,
  2756. and ease of use in mind so it can be used as more than just GTD software.
  2757. GTG is intended to help you track everything you need to do and need to
  2758. know, from small tasks to large projects.")
  2759. (license license:gpl3+)))
  2760. (define-public icon-naming-utils
  2761. (package
  2762. (name "icon-naming-utils")
  2763. (version "0.8.90")
  2764. (source
  2765. (origin
  2766. (method url-fetch)
  2767. (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
  2768. version ".tar.bz2"))
  2769. (sha256
  2770. (base32
  2771. "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
  2772. (build-system gnu-build-system)
  2773. (inputs
  2774. `(("perl" ,perl)
  2775. ("perl-xml-simple" ,perl-xml-simple)))
  2776. (arguments
  2777. '(#:phases
  2778. (modify-phases %standard-phases
  2779. (add-after 'install 'set-load-paths
  2780. ;; Tell 'icon-name-mapping' where XML::Simple is.
  2781. (lambda* (#:key outputs #:allow-other-keys)
  2782. (let* ((out (assoc-ref outputs "out"))
  2783. (prog (string-append out "/libexec/icon-name-mapping")))
  2784. (wrap-program
  2785. prog
  2786. `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
  2787. #t)))))
  2788. (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
  2789. (synopsis
  2790. "Utility to implement the Freedesktop Icon Naming Specification")
  2791. (description
  2792. "To help with the transition to the Freedesktop Icon Naming
  2793. Specification, the icon naming utility maps the icon names used by the
  2794. GNOME and KDE desktops to the icon names proposed in the specification.")
  2795. (license license:lgpl2.1+)))
  2796. (define-public gnome-icon-theme
  2797. (package
  2798. (name "gnome-icon-theme")
  2799. (version "3.12.0")
  2800. (source
  2801. (origin
  2802. (method url-fetch)
  2803. (uri (string-append "mirror://gnome/sources/" name "/"
  2804. (version-major+minor version) "/"
  2805. name "-" version ".tar.xz"))
  2806. (sha256
  2807. (base32
  2808. "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
  2809. (build-system gnu-build-system)
  2810. (arguments
  2811. '(#:configure-flags
  2812. ;; Don't create 'icon-theme.cache'.
  2813. (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
  2814. (true (string-append coreutils "/bin/true")))
  2815. (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
  2816. (native-inputs
  2817. `(("icon-naming-utils" ,icon-naming-utils)
  2818. ("intltool" ,intltool)
  2819. ("pkg-config" ,pkg-config)))
  2820. (home-page "https://wiki.gnome.org/Personalization")
  2821. (synopsis "GNOME icon theme")
  2822. (description "Icons for the GNOME desktop.")
  2823. (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
  2824. ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
  2825. (define-public adwaita-icon-theme
  2826. (package (inherit gnome-icon-theme)
  2827. (name "adwaita-icon-theme")
  2828. (version "40.1.1")
  2829. (source (origin
  2830. (method url-fetch)
  2831. (uri (string-append "mirror://gnome/sources/" name "/"
  2832. (version-major version) "/"
  2833. name "-" version ".tar.xz"))
  2834. (sha256
  2835. (base32
  2836. "1xpqa1rgmixlp953938d08xvf7kv36h747ysial8g65dsrp46v0b"))))
  2837. (native-inputs
  2838. `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
  2839. (define-public tango-icon-theme
  2840. (package
  2841. (name "tango-icon-theme")
  2842. (version "0.8.90")
  2843. (source (origin
  2844. (method url-fetch)
  2845. (uri (string-append "http://tango.freedesktop.org/releases/"
  2846. "tango-icon-theme-" version ".tar.bz2"))
  2847. (sha256
  2848. (base32
  2849. "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
  2850. (build-system gnu-build-system)
  2851. (native-inputs
  2852. `(("icon-naming-utils" ,icon-naming-utils)
  2853. ("intltool" ,intltool)
  2854. ("imagemagick" ,imagemagick)
  2855. ("pkg-config" ,pkg-config)))
  2856. (home-page "http://tango-project.org/")
  2857. (synopsis "Tango icon theme")
  2858. (description "This is an icon theme that follows the Tango visual
  2859. guidelines.")
  2860. (license license:public-domain)))
  2861. (define-public shared-mime-info
  2862. (package
  2863. (name "shared-mime-info")
  2864. (version "1.15")
  2865. (source (origin
  2866. (method url-fetch)
  2867. (uri (string-append
  2868. "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
  2869. "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
  2870. ".tar.xz"))
  2871. (sha256
  2872. (base32
  2873. "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
  2874. (build-system gnu-build-system)
  2875. (arguments
  2876. ;; The build system appears not to be parallel-safe.
  2877. '(#:parallel-build? #f))
  2878. (inputs
  2879. `(("glib" ,glib)
  2880. ("libxml2" ,libxml2)))
  2881. (native-inputs
  2882. `(("gettext" ,gettext-minimal)
  2883. ("itstool" ,itstool)
  2884. ("pkg-config" ,pkg-config)))
  2885. (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
  2886. (synopsis "Database of common MIME types")
  2887. (description
  2888. "The shared-mime-info package contains the core database of common types
  2889. and the update-mime-database command used to extend it. It requires glib2 to
  2890. be installed for building the update command. Additionally, it uses intltool
  2891. for translations, though this is only a dependency for the maintainers. This
  2892. database is translated at Transifex.")
  2893. (license license:gpl2+)))
  2894. (define-public system-config-printer
  2895. (package
  2896. (name "system-config-printer")
  2897. (version "1.5.15")
  2898. (source
  2899. (origin
  2900. (method url-fetch)
  2901. (uri (string-append
  2902. "https://github.com/OpenPrinting/system-config-printer/releases/"
  2903. "download/v" version
  2904. "/system-config-printer-" version ".tar.xz"))
  2905. (sha256
  2906. (base32 "12d6xx51vizc476zfnsga9q09nflp51ipn6y7lhi9w2v4772dlpv"))))
  2907. (build-system glib-or-gtk-build-system)
  2908. (arguments
  2909. `(#:imported-modules ((guix build python-build-system)
  2910. ,@%glib-or-gtk-build-system-modules)
  2911. #:phases
  2912. (modify-phases %standard-phases
  2913. (add-after 'unpack 'patch-Makefile.am
  2914. (lambda _
  2915. ;; The Makefile generates some scripts, so set a valid shebang
  2916. (substitute* "Makefile.am"
  2917. (("/bin/bash") (which "bash")))
  2918. (delete-file "configure")
  2919. #t))
  2920. (add-after 'unpack 'patch-docbook-xml
  2921. (lambda* (#:key inputs #:allow-other-keys)
  2922. ;; Modify the man XML otherwise xmlto tries to access the network
  2923. (substitute* "man/system-config-printer.xml"
  2924. (("http://www.oasis-open.org/docbook/xml/4.1.2/")
  2925. (string-append (assoc-ref inputs "docbook-xml")
  2926. "/xml/dtd/docbook/")))
  2927. #t))
  2928. (add-after 'install 'wrap-for-python
  2929. (@@ (guix build python-build-system) wrap))
  2930. (add-after 'install 'wrap
  2931. (lambda* (#:key outputs #:allow-other-keys)
  2932. (let ((out (assoc-ref outputs "out"))
  2933. (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
  2934. (for-each
  2935. (lambda (program)
  2936. (wrap-program program
  2937. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
  2938. (map (lambda (name)
  2939. (string-append out "/bin/" name))
  2940. '("system-config-printer"
  2941. "system-config-printer-applet"
  2942. "install-printerdriver"
  2943. "scp-dbus-service"))))
  2944. #t)))))
  2945. (inputs
  2946. `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  2947. ("gobject-introspection" ,gobject-introspection)
  2948. ("python" ,python)
  2949. ("cups" ,cups)
  2950. ("gtk+" ,gtk+)
  2951. ("python-dbus" ,python-dbus)
  2952. ("python-pygobject" ,python-pygobject)
  2953. ("python-pycups" ,python-pycups)
  2954. ("python-requests" ,python-requests)
  2955. ("python-pycairo" ,python-pycairo)
  2956. ("libnotify" ,libnotify)
  2957. ("packagekit" ,packagekit)))
  2958. (native-inputs
  2959. `(("pkg-config" ,pkg-config)
  2960. ("desktop-file-utils" ,desktop-file-utils)
  2961. ("glib" ,glib)
  2962. ("autoconf" ,autoconf)
  2963. ("automake" ,automake)
  2964. ("intltool" ,intltool)
  2965. ("xmlto" ,xmlto)
  2966. ("docbook-xml" ,docbook-xml-4.1.2)
  2967. ("docbook-xsl" ,docbook-xsl)
  2968. ("libxml2" ,libxml2)))
  2969. (home-page "https://github.com/zdohnal/system-config-printer")
  2970. (synopsis "CUPS administration tool")
  2971. (description
  2972. "system-config-printer is a CUPS administration tool. It's written in
  2973. Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
  2974. configuring CUPS.")
  2975. (license license:gpl2+)))
  2976. (define-public hicolor-icon-theme
  2977. (package
  2978. (name "hicolor-icon-theme")
  2979. (version "0.17")
  2980. (source
  2981. (origin
  2982. (method url-fetch)
  2983. (uri (string-append "https://icon-theme.freedesktop.org/releases/"
  2984. "hicolor-icon-theme-" version ".tar.xz"))
  2985. (sha256
  2986. (base32
  2987. "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
  2988. (build-system gnu-build-system)
  2989. (arguments
  2990. `(#:tests? #f)) ; no check target
  2991. (home-page "https://icon-theme.freedesktop.org/releases/")
  2992. (synopsis
  2993. "Freedesktop icon theme")
  2994. (description
  2995. "Freedesktop icon theme.")
  2996. (license license:gpl2)))
  2997. (define-public libnotify
  2998. (package
  2999. (name "libnotify")
  3000. (version "0.7.9")
  3001. (source
  3002. (origin
  3003. (method url-fetch)
  3004. (uri (string-append "mirror://gnome/sources/" name "/"
  3005. (version-major+minor version) "/"
  3006. name "-" version ".tar.xz"))
  3007. (sha256
  3008. (base32
  3009. "0qa7cx6ra5hwqnxw95b9svgjg5q6ynm8y843iqjszxvds5z53h36"))))
  3010. (build-system meson-build-system)
  3011. (arguments
  3012. `(#:phases
  3013. (modify-phases %standard-phases
  3014. (add-after 'unpack 'fix-docbook
  3015. (lambda* (#:key inputs #:allow-other-keys)
  3016. ;; Don't attempt to download XSL schema.
  3017. (substitute* "meson.build"
  3018. (("http://docbook.sourceforge.net/release/xsl-ns/current\
  3019. /manpages/docbook.xsl")
  3020. (string-append (assoc-ref inputs "docbook-xsl")
  3021. "/xml/xsl/docbook-xsl-"
  3022. ,(package-version docbook-xsl)
  3023. "/manpages/docbook.xsl")))
  3024. #t)))))
  3025. (propagated-inputs
  3026. `(;; In Requires of libnotify.pc.
  3027. ("gdk-pixbuf" ,gdk-pixbuf)
  3028. ("glib" ,glib)))
  3029. (inputs
  3030. `(("gtk+" ,gtk+)
  3031. ("libpng" ,libpng)))
  3032. (native-inputs
  3033. `(("pkg-config" ,pkg-config)
  3034. ("glib" ,glib "bin")
  3035. ("gobject-introspection" ,gobject-introspection)
  3036. ;; For the documentation.
  3037. ("gtk-doc" ,gtk-doc/stable)
  3038. ("xsltproc" ,libxslt)
  3039. ("docbook-xsl" ,docbook-xsl)))
  3040. (home-page "https://developer-next.gnome.org/libnotify/")
  3041. (synopsis
  3042. "GNOME desktop notification library")
  3043. (description
  3044. "Libnotify is a library that sends desktop notifications to a
  3045. notification daemon, as defined in the Desktop Notifications spec. These
  3046. notifications can be used to inform the user about an event or display
  3047. some form of information without getting in the user's way.")
  3048. (license license:lgpl2.1+)))
  3049. (define-public libpeas
  3050. (package
  3051. (name "libpeas")
  3052. (version "1.30.0")
  3053. (source
  3054. (origin
  3055. (method url-fetch)
  3056. (uri (string-append "mirror://gnome/sources/" name "/"
  3057. (version-major+minor version) "/"
  3058. name "-" version ".tar.xz"))
  3059. (sha256
  3060. (base32
  3061. "18xrk1c1ixlhkmykcfiafrl2am470ws687xqvjlq40zwkcp5dx8b"))))
  3062. (build-system meson-build-system)
  3063. (arguments
  3064. '(#:phases
  3065. (modify-phases %standard-phases
  3066. (add-before 'check 'start-xserver
  3067. (lambda* (#:key inputs #:allow-other-keys)
  3068. (let ((xorg-server (assoc-ref inputs "xorg-server"))
  3069. (disp ":1"))
  3070. (setenv "DISPLAY" disp)
  3071. (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache")
  3072. (setenv "XDG_CONFIG_HOME" "/tmp")
  3073. ;; Tests require a running X server.
  3074. (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
  3075. #t))))))
  3076. (inputs
  3077. `(("gtk+" ,gtk+)
  3078. ("glade" ,glade3)
  3079. ("python" ,python)
  3080. ("python-pygobject" ,python-pygobject)))
  3081. (native-inputs
  3082. `(("pkg-config" ,pkg-config)
  3083. ("gettext" ,gettext-minimal)
  3084. ("glib:bin" ,glib "bin")
  3085. ("gobject-introspection" ,gobject-introspection)
  3086. ("xorg-server" ,xorg-server-for-tests)))
  3087. (propagated-inputs
  3088. ;; The .pc file "Requires" gobject-introspection.
  3089. `(("gobject-introspection" ,gobject-introspection)))
  3090. (home-page "https://wiki.gnome.org/Libpeas")
  3091. (synopsis "GObject plugin system")
  3092. (description
  3093. "Libpeas is a gobject-based plugin engine, targeted at giving every
  3094. application the chance to assume its own extensibility. It also has a set of
  3095. features including, but not limited to: multiple extension points; on-demand
  3096. (lazy) programming language support for C, Python and JS; simplicity of the
  3097. API.")
  3098. (license license:lgpl2.0+)))
  3099. (define-public gtkglext
  3100. (package
  3101. (name "gtkglext")
  3102. (version "1.2.0")
  3103. (source (origin
  3104. (method url-fetch)
  3105. (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
  3106. version "/gtkglext-" version ".tar.gz"))
  3107. (sha256
  3108. (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
  3109. (patches (search-patches
  3110. "gtkglext-disable-disable-deprecated.patch"))))
  3111. (build-system gnu-build-system)
  3112. (arguments
  3113. `(#:phases
  3114. (modify-phases %standard-phases
  3115. ;; Fix a collision between a local variable and a definition from
  3116. ;; glibc's string.h.
  3117. (add-after 'unpack 'fix-collision
  3118. (lambda _
  3119. (substitute* "gdk/gdkglshapes.c"
  3120. ((" index") " triangle_index"))
  3121. #t)))))
  3122. (inputs `(("gtk+" ,gtk+-2)
  3123. ("mesa" ,mesa)
  3124. ("glu" ,glu)
  3125. ("libx11" ,libx11)
  3126. ("libxt" ,libxt)))
  3127. (native-inputs `(("pkg-config" ,pkg-config)
  3128. ("glib" ,glib "bin")))
  3129. (propagated-inputs `(("pangox-compat" ,pangox-compat)))
  3130. (home-page "https://projects.gnome.org/gtkglext")
  3131. (synopsis "OpenGL extension to GTK+")
  3132. (description "GtkGLExt is an OpenGL extension to GTK+. It provides
  3133. additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
  3134. API add-ons to make GTK+ widgets OpenGL-capable.")
  3135. (license license:lgpl2.1+)))
  3136. (define-public glade3
  3137. (package
  3138. (name "glade")
  3139. (version "3.38.2")
  3140. (source (origin
  3141. (method url-fetch)
  3142. (uri (string-append "mirror://gnome/sources/" name "/"
  3143. (version-major+minor version) "/"
  3144. name "-" version ".tar.xz"))
  3145. (sha256
  3146. (base32
  3147. "1dxsiz9ahqkxg2a1dw9sbd8jg59y5pdz4c1gvnbmql48gmj8gz4q"))
  3148. (patches (search-patches
  3149. "glade-gls-set-script-name.patch"
  3150. "glade-test-widget-null-icon.patch"))))
  3151. (build-system meson-build-system)
  3152. (arguments
  3153. `(#:phases
  3154. (modify-phases %standard-phases
  3155. (add-after 'unpack 'skip-gtk-update-icon-cache
  3156. ;; Don't create 'icon-theme.cache'.
  3157. (lambda _
  3158. (substitute* "meson_post_install.py"
  3159. (("gtk-update-icon-cache") "true"))))
  3160. ;; XXX: Remove it once this issue is fixed:
  3161. ;; https://issues.guix.gnu.org/50105.
  3162. (add-after 'unpack 'fix-tests
  3163. (lambda _
  3164. (substitute* "tests/meson.build"
  3165. (("\\['modules") "#['modules"))))
  3166. (add-before 'configure 'fix-docbook
  3167. (lambda* (#:key inputs #:allow-other-keys)
  3168. (substitute* "man/meson.build"
  3169. (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
  3170. (string-append (assoc-ref inputs "docbook-xsl")
  3171. "/xml/xsl/docbook-xsl-"
  3172. ,(package-version docbook-xsl)
  3173. "/manpages/docbook.xsl")))
  3174. #t))
  3175. (add-before 'check 'pre-check
  3176. (lambda _
  3177. (setenv "HOME" "/tmp")
  3178. ;; Tests require a running X server.
  3179. (system "Xvfb :1 &")
  3180. (setenv "DISPLAY" ":1")
  3181. #t)))))
  3182. (inputs
  3183. `(("gtk+" ,gtk+)
  3184. ("libxml2" ,libxml2)))
  3185. (native-inputs
  3186. `(("hicolor-icon-theme" ,hicolor-icon-theme)
  3187. ("intltool" ,intltool)
  3188. ("itstool" ,itstool)
  3189. ("libxslt" ,libxslt) ;for xsltproc
  3190. ("docbook-xml" ,docbook-xml-4.2)
  3191. ("docbook-xsl" ,docbook-xsl)
  3192. ("glib:bin" ,glib "bin")
  3193. ("python-pygobject" ,python-pygobject)
  3194. ("gobject-introspection" ,gobject-introspection)
  3195. ("gjs" ,gjs)
  3196. ("pkg-config" ,pkg-config)
  3197. ("xorg-server" ,xorg-server-for-tests)))
  3198. (home-page "https://glade.gnome.org")
  3199. (synopsis "GTK+ rapid application development tool")
  3200. (description "Glade is a rapid application development (RAD) tool to
  3201. enable quick & easy development of user interfaces for the GTK+ toolkit and
  3202. the GNOME desktop environment.")
  3203. (license license:lgpl2.0+)
  3204. (native-search-paths (list (search-path-specification
  3205. (variable "GLADE_CATALOG_SEARCH_PATH")
  3206. (files '("share/glade/catalogs")))
  3207. (search-path-specification
  3208. (variable "GLADE_MODULE_SEARCH_PATH")
  3209. (files '("lib/glade/modules")))))))
  3210. (define-public libcroco
  3211. (package
  3212. (name "libcroco")
  3213. (version "0.6.13")
  3214. (source (origin
  3215. (method url-fetch)
  3216. (uri (string-append "mirror://gnome/sources/" name "/"
  3217. (version-major+minor version) "/"
  3218. name "-" version ".tar.xz"))
  3219. (patches (search-patches "libcroco-CVE-2020-12825.patch"))
  3220. (sha256
  3221. (base32
  3222. "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
  3223. (build-system gnu-build-system)
  3224. (native-inputs
  3225. `(("pkg-config" ,pkg-config)))
  3226. (inputs
  3227. `(("glib" ,glib)
  3228. ("libxml2" ,libxml2)
  3229. ("zlib" ,zlib)))
  3230. (home-page "https://github.com/GNOME/libcroco")
  3231. (synopsis "CSS2 parsing and manipulation library")
  3232. (description
  3233. "Libcroco is a standalone CSS2 parsing and manipulation library.
  3234. The parser provides a low level event driven SAC-like API and a CSS object
  3235. model like API. Libcroco provides a CSS2 selection engine and an experimental
  3236. XML/CSS rendering engine.")
  3237. ;; LGPLv2.1-only.
  3238. (license license:lgpl2.1)))
  3239. (define-public libgsf
  3240. (package
  3241. (name "libgsf")
  3242. (version "1.14.47")
  3243. (source (origin
  3244. (method url-fetch)
  3245. (uri (string-append "mirror://gnome/sources/" name "/"
  3246. (version-major+minor version) "/"
  3247. name "-" version ".tar.xz"))
  3248. (sha256
  3249. (base32
  3250. "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
  3251. (build-system glib-or-gtk-build-system)
  3252. (outputs '("out" "bin" "doc"))
  3253. (arguments
  3254. `(#:configure-flags
  3255. (list
  3256. "--disable-static"
  3257. "--enable-introspection"
  3258. (string-append "--with-gir-dir="
  3259. (assoc-ref %outputs "out")
  3260. "/share/gir-"
  3261. ,(version-major
  3262. (package-version gobject-introspection))
  3263. ".0")
  3264. (string-append "--with-typelib-dir="
  3265. (assoc-ref %outputs "out")
  3266. "/lib/girepository-"
  3267. ,(version-major
  3268. (package-version gobject-introspection))
  3269. ".0")
  3270. (string-append "--with-html-dir="
  3271. (assoc-ref %outputs "doc")
  3272. "/share/gtk-doc/html")
  3273. "--with-zlib"
  3274. "--with-bz2")
  3275. #:phases
  3276. (modify-phases %standard-phases
  3277. (add-after 'unpack 'patch-docbook-xml
  3278. (lambda* (#:key inputs #:allow-other-keys)
  3279. (with-directory-excursion "doc"
  3280. (substitute* "gsf-docs.xml"
  3281. (("http://www.oasis-open.org/docbook/xml/4.5/")
  3282. (string-append (assoc-ref inputs "docbook-xml")
  3283. "/xml/dtd/docbook/"))))
  3284. #t)))))
  3285. (native-inputs
  3286. `(("docbook-xml" ,docbook-xml)
  3287. ("gettext" ,gettext-minimal)
  3288. ("gobject-introspection" ,gobject-introspection)
  3289. ("perl" ,perl)
  3290. ("perl-xml-parser" ,perl-xml-parser)
  3291. ("pkg-config" ,pkg-config)
  3292. ("python" ,python-wrapper)))
  3293. (inputs
  3294. `(("bzip2" ,bzip2)
  3295. ("gdk-pixbuf" ,gdk-pixbuf)
  3296. ("zlib" ,zlib)))
  3297. (propagated-inputs
  3298. `(("glib" ,glib)
  3299. ("libxml2" ,libxml2)))
  3300. (synopsis "G Structured File Library")
  3301. (description "Libgsf aims to provide an efficient extensible I/O abstraction
  3302. for dealing with different structured file formats.")
  3303. (home-page "https://gitlab.gnome.org/GNOME/libgsf")
  3304. (license
  3305. (list
  3306. ;; Library
  3307. license:lgpl2.1+
  3308. ;; Others
  3309. license:lgpl2.0+))))
  3310. (define-public librsvg
  3311. (package
  3312. (name "librsvg")
  3313. (version "2.50.7")
  3314. (source (origin
  3315. (method url-fetch)
  3316. (uri (string-append "mirror://gnome/sources/librsvg/"
  3317. (version-major+minor version) "/"
  3318. "librsvg-" version ".tar.xz"))
  3319. (sha256
  3320. (base32
  3321. "1g3f8byg5w08fx1bka12mmpl59v6a4q2p827w6m2la6mijq63yzz"))
  3322. (modules '((guix build utils)))
  3323. (snippet
  3324. '(begin (delete-file-recursively "vendor")))))
  3325. (build-system cargo-build-system)
  3326. (outputs '("out" "doc"))
  3327. (arguments
  3328. `(#:install-source? #f
  3329. #:modules
  3330. ((guix build cargo-build-system)
  3331. (guix build utils)
  3332. ((guix build gnu-build-system) #:prefix gnu:))
  3333. #:cargo-inputs
  3334. (("rust-bitflags" ,rust-bitflags-1)
  3335. ("rust-cairo-rs" ,rust-cairo-rs-0.8)
  3336. ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
  3337. ("rust-cast" ,rust-cast-0.2)
  3338. ("rust-cssparser" ,rust-cssparser-0.27)
  3339. ("rust-data-url" ,rust-data-url-0.1)
  3340. ("rust-encoding" ,rust-encoding-0.2)
  3341. ("rust-float-cmp" ,rust-float-cmp-0.8)
  3342. ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
  3343. ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
  3344. ("rust-gio" ,rust-gio-0.8)
  3345. ("rust-gio-sys" ,rust-gio-sys-0.9)
  3346. ("rust-glib" ,rust-glib-0.9)
  3347. ("rust-glib-sys" ,rust-glib-sys-0.9)
  3348. ("rust-gobject-sys" ,rust-gobject-sys-0.9)
  3349. ("rust-itertools" ,rust-itertools-0.9)
  3350. ("rust-language-tags" ,rust-language-tags-0.2)
  3351. ("rust-libc" ,rust-libc-0.2)
  3352. ("rust-locale-config" ,rust-locale-config-0.3)
  3353. ("rust-markup5ever" ,rust-markup5ever-0.10)
  3354. ("rust-nalgebra" ,rust-nalgebra-0.21)
  3355. ("rust-num-traits" ,rust-num-traits-0.2)
  3356. ("rust-once-cell" ,rust-once-cell-1)
  3357. ("rust-pkg-config" ,rust-pkg-config-0.3)
  3358. ("rust-pango" ,rust-pango-0.8)
  3359. ("rust-pango-sys" ,rust-pango-sys-0.9)
  3360. ("rust-pangocairo" ,rust-pangocairo-0.9)
  3361. ("rust-rayon" ,rust-rayon-1)
  3362. ("rust-rctree" ,rust-rctree-0.3)
  3363. ("rust-rgb" ,rust-rgb-0.8)
  3364. ("rust-regex" ,rust-regex-1)
  3365. ("rust-selectors" ,rust-selectors-0.22)
  3366. ("rust-string-cache" ,rust-string-cache-0.8)
  3367. ("rust-tinyvec" ,rust-tinyvec-0.3)
  3368. ("rust-url" ,rust-url-2)
  3369. ("rust-xml5ever" ,rust-xml5ever-0.16))
  3370. #:cargo-development-inputs
  3371. (("rust-assert-cmd" ,rust-assert-cmd-1)
  3372. ("rust-cairo-rs" ,rust-cairo-rs-0.8)
  3373. ("rust-chrono" ,rust-chrono-0.4)
  3374. ("rust-criterion" ,rust-criterion-0.3)
  3375. ("rust-float-cmp" ,rust-float-cmp-0.8)
  3376. ("rust-lopdf" ,rust-lopdf-0.26)
  3377. ("rust-png" ,rust-png-0.16)
  3378. ("rust-predicates" ,rust-predicates-1)
  3379. ("rust-tempfile" ,rust-tempfile-3))
  3380. #:phases
  3381. (modify-phases %standard-phases
  3382. (add-after 'unpack 'patch-docbook-xml
  3383. (lambda* (#:key inputs #:allow-other-keys)
  3384. (with-directory-excursion "doc"
  3385. (substitute* "rsvg-docs.xml"
  3386. (("http://www.oasis-open.org/docbook/xml/4.3/")
  3387. (string-append (assoc-ref inputs "docbook-xml")
  3388. "/xml/dtd/docbook/"))))))
  3389. (add-after 'unpack 'prepare-for-build
  3390. (lambda _
  3391. ;; In lieu of #:make-flags
  3392. (setenv "CC" ,(cc-for-target))
  3393. ;; Something about the build environment resists building
  3394. ;; successfully with the '--locked' flag.
  3395. (substitute* '("Makefile.am" "Makefile.in")
  3396. (("--locked") ""))))
  3397. (add-before 'configure 'pre-configure
  3398. (lambda _
  3399. (substitute* "gdk-pixbuf-loader/Makefile.in"
  3400. ;; By default the gdk-pixbuf loader is installed under
  3401. ;; gdk-pixbuf's prefix. Work around that.
  3402. (("gdk_pixbuf_moduledir = .*$")
  3403. (string-append "gdk_pixbuf_moduledir = "
  3404. "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
  3405. "loaders\n"))
  3406. ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
  3407. (("gdk_pixbuf_cache_file = .*$")
  3408. "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))))
  3409. (add-after 'configure 'gnu-configure
  3410. (lambda* (#:key outputs #:allow-other-keys #:rest args)
  3411. (apply (assoc-ref gnu:%standard-phases 'configure)
  3412. #:configure-flags
  3413. (list "--disable-static"
  3414. "--enable-vala"
  3415. (string-append "--with-html-dir="
  3416. (assoc-ref outputs "doc")
  3417. "/share/gtk-doc/html"))
  3418. args)))
  3419. (add-after 'configure 'dont-vendor-self
  3420. (lambda* (#:key vendor-dir #:allow-other-keys)
  3421. ;; Don't keep the whole tarball in the vendor directory
  3422. (delete-file-recursively
  3423. (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))))
  3424. (replace 'build
  3425. (assoc-ref gnu:%standard-phases 'build))
  3426. (add-before 'check 'ignore-failing-tests
  3427. ;; stderr=```/tmp/guix-build-.../librsvg-2.50.1/rsvg-convert: line 150: ls: command not found
  3428. (lambda _
  3429. (substitute* "tests/src/cmdline/rsvg_convert.rs"
  3430. (("fn background_color_option_invalid_color_yields_error" all)
  3431. (string-append "#[ignore] " all))
  3432. (("fn empty_input_yields_error" all)
  3433. (string-append "#[ignore] " all))
  3434. (("fn empty_svg_yields_error" all)
  3435. (string-append "#[ignore] " all))
  3436. (("fn env_source_data_epoch_empty" all)
  3437. (string-append "#[ignore] " all))
  3438. (("fn env_source_data_epoch_no_digits" all)
  3439. (string-append "#[ignore] " all))
  3440. (("fn env_source_data_epoch_trailing_garbage" all)
  3441. (string-append "#[ignore] " all))
  3442. (("fn export_id_option_error" all)
  3443. (string-append "#[ignore] " all))
  3444. (("fn huge_zoom_factor_yields_error" all)
  3445. (string-append "#[ignore] " all))
  3446. (("fn multiple_input_files_not_allowed_for_png_output" all)
  3447. (string-append "#[ignore] " all))
  3448. (("fn stylesheet_option_error" all)
  3449. (string-append "#[ignore] " all)))))
  3450. (replace 'check
  3451. (lambda* args
  3452. ((assoc-ref gnu:%standard-phases 'check)
  3453. #:test-target "check")))
  3454. (replace 'install
  3455. (assoc-ref gnu:%standard-phases 'install)))))
  3456. (native-inputs
  3457. `(("docbook-xml" ,docbook-xml-4.3)
  3458. ("glib" ,glib "bin")
  3459. ("gobject-introspection" ,gobject-introspection)
  3460. ("pkg-config" ,pkg-config)
  3461. ("python" ,python-wrapper)
  3462. ("ruby" ,ruby)
  3463. ("vala" ,vala)))
  3464. (inputs
  3465. `(("bzip2" ,bzip2)
  3466. ("fontconfig" ,fontconfig)
  3467. ("freetype" ,freetype)
  3468. ("harfbuzz" ,harfbuzz)
  3469. ("libcroco" ,libcroco)
  3470. ("libgsf" ,libgsf)
  3471. ("libxml2" ,libxml2)
  3472. ("pango" ,pango)))
  3473. (propagated-inputs
  3474. `(("cairo" ,cairo)
  3475. ("gdk-pixbuf" ,gdk-pixbuf)
  3476. ("glib" ,glib)))
  3477. (synopsis "SVG rendering library")
  3478. (description "Librsvg is a library to render SVG images to Cairo surfaces.
  3479. GNOME uses this to render SVG icons. Outside of GNOME, other desktop
  3480. environments use it for similar purposes. Wikimedia uses it for Wikipedia's SVG
  3481. diagrams.")
  3482. (home-page "https://wiki.gnome.org/LibRsvg")
  3483. (license license:lgpl2.1+)))
  3484. (define-public libidl
  3485. (package
  3486. (name "libidl")
  3487. (version "0.8.14")
  3488. (source (origin
  3489. (method url-fetch)
  3490. (uri (string-append "mirror://gnome/sources/libIDL/"
  3491. (version-major+minor version) "/"
  3492. "libIDL-" version ".tar.bz2"))
  3493. (sha256
  3494. (base32
  3495. "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
  3496. (build-system gnu-build-system)
  3497. (inputs `(("glib" ,glib)))
  3498. (native-inputs
  3499. `(("pkg-config" ,pkg-config)
  3500. ("flex" ,flex)
  3501. ("bison" ,bison)))
  3502. (home-page "http://freecode.com/projects/libidl")
  3503. (synopsis "Create trees of CORBA Interface Definition Language files")
  3504. (description "Libidl is a library for creating trees of CORBA Interface
  3505. Definition Language (idl) files, which is a specification for defining
  3506. portable interfaces. libidl was initially written for orbit (the orb from the
  3507. GNOME project, and the primary means of libidl distribution). However, the
  3508. functionality was designed to be as reusable and portable as possible.")
  3509. (properties `((upstream-name . "libIDL")))
  3510. (license license:lgpl2.0+)))
  3511. (define-public orbit2
  3512. (package
  3513. (name "orbit2")
  3514. (version "2.14.19")
  3515. (source (origin
  3516. (method url-fetch)
  3517. (uri (let ((upstream-name "ORBit2"))
  3518. (string-append "mirror://gnome/sources/" upstream-name "/"
  3519. (version-major+minor version) "/"
  3520. upstream-name "-" version ".tar.bz2")))
  3521. (sha256
  3522. (base32
  3523. "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
  3524. (build-system gnu-build-system)
  3525. (arguments
  3526. `(;; The "timeout-server" test hangs when run in parallel.
  3527. #:parallel-tests? #f
  3528. #:configure-flags
  3529. '(;; We don't need static libraries, plus they don't build reproducibly
  3530. ;; (non-deterministic ordering of .o files in the archive.)
  3531. "--disable-static"
  3532. ;; The programmer kindly gives us a hook to turn off deprecation
  3533. ;; warnings ...
  3534. "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
  3535. ;; ... which they then completly ignore !!
  3536. #:phases
  3537. (modify-phases %standard-phases
  3538. (add-before 'configure 'ignore-deprecations
  3539. (lambda _
  3540. (substitute* "linc2/src/Makefile.in"
  3541. (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
  3542. #t)))))
  3543. (inputs `(("glib" ,glib)
  3544. ("libidl" ,libidl)))
  3545. (native-inputs
  3546. `(("pkg-config" ,pkg-config)))
  3547. (home-page "https://projects.gnome.org/orbit2/")
  3548. (synopsis "CORBA 2.4-compliant Object Request Broker")
  3549. (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
  3550. featuring mature C, C++ and Python bindings.")
  3551. ;; Licence notice is unclear. The Web page simply say "GPL" without giving
  3552. ;; a version. SOME of the code files have licence notices for GPLv2+.
  3553. ;; The tarball contains files of the text of GPLv2 and LGPLv2.
  3554. (license license:gpl2+)
  3555. (properties `((upstream-name . "ORBit2")))))
  3556. (define-public libbonobo
  3557. (package
  3558. (name "libbonobo")
  3559. (version "2.32.1")
  3560. (source (origin
  3561. (method url-fetch)
  3562. (uri (string-append "mirror://gnome/sources/" name "/"
  3563. (version-major+minor version)
  3564. "/" name "-" version ".tar.bz2"))
  3565. (sha256
  3566. (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
  3567. (patches (search-patches
  3568. "libbonobo-activation-test-race.patch"))))
  3569. (build-system gnu-build-system)
  3570. (arguments
  3571. ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
  3572. `(#:configure-flags
  3573. '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
  3574. ;; ... which they then completly ignore !!
  3575. #:phases
  3576. (modify-phases %standard-phases
  3577. (add-before 'configure 'ignore-deprecations
  3578. (lambda _
  3579. (substitute* "activation-server/Makefile.in"
  3580. (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
  3581. #t)))
  3582. ;; There's apparently a race condition between the server stub
  3583. ;; generation and linking of the example under 'samples/echo' that can
  3584. ;; lead do undefined references when building in parallel, as reported
  3585. ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
  3586. ;; Thus, disable parallel builds.
  3587. #:parallel-build? #f))
  3588. (inputs `(("popt" ,popt)
  3589. ("libxml2" ,libxml2)))
  3590. ;; The following are Required by the .pc file
  3591. (propagated-inputs
  3592. `(("glib" ,glib)
  3593. ("orbit2" ,orbit2)))
  3594. (native-inputs
  3595. `(("intltool" ,intltool)
  3596. ("pkg-config" ,pkg-config)
  3597. ("glib" ,glib "bin") ; for glib-genmarshal, etc.
  3598. ("flex" ,flex)
  3599. ("bison" ,bison)))
  3600. (home-page "https://developer.gnome.org/libbonobo/")
  3601. (synopsis "Framework for creating reusable components for use in GNOME applications")
  3602. (description "Bonobo is a framework for creating reusable components for
  3603. use in GNOME applications, built on top of CORBA.")
  3604. ;; Licence not explicitly stated. Source files contain no licence notices.
  3605. ;; Tarball contains text of both GPLv2 and LGPLv2
  3606. ;; GPLv2 covers both conditions
  3607. (license license:gpl2+)))
  3608. (define-public gconf
  3609. (package
  3610. (name "gconf")
  3611. (version "3.2.6")
  3612. (source (origin
  3613. (method url-fetch)
  3614. (uri
  3615. (let ((upstream-name "GConf"))
  3616. (string-append "mirror://gnome/sources/" upstream-name "/"
  3617. (version-major+minor version) "/"
  3618. upstream-name "-" version ".tar.xz")))
  3619. (sha256
  3620. (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
  3621. (build-system gnu-build-system)
  3622. (inputs `(("dbus-glib" ,dbus-glib)
  3623. ("libxml2" ,libxml2)))
  3624. (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
  3625. ("orbit2" ,orbit2)))
  3626. (native-inputs
  3627. `(("intltool" ,intltool)
  3628. ("glib" ,glib "bin") ; for glib-genmarshal, etc.
  3629. ("pkg-config" ,pkg-config)))
  3630. (home-page "https://projects.gnome.org/gconf/")
  3631. (synopsis "Store application preferences")
  3632. (description "Gconf is a system for storing application preferences. It
  3633. is intended for user preferences; not arbitrary data storage.")
  3634. (license license:lgpl2.0+)
  3635. (properties '((upstream-name . "GConf")))))
  3636. (define-public gnome-mime-data
  3637. (package
  3638. (name "gnome-mime-data")
  3639. (version "2.18.0")
  3640. (source (origin
  3641. (method url-fetch)
  3642. (uri (string-append "mirror://gnome/sources/" name "/"
  3643. (version-major+minor version) "/"
  3644. name "-" version ".tar.bz2"))
  3645. (sha256
  3646. (base32
  3647. "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
  3648. (build-system gnu-build-system)
  3649. (native-inputs
  3650. `(("perl" ,perl)
  3651. ("intltool" ,intltool)))
  3652. (arguments
  3653. '(#:phases (modify-phases %standard-phases
  3654. (add-after 'configure 'use-our-intltool
  3655. (lambda _
  3656. ;; Do not use the bundled intltool commands, which lack
  3657. ;; the "dotless @INC" fixes of our 'intltool' package.
  3658. (substitute* (find-files "." "^Makefile$")
  3659. (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
  3660. (string-append "INTLTOOL_" tool " = intltool-"
  3661. (string-downcase tool) "\n")))
  3662. #t)))))
  3663. (home-page "https://www.gnome.org")
  3664. (synopsis "Base MIME and Application database for GNOME")
  3665. (description "GNOME Mime Data is a module which contains the base MIME
  3666. and Application database for GNOME. The data stored by this module is
  3667. designed to be accessed through the MIME functions in GnomeVFS.")
  3668. (license license:gpl2+)))
  3669. (define-public gnome-vfs
  3670. (package
  3671. (name "gnome-vfs")
  3672. (version "2.24.4")
  3673. (source (origin
  3674. (method url-fetch)
  3675. (uri (string-append "mirror://gnome/sources/" name "/"
  3676. (version-major+minor version) "/"
  3677. name "-" version ".tar.bz2"))
  3678. (sha256
  3679. (base32
  3680. "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
  3681. (build-system gnu-build-system)
  3682. (arguments
  3683. `(#:phases
  3684. (modify-phases %standard-phases
  3685. (add-before 'configure 'ignore-deprecations
  3686. (lambda _
  3687. (substitute* '("libgnomevfs/Makefile.in"
  3688. "daemon/Makefile.in")
  3689. (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
  3690. #t))
  3691. (add-before 'configure 'patch-test-async-cancel-to-never-fail
  3692. (lambda _
  3693. (substitute* "test/test-async-cancel.c"
  3694. (("EXIT_FAILURE") "77"))
  3695. #t)))))
  3696. (inputs `(("libxml2" ,libxml2)
  3697. ("dbus-glib" ,dbus-glib)
  3698. ("gconf" ,gconf)
  3699. ("gnome-mime-data" ,gnome-mime-data)
  3700. ("zlib" ,zlib)))
  3701. (native-inputs
  3702. `(("glib" ,glib "bin") ; for glib-mkenums, etc.
  3703. ("intltool" ,intltool)
  3704. ("pkg-config" ,pkg-config)))
  3705. (home-page "https://developer.gnome.org/gnome-vfs/")
  3706. (synopsis "Access files and folders in GNOME applications")
  3707. (description
  3708. "GnomeVFS is the core library used to access files and folders in GNOME
  3709. applications. It provides a file system abstraction which allows applications
  3710. to access local and remote files with a single consistent API.")
  3711. (license license:lgpl2.0+)))
  3712. (define-public libgnome
  3713. (package
  3714. (name "libgnome")
  3715. (version "2.32.1")
  3716. (source (origin
  3717. (method url-fetch)
  3718. (uri (string-append "mirror://gnome/sources/" name "/"
  3719. (version-major+minor version) "/"
  3720. name "-" version ".tar.bz2"))
  3721. (sha256
  3722. (base32
  3723. "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
  3724. (patches (search-patches "libgnome-encoding.patch"))))
  3725. (build-system gnu-build-system)
  3726. (arguments
  3727. `(#:phases
  3728. (modify-phases %standard-phases
  3729. (add-before 'configure 'enable-deprecated
  3730. (lambda _
  3731. (substitute* "libgnome/Makefile.in"
  3732. (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
  3733. #t)))))
  3734. (inputs `(("libxml2" ,libxml2)))
  3735. (native-inputs
  3736. `(("glib" ,glib "bin") ; for glib-mkenums, etc.
  3737. ("intltool" ,intltool)
  3738. ("pkg-config" ,pkg-config)))
  3739. ;; The following are listed as Required in the .pc file
  3740. ;; (except for libcanberra -- which seems to be oversight on the part
  3741. ;; of the upstream developers -- anything that links against libgnome,
  3742. ;; must also link against libcanberra
  3743. (propagated-inputs
  3744. `(("libcanberra" ,libcanberra)
  3745. ("libbonobo" ,libbonobo)
  3746. ("gconf" ,gconf)
  3747. ("gnome-vfs" ,gnome-vfs)
  3748. ("popt" ,popt))) ;gnome-program.h includes popt.h
  3749. (home-page "https://developer.gnome.org/libgnome/")
  3750. (synopsis "Useful routines for building applications")
  3751. (description "The libgnome library provides a number of useful routines
  3752. for building modern applications, including session management, activation of
  3753. files and URIs, and displaying help.")
  3754. (license license:lgpl2.0+)))
  3755. (define-public libart-lgpl
  3756. (package
  3757. (name "libart-lgpl")
  3758. (version "2.3.21")
  3759. (source (origin
  3760. (method url-fetch)
  3761. (uri (let ((upstream-name "libart_lgpl"))
  3762. (string-append "mirror://gnome/sources/" upstream-name "/"
  3763. (version-major+minor version) "/"
  3764. upstream-name "-" version ".tar.bz2")))
  3765. (sha256
  3766. (base32
  3767. "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
  3768. (build-system gnu-build-system)
  3769. (native-inputs
  3770. `(("pkg-config" ,pkg-config)))
  3771. (home-page "https://people.gnome.org/~mathieu/libart")
  3772. (synopsis "2D drawing library")
  3773. (description "Libart is a 2D drawing library intended as a
  3774. high-quality vector-based 2D library with antialiasing and alpha composition.")
  3775. (license license:lgpl2.0+)))
  3776. (define-public libgnomecanvas
  3777. (package
  3778. (name "libgnomecanvas")
  3779. (version "2.30.3")
  3780. (source (origin
  3781. (method url-fetch)
  3782. (uri (string-append "mirror://gnome/sources/" name "/"
  3783. (version-major+minor version) "/"
  3784. name "-" version ".tar.gz"))
  3785. (sha256
  3786. (base32
  3787. "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
  3788. (build-system gnu-build-system)
  3789. ;; Mentioned as Required in the .pc file
  3790. (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
  3791. ("gtk+" ,gtk+-2)))
  3792. (native-inputs
  3793. `(("intltool" ,intltool)
  3794. ("glib" ,glib "bin") ; for glib-genmarshal, etc.
  3795. ("pkg-config" ,pkg-config)))
  3796. (home-page "https://developer.gnome.org/libgnomecanvas/")
  3797. (synopsis "Flexible widget for creating interactive structured graphics")
  3798. (description "The GnomeCanvas widget provides a flexible widget for
  3799. creating interactive structured graphics.")
  3800. (license license:lgpl2.0+)))
  3801. (define-public libgnomecanvasmm
  3802. (package
  3803. (name "libgnomecanvasmm")
  3804. (version "2.26.0")
  3805. (source (origin
  3806. (method url-fetch)
  3807. (uri (string-append "mirror://gnome/sources/" name "/"
  3808. (version-major+minor version) "/"
  3809. name "-" version ".tar.bz2"))
  3810. (sha256
  3811. (base32
  3812. "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
  3813. (build-system gnu-build-system)
  3814. (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
  3815. (native-inputs
  3816. `(("gtkmm-2" ,gtkmm-2)
  3817. ("pkg-config" ,pkg-config)))
  3818. (home-page "https://gtkmm.org")
  3819. (synopsis "C++ bindings to the GNOME Canvas library")
  3820. (description "C++ bindings to the GNOME Canvas library.")
  3821. (license license:lgpl2.0+)))
  3822. (define-public libgnomeui
  3823. (package
  3824. (name "libgnomeui")
  3825. (version "2.24.5")
  3826. (source (origin
  3827. (method url-fetch)
  3828. (uri (string-append "mirror://gnome/sources/" name "/"
  3829. (version-major+minor version) "/"
  3830. name "-" version ".tar.bz2"))
  3831. (patches (search-patches "libgnomeui-utf8.patch"))
  3832. (sha256
  3833. (base32
  3834. "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
  3835. (build-system gnu-build-system)
  3836. ;; Mentioned as Required in the .pc file
  3837. (propagated-inputs `(("libbonoboui" ,libbonoboui)
  3838. ("libgnome" ,libgnome)
  3839. ("libgnomecanvas" ,libgnomecanvas)
  3840. ("libgnome-keyring" ,libgnome-keyring)))
  3841. (inputs `(("libjpeg" ,libjpeg-turbo)
  3842. ("popt" ,popt)
  3843. ("libbonobo" ,libbonobo)
  3844. ("libxml2" ,libxml2)
  3845. ("libglade" ,libglade)))
  3846. (native-inputs
  3847. `(("glib" ,glib "bin") ; for glib-mkenums, etc.
  3848. ("intltool" ,intltool)
  3849. ("pkg-config" ,pkg-config)))
  3850. (home-page "https://developer.gnome.org/libgnomeui/")
  3851. (synopsis "Additional widgets for applications")
  3852. (description "The libgnomeui library provides additional widgets for
  3853. applications. Many of the widgets from libgnomeui have already been
  3854. ported to GTK+.")
  3855. (license license:lgpl2.0+)))
  3856. (define-public libglade
  3857. (package
  3858. (name "libglade")
  3859. (version "2.6.4")
  3860. (source (origin
  3861. (method url-fetch)
  3862. (uri (string-append "mirror://gnome/sources/" name "/"
  3863. (version-major+minor version) "/"
  3864. name "-" version ".tar.bz2"))
  3865. (sha256
  3866. (base32
  3867. "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
  3868. (build-system gnu-build-system)
  3869. (inputs
  3870. `(("python" ,python))) ;; needed for the optional libglade-convert program
  3871. (propagated-inputs
  3872. `(("gtk+-2" ,gtk+-2)
  3873. ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
  3874. (native-inputs
  3875. `(("pkg-config" ,pkg-config)))
  3876. (home-page "https://developer.gnome.org/libglade")
  3877. (synopsis "Load glade interfaces and access the glade built widgets")
  3878. (description "Libglade is a library that provides interfaces for loading
  3879. graphical interfaces described in glade files and for accessing the
  3880. widgets built in the loading process.")
  3881. (license license:gpl2+))) ; This is correct. GPL not LGPL
  3882. (define-public libbonoboui
  3883. (package
  3884. (name "libbonoboui")
  3885. (version "2.24.5")
  3886. (source (origin
  3887. (method url-fetch)
  3888. (uri (string-append "mirror://gnome/sources/" name "/"
  3889. (version-major+minor version) "/"
  3890. name "-" version ".tar.bz2"))
  3891. (sha256
  3892. (base32
  3893. "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
  3894. (build-system gnu-build-system)
  3895. (arguments
  3896. `(#:phases
  3897. (modify-phases %standard-phases
  3898. (add-before 'check 'start-xserver
  3899. (lambda* (#:key inputs #:allow-other-keys)
  3900. (let ((xorg-server (assoc-ref inputs "xorg-server"))
  3901. (disp ":1"))
  3902. (setenv "HOME" (getcwd))
  3903. (setenv "DISPLAY" disp)
  3904. ;; There must be a running X server and make check doesn't start one.
  3905. ;; Therefore we must do it.
  3906. (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
  3907. ;; Mentioned as Required by the .pc file
  3908. (propagated-inputs `(("libxml2" ,libxml2)))
  3909. (inputs
  3910. `(("popt" ,popt)
  3911. ("pangox-compat" ,pangox-compat)
  3912. ("libgnome" ,libgnome)
  3913. ("libgnomecanvas" ,libgnomecanvas)
  3914. ("libglade" ,libglade)))
  3915. (native-inputs
  3916. `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
  3917. ("intltool" ,intltool)
  3918. ("xorg-server" ,xorg-server-for-tests) ; For running the tests
  3919. ("pkg-config" ,pkg-config)))
  3920. (home-page "https://developer.gnome.org/libbonoboui/")
  3921. (synopsis "Some user interface controls using Bonobo")
  3922. (description "The Bonobo UI library provides a number of user interface
  3923. controls using the Bonobo component framework.")
  3924. (license license:lgpl2.0+)))
  3925. (define-public libwnck
  3926. (package
  3927. (name "libwnck")
  3928. (version "3.32.0")
  3929. (source (origin
  3930. (method url-fetch)
  3931. (uri (string-append "mirror://gnome/sources/" name "/"
  3932. (version-major+minor version) "/"
  3933. name "-" version ".tar.xz"))
  3934. (sha256
  3935. (base32
  3936. "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
  3937. (build-system meson-build-system)
  3938. (native-inputs
  3939. `(("pkg-config" ,pkg-config)
  3940. ("glib" ,glib "bin") ; for glib-mkenums
  3941. ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
  3942. ("intltool" ,intltool)))
  3943. (propagated-inputs
  3944. `(("gtk+" ,gtk+)
  3945. ("libxres" ,libxres)
  3946. ("startup-notification" ,startup-notification)))
  3947. (home-page "https://developer.gnome.org/libwnck/")
  3948. (synopsis "Window Navigator Construction Kit")
  3949. (description
  3950. "Libwnck is the Window Navigator Construction Kit, a library for use in
  3951. writing pagers, tasklists, and more generally applications that are dealing
  3952. with window management. It tries hard to respect the Extended Window Manager
  3953. Hints specification (EWMH).")
  3954. (license license:lgpl2.0+)))
  3955. ;; stable version for gtk2, required by xfwm4.
  3956. (define-public libwnck-2
  3957. (package (inherit libwnck)
  3958. (name "libwnck")
  3959. (version "2.30.7")
  3960. (source (origin
  3961. (method url-fetch)
  3962. (uri (string-append "mirror://gnome/sources/" name "/"
  3963. (version-major+minor version) "/"
  3964. name "-" version ".tar.xz"))
  3965. (sha256
  3966. (base32
  3967. "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
  3968. (build-system gnu-build-system)
  3969. (native-inputs
  3970. `(("pkg-config" ,pkg-config)
  3971. ("intltool" ,intltool)))
  3972. (propagated-inputs
  3973. `(("gtk+" ,gtk+-2)
  3974. ("libxres" ,libxres)
  3975. ("startup-notification" ,startup-notification)))))
  3976. (define-public goffice
  3977. (package
  3978. (name "goffice")
  3979. (version "0.10.50")
  3980. (source (origin
  3981. (method url-fetch)
  3982. (uri (string-append "mirror://gnome/sources/goffice/"
  3983. (version-major+minor version) "/"
  3984. "goffice-" version ".tar.xz"))
  3985. (sha256
  3986. (base32 "1p5zbj7cbcfcxd6l8pnph54p6ah1bwf146y810j4bcq8ggf3sp1c"))))
  3987. (build-system gnu-build-system)
  3988. (outputs '("out"
  3989. "doc")) ; 4.0 MiB of gtk-doc
  3990. (arguments
  3991. '(#:configure-flags (list (string-append "--with-html-dir="
  3992. (assoc-ref %outputs "doc")
  3993. "/share/gtk-doc/html"))))
  3994. (inputs
  3995. `(("gtk+" ,gtk+)
  3996. ("libgsf" ,libgsf)
  3997. ("librsvg" ,librsvg)
  3998. ("libxslt" ,libxslt)
  3999. ("libxml2" ,libxml2)))
  4000. (native-inputs
  4001. `(("intltool" ,intltool)
  4002. ("glib" ,glib "bin")
  4003. ("pkg-config" ,pkg-config)))
  4004. (home-page "https://developer.gnome.org/goffice/")
  4005. (synopsis "Document-centric objects and utilities")
  4006. (description "A GLib/GTK+ set of document-centric objects and utilities.")
  4007. (license
  4008. ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
  4009. ;; Note: NOT LGPL
  4010. (list license:gpl2 license:gpl3))))
  4011. (define-public goffice-0.8
  4012. (package (inherit goffice)
  4013. (version "0.8.17")
  4014. (source (origin
  4015. (method url-fetch)
  4016. (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
  4017. (version-major+minor version) "/"
  4018. (package-name goffice) "-" version ".tar.xz"))
  4019. (sha256
  4020. (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
  4021. (arguments
  4022. `(#:phases
  4023. (modify-phases %standard-phases
  4024. (add-after 'unpack 'fix-pcre-check
  4025. (lambda _
  4026. ;; Only glib.h can be included directly. See
  4027. ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
  4028. (substitute* "configure"
  4029. (("glib/gregex\\.h") "glib.h")) #t)))
  4030. ,@(package-arguments goffice)))
  4031. (propagated-inputs
  4032. ;; libgoffice-0.8.pc mentions libgsf-1
  4033. `(("libgsf" ,libgsf)))
  4034. (inputs
  4035. `(("gtk" ,gtk+-2)
  4036. ,@(alist-delete "gtk" (package-inputs goffice))))))
  4037. (define-public gnumeric
  4038. (package
  4039. (name "gnumeric")
  4040. (version "1.12.50")
  4041. (source (origin
  4042. (method url-fetch)
  4043. (uri (string-append "mirror://gnome/sources/gnumeric/"
  4044. (version-major+minor version) "/"
  4045. "gnumeric-" version ".tar.xz"))
  4046. (sha256
  4047. (base32
  4048. "1f0lrj5msg80pgjp38jj6rddf352gwddgip7z4lki66n3fx1k23m"))))
  4049. (build-system glib-or-gtk-build-system)
  4050. (arguments
  4051. `(;; The gnumeric developers don't worry much about failing tests.
  4052. ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
  4053. #:tests? #f
  4054. #:phases
  4055. (modify-phases %standard-phases
  4056. (add-before
  4057. 'configure 'pre-conf
  4058. (lambda* (#:key outputs #:allow-other-keys)
  4059. ;; Make install tries to write into the directory of goffice
  4060. ;; I am informed that this only affects the possibility to embed a
  4061. ;; spreadsheet inside an Abiword document. So presumably when we
  4062. ;; package Abiword we'll have to refer it to this directory.
  4063. (substitute* "configure"
  4064. (("^GOFFICE_PLUGINS_DIR=.*")
  4065. (string-append "GOFFICE_PLUGINS_DIR="
  4066. (assoc-ref outputs "out")
  4067. "/goffice/plugins"))))))))
  4068. (inputs
  4069. `(("glib" ,glib)
  4070. ("gtk+" ,gtk+)
  4071. ("goffice" ,goffice)
  4072. ("libgsf" ,libgsf)
  4073. ("librsvg" ,librsvg)
  4074. ("libxml2" ,libxml2)
  4075. ("libxslt" ,libxslt)
  4076. ("python" ,python)
  4077. ("python-pygobject" ,python-pygobject)
  4078. ("zlib" ,zlib)))
  4079. (native-inputs
  4080. `(("bison" ,bison)
  4081. ("docbook-xml" ,docbook-xml)
  4082. ("intltool" ,intltool)
  4083. ("itstool" ,itstool)
  4084. ("glib:bin" ,glib "bin")
  4085. ("pkg-config" ,pkg-config)))
  4086. (home-page "http://www.gnumeric.org")
  4087. (synopsis "Spreadsheet application")
  4088. (description
  4089. "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
  4090. interoperable with other spreadsheet applications. It has a vast array of
  4091. features beyond typical spreadsheet functionality, such as support for linear
  4092. and non-linear solvers, statistical analysis, and telecommunication
  4093. engineering.")
  4094. (license
  4095. ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
  4096. (list license:gpl2 license:gpl3))))
  4097. (define-public drawing
  4098. (package
  4099. (name "drawing")
  4100. (version "0.8.3")
  4101. (source
  4102. (origin
  4103. (method git-fetch)
  4104. (uri (git-reference
  4105. (url "https://github.com/maoschanz/drawing")
  4106. (commit version)))
  4107. (file-name (git-file-name name version))
  4108. (sha256
  4109. (base32 "0wz9p47riyy3h8b0sqsb6bx416hc6d1a1wyzlfmsxkrqrkwcjcm8"))))
  4110. (build-system meson-build-system)
  4111. (arguments
  4112. `(#:glib-or-gtk? #t
  4113. #:phases
  4114. (modify-phases %standard-phases
  4115. (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
  4116. (lambda* (#:key outputs #:allow-other-keys)
  4117. (let ((prog (string-append (assoc-ref outputs "out")
  4118. "/bin/drawing"))
  4119. (pylib (string-append (assoc-ref outputs "out")
  4120. "/lib/python"
  4121. ,(version-major+minor
  4122. (package-version python))
  4123. "/site-packages")))
  4124. (wrap-program prog
  4125. `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
  4126. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
  4127. (native-inputs
  4128. `(("desktop-file-utils" ,desktop-file-utils)
  4129. ("gettext" ,gettext-minimal)
  4130. ("glib:bin" ,glib "bin")
  4131. ("gobject-introspection" ,gobject-introspection)
  4132. ("gtk+:bin" ,gtk+ "bin")
  4133. ("pkg-config" ,pkg-config)))
  4134. (inputs
  4135. `(("gdk-pixbuf" ,gdk-pixbuf+svg)
  4136. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  4137. ("gtk+" ,gtk+)
  4138. ("pango" ,pango)
  4139. ("python-pycairo" ,python-pycairo)
  4140. ("python-pygobject" ,python-pygobject)))
  4141. (home-page "https://maoschanz.github.io/drawing/")
  4142. (synopsis "Basic image editor for GNOME")
  4143. (description
  4144. "Drawing is a basic image editor aiming at the GNOME desktop.")
  4145. (license license:gpl3+)))
  4146. (define-public gnome-themes-standard
  4147. (package
  4148. (name "gnome-themes-standard")
  4149. (version "3.22.3")
  4150. (source
  4151. (origin
  4152. (method url-fetch)
  4153. (uri (string-append "mirror://gnome/sources/" name "/"
  4154. (version-major+minor version) "/" name "-"
  4155. version ".tar.xz"))
  4156. (sha256
  4157. (base32
  4158. "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
  4159. (build-system gnu-build-system)
  4160. (arguments
  4161. '(#:configure-flags
  4162. ;; Don't create 'icon-theme.cache'.
  4163. (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
  4164. (true (string-append coreutils "/bin/true")))
  4165. (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
  4166. (inputs
  4167. `(("gtk+" ,gtk+)
  4168. ("gtk+-2" ,gtk+-2)
  4169. ("librsvg" ,librsvg)
  4170. ("libxml2" ,libxml2)
  4171. ("glib" ,glib)))
  4172. (native-inputs
  4173. `(("intltool" ,intltool)
  4174. ("glib:bin" ,glib "bin")
  4175. ("pkg-config" ,pkg-config)))
  4176. (home-page "https://launchpad.net/gnome-themes-standard")
  4177. (synopsis "Default GNOME 3 themes")
  4178. (description
  4179. "The default GNOME 3 themes (Adwaita and some accessibility themes).")
  4180. (license license:lgpl2.1+)))
  4181. (define-public seahorse
  4182. (package
  4183. (name "seahorse")
  4184. (version "3.36.2")
  4185. (source
  4186. (origin
  4187. (method url-fetch)
  4188. (uri (string-append "mirror://gnome/sources/" name "/"
  4189. (version-major+minor version) "/" name "-"
  4190. version ".tar.xz"))
  4191. (sha256
  4192. (base32 "16wmxxppgcgfj8zkagcny5af1c81x32ysm9d6j9f2k7bmik21ss5"))))
  4193. (build-system meson-build-system)
  4194. (arguments
  4195. '(#:glib-or-gtk? #t
  4196. #:phases
  4197. (modify-phases %standard-phases
  4198. (add-after 'unpack 'skip-gtk-update-icon-cache
  4199. ;; Don't create 'icon-theme.cache'.
  4200. (lambda _
  4201. (substitute* "build-aux/meson_post_install.py"
  4202. (("gtk-update-icon-cache") "true"))
  4203. #t)))))
  4204. (inputs
  4205. `(("gtk+" ,gtk+)
  4206. ("gcr" ,gcr)
  4207. ("gnupg" ,gnupg)
  4208. ("gpgme" ,gpgme)
  4209. ("openldap" ,openldap)
  4210. ("openssh" ,openssh)
  4211. ("avahi" ,avahi)
  4212. ("libhandy" ,libhandy-0.0)
  4213. ("libpwquality" ,libpwquality)
  4214. ("libsecret" ,libsecret)
  4215. ("libsoup" ,libsoup)))
  4216. (native-inputs
  4217. `(("gettext" ,gettext-minimal)
  4218. ("glib:bin" ,glib "bin")
  4219. ("itstool" ,itstool)
  4220. ("pkg-config" ,pkg-config)
  4221. ("vala" ,vala)
  4222. ("xmllint" ,libxml2)))
  4223. (home-page "https://wiki.gnome.org/Apps/Seahorse")
  4224. (synopsis "Manage encryption keys and passwords in the GNOME keyring")
  4225. (description
  4226. "Seahorse is a GNOME application for managing encryption keys and
  4227. passwords in the GNOME keyring.")
  4228. (license license:gpl2+)))
  4229. (define-public vala
  4230. (package
  4231. (name "vala")
  4232. (version "0.52.0")
  4233. (source (origin
  4234. (method url-fetch)
  4235. (uri (string-append "mirror://gnome/sources/vala/"
  4236. (version-major+minor version) "/"
  4237. "vala-" version ".tar.xz"))
  4238. (sha256
  4239. (base32
  4240. "12y6p8wdjp01vmfhxg2cgh32xnyqq6ivblvrar9clnj6vc867qhx"))))
  4241. (build-system glib-or-gtk-build-system)
  4242. (arguments
  4243. '(#:configure-flags '("--enable-coverage")
  4244. #:phases
  4245. (modify-phases %standard-phases
  4246. (add-after 'unpack 'patch-docbook-xml
  4247. (lambda* (#:key inputs #:allow-other-keys)
  4248. (with-directory-excursion "doc/manual"
  4249. (substitute* '("manual.xml" "version.xml.in")
  4250. (("http://www.oasis-open.org/docbook/xml/4.4/")
  4251. (string-append (assoc-ref inputs "docbook-xml")
  4252. "/xml/dtd/docbook/"))))
  4253. #t))
  4254. (add-before 'check 'pre-check
  4255. (lambda _
  4256. (setenv "CC" "gcc")
  4257. (substitute* "valadoc/tests/libvaladoc\
  4258. /tests-extra-environment.sh"
  4259. (("export PKG_CONFIG_PATH=" m)
  4260. (string-append m "$PKG_CONFIG_PATH:"))))))))
  4261. (native-inputs
  4262. `(("bison" ,bison)
  4263. ("dbus" ,dbus) ; for dbus tests
  4264. ("docbook-xml" ,docbook-xml-4.4)
  4265. ("docbook-xsl" ,docbook-xsl)
  4266. ("flex" ,flex)
  4267. ("gobject-introspection" ,gobject-introspection) ; for gir tests
  4268. ("help2man" ,help2man)
  4269. ("perl" ,perl)
  4270. ("pkg-config" ,pkg-config)
  4271. ("xsltproc" ,libxslt)))
  4272. (propagated-inputs
  4273. `(("glib" ,glib) ; required by libvala-0.40.pc
  4274. ("libgvc" ,graphviz)))
  4275. (home-page "https://wiki.gnome.org/Projects/Vala/")
  4276. (synopsis "Compiler using the GObject type system")
  4277. (description "Vala is a programming language using modern high level
  4278. abstractions without imposing additional runtime requirements and without using
  4279. a different ABI compared to applications and libraries written in C. Vala uses
  4280. the GObject type system and has additional code generation routines that make
  4281. targeting the GNOME stack simple.")
  4282. (license license:lgpl2.1+)))
  4283. (define-public vte
  4284. (package
  4285. (name "vte")
  4286. (version "0.64.2")
  4287. (source (origin
  4288. (method url-fetch)
  4289. (uri (string-append "mirror://gnome/sources/vte/"
  4290. (version-major+minor version) "/"
  4291. "vte-" version ".tar.xz"))
  4292. (sha256
  4293. (base32
  4294. "063ys3330cvhbz1dln9irhciavb2prw098lvhpcc2rx6cl5q4g1b"))))
  4295. (build-system meson-build-system)
  4296. (arguments
  4297. `(#:configure-flags
  4298. '("-Dvapi=true"
  4299. "-D_systemd=false")))
  4300. (native-inputs
  4301. `(("pkg-config" ,pkg-config)
  4302. ("gettext" ,gettext-minimal)
  4303. ("vala" ,vala)
  4304. ("gobject-introspection" ,gobject-introspection)
  4305. ("glib" ,glib "bin") ; for glib-genmarshal, etc.
  4306. ("gperf" ,gperf)
  4307. ("xmllint" ,libxml2)))
  4308. (propagated-inputs
  4309. `(("gtk+" ,gtk+) ; required by vte-2.91.pc
  4310. ("gnutls" ,gnutls) ; ditto
  4311. ("pcre2" ,pcre2))) ; ditto
  4312. (home-page "https://www.gnome.org/")
  4313. (synopsis "Virtual Terminal Emulator")
  4314. (description
  4315. "VTE is a library (libvte) implementing a terminal emulator widget for
  4316. GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
  4317. gnome-terminal, but can also be used to embed a console/terminal in games,
  4318. editors, IDEs, etc.")
  4319. (license license:lgpl2.1+)))
  4320. (define-public vte-ng
  4321. (package
  4322. (inherit vte)
  4323. (name "vte-ng")
  4324. (version "0.58.2.a")
  4325. (home-page "https://github.com/thestinger/vte-ng")
  4326. (source (origin
  4327. (method git-fetch)
  4328. (uri (git-reference (url home-page) (commit version)))
  4329. (file-name (git-file-name name version))
  4330. (sha256
  4331. (base32
  4332. "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
  4333. (build-system meson-build-system)
  4334. (native-inputs
  4335. `(("gtk-doc" ,gtk-doc/stable)
  4336. ,@(package-native-inputs vte)))
  4337. (arguments
  4338. `(#:configure-flags '("-Ddocs=true")))
  4339. (synopsis "Enhanced VTE terminal widget")
  4340. (description
  4341. "VTE is a library (libvte) implementing a terminal emulator widget for
  4342. GTK+, this fork provides additional functions exposed for keyboard text
  4343. selection and URL hints.")))
  4344. ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
  4345. (define-public vte/gtk+-2
  4346. (package (inherit vte)
  4347. (name "vte")
  4348. (version "0.28.2")
  4349. (source (origin
  4350. (method url-fetch)
  4351. (uri (string-append "mirror://gnome/sources/" name "/"
  4352. (version-major+minor version) "/"
  4353. name "-" version ".tar.xz"))
  4354. (sha256
  4355. (base32
  4356. "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
  4357. (patches (search-patches
  4358. "vte-CVE-2012-2738-pt1.patch"
  4359. "vte-CVE-2012-2738-pt2.patch"))))
  4360. (build-system gnu-build-system)
  4361. (arguments
  4362. '(#:configure-flags '("--disable-python")))
  4363. (native-inputs
  4364. `(("pkg-config" ,pkg-config)
  4365. ("intltool" ,intltool)
  4366. ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
  4367. (propagated-inputs
  4368. `(("gtk+" ,gtk+-2) ; required by libvte.pc
  4369. ("ncurses" ,ncurses))))) ; required by libvte.la
  4370. (define-public vinagre
  4371. (package
  4372. (name "vinagre")
  4373. (version "3.22.0")
  4374. (source (origin
  4375. (method url-fetch)
  4376. (uri (string-append "mirror://gnome/sources/" name "/"
  4377. (version-major+minor version) "/"
  4378. name "-" version ".tar.xz"))
  4379. (patches (search-patches "vinagre-newer-freerdp.patch"
  4380. "vinagre-newer-rdp-parameters.patch"))
  4381. (sha256
  4382. (base32
  4383. "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
  4384. (build-system glib-or-gtk-build-system)
  4385. (arguments
  4386. ;; Disable -Werror and such, to avoid build failures on compilation
  4387. ;; warnings.
  4388. '(#:configure-flags '("--enable-compile-warnings=minimum"
  4389. "CFLAGS=-fcommon")
  4390. #:phases
  4391. (modify-phases %standard-phases
  4392. (add-before 'install 'skip-gtk-update-icon-cache
  4393. (lambda _
  4394. ;; Don't create 'icon-theme.cache'
  4395. (substitute* (find-files "." "^Makefile$")
  4396. (("gtk-update-icon-cache") (which "true")))
  4397. #t))
  4398. (add-after 'unpack 'patch-configure
  4399. (lambda _
  4400. (substitute* "configure"
  4401. (("freerdp") "freerdp2"))
  4402. #t)))))
  4403. (native-inputs
  4404. `(("pkg-config" ,pkg-config)
  4405. ("intltool" ,intltool)
  4406. ("itstool" ,itstool)
  4407. ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
  4408. (inputs
  4409. `(("libxml2" ,libxml2)
  4410. ("gtk-vnc" ,gtk-vnc)
  4411. ("gnome-keyring" ,gnome-keyring)
  4412. ("libsecret" ,libsecret)
  4413. ("freerdp" ,freerdp)
  4414. ("spice" ,spice)
  4415. ("spice-gtk" ,spice-gtk)
  4416. ("telepathy-glib" ,telepathy-glib)
  4417. ("vte" ,vte)))
  4418. (home-page "https://wiki.gnome.org/Apps/Vinagre")
  4419. (synopsis "Remote desktop viewer for GNOME")
  4420. (description "Vinagre is a remote display client supporting the VNC, SPICE
  4421. and RDP protocols.")
  4422. (license license:gpl3+)))
  4423. (define-public dconf
  4424. (package
  4425. (name "dconf")
  4426. (version "0.36.0")
  4427. (source (origin
  4428. (method url-fetch)
  4429. (uri (string-append
  4430. "mirror://gnome/sources/" name "/"
  4431. (version-major+minor version) "/"
  4432. name "-" version ".tar.xz"))
  4433. (sha256
  4434. (base32
  4435. "0bfs069pjv6lhp7xrzmrhz3876ay2ryqxzc6mlva1hhz34ibprlz"))))
  4436. (build-system meson-build-system)
  4437. (propagated-inputs
  4438. ;; In Requires of dconf.pc.
  4439. `(("glib" ,glib)))
  4440. (inputs
  4441. `(("gtk+" ,gtk+)
  4442. ("dbus" ,dbus)))
  4443. (native-inputs
  4444. `(("bash-completion" ,bash-completion)
  4445. ("libxslt" ,libxslt) ;for xsltproc
  4446. ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
  4447. ("docbook-xml" ,docbook-xml-4.2)
  4448. ("docbook-xsl" ,docbook-xsl)
  4449. ("glib:bin" ,glib "bin")
  4450. ("gtk-doc" ,gtk-doc/stable)
  4451. ("pkg-config" ,pkg-config)
  4452. ("vala" ,vala)))
  4453. (arguments
  4454. `(#:glib-or-gtk? #t
  4455. #:configure-flags '("-Denable-gtk-doc=true")
  4456. #:phases (modify-phases %standard-phases
  4457. (add-after 'unpack 'increase-test-timeout
  4458. (lambda _
  4459. ;; On big-memory systems, the engine test may take
  4460. ;; much longer than the default of 30 seconds.
  4461. (substitute* "tests/meson.build"
  4462. (("test\\(unit_test\\[0\\], exe" all)
  4463. (string-append all ", timeout : 90")))
  4464. #t)))))
  4465. (home-page "https://developer.gnome.org/dconf/")
  4466. (synopsis "Low-level GNOME configuration system")
  4467. (description "Dconf is a low-level configuration system. Its main purpose
  4468. is to provide a backend to GSettings on platforms that don't already have
  4469. configuration storage systems.")
  4470. (license license:lgpl2.1+)))
  4471. (define-public json-glib
  4472. (package
  4473. (name "json-glib")
  4474. (version "1.6.2")
  4475. (source (origin
  4476. (method url-fetch)
  4477. (uri (string-append "mirror://gnome/sources/" name "/"
  4478. (version-major+minor version) "/"
  4479. name "-" version ".tar.xz"))
  4480. (sha256
  4481. (base32
  4482. "092g2dyy1hhl0ix9kp33wcab0pg1qicnsv0cj5ms9g9qs336cgd3"))))
  4483. (build-system meson-build-system)
  4484. (outputs '("out" "doc"))
  4485. (arguments
  4486. `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
  4487. #:configure-flags
  4488. (list
  4489. "-Ddocs=true"
  4490. "-Dman=true"
  4491. ,@(if (%current-target-system)
  4492. ;; If enabled, gtkdoc-scangobj will try to execute a
  4493. ;; cross-compiled binary.
  4494. '("-Dgtk_doc=disabled"
  4495. ;; Trying to build introspection data when cross-compiling
  4496. ;; causes errors during linking.
  4497. "-Dintrospection=disabled")
  4498. '()))
  4499. #:phases
  4500. (modify-phases %standard-phases
  4501. (add-after 'unpack 'patch-docbook
  4502. ;; TODO(core-updates): Use (or native-inputs inputs)
  4503. ;; unconditionally.
  4504. (lambda* (#:key ,@(if (%current-target-system)
  4505. '(native-inputs)
  4506. '()) inputs #:allow-other-keys)
  4507. (with-directory-excursion "doc"
  4508. (substitute* (find-files "." "\\.xml$")
  4509. (("http://www.oasis-open.org/docbook/xml/4\\.3/")
  4510. (string-append (assoc-ref ,(if (%current-target-system)
  4511. '(or native-inputs inputs)
  4512. 'inputs)
  4513. "docbook-xml")
  4514. "/xml/dtd/docbook/")))
  4515. (substitute* "meson.build"
  4516. (("http://docbook.sourceforge.net/release/xsl/current/")
  4517. (string-append (assoc-ref ,(if (%current-target-system)
  4518. '(or native-inputs inputs)
  4519. 'inputs) "docbook-xsl")
  4520. "/xml/xsl/docbook-xsl-1.79.2/"))))
  4521. #t))
  4522. ;; When cross-compiling, there are no docs to move.
  4523. ,(if (%current-target-system)
  4524. '(add-after 'install 'stub-docs
  4525. (lambda* (#:key outputs #:allow-other-keys)
  4526. ;; The daemon doesn't like empty output paths.
  4527. (mkdir (assoc-ref outputs "doc"))))
  4528. '(add-after 'install 'move-docs
  4529. (lambda* (#:key outputs #:allow-other-keys)
  4530. (let* ((out (assoc-ref outputs "out"))
  4531. (doc (assoc-ref outputs "doc")))
  4532. (mkdir-p (string-append doc "/share"))
  4533. (rename-file
  4534. (string-append out "/share/gtk-doc")
  4535. (string-append doc "/share/gtk-doc"))
  4536. #t)))))))
  4537. (native-inputs
  4538. `(("docbook-xml" ,docbook-xml-4.3)
  4539. ("docbook-xsl" ,docbook-xsl)
  4540. ("gettext" ,gettext-minimal)
  4541. ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
  4542. ("gobject-introspection" ,gobject-introspection)
  4543. ("gtk-doc" ,gtk-doc)
  4544. ("pkg-config" ,pkg-config)
  4545. ("xsltproc" ,libxslt)))
  4546. (inputs
  4547. ;; TODO(core-updates): Make this input unconditional.
  4548. (if (%current-target-system)
  4549. `(("bash-minimal" ,bash-minimal))
  4550. '()))
  4551. (propagated-inputs
  4552. `(("glib" ,glib))) ;according to json-glib-1.0.pc
  4553. (home-page "https://wiki.gnome.org/Projects/JsonGlib")
  4554. (synopsis "Glib and GObject implementation of JSON")
  4555. (description "JSON-GLib is a library providing serialization and
  4556. described by RFC 4627. It implements a full JSON parser and generator using
  4557. GLib and GObject, and integrates JSON with GLib data types.")
  4558. (license license:lgpl2.1+)))
  4559. (define-public libxklavier
  4560. (package
  4561. (name "libxklavier")
  4562. (version "5.4")
  4563. (source (origin
  4564. ;; Note: There's no tarball at ftp.gnome.org for this version.
  4565. (method git-fetch)
  4566. (uri (git-reference
  4567. (url "https://anongit.freedesktop.org/git/libxklavier")
  4568. (commit (string-append "libxklavier-" version))))
  4569. (sha256
  4570. (base32
  4571. "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
  4572. (file-name (git-file-name name version))))
  4573. (build-system gnu-build-system)
  4574. (arguments
  4575. '(#:configure-flags
  4576. (list (string-append "--with-xkb-base="
  4577. (assoc-ref %build-inputs "xkeyboard-config")
  4578. "/share/X11/xkb")
  4579. "--disable-xmodmap-support")))
  4580. (native-inputs
  4581. `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
  4582. ("gobject-introspection" ,gobject-introspection)
  4583. ("pkg-config" ,pkg-config)
  4584. ("gtk-doc" ,gtk-doc/stable)
  4585. ("intltool" ,intltool)
  4586. ("which" ,which)
  4587. ("autoconf" ,autoconf)
  4588. ("automake" ,automake)
  4589. ("libtool" ,libtool)))
  4590. (propagated-inputs
  4591. ;; Required by libxklavier.pc.
  4592. `(("glib" ,glib)
  4593. ("libxml2" ,libxml2)))
  4594. (inputs
  4595. `(("iso-codes" ,iso-codes)
  4596. ("libxi" ,libxi)
  4597. ("libxkbfile" ,libxkbfile)
  4598. ("xkbcomp" ,xkbcomp)
  4599. ("xkeyboard-config" ,xkeyboard-config)))
  4600. (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
  4601. (synopsis "High-level API for X Keyboard Extension")
  4602. (description
  4603. "LibXklavier is a library providing high-level API for X Keyboard
  4604. Extension known as XKB. This library is intended to support XFree86 and other
  4605. commercial X servers. It is useful for creating XKB-related software (layout
  4606. indicators etc).")
  4607. (license license:lgpl2.0+)))
  4608. (define-public python2-rsvg
  4609. ;; XXX: This is actually a subset of gnome-python-desktop.
  4610. (package
  4611. (name "python2-rsvg")
  4612. (version "2.32.0")
  4613. (source
  4614. (origin
  4615. (method url-fetch)
  4616. (uri (string-append
  4617. "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
  4618. version ".tar.bz2"))
  4619. (sha256
  4620. (base32
  4621. "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
  4622. (build-system gnu-build-system)
  4623. (native-inputs
  4624. `(("pkg-config" ,pkg-config)))
  4625. (inputs
  4626. `(("python" ,python-2)
  4627. ("python2-pygtk" ,python2-pygtk)
  4628. ("librsvg" ,librsvg)))
  4629. (home-page "https://www.gnome.org")
  4630. (synopsis "Python bindings to librsvg")
  4631. (description
  4632. "This package provides Python bindings to librsvg, the SVG rendering
  4633. library.")
  4634. ;; This is the license of the rsvg bindings. The license of each module
  4635. ;; of gnome-python-desktop is given in 'COPYING'.
  4636. (license license:lgpl2.1+)))
  4637. (define-public glib-networking
  4638. (package
  4639. (name "glib-networking")
  4640. (version "2.68.2")
  4641. (source (origin
  4642. (method url-fetch)
  4643. (uri (string-append "mirror://gnome/sources/glib-networking/"
  4644. (version-major+minor version) "/"
  4645. "glib-networking-" version ".tar.xz"))
  4646. (sha256
  4647. (base32
  4648. "0kwrsp1xbqf852nqmd5cr7hqw771q0dxkzpzlibdp5zn9q2vqpjk"))
  4649. (patches
  4650. (search-patches "glib-networking-gnutls-binding.patch"))))
  4651. (build-system meson-build-system)
  4652. (native-inputs
  4653. `(("pkg-config" ,pkg-config)
  4654. ("gettext" ,gettext-minimal)))
  4655. (inputs
  4656. `(("glib" ,glib)
  4657. ("gnutls" ,gnutls)
  4658. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  4659. ("libproxy" ,libproxy)))
  4660. (home-page "https://wiki.gnome.org/Projects/GLib")
  4661. (synopsis "Network extensions for GLib")
  4662. (description
  4663. "Glib-networking contains the implementations of certain GLib networking
  4664. features that cannot be implemented directly in GLib itself because of their
  4665. dependencies. Currently it contains GnuTLS and OpenSSL-based implementations of
  4666. GTlsBackend, a libproxy-based implementation of GProxyResolver,
  4667. GLibproxyResolver, and a GNOME GProxyResolver that uses the proxy information
  4668. from the GSettings schemas in gsettings-desktop-schemas.")
  4669. (license license:lgpl2.1+)))
  4670. (define-public rest
  4671. (package
  4672. (name "rest")
  4673. (version "0.8.1")
  4674. (source (origin
  4675. (method url-fetch)
  4676. (uri (string-append "mirror://gnome/sources/rest/"
  4677. (version-major+minor version) "/"
  4678. name "-" version ".tar.xz"))
  4679. (sha256
  4680. (base32
  4681. "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
  4682. (build-system gnu-build-system)
  4683. (arguments
  4684. '(#:tests? #f ; tests require internet connection
  4685. #:configure-flags
  4686. '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
  4687. (native-inputs
  4688. `(("glib-mkenums" ,glib "bin")
  4689. ("gobject-introspection" ,gobject-introspection)
  4690. ("pkg-config" ,pkg-config)))
  4691. (propagated-inputs
  4692. ;; rest-0.7.pc refers to all these.
  4693. `(("glib" ,glib)
  4694. ("libsoup" ,libsoup)
  4695. ("libxml2" ,libxml2)))
  4696. (home-page "https://www.gtk.org/")
  4697. (synopsis "RESTful web api query library")
  4698. (description
  4699. "This library was designed to make it easier to access web services that
  4700. claim to be \"RESTful\". It includes convenience wrappers for libsoup and
  4701. libxml to ease remote use of the RESTful API.")
  4702. (license license:lgpl2.1+)))
  4703. (define-public libsoup
  4704. (package
  4705. (name "libsoup")
  4706. (version "2.72.0")
  4707. (source (origin
  4708. (method url-fetch)
  4709. (uri (string-append "mirror://gnome/sources/libsoup/"
  4710. (version-major+minor version) "/"
  4711. "libsoup-" version ".tar.xz"))
  4712. (sha256
  4713. (base32
  4714. "11skbyw2pw32178q3h8pi7xqa41b2x4k6q4k9f75zxmh8s23y30p"))))
  4715. (build-system meson-build-system)
  4716. (outputs '("out" "doc"))
  4717. (arguments
  4718. `(#:modules ((guix build utils)
  4719. (guix build meson-build-system)
  4720. (ice-9 popen))
  4721. #:configure-flags '("-Dgtk_doc=true")
  4722. #:phases
  4723. (modify-phases %standard-phases
  4724. (add-after 'unpack 'patch-docbook-xml
  4725. (lambda* (#:key inputs #:allow-other-keys)
  4726. (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
  4727. "/xml/dtd/docbook")))
  4728. (substitute* (find-files "docs/reference")
  4729. (("http://.*/docbookx\\.dtd")
  4730. (string-append xmldoc "/docbookx.dtd")))
  4731. #t)))
  4732. (add-after 'unpack 'adjust-tests
  4733. (lambda _
  4734. ;; This test fails due to missing /etc/nsswitch.conf
  4735. ;; in the build environment.
  4736. (substitute* "tests/socket-test.c"
  4737. ((".*/sockets/unconnected.*") ""))
  4738. ;; These fail because "subdomain.localhost" does not resolve in
  4739. ;; the build environment.
  4740. (substitute* "tests/hsts-test.c"
  4741. ((".*/hsts/basic.*") "")
  4742. ((".*/hsts/subdomains.*") "")
  4743. ((".*/hsts/superdomain.*") "")
  4744. ((".*/hsts/utf8-address.*") ""))
  4745. (substitute* "tests/hsts-db-test.c"
  4746. ((".*/hsts-db/subdomains.*") ""))
  4747. ;; FIXME: ssl-test fails, starting with
  4748. ;; glib-networking 2.68.x.
  4749. (substitute* "tests/meson.build"
  4750. (("[ \t]*\\['ssl', true, \\[\\]\\],") ""))
  4751. #t))
  4752. (add-after 'install 'move-doc
  4753. (lambda* (#:key outputs #:allow-other-keys)
  4754. (let ((out (assoc-ref outputs "out"))
  4755. (doc (assoc-ref outputs "doc")))
  4756. (mkdir-p (string-append doc "/share"))
  4757. (copy-recursively (string-append out "/share/gtk-doc")
  4758. (string-append doc "/share/gtk-doc"))
  4759. (delete-file-recursively (string-append out "/share/gtk-doc"))
  4760. #t))))))
  4761. (native-inputs
  4762. `(("docbook-xml" ,docbook-xml-4.1.2)
  4763. ("glib:bin" ,glib "bin") ; for glib-mkenums
  4764. ("gobject-introspection" ,gobject-introspection)
  4765. ("gtk-doc" ,gtk-doc/stable)
  4766. ("intltool" ,intltool)
  4767. ("pkg-config" ,pkg-config)
  4768. ("python" ,python-wrapper)
  4769. ("vala" ,vala)
  4770. ("php" ,php)
  4771. ("curl" ,curl)
  4772. ("httpd" ,httpd)))
  4773. (propagated-inputs
  4774. ;; libsoup-2.4.pc refers to all of these (except where otherwise noted)
  4775. `(("brotli" ,google-brotli)
  4776. ("glib" ,glib)
  4777. ("glib-networking" ,glib-networking) ; for GIO runtime modules
  4778. ("libpsl" ,libpsl)
  4779. ("libxml2" ,libxml2)
  4780. ("sqlite" ,sqlite)
  4781. ("zlib" ,zlib)))
  4782. (inputs
  4783. `(("mit-krb5" ,mit-krb5)
  4784. ("ntlm_auth" ,samba))) ; For ntlm_auth support
  4785. (home-page "https://wiki.gnome.org/Projects/libsoup")
  4786. (synopsis "GLib-based HTTP Library")
  4787. (description
  4788. "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
  4789. and the GLib main loop, to integrate well with GNOME applications.")
  4790. (license license:lgpl2.0+)))
  4791. ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
  4792. (define-public libsoup-minimal
  4793. (package/inherit libsoup
  4794. (name "libsoup-minimal")
  4795. (outputs (delete "doc" (package-outputs libsoup)))
  4796. (arguments
  4797. (substitute-keyword-arguments (package-arguments libsoup)
  4798. ((#:configure-flags configure-flags)
  4799. `(delete "-Dgtk_doc=true" ,configure-flags))
  4800. ((#:phases phases)
  4801. `(modify-phases ,phases
  4802. (delete 'move-doc)))))
  4803. (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
  4804. (define-public libsecret
  4805. (package
  4806. (name "libsecret")
  4807. (version "0.20.4")
  4808. (source (origin
  4809. (method url-fetch)
  4810. (uri (string-append
  4811. "mirror://gnome/sources/libsecret/"
  4812. (version-major+minor version) "/"
  4813. "libsecret-" version ".tar.xz"))
  4814. (sha256
  4815. (base32
  4816. "0a4xnfmraxchd9cq5ai66j12jv2vrgjmaaxz25kl031jvda4qnij"))))
  4817. (build-system gnu-build-system)
  4818. (outputs '("out" "doc"))
  4819. (arguments
  4820. `(#:tests? #f ; FIXME: Testing hangs.
  4821. #:configure-flags
  4822. (list (string-append "--with-html-dir="
  4823. (assoc-ref %outputs "doc")
  4824. "/share/gtk-doc/html"))))
  4825. (native-inputs
  4826. `(("gettext" ,gettext-minimal)
  4827. ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
  4828. ("gobject-introspection" ,gobject-introspection)
  4829. ("pkg-config" ,pkg-config)
  4830. ("vala" ,vala)
  4831. ("xsltproc" ,libxslt)))
  4832. ;; These are needed for the tests.
  4833. ;; FIXME: Add gjs once available.
  4834. ;("dbus" ,dbus)
  4835. ;("python2" ,python-2)
  4836. ;("python2-dbus" ,python2-dbus)
  4837. ;("python2-pygobject" ,python2-pygobject)
  4838. ;("python2-pygobject-2" ,python2-pygobject-2)))
  4839. (propagated-inputs
  4840. `(("glib" ,glib))) ; required by libsecret-1.pc
  4841. (inputs
  4842. ;; The ‘build’ phase complains about missing docbook-xml-4.2 but adding it
  4843. ;; doesn't seem to affect the build result.
  4844. `(("docbook-xsl" ,docbook-xsl)
  4845. ("libgcrypt" ,libgcrypt)
  4846. ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
  4847. (home-page "https://wiki.gnome.org/Projects/Libsecret/")
  4848. (synopsis "GObject bindings for \"Secret Service\" API")
  4849. (description
  4850. "Libsecret is a GObject based library for storing and retrieving passwords
  4851. and other secrets. It communicates with the \"Secret Service\" using DBus.")
  4852. (license license:lgpl2.1+)))
  4853. (define-public five-or-more
  4854. (package
  4855. (name "five-or-more")
  4856. (version "3.32.2")
  4857. (source
  4858. (origin
  4859. (method url-fetch)
  4860. (uri (string-append "mirror://gnome/sources/five-or-more/"
  4861. (version-major+minor version) "/"
  4862. "five-or-more-" version ".tar.xz"))
  4863. (sha256
  4864. (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
  4865. (build-system meson-build-system)
  4866. (arguments
  4867. '(#:glib-or-gtk? #t
  4868. #:phases
  4869. (modify-phases %standard-phases
  4870. (add-after 'unpack 'skip-gtk-update-icon-cache
  4871. (lambda _
  4872. (substitute* "meson_post_install.py"
  4873. (("gtk-update-icon-cache") (which "true")))
  4874. #t)))))
  4875. (native-inputs
  4876. `(("pkg-config" ,pkg-config)
  4877. ("appstream-glib" ,appstream-glib)
  4878. ("desktop-file-utils" ,desktop-file-utils)
  4879. ("glib:bin" ,glib "bin") ; for glib-compile-resources
  4880. ("intltool" ,intltool)
  4881. ("itstool" ,itstool)
  4882. ("vala" ,vala)
  4883. ("xmllint" ,libxml2)))
  4884. (inputs
  4885. `(("gtk+" ,gtk+)
  4886. ("libgnome-games-support" ,libgnome-games-support)
  4887. ("librsvg" ,librsvg)))
  4888. (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
  4889. (synopsis "Logic puzzle game")
  4890. (description "Five or More is a game where you try to align
  4891. five or more objects of the same color and shape causing them to disappear.
  4892. On every turn more objects will appear, until the board is full.
  4893. Try to last as long as possible.")
  4894. (license license:gpl2+)))
  4895. (define-public gnome-mines
  4896. (package
  4897. (name "gnome-mines")
  4898. (version "40.0")
  4899. (source
  4900. (origin
  4901. (method url-fetch)
  4902. (uri (string-append "mirror://gnome/sources/" name "/"
  4903. (version-major version) "/"
  4904. name "-" version ".tar.xz"))
  4905. (sha256
  4906. (base32 "0sf6kdvhr4pr3hddnj6ql9larz2wy108sri31id6x9g459nbly8z"))))
  4907. (build-system meson-build-system)
  4908. (arguments
  4909. '(#:glib-or-gtk? #t
  4910. #:phases
  4911. (modify-phases %standard-phases
  4912. (add-after 'unpack 'skip-gtk-update-icon-cache
  4913. (lambda _
  4914. (substitute* "build-aux/meson_post_install.py"
  4915. (("gtk-update-icon-cache") (which "true"))))))))
  4916. (native-inputs
  4917. `(("glib:bin" ,glib "bin") ; for glib-compile-resources
  4918. ("pkg-config" ,pkg-config)
  4919. ("desktop-file-utils" ,desktop-file-utils)
  4920. ("intltool" ,intltool)
  4921. ("itstool" ,itstool)
  4922. ("vala" ,vala)
  4923. ("yelp" ,yelp)
  4924. ("appstream-glib" ,appstream-glib)))
  4925. (inputs
  4926. `(("gtk+" ,gtk+)
  4927. ("libgnome-games-support" ,libgnome-games-support)
  4928. ("librsvg" ,librsvg)))
  4929. (home-page "https://wiki.gnome.org/Apps/Mines")
  4930. (synopsis "Minesweeper game")
  4931. (description
  4932. "Mines (previously gnomine) is a puzzle game where you locate mines
  4933. floating in an ocean using only your brain and a little bit of luck.")
  4934. (license license:gpl2+)))
  4935. (define-public gnome-multi-writer
  4936. (package
  4937. (name "gnome-multi-writer")
  4938. (version "3.35.90")
  4939. (source
  4940. (origin
  4941. (method url-fetch)
  4942. (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
  4943. (version-major+minor version) "/"
  4944. "gnome-multi-writer-" version ".tar.xz"))
  4945. (sha256
  4946. (base32
  4947. "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
  4948. (build-system meson-build-system)
  4949. (arguments
  4950. '(#:glib-or-gtk? #t
  4951. #:phases
  4952. (modify-phases %standard-phases
  4953. (add-after 'unpack 'skip-post-install
  4954. (lambda _
  4955. (substitute* "meson.build"
  4956. (("meson.add_install_script" &) (string-append "# " &)))
  4957. #t)))))
  4958. (native-inputs
  4959. `(("glib:bin" ,glib "bin")
  4960. ("pkg-config" ,pkg-config)))
  4961. (inputs
  4962. `(("gtk+" ,gtk+)
  4963. ("glib" ,glib) ; for gio
  4964. ("gusb" ,gusb)
  4965. ("udisks" ,udisks)
  4966. ("libgudev" ,libgudev)
  4967. ("libcanberra" ,libcanberra)
  4968. ("polkit" ,polkit)))
  4969. (home-page "https://wiki.gnome.org/Apps/MultiWriter")
  4970. (synopsis "Write to multiple USB devices at once")
  4971. (description
  4972. "MultiWriter can be used to write an ISO file to multiple USB devices at
  4973. once.")
  4974. (license license:gpl2+)))
  4975. (define-public gnome-sudoku
  4976. (package
  4977. (name "gnome-sudoku")
  4978. (version "40.2")
  4979. (source
  4980. (origin
  4981. (method url-fetch)
  4982. (uri (string-append "mirror://gnome/sources/" name "/"
  4983. (version-major version) "/"
  4984. name "-" version ".tar.xz"))
  4985. (sha256
  4986. (base32
  4987. "18slsxifad5cjz4fqi818i66jc9b7kzgn01qxa0ra4y7wcqha4in"))))
  4988. (build-system meson-build-system)
  4989. (arguments
  4990. '(#:glib-or-gtk? #t
  4991. #:phases
  4992. (modify-phases %standard-phases
  4993. (add-after 'unpack 'skip-gtk-update-icon-cache
  4994. (lambda _
  4995. (substitute* "build-aux/post_install.py"
  4996. (("gtk-update-icon-cache") (which "true"))))))))
  4997. (native-inputs
  4998. `(("pkg-config" ,pkg-config)
  4999. ("desktop-file-utils" ,desktop-file-utils)
  5000. ("glib:bin" ,glib "bin") ; for glib-compile-resources
  5001. ("intltool" ,intltool)
  5002. ("itstool" ,itstool)
  5003. ("vala" ,vala)
  5004. ("xmllint" ,libxml2)))
  5005. (inputs
  5006. `(("gtk+" ,gtk+)
  5007. ("json-glib" ,json-glib)
  5008. ("libgee" ,libgee)
  5009. ("librsvg" ,librsvg)
  5010. ("qqwing" ,qqwing)))
  5011. (home-page "https://wiki.gnome.org/Apps/Sudoku")
  5012. (synopsis "Japanese logic game")
  5013. (description
  5014. "Sudoku is a Japanese logic game that exploded in popularity in 2005.
  5015. GNOME Sudoku is meant to have an interface as simple and unobstrusive as
  5016. possible while still providing features that make playing difficult Sudoku
  5017. more fun.")
  5018. (license license:gpl2+)))
  5019. (define-public gnome-terminal
  5020. (package
  5021. (name "gnome-terminal")
  5022. (version "3.40.3")
  5023. (source
  5024. (origin
  5025. (method url-fetch)
  5026. (uri (string-append "mirror://gnome/sources/" name "/"
  5027. (version-major+minor version) "/"
  5028. name "-" version ".tar.xz"))
  5029. (sha256
  5030. (base32
  5031. "08hsic7sn32xw12i3j0ard2bhfhp8gmzqm0pa8xzl5l1jhzsmsfb"))))
  5032. (build-system glib-or-gtk-build-system)
  5033. (arguments
  5034. '(#:configure-flags
  5035. (list "--disable-migration" "--disable-search-provider"
  5036. "--without-nautilus-extension")
  5037. #:phases
  5038. (modify-phases %standard-phases
  5039. (add-before 'configure 'patch-/bin/true
  5040. (lambda _
  5041. (substitute* "configure"
  5042. (("/bin/true") (which "true"))))))))
  5043. (native-inputs
  5044. `(("docbook-xsl" ,docbook-xsl)
  5045. ("pkg-config" ,pkg-config)
  5046. ("desktop-file-utils" ,desktop-file-utils)
  5047. ("intltool" ,intltool)
  5048. ("itstool" ,itstool)
  5049. ("libxslt" ,libxslt)
  5050. ("xmllint" ,libxml2)))
  5051. (propagated-inputs
  5052. `(("dconf" ,dconf)))
  5053. (inputs
  5054. `(("gtk+" ,gtk+)
  5055. ("vte" ,vte)
  5056. ("gnutls" ,gnutls)
  5057. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  5058. ("util-linux" ,util-linux "lib")
  5059. ("vala" ,vala)))
  5060. (home-page "https://wiki.gnome.org/Apps/Terminal")
  5061. (synopsis "Terminal emulator")
  5062. (description
  5063. "GNOME Terminal is a terminal emulator application for accessing a
  5064. UNIX shell environment which can be used to run programs available on
  5065. your system.
  5066. It supports several profiles, multiple tabs and implements several
  5067. keyboard shortcuts.")
  5068. (license license:gpl3+)))
  5069. (define-public colord
  5070. (package
  5071. (name "colord")
  5072. (version "1.4.5")
  5073. (source
  5074. (origin
  5075. (method url-fetch)
  5076. (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
  5077. "colord-" version ".tar.xz"))
  5078. (sha256
  5079. (base32 "05sydi6qqqx1rrqwnga1vbg9srkf89wdcfw5w4p4m7r37m2flx5p"))))
  5080. (build-system meson-build-system)
  5081. (arguments
  5082. '(;; FIXME: One test fails:
  5083. ;; /colord/icc-store (in lib/colord/colord-self-test-private):
  5084. ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
  5085. ;; application/x-zerosize
  5086. #:tests? #f
  5087. #:glib-or-gtk? #t
  5088. #:configure-flags (list "-Dlocalstatedir=/var"
  5089. ;; No dep on systemd.
  5090. "-Dsystemd=false"
  5091. ;; Wants to install to global completion dir;
  5092. ;; punt.
  5093. "-Dbash_completion=false"
  5094. "-Ddaemon_user=colord"
  5095. "-Dsane=true"
  5096. "-Dvapi=true"
  5097. ;; Requires spotread.
  5098. "-Dargyllcms_sensor=false"
  5099. ;; TODO: Requires docbook2x.
  5100. "-Dman=false")
  5101. #:phases
  5102. (modify-phases %standard-phases
  5103. (add-before 'configure 'patch-build-system
  5104. (lambda* (#:key outputs #:allow-other-keys)
  5105. (substitute* "rules/meson.build"
  5106. (("udev.get_pkgconfig_variable\\('udevdir'\\)")
  5107. (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
  5108. #t))
  5109. (add-before 'configure 'set-sqlite3-file-name
  5110. (lambda* (#:key inputs #:allow-other-keys)
  5111. ;; "colormgr dump" works by invoking the "sqlite3" command.
  5112. ;; Record its absolute file name.
  5113. (let ((sqlite (assoc-ref inputs "sqlite")))
  5114. (substitute* "client/cd-util.c"
  5115. (("\"sqlite3\"")
  5116. (string-append "\"" sqlite "/bin/sqlite3\"")))
  5117. #t))))))
  5118. (native-inputs
  5119. `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
  5120. ("gettext" ,gettext-minimal)
  5121. ("gobject-introspection" ,gobject-introspection)
  5122. ("gtk-doc" ,gtk-doc/stable)
  5123. ("pkg-config" ,pkg-config)
  5124. ("vala" ,vala)))
  5125. (propagated-inputs
  5126. ;; colord.pc refers to all these.
  5127. `(("glib" ,glib)
  5128. ("lcms" ,lcms)
  5129. ("udev" ,eudev)))
  5130. (inputs
  5131. `(("dbus-glib" ,dbus-glib)
  5132. ("gusb" ,gusb)
  5133. ("libgudev" ,libgudev)
  5134. ("libusb" ,libusb)
  5135. ("polkit" ,polkit)
  5136. ("python" ,python-wrapper)
  5137. ("sqlite" ,sqlite)
  5138. ("sane-backends" ,sane-backends)))
  5139. (home-page "https://www.freedesktop.org/software/colord/")
  5140. (synopsis "Color management service")
  5141. (description "Colord is a system service that makes it easy to manage,
  5142. install and generate color profiles to accurately color manage input and
  5143. output devices.")
  5144. (license license:gpl2+)))
  5145. (define-public geoclue
  5146. (package
  5147. (name "geoclue")
  5148. (version "2.5.7")
  5149. (source
  5150. (origin
  5151. (method url-fetch)
  5152. (uri
  5153. (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
  5154. version "/geoclue-" version ".tar.bz2"))
  5155. (sha256
  5156. (base32 "09ww26a76kanldhgwnn5sqy9ly2940k45zpp68spykkv2zjdpivc"))
  5157. (patches (search-patches "geoclue-config.patch"))))
  5158. (build-system meson-build-system)
  5159. (arguments
  5160. '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
  5161. (native-inputs
  5162. `(("pkg-config" ,pkg-config)
  5163. ("gobject-introspection" ,gobject-introspection)
  5164. ("modem-manager" ,modem-manager)
  5165. ("libnotify" ,libnotify)
  5166. ("gtk-doc" ,gtk-doc/stable)
  5167. ("intltool" ,intltool)))
  5168. (inputs
  5169. `(("avahi" ,avahi)
  5170. ("glib:bin" ,glib "bin")
  5171. ("glib-networking" ,glib-networking)
  5172. ("json-glib" ,json-glib)
  5173. ("libsoup" ,libsoup)))
  5174. (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
  5175. (synopsis "Geolocation service")
  5176. (description "Geoclue is a D-Bus service that provides location
  5177. information. The primary goal of the Geoclue project is to make creating
  5178. location-aware applications as simple as possible, while the secondary goal is
  5179. to ensure that no application can access location information without explicit
  5180. permission from user.")
  5181. (license license:gpl2+)))
  5182. (define-public geocode-glib
  5183. (package
  5184. (name "geocode-glib")
  5185. (version "3.26.2")
  5186. (source (origin
  5187. (method url-fetch)
  5188. (uri (string-append "mirror://gnome/sources/geocode-glib/"
  5189. (version-major+minor version) "/"
  5190. "geocode-glib-" version ".tar.xz"))
  5191. (sha256
  5192. (base32
  5193. "1l8g0f13xgkrk335afr9w8k46mziwb2jnyhl07jccl5yl37q9zh1"))))
  5194. (build-system meson-build-system)
  5195. (arguments
  5196. `(#:phases
  5197. (modify-phases %standard-phases
  5198. ;; The tests require a bunch of locales.
  5199. (add-before 'check 'set-locales
  5200. (lambda* (#:key inputs #:allow-other-keys)
  5201. (setenv "GUIX_LOCPATH"
  5202. (search-input-directory inputs "lib/locale")))))))
  5203. (native-inputs
  5204. `(("glib:bin" ,glib "bin") ; for glib-mkenums
  5205. ("glibc-locales" ,glibc-locales) ; for tests
  5206. ("gettext" ,gettext-minimal)
  5207. ("gobject-introspection" ,gobject-introspection)
  5208. ("gtk-doc" ,gtk-doc/stable)
  5209. ("pkg-config" ,pkg-config)
  5210. ("json-glib" ,json-glib)))
  5211. (propagated-inputs
  5212. ;; geocode-glib-1.0.pc refers to GIO.
  5213. `(("glib" ,glib)))
  5214. (inputs
  5215. `(("libsoup" ,libsoup)))
  5216. (home-page "https://github.com/GNOME/geocode-glib/")
  5217. (synopsis "Geocoding and reverse-geocoding library")
  5218. (description
  5219. "geocode-glib is a convenience library for geocoding (finding longitude,
  5220. and latitude from an address) and reverse geocoding (finding an address from
  5221. coordinates) using the Nominatim service. geocode-glib caches requests for
  5222. faster results and to avoid unnecessary server load.")
  5223. (license license:lgpl2.0+)))
  5224. (define-public upower
  5225. (package
  5226. (name "upower")
  5227. (version "0.99.12")
  5228. (source
  5229. (origin
  5230. (method git-fetch)
  5231. (uri (git-reference
  5232. (url "https://gitlab.freedesktop.org/upower/upower")
  5233. (commit (string-append "UPOWER_"
  5234. (string-map (match-lambda (#\. #\_)
  5235. (chr chr))
  5236. version)))))
  5237. (file-name (git-file-name name version))
  5238. (sha256
  5239. (base32 "00q63yc8vp5cq05vhpwq3qglapdm8hg0lrqkzdwkphk30qzb6hv6"))
  5240. (patches (search-patches "upower-builddir.patch"))
  5241. (modules '((guix build utils)))
  5242. (snippet
  5243. '(begin
  5244. ;; Upstream commit
  5245. ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
  5246. ;; moved 'dbus-1/system.d' from etc/ to share/. However,
  5247. ;; 'dbus-configuration-directory' in (gnu services dbus)
  5248. ;; expects it in etc/. Thus, move it back to its previous
  5249. ;; location.
  5250. (substitute* "src/Makefile.am"
  5251. (("^dbusconfdir =.*$")
  5252. "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
  5253. #t))))
  5254. (build-system glib-or-gtk-build-system)
  5255. (arguments
  5256. '(#:phases
  5257. (modify-phases %standard-phases
  5258. (add-before 'check 'pre-check
  5259. (lambda* (#:key inputs #:allow-other-keys)
  5260. (let ((umockdev (string-append (assoc-ref inputs "umockdev")
  5261. "/lib")))
  5262. (setenv "LD_LIBRARY_PATH" umockdev))
  5263. #t)))
  5264. #:configure-flags (list "--localstatedir=/var"
  5265. (string-append "--with-udevrulesdir="
  5266. (assoc-ref %outputs "out")
  5267. "/lib/udev/rules.d"))))
  5268. (native-inputs
  5269. `(("autoconf" ,autoconf)
  5270. ("automake" ,automake)
  5271. ("gobject-introspection" ,gobject-introspection)
  5272. ("gtk-doc" ,gtk-doc)
  5273. ("intltool" ,intltool)
  5274. ("libtool" ,libtool)
  5275. ("pkg-config" ,pkg-config)
  5276. ("python" ,python)
  5277. ("which" ,which) ; for ./autogen.sh
  5278. ;; For tests.
  5279. ("python-dbus" ,python-dbus)
  5280. ("python-dbusmock" ,python-dbusmock)
  5281. ("python-pygobject" ,python-pygobject)
  5282. ("umockdev" ,umockdev)
  5283. ;; For man pages.
  5284. ("docbook-xsl" ,docbook-xsl)
  5285. ("libxslt" ,libxslt) ; for 'xsltproc'
  5286. ("libxml2" ,libxml2))) ; for 'XML_CATALOG_FILES'
  5287. (inputs
  5288. `(("dbus-glib" ,dbus-glib)
  5289. ("libgudev" ,libgudev)
  5290. ("libusb" ,libusb)))
  5291. (propagated-inputs
  5292. ;; In Requires of upower-glib.pc.
  5293. `(("glib" ,glib)))
  5294. (home-page "https://upower.freedesktop.org/")
  5295. (synopsis "System daemon for managing power devices")
  5296. (description
  5297. "UPower is an abstraction for enumerating power devices,
  5298. listening to device events and querying history and statistics. Any
  5299. application or service on the system can access the org.freedesktop.UPower
  5300. service via the system message bus.")
  5301. (license license:gpl2+)))
  5302. (define-public libgweather
  5303. (package
  5304. (name "libgweather")
  5305. (version "40.0")
  5306. (source (origin
  5307. (method url-fetch)
  5308. (uri (string-append "mirror://gnome/sources/" name "/"
  5309. (version-major version) "/"
  5310. name "-" version ".tar.xz"))
  5311. (sha256
  5312. (base32
  5313. "1rkf4yv43qcahyx7bismdv6z2vh5azdnm1fqfmnzrada9cm8ykna"))))
  5314. (build-system meson-build-system)
  5315. (arguments
  5316. `(#:tests? #f ; one of two tests requires network access
  5317. #:configure-flags
  5318. `(,(string-append "-Dzoneinfo_dir="
  5319. (assoc-ref %build-inputs "tzdata")
  5320. "/share/zoneinfo"))))
  5321. (native-inputs
  5322. `(("glib:bin" ,glib "bin") ; for glib-mkenums
  5323. ("gobject-introspection" ,gobject-introspection)
  5324. ("pkg-config" ,pkg-config)
  5325. ("vala" ,vala)
  5326. ("intltool" ,intltool)
  5327. ("python-pygobject" ,python-pygobject)))
  5328. (propagated-inputs
  5329. ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
  5330. ;; libsoup.
  5331. `(("gtk+" ,gtk+)
  5332. ("gdk-pixbuf" ,gdk-pixbuf)
  5333. ("libxml2" ,libxml2)
  5334. ("libsoup" ,libsoup)
  5335. ("geocode-glib" ,geocode-glib)))
  5336. (inputs
  5337. `(("tzdata" ,tzdata)))
  5338. (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
  5339. (synopsis "Location, time zone, and weather library for GNOME")
  5340. (description
  5341. "libgweather is a library to access weather information from online
  5342. services for numerous locations.")
  5343. (license license:gpl2+)))
  5344. (define-public gnome-settings-daemon
  5345. (package
  5346. (name "gnome-settings-daemon")
  5347. (version "40.0.1")
  5348. (source
  5349. (origin
  5350. (method url-fetch)
  5351. (uri (string-append "mirror://gnome/sources/" name "/"
  5352. (version-major version) "/"
  5353. name "-" version ".tar.xz"))
  5354. (sha256
  5355. (base32
  5356. "08bv32hvsmd8izw0llvldg0c2d71srch4hi8j94jwgm5d4dsrprp"))
  5357. (patches (search-patches "gnome-settings-daemon-gc.patch"))))
  5358. (build-system meson-build-system)
  5359. (arguments
  5360. `(#:glib-or-gtk? #t
  5361. #:configure-flags
  5362. (list (string-append "-Dudev_dir="
  5363. (assoc-ref %outputs "out")
  5364. "/lib/udev/rules.d/")
  5365. "-Dsystemd=false"
  5366. ;; Otherwise, the RUNPATH will lack the final path component.
  5367. (string-append "-Dc_link_args=-Wl,-rpath="
  5368. (assoc-ref %outputs "out")
  5369. "/lib/gnome-settings-daemon-3.0"))
  5370. #:phases (modify-phases %standard-phases
  5371. (add-before 'configure 'set-baobab-file-name
  5372. (lambda* (#:key inputs #:allow-other-keys)
  5373. ;; Hard-code the file name of Baobab instead of looking
  5374. ;; it up in $PATH. This ensures users get the "Examine"
  5375. ;; button in the low disk space notification of GDM even
  5376. ;; if they don't have GNOME in their main profile.
  5377. (let ((baobab (assoc-ref inputs "baobab")))
  5378. (substitute* "plugins/housekeeping/gsd-disk-space.c"
  5379. (("g_find_program_in_path \\(DISK_SPACE_ANALYZER\\)")
  5380. (string-append "g_strdup (\"" baobab
  5381. "/bin/baobab\")")))
  5382. #t))))
  5383. ;; Color management test can't reach the colord system service.
  5384. #:tests? #f))
  5385. (native-inputs
  5386. `(("glib:bin" ,glib "bin") ; for glib-mkenums
  5387. ("pkg-config" ,pkg-config)
  5388. ("intltool" ,intltool)
  5389. ("xsltproc" ,libxslt)
  5390. ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
  5391. ("docbook-xml" ,docbook-xml-4.2)
  5392. ("docbook-xsl" ,docbook-xsl)))
  5393. (inputs
  5394. `(("alsa-lib" ,alsa-lib)
  5395. ("baobab" ,baobab)
  5396. ("colord" ,colord)
  5397. ("libgudev" ,libgudev)
  5398. ("upower" ,upower)
  5399. ("polkit" ,polkit)
  5400. ("pulseaudio" ,pulseaudio)
  5401. ("libcanberra" ,libcanberra)
  5402. ("libx11" ,libx11)
  5403. ("libxtst" ,libxtst)
  5404. ("lcms" ,lcms)
  5405. ("libnotify" ,libnotify)
  5406. ("geoclue" ,geoclue)
  5407. ("geocode-glib" ,geocode-glib)
  5408. ("libgweather" ,libgweather)
  5409. ("gnome-desktop" ,gnome-desktop)
  5410. ("nss" ,nss)
  5411. ("cups" ,cups)
  5412. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  5413. ("libwacom" ,libwacom)
  5414. ("librsvg" ,librsvg)
  5415. ("xf86-input-wacom" ,xf86-input-wacom)
  5416. ("wayland" ,wayland)
  5417. ("network-manager" ,network-manager)
  5418. ("gcr" ,gcr)
  5419. ("modem-manager" ,modem-manager)))
  5420. (home-page "https://www.gnome.org")
  5421. (synopsis "GNOME settings daemon")
  5422. (description
  5423. "This package contains the daemon responsible for setting the various
  5424. parameters of a GNOME session and the applications that run under it. It
  5425. handles settings such keyboard layout, shortcuts, and accessibility, clipboard
  5426. settings, themes, mouse settings, and startup of other daemons.")
  5427. (license license:gpl2+)))
  5428. (define-public totem-pl-parser
  5429. (package
  5430. (name "totem-pl-parser")
  5431. (version "3.26.6")
  5432. (source (origin
  5433. (method url-fetch)
  5434. (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
  5435. (version-major+minor version) "/"
  5436. "totem-pl-parser-" version ".tar.xz"))
  5437. (sha256
  5438. (base32
  5439. "075csd5x0frgf93jvhlqiwv5i0qm24zz3iw17jj7v7fgsml0zpy0"))))
  5440. (build-system meson-build-system)
  5441. (arguments
  5442. ;; FIXME: Tests require gvfs.
  5443. `(#:tests? #f))
  5444. (native-inputs
  5445. `(("intltool" ,intltool)
  5446. ("glib" ,glib "bin")
  5447. ("gobject-introspection" ,gobject-introspection)
  5448. ("pkg-config" ,pkg-config)))
  5449. (propagated-inputs
  5450. `(("glib" ,glib)
  5451. ("gmime" ,gmime)
  5452. ("libarchive" ,libarchive)
  5453. ("libgcrypt" ,libgcrypt)
  5454. ("libxml2" ,libxml2)))
  5455. (inputs
  5456. `(("libsoup" ,libsoup)))
  5457. (home-page "https://projects.gnome.org/totem")
  5458. (synopsis "Library to parse and save media playlists for GNOME")
  5459. (description "Totem-pl-parser is a GObjects-based library to parse and save
  5460. playlists in a variety of formats.")
  5461. (license license:lgpl2.0+)))
  5462. (define-public aisleriot
  5463. (package
  5464. (name "aisleriot")
  5465. (version "3.22.9")
  5466. (source (origin
  5467. (method url-fetch)
  5468. (uri (string-append "mirror://gnome/sources/aisleriot/"
  5469. (version-major+minor version) "/"
  5470. "aisleriot-" version ".tar.xz"))
  5471. (sha256
  5472. (base32
  5473. "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
  5474. (build-system glib-or-gtk-build-system)
  5475. (arguments
  5476. '(#:configure-flags
  5477. '("--with-platform=gtk-only"
  5478. "--with-card-theme-formats=svg")))
  5479. (native-inputs
  5480. `(("desktop-file-utils" ,desktop-file-utils)
  5481. ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
  5482. ("intltool" ,intltool)
  5483. ("itstool" ,itstool)
  5484. ("pkg-config" ,pkg-config)
  5485. ("xmllint" ,libxml2)))
  5486. (inputs
  5487. `(("gtk+" ,gtk+)
  5488. ("guile" ,guile-2.2)
  5489. ("libcanberra" ,libcanberra)
  5490. ("librsvg" ,librsvg)))
  5491. (home-page "https://wiki.gnome.org/Apps/Aisleriot")
  5492. (synopsis "Solitaire card games")
  5493. (description
  5494. "Aisleriot (also known as Solitaire or sol) is a collection of card games
  5495. which are easy to play with the aid of a mouse.")
  5496. (license license:gpl3+)))
  5497. (define-public amtk
  5498. (package
  5499. (name "amtk")
  5500. (version "5.3.1")
  5501. (source (origin
  5502. (method url-fetch)
  5503. (uri (string-append "mirror://gnome/sources/amtk/"
  5504. (version-major+minor version) "/"
  5505. "amtk-" version ".tar.xz"))
  5506. (sha256
  5507. (base32
  5508. "12v3nj1bb7507ndprjggq0hpz8k719b4bwvl8sm43p3ibmn27anm"))))
  5509. (build-system meson-build-system)
  5510. (native-inputs
  5511. `(("gobject-introspection" ,gobject-introspection)
  5512. ("glib:bin" ,glib "bin") ; for glib-mkenums
  5513. ("gtk-doc" ,gtk-doc/stable)
  5514. ("pkg-config" ,pkg-config)))
  5515. (inputs
  5516. `(("glib" ,glib)
  5517. ("gtk+" ,gtk+)))
  5518. (home-page "https://wiki.gnome.org/Projects/Amtk")
  5519. (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
  5520. (description
  5521. "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
  5522. It is a basic GtkUIManager replacement based on GAction. It is suitable for
  5523. both a traditional UI or a modern UI with a GtkHeaderBar.")
  5524. (license license:lgpl2.1+)))
  5525. (define-public devhelp
  5526. (package
  5527. (name "devhelp")
  5528. (version "40.1")
  5529. (source (origin
  5530. (method url-fetch)
  5531. (uri (string-append "mirror://gnome/sources/" name "/"
  5532. (version-major version) "/"
  5533. name "-" version ".tar.xz"))
  5534. (sha256
  5535. (base32
  5536. "1fvb69l1nyxdrs95ar95rmpfs8nfkpys4x74r8ilid44hhzdk2iy"))))
  5537. (build-system meson-build-system)
  5538. (arguments
  5539. '(#:glib-or-gtk? #t
  5540. #:phases
  5541. (modify-phases %standard-phases
  5542. (add-after 'unpack 'skip-gtk-update-icon-cache
  5543. ;; Don't create 'icon-theme.cache'.
  5544. (lambda _
  5545. (substitute* "meson_post_install.py"
  5546. (("gtk-update-icon-cache") "true")))))))
  5547. (native-inputs
  5548. `(("intltool" ,intltool)
  5549. ("itstool" ,itstool)
  5550. ("gobject-introspection" ,gobject-introspection)
  5551. ("glib:bin" ,glib "bin") ; for glib-mkmenus
  5552. ("pkg-config" ,pkg-config)))
  5553. (inputs
  5554. `(("amtk" ,amtk)
  5555. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  5556. ("webkitgtk" ,webkitgtk)))
  5557. (home-page "https://wiki.gnome.org/Apps/Devhelp")
  5558. (synopsis "API documentation browser for GNOME")
  5559. (description
  5560. "Devhelp is an API documentation browser for GTK+ and GNOME. It works
  5561. natively with GTK-Doc (the API reference system developed for GTK+ and used
  5562. throughout GNOME for API documentation).")
  5563. (license license:gpl2+)))
  5564. (define-public cogl
  5565. (package
  5566. (name "cogl")
  5567. (version "1.22.8")
  5568. (source
  5569. (origin
  5570. (method url-fetch)
  5571. (uri (string-append "mirror://gnome/sources/cogl/"
  5572. (version-major+minor version) "/"
  5573. "cogl-" version ".tar.xz"))
  5574. (sha256
  5575. (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
  5576. ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
  5577. ;; cogl, corresponding changes may be appropriate in mutter as well.
  5578. (build-system gnu-build-system)
  5579. (native-inputs
  5580. `(("glib:bin" ,glib "bin") ; for glib-mkenums
  5581. ("gobject-introspection" ,gobject-introspection)
  5582. ("xorg-server" ,xorg-server-for-tests)
  5583. ("pkg-config" ,pkg-config)))
  5584. (propagated-inputs
  5585. `(("glib" ,glib)
  5586. ("gdk-pixbuf" ,gdk-pixbuf)
  5587. ("libx11" ,libx11)
  5588. ("libxext" ,libxext)
  5589. ("libxfixes" ,libxfixes)
  5590. ("libxdamage" ,libxdamage)
  5591. ("libxcomposite" ,libxcomposite)
  5592. ("libxrandr" ,libxrandr)))
  5593. (inputs
  5594. `(("mesa" ,mesa)
  5595. ("cairo" ,cairo)
  5596. ("pango" ,pango)
  5597. ("gstreamer" ,gstreamer)
  5598. ("gst-plugins-base" ,gst-plugins-base)
  5599. ("wayland" ,wayland)))
  5600. (arguments
  5601. `(#:disallowed-references (,xorg-server-for-tests)
  5602. #:configure-flags (list "--enable-cogl-gst"
  5603. "--enable-wayland-egl-platform"
  5604. "--enable-wayland-egl-server"
  5605. ;; Arrange to pass an absolute file name to
  5606. ;; dlopen for libGL.so.
  5607. (string-append "--with-gl-libname="
  5608. (assoc-ref %build-inputs "mesa")
  5609. "/lib/libGL.so"))
  5610. #:phases
  5611. (modify-phases %standard-phases
  5612. (add-after 'unpack 'fix-build-with-mesa-20
  5613. (lambda _
  5614. ;; Work around a problem with Mesa 20 where some macros used by
  5615. ;; Cogl went missing from eglext.h. This can likely be removed
  5616. ;; for newer versions of Cogl or Mesa.
  5617. ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
  5618. (substitute* '("configure"
  5619. "cogl/winsys/cogl-winsys-egl-kms.c")
  5620. (("#include <EGL/eglext.h>" all)
  5621. (string-append all "\n#include <EGL/eglmesaext.h>\n")))
  5622. #t))
  5623. (add-before 'check 'start-xorg-server
  5624. (lambda* (#:key tests? inputs #:allow-other-keys)
  5625. (if tests?
  5626. (begin
  5627. ;; The test suite requires a running X server.
  5628. (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
  5629. (assoc-ref inputs "xorg-server")))
  5630. (setenv "DISPLAY" ":1")
  5631. #t)
  5632. (format #t "test suite not run~%"))
  5633. #t)))))
  5634. (home-page "https://www.cogl3d.org")
  5635. (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
  5636. (description
  5637. "Cogl is a small library for using 3D graphics hardware to draw pretty
  5638. pictures. The API departs from the flat state machine style of OpenGL and is
  5639. designed to make it easy to write orthogonal components that can render
  5640. without stepping on each others toes.")
  5641. (license (list license:expat ; most of the code
  5642. license:bsd-3 ; cogl/cogl-point-in-poly.c
  5643. license:sgifreeb2.0 ; cogl-path/tesselator/
  5644. license:asl2.0)))) ; examples/android/
  5645. (define-public clutter
  5646. (package
  5647. (name "clutter")
  5648. (version "1.26.2")
  5649. (source
  5650. (origin
  5651. (method url-fetch)
  5652. (uri (string-append "mirror://gnome/sources/" name "/"
  5653. (version-major+minor version) "/"
  5654. name "-" version ".tar.xz"))
  5655. (sha256
  5656. (base32
  5657. "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
  5658. ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
  5659. ;; to clutter, corresponding changes may be appropriate in mutter as well.
  5660. (build-system gnu-build-system)
  5661. (outputs '("out"
  5662. "doc")) ;9 MiB of gtk-doc HTML pages
  5663. (native-inputs
  5664. `(("glib:bin" ,glib "bin") ; for glib-genmarshal
  5665. ("gobject-introspection" ,gobject-introspection)
  5666. ("pkg-config" ,pkg-config)
  5667. ("xsltproc" ,libxslt)))
  5668. (propagated-inputs
  5669. `(("cogl" ,cogl)
  5670. ("cairo" ,cairo)
  5671. ("atk" ,atk)
  5672. ("gtk+" ,gtk+)
  5673. ("json-glib" ,json-glib)
  5674. ("glib" ,glib)
  5675. ("libxcomposite" ,libxcomposite)
  5676. ("libxdamage" ,libxdamage)
  5677. ("libxext" ,libxext)
  5678. ("xinput" ,xinput)))
  5679. (inputs
  5680. `(("libxkbcommon" ,libxkbcommon)
  5681. ("udev" ,eudev)))
  5682. (arguments
  5683. `(#:configure-flags (list "--enable-x11-backend=yes"
  5684. ;; This produces share/doc/{clutter,cally}.
  5685. (string-append "--with-html-dir="
  5686. (assoc-ref %outputs "doc")
  5687. "/share/doc"))
  5688. ;; XXX FIXME: Get test suite working. It would probably fail in the
  5689. ;; same way the cogl tests fail, since clutter is based on cogl.
  5690. #:tests? #f))
  5691. (home-page "http://www.clutter-project.org")
  5692. (synopsis "OpenGL-based interactive canvas library")
  5693. (description
  5694. "Clutter is an OpenGL-based interactive canvas library, designed for
  5695. creating fast, mainly 2D single window applications such as media box UIs,
  5696. presentations, kiosk style applications and so on.")
  5697. (license license:lgpl2.0+)))
  5698. (define-public clutter-gtk
  5699. (package
  5700. (name "clutter-gtk")
  5701. (version "1.8.4")
  5702. (source
  5703. (origin
  5704. (method url-fetch)
  5705. (uri (string-append "mirror://gnome/sources/" name "/"
  5706. (version-major+minor version) "/"
  5707. name "-" version ".tar.xz"))
  5708. (sha256
  5709. (base32
  5710. "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
  5711. (build-system gnu-build-system)
  5712. (native-inputs
  5713. `(("pkg-config" ,pkg-config)
  5714. ("gobject-introspection" ,gobject-introspection)))
  5715. (propagated-inputs
  5716. ;; clutter-gtk.pc refers to all these.
  5717. `(("clutter" ,clutter)
  5718. ("gtk+" ,gtk+)))
  5719. (home-page "http://www.clutter-project.org")
  5720. (synopsis "OpenGL-based interactive canvas library GTK+ widget")
  5721. (description
  5722. "Clutter is an OpenGL-based interactive canvas library, designed for
  5723. creating fast, mainly 2D single window applications such as media box UIs,
  5724. presentations, kiosk style applications and so on.")
  5725. (license license:lgpl2.0+)))
  5726. (define-public clutter-gst
  5727. (package
  5728. (name "clutter-gst")
  5729. (version "3.0.27")
  5730. (source
  5731. (origin
  5732. (method url-fetch)
  5733. (uri (string-append "mirror://gnome/sources/clutter-gst/"
  5734. (version-major+minor version) "/"
  5735. "clutter-gst-" version ".tar.xz"))
  5736. (sha256
  5737. (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
  5738. (build-system gnu-build-system)
  5739. (native-inputs
  5740. `(("glib:bin" ,glib "bin") ; for glib-mkenums
  5741. ("pkg-config" ,pkg-config)
  5742. ("gobject-introspection" ,gobject-introspection)))
  5743. (inputs
  5744. `(("clutter" ,clutter)
  5745. ("gstreamer" ,gstreamer)
  5746. ("gst-plugins-base" ,gst-plugins-base)))
  5747. (home-page "http://www.clutter-project.org")
  5748. (synopsis "Integration library for using GStreamer with Clutter")
  5749. (description
  5750. "Clutter-Gst is an integration library for using GStreamer with Clutter.
  5751. It provides a GStreamer sink to upload frames to GL and an actor that
  5752. implements the ClutterGstPlayer interface using playbin. Clutter is an
  5753. OpenGL-based interactive canvas library.")
  5754. (license license:lgpl2.0+)))
  5755. (define-public libchamplain
  5756. (package
  5757. (name "libchamplain")
  5758. (version "0.12.16")
  5759. (source (origin
  5760. (method url-fetch)
  5761. (uri (string-append
  5762. "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
  5763. version ".tar.xz"))
  5764. (sha256
  5765. (base32
  5766. "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
  5767. (build-system gnu-build-system)
  5768. (arguments '(#:configure-flags '("--enable-vala")))
  5769. (native-inputs
  5770. `(("gobject-introspection" ,gobject-introspection)
  5771. ("pkg-config" ,pkg-config)
  5772. ("vala" ,vala)))
  5773. (propagated-inputs
  5774. `(("libsoup" ,libsoup)
  5775. ("sqlite" ,sqlite)
  5776. ("clutter" ,clutter)
  5777. ("clutter-gtk" ,clutter-gtk)
  5778. ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
  5779. ("cairo" ,cairo)
  5780. ("gtk+3" ,gtk+)
  5781. ("glib" ,glib)))
  5782. (home-page "https://projects.gnome.org/libchamplain/")
  5783. (synopsis "C library providing a ClutterActor to display maps")
  5784. (description
  5785. "libchamplain is a C library providing a ClutterActor to display maps.
  5786. It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
  5787. and Perl bindings are also available. It supports numerous free map sources
  5788. such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
  5789. (license license:lgpl2.1+)))
  5790. (define-public gom
  5791. (package
  5792. (name "gom")
  5793. (version "0.3.2")
  5794. (source
  5795. (origin
  5796. (method url-fetch)
  5797. (uri (string-append "mirror://gnome/sources/gom/"
  5798. (version-major+minor version) "/"
  5799. "gom-" version ".tar.xz"))
  5800. (sha256
  5801. (base32
  5802. "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
  5803. (build-system gnu-build-system)
  5804. (native-inputs
  5805. `(("intltool" ,intltool)
  5806. ("pkg-config" ,pkg-config)
  5807. ("gobject-introspection" ,gobject-introspection)))
  5808. (inputs
  5809. `(("glib" ,glib)
  5810. ("gdk-pixbuf" ,gdk-pixbuf)
  5811. ("sqlite" ,sqlite)))
  5812. ;; XXX TODO: Figure out how to run the test suite.
  5813. (arguments `(#:tests? #f))
  5814. (home-page "https://wiki.gnome.org/Projects/Gom")
  5815. (synopsis "Object mapper from GObjects to SQLite")
  5816. (description
  5817. "Gom provides an object mapper from GObjects to SQLite. It helps you
  5818. write applications that need to store structured data as well as make complex
  5819. queries upon that data.")
  5820. (license license:lgpl2.1+)))
  5821. (define-public libgnome-games-support
  5822. (package
  5823. (name "libgnome-games-support")
  5824. (version "1.7.1")
  5825. (source (origin
  5826. (method url-fetch)
  5827. (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
  5828. (version-major+minor version) "/"
  5829. "libgnome-games-support-" version ".tar.xz"))
  5830. (sha256
  5831. (base32
  5832. "11g1r3ppb9v8m3anks9gxf7fv1x38vmjiya3lr7zjjv328pb69d6"))))
  5833. (build-system meson-build-system)
  5834. (arguments
  5835. '(#:glib-or-gtk? #t
  5836. #:phases
  5837. (modify-phases %standard-phases
  5838. (add-before 'check 'pre-check
  5839. (lambda _
  5840. ;; Tests require a writable HOME.
  5841. (setenv "HOME" (getcwd))
  5842. #t)))))
  5843. (native-inputs
  5844. `(("intltool" ,intltool)
  5845. ("pkg-config" ,pkg-config)
  5846. ("vala" ,vala)))
  5847. (propagated-inputs
  5848. ;; Required by libgnome-games-support-1.0.pc
  5849. `(("gtk+" ,gtk+)
  5850. ("libgee" ,libgee)))
  5851. (home-page "https://www.gnome.org/")
  5852. (synopsis "Useful functionality shared among GNOME games")
  5853. (description
  5854. "libgnome-games-support is a small library intended for internal use by
  5855. GNOME Games, but it may be used by others.")
  5856. (license license:lgpl3+)))
  5857. (define-public gnome-klotski
  5858. (package
  5859. (name "gnome-klotski")
  5860. (version "3.34.0")
  5861. (source (origin
  5862. (method url-fetch)
  5863. (uri (string-append "mirror://gnome/sources/" name "/"
  5864. (version-major+minor version) "/"
  5865. name "-" version ".tar.xz"))
  5866. (sha256
  5867. (base32
  5868. "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
  5869. (build-system meson-build-system)
  5870. (arguments
  5871. '(#:glib-or-gtk? #t
  5872. #:phases
  5873. (modify-phases %standard-phases
  5874. (add-after 'unpack 'skip-gtk-update-icon-cache
  5875. ;; Don't create 'icon-theme.cache'.
  5876. (lambda _
  5877. (substitute* "build-aux/meson_post_install.py"
  5878. (("gtk-update-icon-cache") (which "true")))
  5879. #t)))))
  5880. (native-inputs
  5881. `(("desktop-file-utils" ,desktop-file-utils)
  5882. ("glib:bin" ,glib "bin") ; for glib-compile-resources
  5883. ("intltool" ,intltool)
  5884. ("itstool" ,itstool)
  5885. ("pkg-config" ,pkg-config)
  5886. ("vala" ,vala)
  5887. ("xmllint" ,libxml2)))
  5888. (inputs
  5889. `(("gtk+" ,gtk+)
  5890. ("libgnome-games-support" ,libgnome-games-support)
  5891. ("librsvg" ,librsvg)))
  5892. (home-page "https://wiki.gnome.org/Apps/Klotski")
  5893. (synopsis "Sliding block puzzles")
  5894. (description
  5895. "GNOME Klotski is a set of block sliding puzzles. The objective is to move
  5896. the patterned block to the area bordered by green markers. To do so, you will
  5897. need to slide other blocks out of the way. Complete each puzzle in as few moves
  5898. as possible!")
  5899. (license license:gpl2+)))
  5900. (define-public grilo
  5901. (package
  5902. (name "grilo")
  5903. (version "0.3.13")
  5904. (source
  5905. (origin
  5906. (method url-fetch)
  5907. (uri (string-append "mirror://gnome/sources/grilo/"
  5908. (version-major+minor version) "/"
  5909. "grilo-" version ".tar.xz"))
  5910. (sha256
  5911. (base32 "0ywjvh7xw4ql1q4fvl0q5n06n08pga1g1nc9l7c3x5214gr3fj6i"))))
  5912. (build-system meson-build-system)
  5913. (native-inputs
  5914. `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
  5915. ("intltool" ,intltool)
  5916. ("pkg-config" ,pkg-config)
  5917. ("gobject-introspection" ,gobject-introspection)
  5918. ("gtk-doc" ,gtk-doc/stable)
  5919. ("vala" ,vala)))
  5920. (inputs
  5921. `(("cyrus-sasl" ,cyrus-sasl)
  5922. ("glib" ,glib)
  5923. ("gtk+" ,gtk+)
  5924. ("libxml2" ,libxml2)
  5925. ("liboauth" ,liboauth)
  5926. ("libsoup" ,libsoup)
  5927. ("totem-pl-parser" ,totem-pl-parser)))
  5928. (native-search-paths
  5929. (list (search-path-specification
  5930. (variable "GRL_PLUGIN_PATH")
  5931. (files (list (string-append "lib/grilo-"
  5932. (version-major+minor version)))))))
  5933. (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
  5934. (synopsis "Framework for discovering and browsing media")
  5935. (description
  5936. "Grilo is a framework focused on making media discovery and browsing easy
  5937. for application developers.")
  5938. (license license:lgpl2.1+)))
  5939. (define-public grilo-plugins
  5940. (package
  5941. (name "grilo-plugins")
  5942. (version "0.3.13")
  5943. (source
  5944. (origin
  5945. (method url-fetch)
  5946. (uri (string-append "mirror://gnome/sources/" name "/"
  5947. (version-major+minor version) "/"
  5948. name "-" version ".tar.xz"))
  5949. (sha256
  5950. (base32 "1y10nnd711qxwgpz6spzp1rnk50fyf11kk1n71a31ab4fgb0ahqw"))))
  5951. (build-system meson-build-system)
  5952. (native-inputs
  5953. `(("gettext" ,gettext-minimal)
  5954. ("glib:bin" ,glib "bin")
  5955. ("gtk+:bin" ,gtk+ "bin")
  5956. ("itstool" ,itstool)
  5957. ("pkg-config" ,pkg-config)))
  5958. ;; TODO: ahavi, gstreamer
  5959. (inputs
  5960. `(("grilo" ,grilo)
  5961. ;("gmime" ,gmime) ; unused
  5962. ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
  5963. ("gom" ,gom)
  5964. ;("gssdp" ,gssdp) ; unused
  5965. ;("gupnp" ,gupnp) ; unused
  5966. ;("gupnp-av" ,gupnp-av) ; unused
  5967. ("json-glib" ,json-glib)
  5968. ("avahi" ,avahi)
  5969. ("libgdata" ,libgdata)
  5970. ("libmediaart" ,libmediaart)
  5971. ;("librest" ,rest) ; unused
  5972. ("libsoup" ,libsoup)
  5973. ("python-pygobject" ,python-pygobject)
  5974. ("totam-pl-parser" ,totem-pl-parser)
  5975. ("tracker" ,tracker)
  5976. ("tracker-miners" ,tracker-miners)))
  5977. (arguments
  5978. `(#:glib-or-gtk? #t
  5979. ;;Disable lua-factory as it needs missing dependencies
  5980. #:configure-flags '("-Denable-lua-factory=no")
  5981. #:phases
  5982. (modify-phases %standard-phases
  5983. (add-before 'configure 'set-shell
  5984. (lambda _
  5985. (setenv "SHELL" (which "bash"))))
  5986. ;; Disable the tracker test that requires the UPower daemon.
  5987. (add-before 'configure 'fix-tests
  5988. (lambda* (#:key inputs #:allow-other-keys)
  5989. (substitute* "tests/tracker3/meson.build"
  5990. (("'test_tracker3'.*") "")))))))
  5991. (home-page "https://live.gnome.org/Grilo")
  5992. (synopsis "Plugins for the Grilo media discovery library")
  5993. (description
  5994. "Grilo is a framework focused on making media discovery and browsing easy
  5995. for application developers. This package provides plugins for common media
  5996. discovery protocols.")
  5997. (license license:lgpl2.1+)))
  5998. (define-public totem
  5999. (package
  6000. (name "totem")
  6001. (version "3.38.1")
  6002. (source
  6003. (origin
  6004. (method url-fetch)
  6005. (uri (string-append "mirror://gnome/sources/totem/"
  6006. (version-major+minor version) "/"
  6007. "totem-" version ".tar.xz"))
  6008. (sha256
  6009. (base32 "02510lvzvxvmpcs64k6sqix8ysl7sihhhwvp0vmfv7521ryczylg"))))
  6010. (build-system meson-build-system)
  6011. (native-inputs
  6012. `(("pkg-config" ,pkg-config)
  6013. ("desktop-file-utils" ,desktop-file-utils)
  6014. ("gettext" ,gettext-minimal)
  6015. ("gobject-introspection" ,gobject-introspection)
  6016. ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
  6017. ("itstool" ,itstool)
  6018. ("xmllint" ,libxml2)
  6019. ("xorg-server" ,xorg-server-for-tests)))
  6020. (propagated-inputs
  6021. `(("dconf" ,dconf)))
  6022. (inputs
  6023. `(("gtk+" ,gtk+)
  6024. ("gdk-pixbuf" ,gdk-pixbuf)
  6025. ("atk" ,atk)
  6026. ("cairo" ,cairo)
  6027. ("dbus-glib" ,dbus-glib)
  6028. ("clutter" ,clutter)
  6029. ("clutter-gtk" ,clutter-gtk)
  6030. ("clutter-gst" ,clutter-gst)
  6031. ("xorgproto" ,xorgproto)
  6032. ("libxxf86vm" ,libxxf86vm)
  6033. ("libxtst" ,libxtst)
  6034. ("libxrandr" ,libxrandr)
  6035. ("libxml2" ,libxml2)
  6036. ("libsoup" ,libsoup)
  6037. ("libpeas" ,libpeas)
  6038. ("librsvg" ,librsvg)
  6039. ("lirc" ,lirc)
  6040. ("gnome-desktop" ,gnome-desktop)
  6041. ("gstreamer" ,gstreamer)
  6042. ("gst-plugins-base" ,gst-plugins-base)
  6043. ("gst-plugins-good" ,gst-plugins-good)
  6044. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  6045. ("adwaita-icon-theme" ,adwaita-icon-theme)
  6046. ("python" ,python)
  6047. ("python-pygobject" ,python-pygobject)
  6048. ("totem-pl-parser" ,totem-pl-parser)
  6049. ("grilo" ,grilo)
  6050. ("grilo-plugins" ,grilo-plugins)
  6051. ("vala" ,vala)))
  6052. (arguments
  6053. `(#:glib-or-gtk? #t
  6054. ;; Disable automatic GStreamer plugin installation via PackageKit and
  6055. ;; all that.
  6056. #:configure-flags '("-D" "enable-easy-codec-installation=no"
  6057. ;; Do not build .a files for the plugins, it's
  6058. ;; completely useless. This saves 2 MiB.
  6059. "--default-library" "shared")
  6060. #:phases
  6061. (modify-phases %standard-phases
  6062. (add-after 'unpack 'skip-gtk-update-icon-cache
  6063. ;; Don't create 'icon-theme.cache'.
  6064. (lambda _
  6065. (substitute* "meson_post_install.py"
  6066. (("gtk-update-icon-cache") "true"))
  6067. #t))
  6068. (add-before
  6069. 'install 'disable-cache-generation
  6070. (lambda _
  6071. (setenv "DESTDIR" "/")
  6072. #t))
  6073. (add-before
  6074. 'check 'pre-check
  6075. (lambda _
  6076. ;; Tests require a running X server.
  6077. (system "Xvfb :1 &")
  6078. (setenv "DISPLAY" ":1")
  6079. #t))
  6080. (add-after
  6081. 'install 'wrap-totem
  6082. (lambda* (#:key inputs outputs #:allow-other-keys)
  6083. (let ((out (assoc-ref outputs "out"))
  6084. (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
  6085. (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
  6086. (wrap-program (string-append out "/bin/totem")
  6087. `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
  6088. `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
  6089. (wrap-program (string-append out "/bin/totem-video-thumbnailer")
  6090. `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
  6091. #t)))))
  6092. (home-page "https://wiki.gnome.org/Apps/Videos")
  6093. (synopsis "Simple media player for GNOME based on GStreamer")
  6094. (description "Totem is a simple yet featureful media player for GNOME
  6095. which can read a large number of file formats.")
  6096. ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
  6097. ;; to be used and distributed together with GStreamer and Totem. See
  6098. ;; file://COPYING in the source distribution for details.
  6099. (license license:gpl2+)))
  6100. (define-public rhythmbox
  6101. (package
  6102. (name "rhythmbox")
  6103. (version "3.4.4")
  6104. (source (origin
  6105. (method url-fetch)
  6106. (uri (string-append "mirror://gnome/sources/rhythmbox/"
  6107. (version-major+minor version) "/"
  6108. "rhythmbox-" version ".tar.xz"))
  6109. (sha256
  6110. (base32
  6111. "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
  6112. (build-system glib-or-gtk-build-system)
  6113. (arguments
  6114. `(#:configure-flags
  6115. (list "--enable-lirc"
  6116. "--enable-python"
  6117. "--enable-vala"
  6118. "--with-brasero"
  6119. "--with-gudev"
  6120. "--with-libsecret")
  6121. #:phases
  6122. (modify-phases %standard-phases
  6123. (add-after
  6124. 'install 'wrap-rhythmbox
  6125. (lambda* (#:key inputs outputs #:allow-other-keys)
  6126. (let ((out (assoc-ref outputs "out"))
  6127. (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
  6128. (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
  6129. (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
  6130. (python-path (getenv "GUIX_PYTHONPATH")))
  6131. (wrap-program (string-append out "/bin/rhythmbox")
  6132. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
  6133. `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
  6134. `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
  6135. `("GUIX_PYTHONPATH" ":" prefix (,python-path))))
  6136. #t)))))
  6137. (propagated-inputs
  6138. `(("dconf" ,dconf)))
  6139. (native-inputs
  6140. `(("itstool" ,itstool)
  6141. ("intltool" ,intltool)
  6142. ("glib" ,glib "bin")
  6143. ("gobject-introspection" ,gobject-introspection)
  6144. ("desktop-file-utils" ,desktop-file-utils)
  6145. ("pkg-config" ,pkg-config)
  6146. ("xmllint" ,libxml2)))
  6147. (inputs
  6148. `(("json-glib" ,json-glib)
  6149. ("tdb" ,tdb)
  6150. ("gnome-desktop" ,gnome-desktop)
  6151. ("python" ,python)
  6152. ("python-pygobject" ,python2-pygobject)
  6153. ("vala" ,vala)
  6154. ("gmime" ,gmime)
  6155. ("adwaita-icon-theme" ,adwaita-icon-theme)
  6156. ("grilo" ,grilo)
  6157. ("grilo-plugins" ,grilo-plugins)
  6158. ("gstreamer" ,gstreamer)
  6159. ("gst-plugins-base" ,gst-plugins-base)
  6160. ("gst-plugins-good" ,gst-plugins-good)
  6161. ("totem-pl-parser" ,totem-pl-parser)
  6162. ("libgudev" ,libgudev)
  6163. ;;("libmtp" ,libmtp) FIXME: Not detected
  6164. ("libsecret" ,libsecret)
  6165. ("libsoup" ,libsoup)
  6166. ("libnotify" ,libnotify)
  6167. ("libpeas" ,libpeas)
  6168. ("lirc" ,lirc)
  6169. ;; TODO: clutter* only used by visualizer plugin, which also requires mx
  6170. ;;("clutter" ,clutter)
  6171. ;;("clutter-gtk" ,clutter-gtk)
  6172. ;;("clutter-gst" ,clutter-gst)
  6173. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  6174. ("atk" ,atk)
  6175. ("pango" ,pango)
  6176. ("gtk+" ,gtk+)
  6177. ;; TODO:
  6178. ;; * libgpod
  6179. ;; * mx
  6180. ("brasero" ,brasero)))
  6181. (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
  6182. (synopsis "Music player for GNOME")
  6183. (description "Rhythmbox is a music playing application for GNOME. It
  6184. supports playlists, song ratings, and any codecs installed through gstreamer.")
  6185. (license license:gpl2+)))
  6186. (define-public eog
  6187. (package
  6188. (name "eog")
  6189. (version "40.3")
  6190. (source (origin
  6191. (method url-fetch)
  6192. (uri (string-append "mirror://gnome/sources/" name "/"
  6193. (version-major version) "/"
  6194. name "-" version ".tar.xz"))
  6195. (sha256
  6196. (base32
  6197. "0ddjwcd77nw0rxb5x5bz5hd671m8gya9827p8rsnb58x103kpai8"))))
  6198. (build-system meson-build-system)
  6199. (arguments
  6200. `(#:configure-flags
  6201. ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
  6202. (list (string-append "-Dc_link_args=-Wl,-rpath="
  6203. (assoc-ref %outputs "out") "/lib/eog"))
  6204. #:phases
  6205. (modify-phases %standard-phases
  6206. (add-after 'unpack 'skip-gtk-update-icon-cache
  6207. ;; Don't create 'icon-theme.cache'.
  6208. (lambda _
  6209. (substitute* "meson_post_install.py"
  6210. (("gtk-update-icon-cache") "true"))))
  6211. (add-after 'install 'wrap-eog
  6212. (lambda* (#:key outputs #:allow-other-keys)
  6213. (let ((out (assoc-ref outputs "out"))
  6214. (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
  6215. (wrap-program (string-append out "/bin/eog")
  6216. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))))))
  6217. (propagated-inputs
  6218. `(("dconf" ,dconf)))
  6219. (native-inputs
  6220. `(("intltool" ,intltool)
  6221. ("itstool" ,itstool)
  6222. ("glib" ,glib "bin")
  6223. ("gobject-introspection" ,gobject-introspection)
  6224. ("pkg-config" ,pkg-config)
  6225. ("xmllint" ,libxml2)))
  6226. (inputs
  6227. `(("gnome-desktop" ,gnome-desktop)
  6228. ("shared-mime-info" ,shared-mime-info)
  6229. ("adwaita-icon-theme" ,adwaita-icon-theme)
  6230. ("exempi" ,exempi)
  6231. ("lcms" ,lcms)
  6232. ("libexif" ,libexif)
  6233. ("libpeas" ,libpeas)
  6234. ("libportal" ,libportal)
  6235. ("libjpeg" ,libjpeg-turbo)
  6236. ("librsvg" ,librsvg)
  6237. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  6238. ("gtk+" ,gtk+)))
  6239. (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
  6240. (synopsis "GNOME image viewer")
  6241. (description "Eye of GNOME is the GNOME image viewer. It
  6242. supports image conversion, rotation, and slideshows.")
  6243. (license license:gpl2+)))
  6244. (define-public eog-plugins
  6245. ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
  6246. ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
  6247. ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
  6248. ;; 'XDG_DATA_DIRS' appropriately set.
  6249. (package
  6250. (name "eog-plugins")
  6251. (version "3.26.7")
  6252. (source (origin
  6253. (method url-fetch)
  6254. (uri (string-append "mirror://gnome/sources/eog-plugins/"
  6255. (version-major+minor version) "/"
  6256. "eog-plugins-" version ".tar.xz"))
  6257. (sha256
  6258. (base32
  6259. "0gbvl54hjawcrj2cbkvsw5jx11p6jv1xkc58c8ikwwpb56gc3ric"))))
  6260. (build-system gnu-build-system)
  6261. (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
  6262. (synopsis "Extensions for the Eye of GNOME image viewer")
  6263. (native-inputs
  6264. `(("pkg-config" ,pkg-config)
  6265. ("gettext" ,gettext-minimal)))
  6266. (inputs
  6267. `(("eog" ,eog)
  6268. ("glib" ,glib)
  6269. ("gtk+" ,gtk+)
  6270. ("libpeas" ,libpeas)
  6271. ("libexif" ,libexif)
  6272. ("libchamplain" ,libchamplain)))
  6273. (description
  6274. "This package provides plugins for the Eye of GNOME (EOG) image viewer,
  6275. notably:
  6276. @itemize
  6277. @item @dfn{EXIF Display}, which displays camera (EXIF) information;
  6278. @item @dfn{Map}, which displays a map of where the picture was taken on the
  6279. side panel;
  6280. @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
  6281. @end itemize\n")
  6282. ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
  6283. ;; long suspicious byte stream that goes to a
  6284. ;; ".gresource.eog_postasa_plugin" ELF section.
  6285. (license license:gpl2+)))
  6286. (define-public libgudev
  6287. (package
  6288. (name "libgudev")
  6289. (version "236")
  6290. (source (origin
  6291. (method url-fetch)
  6292. (uri (string-append "mirror://gnome/sources/" name "/"
  6293. version "/" name "-" version ".tar.xz"))
  6294. (sha256
  6295. (base32
  6296. "094mgjmwgsgqrr1i0vd20ynvlkihvs3vgbmpbrhswjsrdp86j0z5"))))
  6297. (build-system meson-build-system)
  6298. (native-inputs
  6299. `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
  6300. ("gobject-introspection" ,gobject-introspection)
  6301. ("pkg-config" ,pkg-config)))
  6302. (propagated-inputs
  6303. `(("glib" ,glib) ; in Requires of gudev-1.0.pc
  6304. ("eudev" ,eudev))) ; in Requires.private of gudev-1.0.pc
  6305. (inputs
  6306. `(("udev" ,eudev)))
  6307. (home-page "https://wiki.gnome.org/Projects/libgudev")
  6308. (synopsis "GObject bindings for libudev")
  6309. (description
  6310. "This library provides GObject bindings for libudev. It was originally
  6311. part of udev-extras, then udev, then systemd. It's now a project on its own.")
  6312. (license license:lgpl2.1+)))
  6313. (define-public gvfs
  6314. (package
  6315. (name "gvfs")
  6316. (version "1.48.1")
  6317. (source (origin
  6318. (method url-fetch)
  6319. (uri (string-append "mirror://gnome/sources/gvfs/"
  6320. (version-major+minor version) "/"
  6321. "gvfs-" version ".tar.xz"))
  6322. (sha256
  6323. (base32
  6324. "1hlxl6368h6nyqp1888szxs9hnpcw98k3h23dgqi29xd38klzsmj"))))
  6325. (build-system meson-build-system)
  6326. (arguments
  6327. '(#:glib-or-gtk? #t
  6328. #:configure-flags
  6329. (list "-Dsystemduserunitdir=no"
  6330. "-Dtmpfilesdir=no"
  6331. ;; Otherwise, the RUNPATH will lack the final path component.
  6332. (string-append "-Dc_link_args=-Wl,-rpath="
  6333. (assoc-ref %outputs "out") "/lib/gvfs"))))
  6334. (native-inputs
  6335. `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
  6336. ("gettext" ,gettext-minimal)
  6337. ("gtk-doc" ,gtk-doc/stable)
  6338. ("pkg-config" ,pkg-config)
  6339. ("xsltproc" ,libxslt)))
  6340. (inputs
  6341. `(("avahi" ,avahi)
  6342. ("docbook-xml" ,docbook-xml-4.2)
  6343. ("docbook-xsl" ,docbook-xsl)
  6344. ("dbus" ,dbus)
  6345. ("elogind" ,elogind)
  6346. ("fuse" ,fuse-3)
  6347. ("gcr" ,gcr)
  6348. ("glib" ,glib)
  6349. ("gnome-online-accounts" ,gnome-online-accounts)
  6350. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  6351. ("libarchive" ,libarchive)
  6352. ("libbluray" ,libbluray)
  6353. ("libcap" ,libcap)
  6354. ("libcdio-paranoia" ,libcdio-paranoia)
  6355. ("libgcrypt" ,libgcrypt)
  6356. ("libgdata" ,libgdata)
  6357. ("libgphoto2" ,libgphoto2)
  6358. ("libgudev" ,libgudev)
  6359. ("libimobiledevice" ,libimobiledevice)
  6360. ("libmtp" ,libmtp)
  6361. ("libnfs" ,libnfs)
  6362. ("libsecret" ,libsecret)
  6363. ("libsmbclient" ,samba)
  6364. ("libsoup" ,libsoup)
  6365. ("libxml2" ,libxml2)
  6366. ("openssh" ,openssh)
  6367. ("polkit" ,polkit)
  6368. ("udisks" ,udisks)))
  6369. (home-page "https://wiki.gnome.org/gvfs/")
  6370. (synopsis "Userspace virtual file system for GIO")
  6371. (description
  6372. "GVFS is a userspace virtual file system designed to work with the I/O
  6373. abstraction of GIO. It contains a GIO module that seamlessly adds GVFS
  6374. support to all applications using the GIO API. It also supports exposing the
  6375. GVFS mounts to non-GIO applications using FUSE.
  6376. GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
  6377. DAV, and others.")
  6378. (license license:lgpl2.0+)))
  6379. (define-public gusb
  6380. (package
  6381. (name "gusb")
  6382. (version "0.3.5")
  6383. (source (origin
  6384. (method git-fetch)
  6385. (uri (git-reference
  6386. (url "https://github.com/hughsie/libgusb")
  6387. (commit version)))
  6388. (file-name (git-file-name name version))
  6389. (sha256
  6390. (base32
  6391. "0ifhdqhpyxwsg0z9s1anj7cf5pya5qsqyp5ksh9n7mqwa4lrjkl8"))))
  6392. (build-system meson-build-system)
  6393. (native-inputs
  6394. `(("gobject-introspection" ,gobject-introspection)
  6395. ("pkg-config" ,pkg-config)
  6396. ("vala" ,vala)
  6397. ("gtk-doc" ,gtk-doc/stable)))
  6398. (propagated-inputs
  6399. ;; Both of these are required by gusb.pc.
  6400. `(("glib" ,glib)
  6401. ("libusb" ,libusb)))
  6402. (arguments
  6403. `(#:tests? #f ;libusb fails to initialize. Wonder what that is.
  6404. #:configure-flags
  6405. ,(if (%current-target-system)
  6406. ;; Introspection data cannot currently be cross-compiled.
  6407. ''("-Dintrospection=false"
  6408. ;; Requires introspection data.
  6409. "-Dvapi=false")
  6410. ''())))
  6411. (home-page "https://github.com/hughsie/libgusb")
  6412. (synopsis "GLib binding for libusb1")
  6413. (description
  6414. "GUsb is a GObject wrapper for libusb1 that makes it easy to do
  6415. asynchronous control, bulk and interrupt transfers with proper cancellation
  6416. and integration into a mainloop. This makes it easy to integrate low level
  6417. USB transfers with your high-level application or system daemon.")
  6418. (license license:lgpl2.1+)))
  6419. (define-public simple-scan
  6420. (package
  6421. (name "simple-scan")
  6422. (version "40.5")
  6423. (source
  6424. (origin
  6425. (method url-fetch)
  6426. (uri (string-append "mirror://gnome/sources/simple-scan/"
  6427. (version-major version) "/"
  6428. "simple-scan-" version ".tar.xz"))
  6429. (sha256
  6430. (base32 "195rh8zj5n497gj42rd77mvkdl15hk0i08ll5h4hb9kcrgj7jlzb"))))
  6431. (build-system meson-build-system)
  6432. ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
  6433. (arguments
  6434. '(#:glib-or-gtk? #t))
  6435. (inputs
  6436. `(("gtk" ,gtk+)
  6437. ("zlib" ,zlib)
  6438. ("cairo" ,cairo)
  6439. ("colord" ,colord)
  6440. ("gdk-pixbuf" ,gdk-pixbuf)
  6441. ("gusb" ,gusb)
  6442. ("libhandy" ,libhandy)
  6443. ("libsane" ,sane-backends)))
  6444. (native-inputs
  6445. `(("gettext" ,gettext-minimal)
  6446. ("itstool" ,itstool)
  6447. ("glib" ,glib "bin") ; glib-compile-schemas, etc.
  6448. ("pkg-config" ,pkg-config)
  6449. ("vala" ,vala)
  6450. ("xmllint" ,libxml2)))
  6451. (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
  6452. (synopsis "Document and image scanner")
  6453. (description
  6454. "Document Scanner is an easy-to-use application that lets you connect your
  6455. scanner and quickly capture images and documents in an appropriate format. It
  6456. supports any scanner for which a suitable SANE driver is available, which is
  6457. almost all of them.")
  6458. (license license:gpl3+)))
  6459. (define-public eolie
  6460. (package
  6461. (name "eolie")
  6462. (version "0.9.101")
  6463. (source (origin
  6464. (method url-fetch)
  6465. (uri (string-append "https://adishatz.org/eolie/eolie-"
  6466. version ".tar.xz"))
  6467. (sha256
  6468. (base32
  6469. "1v8n21y75abdzsnx5idyd0q6yfb6cd0sqbknlbkwh5fdgvjzyvwn"))))
  6470. (build-system meson-build-system)
  6471. (arguments
  6472. `(#:glib-or-gtk? #t
  6473. #:phases
  6474. (modify-phases %standard-phases
  6475. (add-after 'unpack 'skip-gtk-update-icon-cache
  6476. ;; Don't create 'icon-theme.cache'.
  6477. (lambda _
  6478. (substitute* "meson_post_install.py"
  6479. (("gtk-update-icon-cache") "true"))
  6480. #t))
  6481. (add-after 'wrap 'wrap-more
  6482. (lambda* (#:key inputs outputs #:allow-other-keys)
  6483. (let* ((out (assoc-ref outputs "out"))
  6484. ;; These libraries must be on LD_LIBRARY_PATH.
  6485. (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
  6486. "atk" "gtk+" "gsettings-desktop-schemas"
  6487. "gobject-introspection"))
  6488. (path (string-join
  6489. (map (lambda (lib)
  6490. (string-append (assoc-ref inputs lib) "/lib"))
  6491. libs)
  6492. ":")))
  6493. (wrap-program (string-append out "/bin/eolie")
  6494. `("LD_LIBRARY_PATH" ":" prefix (,path))
  6495. `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
  6496. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
  6497. #t)))))
  6498. (native-inputs
  6499. `(("intltool" ,intltool)
  6500. ("itstool" ,itstool)
  6501. ("pkg-config" ,pkg-config)
  6502. ("python" ,python)
  6503. ("glib:bin" ,glib "bin")))
  6504. (inputs
  6505. `(("gobject-introspection" ,gobject-introspection)
  6506. ("glib-networking" ,glib-networking)
  6507. ("cairo" ,cairo)
  6508. ("gtk+" ,gtk+)
  6509. ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
  6510. ("python" ,python-wrapper)
  6511. ("python-dateutil" ,python-dateutil)
  6512. ("python-pyfxa" ,python-pyfxa)
  6513. ("python-pygobject" ,python-pygobject)
  6514. ("python-pycairo" ,python-pycairo)
  6515. ("python-pycrypto" ,python-pycrypto)
  6516. ("libhandy" ,libhandy)
  6517. ("libsecret" ,libsecret)
  6518. ("gtkspell3" ,gtkspell3)
  6519. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  6520. ("gnome-settings-daemon" ,gnome-settings-daemon) ; desktop-schemas are not enough
  6521. ("webkitgtk" ,webkitgtk)))
  6522. (home-page "https://wiki.gnome.org/Apps/Eolie")
  6523. (synopsis "Web browser for GNOME")
  6524. (description
  6525. "Eolie is a new web browser for GNOME. It features Firefox sync support,
  6526. a secret password store, an adblocker, and a modern UI.")
  6527. (license license:gpl3+)))
  6528. (define-public epiphany
  6529. (package
  6530. (name "epiphany")
  6531. (version "40.3")
  6532. (source (origin
  6533. (method url-fetch)
  6534. (uri (string-append "mirror://gnome/sources/epiphany/"
  6535. (version-major version) "/"
  6536. "epiphany-" version ".tar.xz"))
  6537. (sha256
  6538. (base32
  6539. "0r7m34xzz3shdfxf2abxb069izak3yv3ijlg29qy4pfmyawkilfs"))))
  6540. (build-system meson-build-system)
  6541. (arguments
  6542. '(#:glib-or-gtk? #t
  6543. #:phases
  6544. (modify-phases %standard-phases
  6545. (add-after 'unpack 'skip-gtk-update-icon-cache
  6546. ;; Don't create 'icon-theme.cache'.
  6547. (lambda _
  6548. (substitute* "post_install.py"
  6549. (("gtk-update-icon-cache") "true"))))
  6550. (add-after 'unpack 'disable-failing-tests
  6551. (lambda _
  6552. (substitute* "tests/meson.build"
  6553. ;; embed_shell fails, because webkitgtk apparently no longer
  6554. ;; supports overriding the ftp schema web_app_utils fails due
  6555. ;; to missing network access.
  6556. (("(embed_shell|web_app_utils)_test,")
  6557. "find_program('sh'), args: ['-c', 'exit 77'],"))))
  6558. (add-before 'check 'pre-check
  6559. (lambda _
  6560. ;; Tests require a running X server.
  6561. (system "Xvfb :1 &")
  6562. (setenv "DISPLAY" ":1"))))
  6563. #:configure-flags
  6564. ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
  6565. (list (string-append "-Dc_link_args=-Wl,-rpath="
  6566. (assoc-ref %outputs "out") "/lib/epiphany"))))
  6567. (propagated-inputs
  6568. `(("dconf" ,dconf)))
  6569. (native-inputs
  6570. `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
  6571. ("glib:bin" ,glib "bin") ; for glib-mkenums
  6572. ("intltool" ,intltool)
  6573. ("itstool" ,itstool)
  6574. ("pkg-config" ,pkg-config)
  6575. ("xmllint" ,libxml2)
  6576. ("xorg-server" ,xorg-server-for-tests)))
  6577. (inputs
  6578. `(("avahi" ,avahi)
  6579. ("gcr" ,gcr)
  6580. ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
  6581. ("glib-networking" ,glib-networking)
  6582. ("gnome-desktop" ,gnome-desktop)
  6583. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  6584. ("json-glib" ,json-glib)
  6585. ("iso-codes" ,iso-codes)
  6586. ("libarchive" ,libarchive)
  6587. ("libdazzle" ,libdazzle)
  6588. ("libhandy" ,libhandy)
  6589. ("libnotify" ,libnotify)
  6590. ("libportal" ,libportal)
  6591. ("libsecret" ,libsecret)
  6592. ("libxslt" ,libxslt)
  6593. ("nettle" ,nettle) ; for hogweed
  6594. ("sqlite" ,sqlite)
  6595. ("webkitgtk" ,webkitgtk)))
  6596. (home-page "https://wiki.gnome.org/Apps/Web")
  6597. (synopsis "GNOME web browser")
  6598. (description
  6599. "Epiphany is a GNOME web browser targeted at non-technical users. Its
  6600. principles are simplicity and standards compliance.")
  6601. (license license:gpl2+)))
  6602. (define-public d-feet
  6603. (package
  6604. (name "d-feet")
  6605. (version "0.3.14")
  6606. (source (origin
  6607. (method url-fetch)
  6608. (uri (string-append "mirror://gnome/sources/" name "/"
  6609. (version-major+minor version) "/"
  6610. name "-" version ".tar.xz"))
  6611. (sha256
  6612. (base32
  6613. "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
  6614. (build-system glib-or-gtk-build-system)
  6615. (arguments
  6616. '(#:out-of-source? #f ; tests need to run in the source directory.
  6617. #:phases
  6618. (modify-phases %standard-phases
  6619. (add-before
  6620. 'check 'pre-check
  6621. (lambda _
  6622. ;; The test suite requires a running X server.
  6623. (system "Xvfb :1 &")
  6624. (setenv "DISPLAY" ":1")
  6625. ;; Don't fail on missing '/etc/machine-id'.
  6626. (setenv "DBUS_FATAL_WARNINGS" "0")
  6627. ;; tests.py and window.py don't meet E402:
  6628. ;; E402 module level import not at top of file
  6629. (substitute* "src/tests/Makefile"
  6630. (("--ignore=E123") "--ignore=E123,E402"))
  6631. #t))
  6632. (add-after
  6633. 'install 'wrap-program
  6634. (lambda* (#:key outputs #:allow-other-keys)
  6635. (let ((prog (string-append (assoc-ref outputs "out")
  6636. "/bin/d-feet")))
  6637. (wrap-program prog
  6638. `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
  6639. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
  6640. #t))))))
  6641. (native-inputs
  6642. `(("intltool" ,intltool)
  6643. ("itstool" ,itstool)
  6644. ("pkg-config" ,pkg-config)
  6645. ("python-pep8" ,python-pep8)
  6646. ("xmllint" ,libxml2)
  6647. ("xorg-server" ,xorg-server-for-tests)))
  6648. (inputs
  6649. `(("gobject-introspection" ,gobject-introspection)
  6650. ("gtk+" ,gtk+)
  6651. ("python" ,python-wrapper)
  6652. ("hicolor-icon-theme" ,hicolor-icon-theme)
  6653. ("python-pygobject" ,python-pygobject)))
  6654. (home-page "https://wiki.gnome.org/Apps/DFeet")
  6655. (synopsis "D-Bus debugger")
  6656. (description
  6657. "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
  6658. of running programs and invoke methods on those interfaces.")
  6659. (license license:gpl2+)))
  6660. (define-public yelp-xsl
  6661. (package
  6662. (name "yelp-xsl")
  6663. (version "3.34.2")
  6664. (source
  6665. (origin
  6666. (method url-fetch)
  6667. (uri
  6668. (string-append "mirror://gnome/sources/" name "/"
  6669. (version-major+minor version) "/"
  6670. name "-" version ".tar.xz"))
  6671. (sha256
  6672. (base32 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
  6673. (build-system gnu-build-system)
  6674. (arguments
  6675. `(#:configure-flags
  6676. (list
  6677. "--enable-doc")))
  6678. (native-inputs
  6679. `(("ducktype" ,mallard-ducktype)
  6680. ("gettext" ,gettext-minimal)
  6681. ("intltool" ,intltool)
  6682. ("itstool" ,itstool)
  6683. ("xmllint" ,libxml2)
  6684. ("xsltproc" ,libxslt)))
  6685. (synopsis "XSL stylesheets for Yelp")
  6686. (description "Yelp-XSL is a collection of programs and data files to help
  6687. you build, maintain, and distribute documentation. It provides XSLT stylesheets
  6688. that can be built upon for help viewers and publishing systems. These
  6689. stylesheets output JavaScript and CSS content, and reference images
  6690. provided by yelp-xsl. It also redistributes copies of the jQuery and
  6691. jQuery.Syntax JavaScript libraries.")
  6692. (home-page "https://wiki.gnome.org/Apps/Yelp")
  6693. (license
  6694. (list
  6695. ;; XSLT
  6696. license:gpl2+
  6697. ;; Images
  6698. license:lgpl2.1+
  6699. ;; JavaScript
  6700. license:expat))))
  6701. (define-public yelp
  6702. (package
  6703. (name "yelp")
  6704. (version "40.3")
  6705. (source (origin
  6706. (method url-fetch)
  6707. (uri (string-append "mirror://gnome/sources/" name "/"
  6708. (version-major version) "/"
  6709. name "-" version ".tar.xz"))
  6710. (sha256
  6711. (base32
  6712. "08zflnnw6as96n33xhn7zz78r7akbl0i1fzcg2z8jqgja5w88wx1"))))
  6713. (build-system glib-or-gtk-build-system)
  6714. (native-inputs
  6715. `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
  6716. ("intltool" ,intltool)
  6717. ("itstool" ,itstool)
  6718. ("pkg-config" ,pkg-config)))
  6719. (propagated-inputs
  6720. `(("dconf" ,dconf)))
  6721. (inputs
  6722. `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  6723. ("libxslt" ,libxslt)
  6724. ("sqlite" ,sqlite)
  6725. ("webkitgtk" ,webkitgtk)
  6726. ("yelp-xsl" ,yelp-xsl)))
  6727. (home-page "https://wiki.gnome.org/Apps/Yelp")
  6728. (synopsis "GNOME help browser")
  6729. (description
  6730. "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
  6731. man, info, and HTML documents. It can locate documents according to the
  6732. freedesktop.org help system specification.")
  6733. (license license:gpl2+)))
  6734. (define-public yelp-tools
  6735. (package
  6736. (name "yelp-tools")
  6737. (version "3.32.2")
  6738. (source
  6739. (origin
  6740. (method url-fetch)
  6741. (uri
  6742. (string-append "mirror://gnome/sources/" name "/"
  6743. (version-major+minor version) "/"
  6744. name "-" version ".tar.xz"))
  6745. (sha256
  6746. (base32 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
  6747. (build-system gnu-build-system)
  6748. (native-inputs
  6749. `(("pkg-config" ,pkg-config)))
  6750. (inputs
  6751. `(("yelp-xsl" ,yelp-xsl)))
  6752. (propagated-inputs
  6753. ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
  6754. `(("itstool" ,itstool)
  6755. ("xmllint" ,libxml2)
  6756. ("xsltproc" ,libxslt)))
  6757. (synopsis "Yelp documentation tools")
  6758. (description
  6759. "Yelp-tools is a collection of scripts and build utilities to help create,
  6760. manage, and publish documentation for Yelp and the web. Most of the heavy
  6761. lifting is done by packages like yelp-xsl and itstool. This package just
  6762. wraps things up in a developer-friendly way.")
  6763. (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
  6764. (license license:gpl2+)))
  6765. (define-public libgee
  6766. (package
  6767. (name "libgee")
  6768. (version "0.20.3")
  6769. (source (origin
  6770. (method url-fetch)
  6771. (uri (string-append "mirror://gnome/sources/libgee/"
  6772. (version-major+minor version) "/"
  6773. "libgee-" version ".tar.xz"))
  6774. (sha256
  6775. (base32
  6776. "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
  6777. (build-system gnu-build-system)
  6778. (arguments
  6779. `(#:phases
  6780. (modify-phases %standard-phases
  6781. (add-after 'unpack 'fix-introspection-install-dir
  6782. (lambda* (#:key outputs #:allow-other-keys)
  6783. (let ((out (assoc-ref outputs "out")))
  6784. (substitute* "gee/Makefile.in"
  6785. (("@INTROSPECTION_GIRDIR@")
  6786. (string-append out "/share/gir-1.0/"))
  6787. (("@INTROSPECTION_TYPELIBDIR@")
  6788. (string-append out "/lib/girepository-1.0/")))))))))
  6789. (native-inputs
  6790. `(("glib" ,glib "bin")
  6791. ("pkg-config" ,pkg-config)))
  6792. (inputs
  6793. `(("glib" ,glib)
  6794. ("gobject-introspection" ,gobject-introspection)))
  6795. (home-page "https://wiki.gnome.org/Projects/Libgee")
  6796. (synopsis "GObject collection library")
  6797. (description
  6798. "Libgee is a utility library providing GObject-based interfaces and
  6799. classes for commonly used data structures.")
  6800. (license license:lgpl2.1+)))
  6801. (define-public gexiv2
  6802. (package
  6803. (name "gexiv2")
  6804. (version "0.12.2")
  6805. (source (origin
  6806. (method url-fetch)
  6807. (uri (string-append "mirror://gnome/sources/" name "/"
  6808. (version-major+minor version) "/"
  6809. name "-" version ".tar.xz"))
  6810. (sha256
  6811. (base32
  6812. "0k4ljzzz5dwqndw8awvlw3ala8rh3b2rk9i4jzvywc53mi9ba8i3"))))
  6813. (build-system meson-build-system)
  6814. (native-inputs
  6815. `(("gcr" ,gcr)
  6816. ("glib" ,glib "bin")
  6817. ("pkg-config" ,pkg-config)
  6818. ("vala" ,vala)))
  6819. (propagated-inputs
  6820. ;; Listed in "Requires" section of gexiv2.pc
  6821. `(("exiv2" ,exiv2)))
  6822. (inputs
  6823. `(("glib" ,glib)
  6824. ("gobject-introspection" ,gobject-introspection)))
  6825. (home-page "https://wiki.gnome.org/Projects/gexiv2")
  6826. (synopsis "GObject wrapper around the Exiv2 photo metadata library")
  6827. (description
  6828. "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
  6829. allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
  6830. metadata in photo and video files of various formats.")
  6831. (license license:gpl2+)))
  6832. (define-public shotwell
  6833. (package
  6834. (name "shotwell")
  6835. (version "0.30.12")
  6836. (source (origin
  6837. (method url-fetch)
  6838. (uri (string-append "mirror://gnome/sources/shotwell/"
  6839. (version-major+minor version) "/"
  6840. "shotwell-" version ".tar.xz"))
  6841. (sha256
  6842. (base32
  6843. "1h5crjq59lqi8f8mdkadzi8pc3i9i2ik4lsx2nrhzq486fzdfhw6"))))
  6844. (build-system meson-build-system)
  6845. (arguments
  6846. '(#:glib-or-gtk? #t
  6847. #:phases
  6848. (modify-phases %standard-phases
  6849. (add-after 'unpack 'skip-gtk-update-icon-cache
  6850. (lambda _
  6851. (substitute* "build-aux/meson/postinstall.py"
  6852. (("gtk-update-icon-cache") (which "true"))
  6853. (("update-desktop-database") (which "true")))
  6854. #t)))))
  6855. (propagated-inputs
  6856. `(("dconf" ,dconf)))
  6857. (native-inputs
  6858. `(("gettext" ,gettext-minimal)
  6859. ("glib:bin" ,glib "bin")
  6860. ("itstool" ,itstool)
  6861. ("pkg-config" ,pkg-config)
  6862. ("vala" ,vala)))
  6863. (inputs
  6864. `(("gcr" ,gcr)
  6865. ("gexiv2" ,gexiv2)
  6866. ("gst-plugins-base" ,gst-plugins-base)
  6867. ("gstreamer" ,gstreamer)
  6868. ("json-glib" ,json-glib)
  6869. ("libgdata" ,libgdata)
  6870. ("libgee" ,libgee)
  6871. ("libgphoto2" ,libgphoto2)
  6872. ("libgudev" ,libgudev)
  6873. ("libraw" ,libraw)
  6874. ("libsoup" ,libsoup)
  6875. ("libxml2" ,libxml2)
  6876. ("sqlite" ,sqlite)
  6877. ("webkitgtk" ,webkitgtk)))
  6878. (home-page "https://wiki.gnome.org/Apps/Shotwell")
  6879. (synopsis "Photo manager for GNOME 3")
  6880. (description
  6881. "Shotwell is a digital photo manager designed for the GNOME desktop
  6882. environment. It allows you to import photos from disk or camera, organize
  6883. them by keywords and events, view them in full-window or fullscreen mode, and
  6884. share them with others via social networking and more.")
  6885. (license license:lgpl2.1+)))
  6886. (define-public file-roller
  6887. (package
  6888. (name "file-roller")
  6889. (version "3.40.0")
  6890. (source (origin
  6891. (method url-fetch)
  6892. (uri (string-append "mirror://gnome/sources/file-roller/"
  6893. (version-major+minor version) "/"
  6894. "file-roller-" version ".tar.xz"))
  6895. (sha256
  6896. (base32
  6897. "039w1dcpa5ypmv6sm634alk9vbcdkyvy595vkh5gn032jsiqca2a"))))
  6898. (build-system meson-build-system)
  6899. (native-inputs
  6900. `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
  6901. ("intltool" ,intltool)
  6902. ("itstool" ,itstool)
  6903. ("pkg-config" ,pkg-config)
  6904. ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
  6905. ("glib:bin" ,glib "bin")))
  6906. ;; TODO: Add libnautilus.
  6907. (inputs
  6908. `(("gtk+" ,gtk+)
  6909. ("gdk-pixbuf" ,gdk-pixbuf)
  6910. ("json-glib" ,json-glib)
  6911. ("libarchive" ,libarchive)
  6912. ("libnotify" ,libnotify)
  6913. ("nettle" ,nettle)
  6914. ("libxml2" ,libxml2)))
  6915. (synopsis "Graphical archive manager for GNOME")
  6916. (description "File Roller is an archive manager for the GNOME desktop
  6917. environment that allows users to view, unpack, and create compressed archives
  6918. such as gzip tarballs.")
  6919. (home-page "http://fileroller.sourceforge.net/")
  6920. (license license:gpl2+)))
  6921. (define-public gnome-session
  6922. (package
  6923. (name "gnome-session")
  6924. (version "40.1")
  6925. (source (origin
  6926. (method url-fetch)
  6927. (uri (string-append "mirror://gnome/sources/" name "/"
  6928. (version-major version) "/"
  6929. name "-" version ".tar.xz"))
  6930. (sha256
  6931. (base32
  6932. "02z0xr6sv9ibl7awbw9j4y05hf4jk1zgvsbbmh7n27hhjvsvc8pl"))))
  6933. (arguments
  6934. '(#:glib-or-gtk? #t
  6935. #:phases
  6936. (modify-phases %standard-phases
  6937. (add-before 'configure 'pre-configure
  6938. (lambda* (#:key outputs #:allow-other-keys)
  6939. ;; Use elogind instead of systemd.
  6940. (substitute* "meson.build"
  6941. (("libsystemd-login") "libelogind")
  6942. (("and libsystemd_daemon_dep.found.*") ","))
  6943. (substitute* "gnome-session/gsm-systemd.c"
  6944. (("#include <systemd/sd-login.h>")
  6945. "#include <elogind/sd-login.h>"))
  6946. ;; Remove uses of the systemd daemon.
  6947. (substitute* "gnome-session/gsm-autostart-app.c"
  6948. (("#ifdef HAVE_SYSTEMD") "#if 0"))))
  6949. (add-after 'install 'wrap-gnome-session
  6950. (lambda* (#:key inputs outputs #:allow-other-keys)
  6951. ;; Make sure 'gnome-session' finds the 'gsettings' program.
  6952. (let ((glib (assoc-ref inputs "glib:bin"))
  6953. (out (assoc-ref outputs "out")))
  6954. (wrap-program (string-append out "/bin/gnome-session")
  6955. `("PATH" ":" prefix (,(string-append glib "/bin"))))))))
  6956. #:configure-flags
  6957. '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
  6958. "-Dman=false" ; FIXME: disabled because of docbook validation error
  6959. "-Dsystemd=false"
  6960. "-Dsystemd_session=disable"
  6961. "-Dsystemd_journal=false")))
  6962. (build-system meson-build-system)
  6963. (native-inputs
  6964. `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
  6965. ("pkg-config" ,pkg-config)
  6966. ("intltool" ,intltool)
  6967. ("xsltproc" ,libxslt)
  6968. ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
  6969. ("docbook-xsl" ,docbook-xsl)
  6970. ("docbook-xml" ,docbook-xml)
  6971. ("xmlto" ,xmlto)))
  6972. (inputs
  6973. `(("elogind" ,elogind)
  6974. ("gnome-desktop" ,gnome-desktop)
  6975. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  6976. ("gtk+" ,gtk+)
  6977. ("json-glib" ,json-glib)
  6978. ("libsm" ,libsm)
  6979. ("libxcomposite" ,libxcomposite)
  6980. ("libxtst" ,libxtst)
  6981. ("mesa" ,mesa)
  6982. ("upower" ,upower)
  6983. ("xtrans" ,xtrans)))
  6984. (synopsis "Session manager for GNOME")
  6985. (description
  6986. "This package contains the GNOME session manager, as well as a
  6987. configuration program to choose applications starting on login.")
  6988. (home-page "https://wiki.gnome.org/Projects/SessionManagement")
  6989. (license license:gpl2+)))
  6990. (define-public gjs
  6991. (package
  6992. (name "gjs")
  6993. (version "1.68.2")
  6994. (source (origin
  6995. (method url-fetch)
  6996. (uri (string-append "mirror://gnome/sources/" name "/"
  6997. (version-major+minor version) "/"
  6998. name "-" version ".tar.xz"))
  6999. (sha256
  7000. (base32
  7001. "0c7fclm53v41n5vfndymp35fbh1x218lrk65iqrk1wc2lsnh5zvh"))
  7002. (modules '((guix build utils)))
  7003. (snippet
  7004. '(begin
  7005. (substitute* "installed-tests/scripts/testCommandLine.sh"
  7006. (("Valentín") "")
  7007. (("☭") ""))))))
  7008. (build-system meson-build-system)
  7009. (arguments
  7010. '(#:configure-flags '("-Dinstalled_tests=false")
  7011. #:phases
  7012. (modify-phases %standard-phases
  7013. (add-before 'check 'pre-check
  7014. (lambda _
  7015. ;; The test suite requires a running X server.
  7016. (system "Xvfb :1 &")
  7017. (setenv "DISPLAY" ":1")
  7018. ;; For the missing /etc/machine-id.
  7019. (setenv "DBUS_FATAL_WARNINGS" "0"))))))
  7020. (native-inputs
  7021. `(("glib:bin" ,glib "bin") ; for glib-compile-resources
  7022. ("pkg-config" ,pkg-config)
  7023. ("xmllint" ,libxml2)
  7024. ;; For testing
  7025. ("dbus-launch" ,dbus)
  7026. ("dconf" ,dconf) ; required to properly store settings
  7027. ("uuidgen" ,util-linux)
  7028. ("xvfb" ,xorg-server-for-tests)))
  7029. (propagated-inputs
  7030. ;; These are all in the Requires.private field of gjs-1.0.pc.
  7031. `(("cairo" ,cairo)
  7032. ("gobject-introspection" ,gobject-introspection)
  7033. ("mozjs" ,mozjs-78)))
  7034. (inputs
  7035. `(("gtk+" ,gtk+)
  7036. ("readline" ,readline)))
  7037. (synopsis "Javascript bindings for GNOME")
  7038. (home-page "https://live.gnome.org/Gjs")
  7039. (description
  7040. "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
  7041. javascript engine and the GObject introspection framework.")
  7042. (license license:gpl2+)))
  7043. (define-public gedit
  7044. (package
  7045. (name "gedit")
  7046. (version "40.1")
  7047. (source (origin
  7048. (method url-fetch)
  7049. (uri (string-append "mirror://gnome/sources/" name "/"
  7050. (version-major version) "/"
  7051. name "-" version ".tar.xz"))
  7052. (sha256
  7053. (base32
  7054. "149ngl9qw6h59546lir1pa7hvw23ppsnqlj9mfqphmmn5jl99qsm"))))
  7055. (build-system meson-build-system)
  7056. (arguments
  7057. `(#:glib-or-gtk? #t
  7058. #:configure-flags
  7059. ;; Otherwise, the RUNPATH will lack the final path component.
  7060. (list (string-append "-Dc_link_args=-Wl,-rpath="
  7061. (assoc-ref %outputs "out") "/lib/gedit"))
  7062. ;; XXX: Generated .h files are sometimes used before being built.
  7063. #:parallel-build? #f
  7064. #:phases
  7065. (modify-phases %standard-phases
  7066. (add-after 'unpack 'skip-gtk-update-icon-cache
  7067. ;; Don't create 'icon-theme.cache'.
  7068. (lambda _
  7069. (substitute* "build-aux/meson/post_install.py"
  7070. (("gtk-update-icon-cache") (which "true")))
  7071. #t))
  7072. (add-after 'unpack 'patch-libgd-fetch
  7073. (lambda* (#:key inputs #:allow-other-keys)
  7074. (let ((libgd (assoc-ref inputs "libgd")))
  7075. ;; Calling git is unnecessary because libgd is fetched as a
  7076. ;; native input to this package.
  7077. (substitute* "meson.build"
  7078. ((".*git.*") ""))
  7079. (copy-recursively libgd "subprojects/libgd")
  7080. #t)))
  7081. (add-after 'install 'wrap-gedit
  7082. (lambda* (#:key inputs outputs #:allow-other-keys)
  7083. (let ((out (assoc-ref outputs "out"))
  7084. (gtksourceview (assoc-ref inputs "gtksourceview"))
  7085. (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
  7086. (python-path (getenv "GUIX_PYTHONPATH")))
  7087. (wrap-program (string-append out "/bin/gedit")
  7088. ;; For plugins.
  7089. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
  7090. `("GUIX_PYTHONPATH" ":" prefix (,python-path))
  7091. ;; For language-specs.
  7092. `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
  7093. "/share")))))
  7094. #t)))))
  7095. (propagated-inputs
  7096. `(("dconf" ,dconf)))
  7097. (native-inputs
  7098. `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
  7099. ("intltool" ,intltool)
  7100. ("itstool" ,itstool)
  7101. ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
  7102. ("gobject-introspection" ,gobject-introspection)
  7103. ("libgd"
  7104. ,(origin
  7105. (method git-fetch)
  7106. (uri (git-reference
  7107. (url "https://gitlab.gnome.org/GNOME/libgd")
  7108. (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
  7109. (file-name (git-file-name "libgd" version))
  7110. (sha256
  7111. (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
  7112. ("pkg-config" ,pkg-config)))
  7113. (inputs
  7114. `(("amtk" ,amtk)
  7115. ("glib" ,glib)
  7116. ("gspell" ,gspell)
  7117. ("gtk+" ,gtk+)
  7118. ("gtksourceview" ,gtksourceview)
  7119. ("libpeas" ,libpeas)
  7120. ("libxml2" ,libxml2)
  7121. ("iso-codes" ,iso-codes)
  7122. ("python-pygobject" ,python-pygobject)
  7123. ("python" ,python)
  7124. ("tepl" ,tepl)
  7125. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  7126. ("libx11" ,libx11)
  7127. ("vala" ,vala)
  7128. ("adwaita-icon-theme" ,adwaita-icon-theme)
  7129. ("libsoup" ,libsoup)
  7130. ("gnome-desktop" ,gnome-desktop)))
  7131. (home-page "https://wiki.gnome.org/Apps/Gedit")
  7132. (synopsis "GNOME text editor")
  7133. (description "While aiming at simplicity and ease of use, gedit is a
  7134. powerful general purpose text editor.")
  7135. (license license:gpl2+)))
  7136. (define-public zenity
  7137. (package
  7138. (name "zenity")
  7139. (version "3.32.0")
  7140. (source (origin
  7141. (method url-fetch)
  7142. (uri (string-append "mirror://gnome/sources/zenity/"
  7143. (version-major+minor version) "/"
  7144. "zenity-" version ".tar.xz"))
  7145. (sha256
  7146. (base32
  7147. "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
  7148. (build-system gnu-build-system)
  7149. (native-inputs
  7150. `(("gettext" ,gettext-minimal)
  7151. ("itstool" ,itstool)
  7152. ("pkg-config" ,pkg-config)))
  7153. (inputs
  7154. `(("libnotify" ,libnotify)
  7155. ("webkitgtk" ,webkitgtk)))
  7156. (synopsis "Display graphical dialog boxes from shell scripts")
  7157. (home-page "https://www.gnome.org")
  7158. (description
  7159. "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
  7160. to display dialog boxes from the commandline and shell scripts.")
  7161. (license license:lgpl2.0+)))
  7162. (define-public mutter
  7163. (package
  7164. (name "mutter")
  7165. (version "40.5")
  7166. (source (origin
  7167. (method url-fetch)
  7168. (uri (string-append "mirror://gnome/sources/" name "/"
  7169. (version-major version) "/"
  7170. name "-" version ".tar.xz"))
  7171. (sha256
  7172. (base32
  7173. "0bmd6p9qcwx0hv0y2bp33xjfaw4lyfkl55r0qn2cm04465riddny"))))
  7174. ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
  7175. ;; versions of cogl and clutter. As a result, many of the inputs,
  7176. ;; propagated-inputs, and configure flags used in cogl and clutter are
  7177. ;; needed here as well.
  7178. (build-system meson-build-system)
  7179. (arguments
  7180. '(;; XXX: All mutter tests fail with the following error:
  7181. ;; Settings schema 'org.gnome.mutter' is not installed
  7182. #:tests? #f
  7183. #:glib-or-gtk? #t
  7184. #:configure-flags
  7185. ;; TODO: Enable profiler when Sysprof is packaged.
  7186. (list "-Dprofiler=false"
  7187. ;; Otherwise, the RUNPATH will lack the final path component.
  7188. (string-append "-Dc_link_args=-Wl,-rpath="
  7189. (assoc-ref %outputs "out") "/lib:"
  7190. (assoc-ref %outputs "out") "/lib/mutter-8")
  7191. ;; The following flags are needed for the bundled clutter
  7192. (string-append "-Dxwayland_path="
  7193. (assoc-ref %build-inputs "xorg-server-xwayland")
  7194. "/bin/Xwayland")
  7195. ;; the remaining flags are needed for the bundled cogl
  7196. (string-append "-Dopengl_libname="
  7197. (assoc-ref %build-inputs "mesa")
  7198. "/lib/libGL.so"))
  7199. #:phases
  7200. (modify-phases %standard-phases
  7201. (add-before 'configure 'set-udev-dir
  7202. (lambda* (#:key inputs outputs #:allow-other-keys)
  7203. (setenv "PKG_CONFIG_UDEV_UDEVDIR"
  7204. (string-append (assoc-ref outputs "out")
  7205. "/lib/udev")))))))
  7206. (native-inputs
  7207. `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
  7208. ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
  7209. ("gobject-introspection" ,gobject-introspection)
  7210. ("intltool" ,intltool)
  7211. ("pkg-config" ,pkg-config)
  7212. ("xorg-server" ,xorg-server-for-tests)
  7213. ;; For git build
  7214. ("autoconf" ,autoconf)
  7215. ("automake" ,automake)
  7216. ("libtool" ,libtool)))
  7217. (propagated-inputs
  7218. `(;; libmutter.pc refers to these:
  7219. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  7220. ("gtk+" ,gtk+)
  7221. ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
  7222. ("atk" ,atk)
  7223. ("cairo" ,cairo)
  7224. ("gdk-pixbuf" ,gdk-pixbuf)
  7225. ("glib" ,glib)
  7226. ("json-glib" ,json-glib)
  7227. ("libinput" ,libinput)
  7228. ("libx11" ,libx11)
  7229. ("libxcomposite" ,libxcomposite)
  7230. ("libxdamage" ,libxdamage)
  7231. ("libxext" ,libxext)
  7232. ("libxfixes" ,libxfixes)
  7233. ("libxkbcommon" ,libxkbcommon)
  7234. ("libxml2" ,libxml2)
  7235. ("libxrandr" ,libxrandr)
  7236. ("mesa" ,mesa)
  7237. ("pango" ,pango)
  7238. ("udev" ,eudev)
  7239. ("xinput" ,xinput)))
  7240. (inputs
  7241. `(("elogind" ,elogind)
  7242. ("gnome-desktop" ,gnome-desktop)
  7243. ("gnome-settings-daemon" ,gnome-settings-daemon)
  7244. ("graphene" ,graphene)
  7245. ("libcanberra-gtk" ,libcanberra)
  7246. ("libgudev" ,libgudev)
  7247. ("libice" ,libice)
  7248. ("libsm" ,libsm)
  7249. ("libwacom" ,libwacom)
  7250. ("libxkbfile" ,libxkbfile)
  7251. ("libxrandr" ,libxrandr)
  7252. ("libxtst" ,libxtst)
  7253. ("pipewire" ,pipewire-0.3)
  7254. ("startup-notification" ,startup-notification)
  7255. ("upower-glib" ,upower)
  7256. ("xkeyboard-config" ,xkeyboard-config)
  7257. ("xorg-server-xwayland" ,xorg-server-xwayland)
  7258. ("zenity" ,zenity)))
  7259. (synopsis "Window and compositing manager")
  7260. (home-page "https://www.gnome.org")
  7261. (description
  7262. "Mutter is a window and compositing manager that displays and manages your
  7263. desktop via OpenGL. Mutter combines a sophisticated display engine using the
  7264. Clutter toolkit with solid window-management logic inherited from the Metacity
  7265. window manager.")
  7266. (license license:gpl2+)))
  7267. (define-public gnome-online-accounts
  7268. (package
  7269. (name "gnome-online-accounts")
  7270. (version "3.40.0")
  7271. (source (origin
  7272. (method url-fetch)
  7273. (uri (string-append "mirror://gnome/sources/" name "/"
  7274. (version-major+minor version) "/"
  7275. name "-" version ".tar.xz"))
  7276. (sha256
  7277. (base32
  7278. "1yn3n9pn2afrfv36cy2vxhm5r8lbn4gb0kyvpxvknm3gkyblyp2q"))))
  7279. (outputs '("out" "lib"))
  7280. (build-system glib-or-gtk-build-system)
  7281. (arguments
  7282. `(#:configure-flags
  7283. (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
  7284. #:phases
  7285. (modify-phases %standard-phases
  7286. (add-before 'configure 'patch-libgoa-output
  7287. (lambda* (#:key outputs #:allow-other-keys)
  7288. (let ((lib (assoc-ref outputs "lib")))
  7289. (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
  7290. (("@prefix@") lib)
  7291. (("@exec_prefix@") lib)
  7292. (("@libdir@") (string-append lib "/lib"))
  7293. (("@includedir@") (string-append lib "/include"))
  7294. (("@datadir@") (string-append lib "/share")))
  7295. ;; Make sure gobject-introspection knows about the output
  7296. ;; too (see <https://bugs.gnu.org/36535>).
  7297. (setenv "outputs" "out lib")))))))
  7298. (native-inputs
  7299. `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
  7300. ("gobject-introspection" ,gobject-introspection)
  7301. ("intltool" ,intltool)
  7302. ("pkg-config" ,pkg-config)
  7303. ("vala" ,vala)
  7304. ("xsltproc" ,libxslt)))
  7305. (propagated-inputs
  7306. `(("glib" ,glib) ; required by goa-1.0.pc
  7307. ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
  7308. (inputs
  7309. `(("docbook-xsl" ,docbook-xsl)
  7310. ("json-glib" ,json-glib)
  7311. ("libsecret" ,libsecret)
  7312. ("rest" ,rest)
  7313. ("webkitgtk" ,webkitgtk)))
  7314. (synopsis "Single sign-on framework for GNOME")
  7315. (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
  7316. (description
  7317. "GNOME Online Accounts provides interfaces so that applications and
  7318. libraries in GNOME can access the user's online accounts. It has providers
  7319. for Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare,
  7320. Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
  7321. (license license:lgpl2.0+)))
  7322. (define-public evolution-data-server
  7323. (package
  7324. (name "evolution-data-server")
  7325. (version "3.34.2")
  7326. (source
  7327. (origin
  7328. (method url-fetch)
  7329. (uri (string-append "mirror://gnome/sources/" name "/"
  7330. (version-major+minor version) "/"
  7331. name "-" version ".tar.xz"))
  7332. (patches
  7333. (search-patches "evolution-data-server-locales.patch"
  7334. "evolution-data-server-libical-compat.patch"
  7335. "evolution-data-server-CVE-2020-14928.patch"
  7336. "evolution-data-server-CVE-2020-16117.patch"
  7337. "evolution-data-server-printableoptions.patch"))
  7338. (sha256
  7339. (base32 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
  7340. (build-system cmake-build-system)
  7341. (arguments
  7342. '(#:configure-flags
  7343. (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
  7344. (runpaths (map (lambda (s)
  7345. (string-append lib "/evolution-data-server/" s))
  7346. '("addressbook-backends" "calendar-backends"
  7347. "camel-providers" "credential-modules"
  7348. "registry-modules"))))
  7349. (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
  7350. "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
  7351. "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
  7352. "-DENABLE_VALA_BINDINGS=ON"
  7353. (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
  7354. (string-append lib "/evolution-data-server;")
  7355. (string-join runpaths ";"))
  7356. "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
  7357. #:phases
  7358. (modify-phases %standard-phases
  7359. (add-after 'unpack 'disable-failing-tests
  7360. (lambda _
  7361. ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
  7362. ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
  7363. (delete-file-recursively "tests/book-migration")
  7364. (substitute* "tests/CMakeLists.txt"
  7365. (("add_subdirectory\\(book-migration\\)") ""))
  7366. #t))
  7367. (add-after 'unpack 'patch-paths
  7368. (lambda _
  7369. (substitute* '("tests/test-server-utils/e-test-server-utils.c"
  7370. "tests/libedata-book/data-test-utils.c"
  7371. "tests/libedata-book/test-book-cache-utils.c"
  7372. "tests/libedata-cal/test-cal-cache-utils.c")
  7373. (("/bin/rm") (which "rm")))
  7374. #t))
  7375. (add-before 'configure 'dont-override-rpath
  7376. (lambda _
  7377. (substitute* "CMakeLists.txt"
  7378. ;; CMakeLists.txt hard-codes runpath to just the libdir.
  7379. ;; Remove it so the configure flag is respected.
  7380. (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
  7381. #t)))))
  7382. (native-inputs
  7383. `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
  7384. ("gobject-introspection" ,gobject-introspection)
  7385. ("gperf" ,gperf)
  7386. ("intltool" ,intltool)
  7387. ("pkg-config" ,pkg-config)
  7388. ("vala" ,vala)
  7389. ("python" ,python-wrapper)))
  7390. (propagated-inputs
  7391. ;; These are all in the Requires field of .pc files.
  7392. `(("gtk+" ,gtk+)
  7393. ("libical" ,libical)
  7394. ("libsecret" ,libsecret)
  7395. ("libsoup" ,libsoup)
  7396. ("nss" ,nss)
  7397. ("sqlite" ,sqlite)))
  7398. (inputs
  7399. `(("bdb" ,bdb)
  7400. ("gcr" ,gcr)
  7401. ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
  7402. ("json-glib" ,json-glib)
  7403. ("libcanberra" ,libcanberra)
  7404. ("libgweather" ,libgweather)
  7405. ("mit-krb5" ,mit-krb5)
  7406. ("openldap" ,openldap)
  7407. ("webkitgtk" ,webkitgtk)))
  7408. (synopsis "Store address books and calendars")
  7409. (home-page "https://wiki.gnome.org/Apps/Evolution")
  7410. (description
  7411. "This package provides a unified backend for programs that work with
  7412. contacts, tasks, and calendar information. It was originally developed for
  7413. Evolution (hence the name), but is now used by other packages as well.")
  7414. (license license:lgpl2.0)))
  7415. (define-public caribou
  7416. (package
  7417. (name "caribou")
  7418. (version "0.4.21")
  7419. (source (origin
  7420. (method url-fetch)
  7421. (uri (string-append "mirror://gnome/sources/" name "/"
  7422. (version-major+minor version) "/"
  7423. name "-" version ".tar.xz"))
  7424. (sha256
  7425. (base32
  7426. "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
  7427. (build-system glib-or-gtk-build-system)
  7428. (arguments
  7429. '(#:phases
  7430. (modify-phases %standard-phases
  7431. (add-before
  7432. 'build 'pre-build
  7433. (lambda* (#:key outputs #:allow-other-keys)
  7434. (let ((out (assoc-ref outputs "out")))
  7435. ;; Use absolute shared library path in Caribou-1.0.typelib.
  7436. (substitute* "libcaribou/Makefile"
  7437. (("--shared-library=libcaribou.so")
  7438. (string-append "--shared-library="
  7439. out "/lib/libcaribou.so")))
  7440. #t)))
  7441. (add-after 'install 'wrap-programs
  7442. (lambda* (#:key outputs #:allow-other-keys)
  7443. (let* ((out (assoc-ref outputs "out"))
  7444. (python-path (getenv "GUIX_PYTHONPATH"))
  7445. (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
  7446. (for-each
  7447. (lambda (prog)
  7448. (wrap-program prog
  7449. `("GUIX_PYTHONPATH" ":" prefix (,python-path))
  7450. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
  7451. (list (string-append out "/bin/caribou-preferences")
  7452. (string-append out "/libexec/antler-keyboard"))))
  7453. #t)))))
  7454. (native-inputs
  7455. `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
  7456. ("gobject-introspection" ,gobject-introspection)
  7457. ("intltool" ,intltool)
  7458. ("pkg-config" ,pkg-config)
  7459. ("python" ,python)
  7460. ("vala" ,vala)
  7461. ("xsltproc" ,libxslt)))
  7462. (propagated-inputs
  7463. ;; caribou-1.0.pc refers to all these.
  7464. `(("libgee" ,libgee)
  7465. ("libxklavier" ,libxklavier)
  7466. ("libxtst" ,libxtst)
  7467. ("gtk+" ,gtk+)))
  7468. (inputs
  7469. `(("clutter" ,clutter)
  7470. ("dconf" ,dconf)
  7471. ("gtk+-2" ,gtk+-2)
  7472. ("python-pygobject" ,python-pygobject)))
  7473. (synopsis "Text entry and UI navigation application")
  7474. (home-page "https://wiki.gnome.org/Projects/Caribou")
  7475. (description
  7476. "Caribou is an input assistive technology intended for switch and pointer
  7477. users.")
  7478. (license license:lgpl2.1)))
  7479. (define-public network-manager
  7480. (package
  7481. (name "network-manager")
  7482. (version "1.24.0")
  7483. (source (origin
  7484. (method url-fetch)
  7485. (uri (string-append "mirror://gnome/sources/NetworkManager/"
  7486. (version-major+minor version) "/"
  7487. "NetworkManager-" version ".tar.xz"))
  7488. (patches (search-patches "network-manager-plugin-path.patch"))
  7489. (sha256
  7490. (base32
  7491. "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
  7492. (modules '((guix build utils)))
  7493. (snippet
  7494. '(begin
  7495. (substitute* "src/devices/wwan/nm-modem-manager.c"
  7496. (("systemd") "elogind"))
  7497. #t))))
  7498. (build-system meson-build-system)
  7499. (outputs '("out"
  7500. "doc")) ; 8 MiB of gtk-doc HTML
  7501. (arguments
  7502. `(#:configure-flags
  7503. (let ((out (assoc-ref %outputs "out"))
  7504. (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
  7505. "/sbin/dhclient")))
  7506. (list
  7507. ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
  7508. ;; component.
  7509. (string-append "-Dc_link_args=-Wl,-rpath="
  7510. out "/lib:"
  7511. out "/lib/NetworkManager/" ,version)
  7512. "-Dsystemd_journal=false"
  7513. "-Dsession_tracking=elogind"
  7514. "-Dsuspend_resume=elogind"
  7515. "-Dsystemdsystemunitdir=no"
  7516. "-Dsession_tracking_consolekit=false"
  7517. "-Ddhcpcd=no"
  7518. "-Ddhcpcanon=no"
  7519. "-Dcrypto=gnutls"
  7520. "-Diwd=true"
  7521. "-Dlibaudit=yes"
  7522. "-Dqt=false"
  7523. "-Ddocs=true"
  7524. "--sysconfdir=/etc"
  7525. "--localstatedir=/var"
  7526. (string-append "-Dudev_dir="
  7527. out "/lib/udev")
  7528. (string-append "-Ddbus_conf_dir="
  7529. out "/etc/dbus-1/system.d")
  7530. (string-append "-Ddhclient=" dhclient)))
  7531. #:phases
  7532. (modify-phases %standard-phases
  7533. (add-before 'configure 'pre-configure
  7534. (lambda _
  7535. ;; These tests try to test aspects of network-manager's
  7536. ;; functionality within restricted containers, but they don't
  7537. ;; cope with being already in the Guix build jail as that jail
  7538. ;; lacks some features that they would like to proxy over (like
  7539. ;; a /sys mount).
  7540. (substitute* "src/platform/tests/meson.build"
  7541. ((".*test-address-linux.*") "")
  7542. ((".*test-cleanup-linux.*") "")
  7543. ((".*test-link-linux.*") "")
  7544. ((".*test-route-linux.*") ""))
  7545. (substitute* "src/devices/tests/meson.build"
  7546. ((".*test-acd.*") "")
  7547. ((".*test-lldp.*") ""))
  7548. #t))
  7549. (add-after 'unpack 'patch-docbook-xml
  7550. (lambda* (#:key inputs #:allow-other-keys)
  7551. (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
  7552. "/xml/dtd/docbook")))
  7553. (substitute* (find-files "." ".*\\.(xsl|xml)")
  7554. (("http://.*/docbookx\\.dtd")
  7555. (string-append xmldoc "/docbookx.dtd")))
  7556. #t)))
  7557. (add-before 'check 'pre-check
  7558. (lambda _
  7559. ;; For the missing /etc/machine-id.
  7560. (setenv "DBUS_FATAL_WARNINGS" "0")
  7561. #t))
  7562. (add-before 'install 'no-polkit-magic
  7563. ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
  7564. (lambda _
  7565. (setenv "PKEXEC_UID" "something")
  7566. #t))
  7567. (add-after 'install 'move-doc
  7568. (lambda* (#:key outputs #:allow-other-keys)
  7569. (let ((out (assoc-ref outputs "out"))
  7570. (doc (assoc-ref outputs "doc")))
  7571. (mkdir-p (string-append doc "/share"))
  7572. (for-each (lambda (directory)
  7573. (copy-recursively (string-append out directory)
  7574. (string-append doc directory))
  7575. (delete-file-recursively
  7576. (string-append out directory)))
  7577. '("/share/doc" "/share/gtk-doc"))
  7578. #t))))))
  7579. (propagated-inputs
  7580. `(("glib" ,glib)))
  7581. (native-inputs
  7582. `(("glib:bin" ,glib "bin") ; for gdbus-codegen
  7583. ("gtk-doc" ,gtk-doc/stable)
  7584. ("gobject-introspection" ,gobject-introspection)
  7585. ("docbook-xml" ,docbook-xml)
  7586. ("docbook-xsl" ,docbook-xsl)
  7587. ("intltool" ,intltool)
  7588. ("libxslt" ,libxslt)
  7589. ("libxml2" ,libxml2)
  7590. ("pkg-config" ,pkg-config)
  7591. ("vala" ,vala)
  7592. ;; For testing.
  7593. ("python" ,python-wrapper)
  7594. ("python-dbus" ,python-dbus)
  7595. ("python-pygobject" ,python-pygobject)))
  7596. (inputs
  7597. `(("curl" ,curl)
  7598. ("cyrus-sasl" ,cyrus-sasl)
  7599. ("dbus-glib" ,dbus-glib)
  7600. ("dnsmasq" ,dnsmasq)
  7601. ("eudev" ,eudev)
  7602. ("gnutls" ,gnutls)
  7603. ("iptables" ,iptables)
  7604. ("isc-dhcp" ,isc-dhcp)
  7605. ("iwd" ,iwd) ; wpa_supplicant alternative
  7606. ("jansson" ,jansson)
  7607. ("libaudit" ,audit)
  7608. ("libgcrypt" ,libgcrypt)
  7609. ("libgudev" ,libgudev)
  7610. ("libndp" ,libndp)
  7611. ("libnl" ,libnl)
  7612. ("libselinux" ,libselinux)
  7613. ("libsoup" ,libsoup)
  7614. ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
  7615. ("modem-manager" ,modem-manager)
  7616. ("newt" ,newt) ;for the 'nmtui' console interface
  7617. ("openresolv" ,openresolv) ; alternative resolv.conf manager
  7618. ("polkit" ,polkit)
  7619. ("ppp" ,ppp)
  7620. ("readline" ,readline)
  7621. ("util-linux" ,util-linux)
  7622. ("elogind" ,elogind)))
  7623. (synopsis "Network connection manager")
  7624. (home-page "https://wiki.gnome.org/Projects/NetworkManager")
  7625. (description
  7626. "NetworkManager is a system network service that manages your network
  7627. devices and connections, attempting to keep active network connectivity when
  7628. available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
  7629. devices, and provides VPN integration with a variety of different VPN
  7630. services.")
  7631. ;; “This NetworkManager project consists of the daemon, client tools, and
  7632. ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
  7633. ;; GPL-2.0+.”
  7634. (license (list license:gpl2+
  7635. license:lgpl2.1+))
  7636. (properties '((upstream-name . "NetworkManager")))))
  7637. (define-public network-manager-openvpn
  7638. (package
  7639. (name "network-manager-openvpn")
  7640. (version "1.8.12")
  7641. (source (origin
  7642. (method url-fetch)
  7643. (uri (string-append
  7644. "mirror://gnome/sources/NetworkManager-openvpn/"
  7645. (version-major+minor version)
  7646. "/NetworkManager-openvpn-" version ".tar.xz"))
  7647. (sha256
  7648. (base32
  7649. "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
  7650. (build-system gnu-build-system)
  7651. (arguments
  7652. `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
  7653. #:phases
  7654. (modify-phases %standard-phases
  7655. (add-after 'configure 'patch-path
  7656. (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
  7657. (let* ((ovpn (search-input-file inputs "/sbin/openvpn"))
  7658. (modprobe (search-input-file inputs "/bin/modprobe"))
  7659. (pretty-ovpn (string-append "\"" ovpn "\"")))
  7660. (for-each
  7661. (lambda (file)
  7662. (substitute* file
  7663. (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
  7664. (("\"/usr/sbin/openvpn\"") pretty-ovpn)
  7665. (("\"/sbin/openvpn\"") pretty-ovpn)
  7666. (("/sbin/modprobe") modprobe)))
  7667. '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
  7668. #t)))))
  7669. (native-inputs
  7670. `(("pkg-config" ,pkg-config)
  7671. ("intltool" ,intltool)))
  7672. (inputs
  7673. `(("gtk+" ,gtk+)
  7674. ("kmod" ,kmod)
  7675. ("openvpn" ,openvpn)
  7676. ("network-manager" ,network-manager)
  7677. ("libnma" ,libnma)
  7678. ("libsecret" ,libsecret)))
  7679. (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
  7680. (synopsis "OpenVPN plug-in for NetworkManager")
  7681. (description
  7682. "This extension of NetworkManager allows it to take care of connections
  7683. to virtual private networks (VPNs) via OpenVPN.")
  7684. (license license:gpl2+)
  7685. (properties `((upstream-name . "NetworkManager-openvpn")))))
  7686. (define-public network-manager-vpnc
  7687. (package
  7688. (name "network-manager-vpnc")
  7689. (version "1.2.6")
  7690. (source (origin
  7691. (method url-fetch)
  7692. (uri (string-append
  7693. "mirror://gnome/sources/NetworkManager-vpnc/"
  7694. (version-major+minor version)
  7695. "/NetworkManager-vpnc-" version ".tar.xz"))
  7696. (sha256
  7697. (base32
  7698. "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
  7699. (build-system gnu-build-system)
  7700. (arguments
  7701. `(#:configure-flags '("--enable-absolute-paths"
  7702. "--localstatedir=/var"
  7703. ;; libnm-glib has been removed from network-manager
  7704. ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
  7705. "--with-libnm-glib=no")
  7706. #:phases
  7707. (modify-phases %standard-phases
  7708. (add-after 'configure 'patch-path
  7709. (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
  7710. (let* ((vpnc (search-input-file inputs "/sbin/vpnc"))
  7711. (modprobe (search-input-file inputs "/bin/modprobe"))
  7712. (pretty-ovpn (string-append "\"" vpnc "\"")))
  7713. (substitute* "src/nm-vpnc-service.c"
  7714. (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
  7715. (("\"/usr/sbin/vpnc\"") pretty-ovpn)
  7716. (("\"/sbin/vpnc\"") pretty-ovpn)
  7717. (("/sbin/modprobe") modprobe)))
  7718. #t)))))
  7719. (native-inputs
  7720. `(("pkg-config" ,pkg-config)
  7721. ("intltool" ,intltool)))
  7722. (inputs
  7723. `(("gtk+" ,gtk+)
  7724. ("kmod" ,kmod)
  7725. ("vpnc" ,vpnc)
  7726. ("network-manager" ,network-manager)
  7727. ("libnma" ,libnma)
  7728. ("libsecret" ,libsecret)))
  7729. (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
  7730. (synopsis "VPNC plug-in for NetworkManager")
  7731. (description
  7732. "Support for configuring virtual private networks based on VPNC.
  7733. Compatible with Cisco VPN concentrators configured to use IPsec.")
  7734. (license license:gpl2+)
  7735. (properties `((upstream-name . "NetworkManager-vpnc")))))
  7736. (define-public network-manager-openconnect
  7737. (package
  7738. (name "network-manager-openconnect")
  7739. (version "1.2.6")
  7740. (source (origin
  7741. (method url-fetch)
  7742. (uri (string-append
  7743. "mirror://gnome/sources/NetworkManager-openconnect/"
  7744. (version-major+minor version)
  7745. "/NetworkManager-openconnect-" version ".tar.xz"))
  7746. (sha256
  7747. (base32
  7748. "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
  7749. (build-system gnu-build-system)
  7750. (arguments
  7751. `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
  7752. #:phases
  7753. (modify-phases %standard-phases
  7754. (add-after 'configure 'patch-path
  7755. (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
  7756. (let* ((openconnect (search-input-file inputs
  7757. "/sbin/openconnect"))
  7758. (modprobe (search-input-file inputs "/bin/modprobe"))
  7759. (pretty-ovpn (string-append "\"" openconnect "\"")))
  7760. (substitute* "src/nm-openconnect-service.c"
  7761. (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
  7762. (("/sbin/modprobe") modprobe)))
  7763. #t)))))
  7764. (native-inputs
  7765. `(("intltool" ,intltool)
  7766. ("libnma" ,libnma)
  7767. ("pkg-config" ,pkg-config)))
  7768. (inputs
  7769. `(("gcr" ,gcr)
  7770. ("gtk+" ,gtk+)
  7771. ("kmod" ,kmod)
  7772. ("libsecret" ,libsecret)
  7773. ("libxml2" ,libxml2)
  7774. ("lz4" ,lz4)
  7775. ("network-manager" ,network-manager)
  7776. ("openconnect" ,openconnect)))
  7777. (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
  7778. (synopsis "OpenConnect plug-in for NetworkManager")
  7779. (description
  7780. "This extension of NetworkManager allows it to take care of connections
  7781. to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
  7782. Cisco's AnyConnect SSL VPN.")
  7783. (license license:gpl2+)
  7784. (properties `((upstream-name . "NetworkManager-openconnect")
  7785. ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
  7786. ;; file refers to account "nm-openconnect". Specify it here
  7787. ;; so that 'network-manager-service-type' creates it.
  7788. (user-accounts . ("nm-openconnect"))))))
  7789. (define-public mobile-broadband-provider-info
  7790. (package
  7791. (name "mobile-broadband-provider-info")
  7792. (version "20190116")
  7793. (source (origin
  7794. (method url-fetch)
  7795. (uri (string-append
  7796. "mirror://gnome/sources/"
  7797. "mobile-broadband-provider-info/" version "/"
  7798. "mobile-broadband-provider-info-" version ".tar.xz"))
  7799. (sha256
  7800. (base32
  7801. "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
  7802. (build-system gnu-build-system)
  7803. (arguments
  7804. `(#:tests? #f)) ; no tests
  7805. (home-page "https://wiki.gnome.org/Projects/NetworkManager")
  7806. (synopsis "Database of broadband connection configuration")
  7807. (description "Database of broadband connection configuration.")
  7808. (license license:public-domain)))
  7809. (define-public network-manager-applet
  7810. (package
  7811. (name "network-manager-applet")
  7812. (version "1.22.0")
  7813. (source (origin
  7814. (method url-fetch)
  7815. (uri (string-append "mirror://gnome/sources/network-manager-applet/"
  7816. (version-major+minor version) "/"
  7817. "network-manager-applet-" version ".tar.xz"))
  7818. (sha256
  7819. (base32
  7820. "1gj6lqqi613j2m49v9i82lqg1rv7kwwc8z4nxjcwpaa0ins803f7"))))
  7821. (build-system meson-build-system)
  7822. (arguments
  7823. '(#:glib-or-gtk? #t
  7824. #:configure-flags
  7825. '("-Dappindicator=yes")))
  7826. (native-inputs
  7827. `(("intltool" ,intltool)
  7828. ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
  7829. ("gobject-introspection" ,gobject-introspection)
  7830. ("gtk-doc" ,gtk-doc/stable)
  7831. ("pkg-config" ,pkg-config)))
  7832. (propagated-inputs
  7833. ;; libnm-gtk.pc refers to all these.
  7834. `(("dbus-glib" ,dbus-glib)
  7835. ("gtk+" ,gtk+)
  7836. ("network-manager" ,network-manager)
  7837. ;; nm-applet need by org.gnome.nm-applet.gschema.xml
  7838. ("libnma" ,libnma)))
  7839. (inputs
  7840. `(("gcr" ,gcr)
  7841. ("libappindicator" ,libappindicator)
  7842. ("libgudev" ,libgudev)
  7843. ("libnotify" ,libnotify)
  7844. ("libsecret" ,libsecret)
  7845. ("libselinux" ,libselinux)
  7846. ("jansson" ,jansson) ; for team support
  7847. ("modem-manager" ,modem-manager)))
  7848. (synopsis "Applet for managing network connections")
  7849. (home-page "https://wiki.gnome.org/Projects/NetworkManager")
  7850. (description
  7851. "This package contains a systray applet for NetworkManager. It displays
  7852. the available networks and allows users to easily switch between them.")
  7853. (license license:gpl2+)))
  7854. (define-public libxml++
  7855. (package
  7856. (name "libxml++")
  7857. (version "3.2.0")
  7858. (source
  7859. (origin
  7860. (method git-fetch)
  7861. (uri (git-reference
  7862. (url "https://github.com/libxmlplusplus/libxmlplusplus")
  7863. (commit version)))
  7864. (file-name (git-file-name name version))
  7865. (sha256
  7866. (base32 "0wjz591rjlgbah7dcq8i0yn0zw9d62b7g6r0pppx81ic0cx8n8ga"))))
  7867. (build-system gnu-build-system)
  7868. (arguments
  7869. `(#:phases
  7870. (modify-phases %standard-phases
  7871. (add-after 'unpack 'fix-documentation
  7872. (lambda* (#:key inputs #:allow-other-keys)
  7873. (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
  7874. "/xml/dtd/docbook"))
  7875. (xsldoc (string-append (assoc-ref inputs "docbook-xsl")
  7876. "/xml/xsl/docbook-xsl-"
  7877. ,(package-version docbook-xsl))))
  7878. (substitute* '("examples/dom_xpath/example.xml"
  7879. "docs/manual/libxml++_without_code.xml")
  7880. (("http://.*/docbookx\\.dtd")
  7881. (string-append xmldoc "/docbookx.dtd")))
  7882. (setenv "SGML_CATALOG_FILES"
  7883. (string-append xmldoc "/catalog.xml"))
  7884. (substitute* "docs/manual/docbook-customisation.xsl"
  7885. (("http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl")
  7886. (string-append xsldoc "/html/chunk.xsl")))))))))
  7887. (propagated-inputs
  7888. ;; libxml++-3.0.pc refers to all these.
  7889. `(("glibmm" ,glibmm-2.64)
  7890. ("libxml2" ,libxml2)))
  7891. (native-inputs
  7892. `(("autoconf" ,autoconf)
  7893. ("automake" ,automake)
  7894. ("doxygen" ,doxygen)
  7895. ("docbook-xml" ,docbook-xml)
  7896. ("docbook-xsl" ,docbook-xsl)
  7897. ("graphviz" ,graphviz) ; for dot
  7898. ("libtool" ,libtool)
  7899. ("libxslt" ,libxslt)
  7900. ("mm-common" ,mm-common)
  7901. ("perl" ,perl)
  7902. ("pkg-config" ,pkg-config)))
  7903. (home-page "https://github.com/libxmlplusplus/libxmlplusplus/")
  7904. (synopsis "C++ bindings to the libxml2 XML parser library")
  7905. (description
  7906. "This package provides a C++ interface to the libxml2 XML parser
  7907. library.")
  7908. (license license:lgpl2.1+)))
  7909. ;; This is the last release providing the 2.6 API, hence the name.
  7910. ;; This is needed by tascam-gtk
  7911. (define-public libxml++-2
  7912. (package
  7913. (inherit libxml++)
  7914. (name "libxml++")
  7915. (version "2.40.1")
  7916. (source
  7917. (origin
  7918. (method git-fetch)
  7919. (uri (git-reference
  7920. (url "https://github.com/libxmlplusplus/libxmlplusplus")
  7921. (commit version)))
  7922. (file-name (git-file-name name version))
  7923. (sha256
  7924. (base32 "0gbfi4l88w828gmyc9br11l003ylyi4vigp5d1kfgsn0k4cig3y9"))))))
  7925. (define-public gdm
  7926. (package
  7927. (name "gdm")
  7928. (version "40.1")
  7929. (source (origin
  7930. (method url-fetch)
  7931. (uri (string-append "mirror://gnome/sources/" name "/"
  7932. (version-major version) "/"
  7933. name "-" version ".tar.xz"))
  7934. (sha256
  7935. (base32
  7936. "1zbks7bwbys1pn7sk0aq0dbn09adx51amb441z4z4j28cvma3f5b"))
  7937. (patches
  7938. (search-patches
  7939. "gdm-default-session.patch"
  7940. "gdm-elogind-support.patch"
  7941. "gdm-remove-hardcoded-xwayland-path.patch"
  7942. "gdm-wayland-session-wrapper-from-env.patch"))))
  7943. (build-system meson-build-system)
  7944. (arguments
  7945. `(#:glib-or-gtk? #t
  7946. #:configure-flags
  7947. ,#~(list
  7948. "-Dplymouth=disabled"
  7949. "-Dsystemd-journal=false"
  7950. ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
  7951. ;; instead of having to replace it (i.e., stopping the mingetty
  7952. ;; service for TTY 1 before starting GDM).
  7953. "-Dinitial-vt=7"
  7954. ;; Use elogind instead of systemd.
  7955. "-Dlogind-provider=elogind"
  7956. "-Dsystemdsystemunitdir=no"
  7957. "-Dsystemduserunitdir=no"
  7958. ;; Use '/etc/environment' for locale settings instead of the
  7959. ;; systemd-specific '/etc/locale.conf'.
  7960. "-Dlang-file=/etc/environment"
  7961. (string-append "-Dudev-dir=" #$output "/lib/udev")
  7962. "--localstatedir=/var"
  7963. (string-append "-Ddefault-path="
  7964. (string-join '("/run/setuid-programs"
  7965. "/run/current-system/profile/bin"
  7966. "/run/current-system/profile/sbin")
  7967. ":"))
  7968. ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
  7969. ;; XDG_DATA_DIRS so that it finds its schemas.
  7970. "--sbindir" (string-append #$output "/bin"))
  7971. #:phases
  7972. (modify-phases %standard-phases
  7973. (add-before
  7974. 'configure 'pre-configure
  7975. (lambda* (#:key inputs outputs #:allow-other-keys)
  7976. ;; We don't have <systemd/sd-daemon.h>.
  7977. (substitute* '("common/gdm-log.c"
  7978. "daemon/gdm-server.c"
  7979. "daemon/gdm-session-worker.c"
  7980. "daemon/gdm-session-worker-job.c")
  7981. (("#include <systemd/sd-daemon\\.h>") ""))
  7982. ;; Use elogind for sd-login.
  7983. (substitute* '("common/gdm-common.c"
  7984. "daemon/gdm-local-display-factory.c"
  7985. "daemon/gdm-manager.c"
  7986. "libgdm/gdm-user-switching.c")
  7987. (("#include <systemd/sd-login\\.h>")
  7988. "#include <elogind/sd-login.h>"))
  7989. ;; Look for system-installed sessions in
  7990. ;; /run/current-system/profile/share.
  7991. (substitute* '("libgdm/gdm-sessions.c"
  7992. "daemon/gdm-session.c"
  7993. "daemon/gdm-display.c"
  7994. "daemon/gdm-launch-environment.c")
  7995. (("DATADIR \"/x")
  7996. "\"/run/current-system/profile/share/x")
  7997. (("DATADIR \"/wayland")
  7998. "\"/run/current-system/profile/share/wayland")
  7999. (("DATADIR \"/gnome")
  8000. "\"/run/current-system/profile/share/gnome"))
  8001. (let ((propagate '("GDM_CUSTOM_CONF"
  8002. "GDM_DBUS_DAEMON"
  8003. "GDM_X_SERVER"
  8004. "GDM_X_SESSION"
  8005. ;; XXX: Remove this once GNOME Shell is
  8006. ;; a dependency of GDM.
  8007. "XDG_DATA_DIRS")))
  8008. (substitute* "daemon/gdm-session.c"
  8009. (("set_up_session_environment \\(self\\);")
  8010. (apply string-append
  8011. "set_up_session_environment (self);\n"
  8012. (map (lambda (name)
  8013. (string-append
  8014. "gdm_session_set_environment_variable "
  8015. "(self, \"" name "\","
  8016. "g_getenv (\"" name "\"));\n"))
  8017. propagate)))))
  8018. ;; Find the configuration file using an environment variable.
  8019. (substitute* '("common/gdm-settings.c")
  8020. (("GDM_CUSTOM_CONF")
  8021. (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
  8022. " ? g_getenv(\"GDM_CUSTOM_CONF\")"
  8023. " : GDM_CUSTOM_CONF)")))
  8024. ;; Use service-supplied path to X.
  8025. (substitute* '("daemon/gdm-server.c")
  8026. (("\\(X_SERVER X_SERVER_ARG_FORMAT")
  8027. "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
  8028. (substitute* '("daemon/gdm-wayland-session.c"
  8029. "daemon/gdm-x-session.c")
  8030. (("\"dbus-daemon\"")
  8031. "g_getenv (\"GDM_DBUS_DAEMON\")")
  8032. (("X_SERVER")
  8033. "g_getenv (\"GDM_X_SERVER\")")
  8034. (("GDMCONFDIR \"/Xsession\"")
  8035. "g_getenv (\"GDM_X_SESSION\")"))
  8036. ;; Use an absolute path for GNOME Session.
  8037. (substitute* "daemon/gdm-launch-environment.c"
  8038. (("\"gnome-session\"")
  8039. (string-append "\"" (assoc-ref inputs "gnome-session")
  8040. "/bin/gnome-session\"")))
  8041. ;; Do not automatically select the placeholder session.
  8042. (substitute* "daemon/gdm-session.c"
  8043. (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
  8044. (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
  8045. "(g_strcmp0(search_dirs[i], \""
  8046. (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
  8047. "\") == 0 && "
  8048. "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
  8049. (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
  8050. "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))))
  8051. (add-before 'install 'install-logo
  8052. (lambda* (#:key inputs outputs #:allow-other-keys)
  8053. (let* ((out (assoc-ref outputs "out"))
  8054. (guix-icons (assoc-ref inputs "guix-icons"))
  8055. (icon
  8056. (string-append guix-icons "/share/icons/hicolor/\
  8057. scalable/apps/guix-white-icon.svg"))
  8058. (schema
  8059. (string-append out "/share/glib-2.0/schemas/\
  8060. org.gnome.login-screen.gschema.override")))
  8061. (mkdir-p (dirname schema))
  8062. (with-output-to-file schema
  8063. (lambda ()
  8064. (format #t "\
  8065. [org.gnome.login-screen]
  8066. logo='~a'~%" icon))))))
  8067. ;; GDM requires that there be at least one desktop entry
  8068. ;; file. This phase installs a hidden one that simply
  8069. ;; fails. This enables users to use GDM with a
  8070. ;; '~/.xsession' script with no other desktop entry files.
  8071. ;; See <https://bugs.gnu.org/35068>.
  8072. (add-after 'install 'install-placeholder-desktop-entry
  8073. (lambda* (#:key inputs outputs #:allow-other-keys)
  8074. (let* ((out (assoc-ref outputs "out"))
  8075. (sessions (string-append out "/share/gdm/BuiltInSessions"))
  8076. (fail (string-append sessions "/fail.desktop")))
  8077. (mkdir-p sessions)
  8078. (with-output-to-file fail
  8079. (lambda ()
  8080. (for-each
  8081. display
  8082. '("[Desktop Entry]\n"
  8083. "Encoding=UTF-8\n"
  8084. "Type=Application\n"
  8085. "Name=Fail\n"
  8086. "Comment=This session fails immediately.\n"
  8087. "NoDisplay=true\n"
  8088. "Exec=false\n")))))))
  8089. ;; GDM needs GNOME Session to run these applications. We link
  8090. ;; their autostart files in `share/gdm/greeter/autostart'
  8091. ;; because GDM explicitly tells GNOME Session to look there.
  8092. ;;
  8093. ;; XXX: GNOME Shell should be linked here too, but currently
  8094. ;; GNOME Shell depends on GDM.
  8095. (add-after 'install 'link-autostart-files
  8096. (lambda* (#:key inputs outputs #:allow-other-keys)
  8097. (let* ((out (assoc-ref outputs "out"))
  8098. (autostart (string-append out "/share/gdm/"
  8099. "greeter/autostart"))
  8100. (settings (assoc-ref inputs "gnome-settings-daemon")))
  8101. (mkdir-p autostart)
  8102. (with-directory-excursion autostart
  8103. (for-each (lambda (desktop)
  8104. (symlink desktop (basename desktop)))
  8105. (find-files
  8106. (string-append settings "/etc/xdg"))))))))))
  8107. (native-inputs
  8108. `(("dconf" ,dconf)
  8109. ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
  8110. ("gobject-introspection" ,gobject-introspection)
  8111. ("guix-icons" ,guix-icons)
  8112. ("intltool" ,intltool)
  8113. ("itstool" ,itstool)
  8114. ("pkg-config" ,pkg-config)
  8115. ("xmllint" ,libxml2)))
  8116. (inputs
  8117. `(("accountsservice" ,accountsservice)
  8118. ("check" ,check-0.14) ;for testing
  8119. ("elogind" ,elogind)
  8120. ("eudev" ,eudev)
  8121. ("gnome-session" ,gnome-session)
  8122. ("gnome-settings-daemon" ,gnome-settings-daemon)
  8123. ("gtk+" ,gtk+)
  8124. ("iso-codes" ,iso-codes)
  8125. ("libcanberra" ,libcanberra)
  8126. ("linux-pam" ,linux-pam)))
  8127. (synopsis "Display manager for GNOME")
  8128. (home-page "https://wiki.gnome.org/Projects/GDM/")
  8129. (description
  8130. "GNOME Display Manager is a system service that is responsible for
  8131. providing graphical log-ins and managing local and remote displays.")
  8132. (license license:gpl2+)))
  8133. (define-public libgtop
  8134. (package
  8135. (name "libgtop")
  8136. (version "2.40.0")
  8137. (source (origin
  8138. (method url-fetch)
  8139. (uri (string-append "mirror://gnome/sources/libgtop/"
  8140. (version-major+minor version) "/"
  8141. "libgtop-" version ".tar.xz"))
  8142. (sha256
  8143. (base32
  8144. "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
  8145. (build-system gnu-build-system)
  8146. (native-inputs
  8147. `(("gobject-introspection" ,gobject-introspection)
  8148. ("intltool" ,intltool)
  8149. ("perl" ,perl)
  8150. ("pkg-config" ,pkg-config)))
  8151. (propagated-inputs
  8152. `(("glib" ,glib))) ; required by libgtop-2.0.pc
  8153. (synopsis "Portable system access library")
  8154. (home-page "https://www.gnome.org/")
  8155. (description
  8156. "LibGTop is a library to get system specific data such as CPU and memory
  8157. usage and information about running processes.")
  8158. (license license:gpl2+)))
  8159. (define-public gnome-bluetooth
  8160. (package
  8161. (name "gnome-bluetooth")
  8162. (version "3.34.5")
  8163. (source (origin
  8164. (method url-fetch)
  8165. (uri (string-append "mirror://gnome/sources/" name "/"
  8166. (version-major+minor version) "/"
  8167. name "-" version ".tar.xz"))
  8168. (sha256
  8169. (base32
  8170. "1a9ynlwwkb3wpg293ym517vmrkk63y809mmcv9a21k5yr199x53c"))))
  8171. (build-system meson-build-system)
  8172. (native-inputs
  8173. `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
  8174. ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
  8175. ("gobject-introspection" ,gobject-introspection)
  8176. ("intltool" ,intltool)
  8177. ("pkg-config" ,pkg-config)
  8178. ("xmllint" ,libxml2)))
  8179. (propagated-inputs
  8180. ;; gnome-bluetooth-1.0.pc refers to all these.
  8181. `(("glib" ,glib)
  8182. ("gtk+" ,gtk+)))
  8183. (inputs
  8184. `(("eudev" ,eudev)
  8185. ("libcanberra" ,libcanberra)
  8186. ("libnotify" ,libnotify)
  8187. ("python-dbus" ,python-dbus)))
  8188. (synopsis "GNOME Bluetooth subsystem")
  8189. (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
  8190. (description
  8191. "This package contains tools for managing and manipulating Bluetooth
  8192. devices using the GNOME desktop.")
  8193. (license license:lgpl2.1+)))
  8194. (define-public gnome-control-center
  8195. (package
  8196. (name "gnome-control-center")
  8197. (version "40.1")
  8198. (source (origin
  8199. (method url-fetch)
  8200. (uri (string-append "mirror://gnome/sources/" name "/"
  8201. (version-major version) "/"
  8202. name "-" version ".tar.xz"))
  8203. (sha256
  8204. (base32
  8205. "0rr4d5m2a72vrb31jgyx49dp0s2pwgyxsrk4hyw5ym66wq63c3v1"))))
  8206. (build-system meson-build-system)
  8207. (arguments
  8208. '(#:glib-or-gtk? #t
  8209. #:configure-flags
  8210. (list "-Dcheese=false"
  8211. (string-append "-Dgnome_session_libexecdir="
  8212. (assoc-ref %build-inputs "gnome-session")
  8213. "/libexec"))
  8214. #:phases
  8215. (modify-phases %standard-phases
  8216. (add-before 'configure 'patch-paths
  8217. (lambda* (#:key inputs #:allow-other-keys)
  8218. (let ((libc (assoc-ref inputs "libc"))
  8219. (tzdata (assoc-ref inputs "tzdata"))
  8220. (libgnomekbd (assoc-ref inputs "libgnomekbd"))
  8221. (nm-applet (assoc-ref inputs "network-manager-applet"))
  8222. (gnome-desktop (assoc-ref inputs "gnome-desktop")))
  8223. (substitute* "panels/datetime/tz.h"
  8224. (("/usr/share/zoneinfo/zone.tab")
  8225. (string-append tzdata "/share/zoneinfo/zone.tab")))
  8226. (substitute* "tests/datetime/test-endianess.c"
  8227. (("/usr/share/locale")
  8228. (string-append libc "/share/locale")))
  8229. (substitute* "panels/region/cc-region-panel.c"
  8230. (("\"gkbd-keyboard-display")
  8231. (string-append "\"" libgnomekbd
  8232. "/bin/gkbd-keyboard-display")))
  8233. (substitute* '("panels/network/net-device-bluetooth.c"
  8234. "panels/network/net-device-mobile.c"
  8235. "panels/network/connection-editor/net-connection-editor.c")
  8236. (("\"nm-connection-editor")
  8237. (string-append "\"" nm-applet
  8238. "/bin/nm-connection-editor")))
  8239. (substitute* '("panels/user-accounts/run-passwd.c")
  8240. (("/usr/bin/passwd")
  8241. "/run/setuid-programs/passwd"))
  8242. (substitute* "panels/info-overview/cc-info-overview-panel.c"
  8243. (("DATADIR \"/gnome/gnome-version.xml\"")
  8244. (string-append "\"" gnome-desktop
  8245. "/share/gnome/gnome-version.xml\""))))))
  8246. (add-after 'unpack 'skip-gtk-update-icon-cache
  8247. ;; Don't create 'icon-theme.cache'.
  8248. (lambda _
  8249. (substitute* "build-aux/meson/meson_post_install.py"
  8250. (("gtk-update-icon-cache") (which "true"))))))))
  8251. (native-inputs
  8252. `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
  8253. ("intltool" ,intltool)
  8254. ("pkg-config" ,pkg-config)
  8255. ("xsltproc" ,libxslt)
  8256. ;; For tests
  8257. ("hicolor-icon-theme" ,hicolor-icon-theme)
  8258. ("python-dbusmock" ,python-dbusmock)
  8259. ("xorg-server" ,xorg-server-for-tests)))
  8260. (inputs
  8261. `(("accountsservice" ,accountsservice)
  8262. ("clutter-gtk" ,clutter-gtk)
  8263. ("colord-gtk" ,colord-gtk)
  8264. ("cups" ,cups)
  8265. ("dconf" ,dconf)
  8266. ("docbook-xsl" ,docbook-xsl)
  8267. ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
  8268. ("gnome-bluetooth" ,gnome-bluetooth)
  8269. ("gnome-desktop" ,gnome-desktop)
  8270. ("gnome-online-accounts" ,gnome-online-accounts)
  8271. ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
  8272. ("gnome-session" ,gnome-session)
  8273. ("gnome-settings-daemon" ,gnome-settings-daemon)
  8274. ("grilo" ,grilo)
  8275. ("gsound" ,gsound)
  8276. ("ibus" ,ibus)
  8277. ("libcanberra" ,libcanberra)
  8278. ("libgnomekbd" ,libgnomekbd)
  8279. ("libgudev" ,libgudev)
  8280. ("libgtop" ,libgtop)
  8281. ("libnma" ,libnma)
  8282. ("libpwquality" ,libpwquality)
  8283. ("libsecret" ,libsecret)
  8284. ("libsoup" ,libsoup)
  8285. ("libxml2" ,libxml2)
  8286. ("libwacom" ,libwacom)
  8287. ("mesa" ,mesa)
  8288. ("mit-krb5" ,mit-krb5)
  8289. ("modem-manager" ,modem-manager)
  8290. ("network-manager-applet" ,network-manager-applet)
  8291. ("polkit" ,polkit)
  8292. ("pulseaudio" ,pulseaudio)
  8293. ("smbclient" ,samba)
  8294. ("tzdata" ,tzdata)
  8295. ("udisks" ,udisks)
  8296. ("upower" ,upower)))
  8297. (synopsis "Utilities to configure the GNOME desktop")
  8298. (home-page "https://www.gnome.org/")
  8299. (description
  8300. "This package contains configuration applets for the GNOME desktop,
  8301. allowing to set accessibility configuration, desktop fonts, keyboard and mouse
  8302. properties, sound setup, desktop theme and background, user interface
  8303. properties, screen resolution, and other GNOME parameters.")
  8304. (license license:gpl2+)))
  8305. (define-public gnome-shell
  8306. (package
  8307. (name "gnome-shell")
  8308. (version "40.5")
  8309. (source (origin
  8310. (method url-fetch)
  8311. (uri (string-append "mirror://gnome/sources/" name "/"
  8312. (version-major version) "/"
  8313. name "-" version ".tar.xz"))
  8314. (sha256
  8315. (base32
  8316. "0kph3g4ix23sm3ip2b13rs7hx8sa7fvlvcyy4zdk2iaj56rmadvd"))
  8317. (patches (search-patches "gnome-shell-disable-test.patch"))
  8318. (modules '((guix build utils)))))
  8319. (build-system meson-build-system)
  8320. (arguments
  8321. `(#:glib-or-gtk? #t
  8322. #:disallowed-references ,(list (gexp-input glib "bin")
  8323. (gexp-input libxslt)
  8324. (gexp-input ruby-sass))
  8325. #:configure-flags
  8326. (list "-Dsystemd=false"
  8327. ;; Otherwise, the RUNPATH will lack the final path component.
  8328. (string-append "-Dc_link_args=-Wl,-rpath="
  8329. (assoc-ref %outputs "out")
  8330. "/lib/gnome-shell"))
  8331. #:modules ((guix build meson-build-system)
  8332. (guix build utils)
  8333. (srfi srfi-1))
  8334. #:phases
  8335. (modify-phases %standard-phases
  8336. (add-after 'unpack 'fix-keysdir
  8337. (lambda* (#:key outputs #:allow-other-keys)
  8338. (let* ((out (assoc-ref outputs "out"))
  8339. (keysdir (string-append
  8340. out "/share/gnome-control-center/keybindings")))
  8341. (substitute* "meson.build"
  8342. (("keysdir =.*")
  8343. (string-append "keysdir = '" keysdir "'\n"))))))
  8344. (add-after 'unpack 'skip-gtk-update-icon-cache
  8345. ;; Don't create 'icon-theme.cache'.
  8346. (lambda _
  8347. (substitute* "meson/postinstall.py"
  8348. (("gtk-update-icon-cache") "true"))))
  8349. (add-before 'configure 'record-absolute-file-names
  8350. (lambda* (#:key inputs #:allow-other-keys)
  8351. (substitute* "js/misc/ibusManager.js"
  8352. (("'ibus-daemon'")
  8353. (string-append "'" (assoc-ref inputs "ibus")
  8354. "/bin/ibus-daemon'")))
  8355. (substitute* "js/ui/status/keyboard.js"
  8356. (("'gkbd-keyboard-display'")
  8357. (string-append "'" (assoc-ref inputs "libgnomekbd")
  8358. "/bin/gkbd-keyboard-display'")))))
  8359. (add-before 'check 'pre-check
  8360. (lambda* (#:key inputs #:allow-other-keys)
  8361. ;; Tests require a running X server.
  8362. (system "Xvfb :1 &")
  8363. (setenv "DISPLAY" ":1")))
  8364. (add-after 'install 'wrap-programs
  8365. (lambda* (#:key inputs outputs #:allow-other-keys)
  8366. (let ((out (assoc-ref outputs "out"))
  8367. (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
  8368. (python-path (getenv "GUIX_PYTHONPATH")))
  8369. (wrap-program (string-append out "/bin/gnome-shell")
  8370. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
  8371. ;; FIXME: gnome-shell loads these libraries with unqualified
  8372. ;; names only, so they need to be on LD_LIBRARY_PATH. The
  8373. ;; alternative might be to patch gnome-shell.
  8374. `("LD_LIBRARY_PATH" ":" prefix
  8375. ,(map (lambda (pkg)
  8376. (string-append (assoc-ref inputs pkg) "/lib"))
  8377. '("gdk-pixbuf"
  8378. "gnome-bluetooth" "librsvg" "libgweather"))))
  8379. (for-each
  8380. (lambda (prog)
  8381. (wrap-program (string-append out "/bin/" prog)
  8382. `("GUIX_PYTHONPATH" ":" prefix (,python-path))
  8383. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
  8384. '("gnome-shell-extension-tool" "gnome-shell-perf-tool")))))
  8385. (replace 'glib-or-gtk-wrap
  8386. (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
  8387. (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
  8388. ;; By default intltool et al. would end up in the XDG_DATA_DIRS
  8389. ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
  8390. ;; phase. Fix that since we don't need these.
  8391. (wrap #:inputs (fold alist-delete inputs
  8392. '("intltool" "glib:bin"))
  8393. #:outputs outputs)))))))
  8394. (native-inputs
  8395. `(("asciidoc" ,asciidoc)
  8396. ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
  8397. ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
  8398. ("gobject-introspection" ,gobject-introspection)
  8399. ("hicolor-icon-theme" ,hicolor-icon-theme)
  8400. ("intltool" ,intltool)
  8401. ("pkg-config" ,pkg-config)
  8402. ("python" ,python)
  8403. ("ruby-sass" ,ruby-sass)
  8404. ("sassc" ,sassc)
  8405. ("xsltproc" ,libxslt)
  8406. ;; For tests
  8407. ("xorg-server" ,xorg-server-for-tests)))
  8408. (inputs
  8409. `(("accountsservice" ,accountsservice)
  8410. ("caribou" ,caribou)
  8411. ("docbook-xsl" ,docbook-xsl)
  8412. ("evolution-data-server" ,evolution-data-server)
  8413. ("gcr" ,gcr)
  8414. ("gdm" ,gdm)
  8415. ("gdk-pixbuf" ,gdk-pixbuf+svg)
  8416. ("gjs" ,gjs)
  8417. ("gtk" ,gtk)
  8418. ("gnome-autoar" ,gnome-autoar)
  8419. ("gnome-bluetooth" ,gnome-bluetooth)
  8420. ("gnome-desktop" ,gnome-desktop)
  8421. ("gnome-settings-daemon" ,gnome-settings-daemon)
  8422. ("graphene" ,graphene)
  8423. ("gst-plugins-base" ,gst-plugins-base)
  8424. ("ibus" ,ibus)
  8425. ("libcanberra" ,libcanberra)
  8426. ("libcroco" ,libcroco)
  8427. ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
  8428. ("libgweather" ,libgweather)
  8429. ("libnma" ,libnma)
  8430. ("libsoup" ,libsoup)
  8431. ("mesa-headers" ,mesa-headers)
  8432. ("mutter" ,mutter)
  8433. ("network-manager-applet" ,network-manager-applet)
  8434. ("polkit" ,polkit)
  8435. ("pulseaudio" ,pulseaudio)
  8436. ("python-pygobject" ,python-pygobject)
  8437. ("startup-notification" ,startup-notification)
  8438. ("telepathy-logger" ,telepathy-logger)
  8439. ("upower" ,upower)
  8440. ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
  8441. ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
  8442. ("librsvg" ,librsvg)
  8443. ("geoclue" ,geoclue)))
  8444. (synopsis "Desktop shell for GNOME")
  8445. (home-page "https://wiki.gnome.org/Projects/GnomeShell")
  8446. (description
  8447. "GNOME Shell provides core user interface functions for the GNOME desktop,
  8448. like switching to windows and launching applications.")
  8449. (license license:gpl2+)))
  8450. (define-public gtk-vnc
  8451. (package
  8452. (name "gtk-vnc")
  8453. (version "1.0.0")
  8454. (source
  8455. (origin
  8456. (method url-fetch)
  8457. (uri
  8458. (string-append "mirror://gnome/sources/" name "/"
  8459. (version-major+minor version) "/"
  8460. name "-" version ".tar.xz"))
  8461. (sha256
  8462. (base32 "1060ws037v556rx1qhfrcg02859rscksrzr8fq11himdg4d1y6m8"))))
  8463. (build-system meson-build-system)
  8464. (arguments
  8465. `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
  8466. (native-inputs
  8467. `(("gjs" ,gjs)
  8468. ("glib:bin" ,glib "bin")
  8469. ("gobject-introspection" ,gobject-introspection)
  8470. ("intltool" ,intltool)
  8471. ("node" ,node)
  8472. ("perl" ,perl)
  8473. ("pkg-config" ,pkg-config)
  8474. ("python" ,python-wrapper)
  8475. ("vala" ,vala)))
  8476. (inputs
  8477. `(("cairo" ,cairo)
  8478. ("gdk-pixbuf" ,gdk-pixbuf+svg)
  8479. ("glib" ,glib)
  8480. ("gnutls" ,gnutls)
  8481. ("libgcrypt" ,libgcrypt)
  8482. ("libsasl" ,cyrus-sasl)
  8483. ("pulseaudio" ,pulseaudio)
  8484. ("x11" ,libx11)
  8485. ("zlib" ,zlib)))
  8486. (propagated-inputs
  8487. `(("gtk+" ,gtk+)))
  8488. (synopsis "VNC client viewer widget for GTK+")
  8489. (description "GTK-VNC is a project providing client side APIs for the RFB
  8490. protocol / VNC remote desktop technology. It is built using coroutines allowing
  8491. it to be completely asynchronous while remaining single threaded. It provides a
  8492. core C library, and bindings for Python (PyGTK).")
  8493. (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
  8494. (license license:lgpl2.1+)))
  8495. (define-public gnome-autoar
  8496. (package
  8497. (name "gnome-autoar")
  8498. (version "0.3.3")
  8499. (source (origin
  8500. (method url-fetch)
  8501. (uri (string-append "mirror://gnome/sources/" name "/"
  8502. (version-major+minor version) "/"
  8503. name "-" version ".tar.xz"))
  8504. (sha256
  8505. (base32
  8506. "012w7rhhpxvlrnnhqy01vwzg1wxqpy8jbqgizn47wnip7bvh0917"))))
  8507. (build-system glib-or-gtk-build-system)
  8508. (native-inputs
  8509. `(("gobject-introspection" ,gobject-introspection)
  8510. ("pkg-config" ,pkg-config)))
  8511. (propagated-inputs
  8512. `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
  8513. (inputs
  8514. `(("gtk+" ,gtk+)))
  8515. (synopsis "Archives integration support for GNOME")
  8516. (home-page "https://git.gnome.org/browse/gnome-autoar/")
  8517. (description
  8518. "GNOME Autoar is a library which makes creating and extracting archives
  8519. easy, safe, and automatic.")
  8520. (license license:lgpl2.1+)))
  8521. (define-public tracker
  8522. (package
  8523. (name "tracker")
  8524. (version "3.1.2")
  8525. (source (origin
  8526. (method url-fetch)
  8527. (uri (string-append "mirror://gnome/sources/tracker/"
  8528. (version-major+minor version) "/"
  8529. "tracker-" version ".tar.xz"))
  8530. (sha256
  8531. (base32
  8532. "13zcc07wd51sz7kglk3xbjrsq7d835cxfr7iwjr7nn2xcri8jdns"))))
  8533. (build-system meson-build-system)
  8534. (arguments
  8535. `(#:glib-or-gtk? #t
  8536. #:configure-flags
  8537. ;; Otherwise, the RUNPATH will lack the final path component.
  8538. (list (string-append "-Dc_link_args=-Wl,-rpath="
  8539. (assoc-ref %outputs "out") "/lib:"
  8540. (assoc-ref %outputs "out") "/lib/tracker-3.0")
  8541. "-Ddocs=false"
  8542. "-Dsystemd_user_services=false")
  8543. #:phases
  8544. (modify-phases %standard-phases
  8545. (add-before 'configure 'set-shell
  8546. (lambda _
  8547. (setenv "SHELL" (which "bash"))))
  8548. (add-before 'configure 'fix-paths
  8549. (lambda* (#:key inputs #:allow-other-keys)
  8550. (let* ((manpage "/etc/asciidoc/docbook-xsl/manpage.xsl")
  8551. (file (search-input-file inputs manpage)))
  8552. (substitute* "docs/manpages/meson.build"
  8553. (("/etc/asciidoc[^']+")
  8554. file)))))
  8555. (replace 'check
  8556. (lambda* (#:key tests? #:allow-other-keys)
  8557. (when tests?
  8558. ;; Some tests expect to write to $HOME.
  8559. (setenv "HOME" "/tmp")
  8560. (invoke "dbus-run-session" "--" "meson" "test"
  8561. "--print-errorlogs")))))))
  8562. (native-inputs
  8563. `(("glib:bin" ,glib "bin")
  8564. ("gobject-introspection" ,gobject-introspection)
  8565. ("docbook-xsl" ,docbook-xsl)
  8566. ("docbook-xml-4.5" ,docbook-xml)
  8567. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  8568. ("asciidoc" ,asciidoc)
  8569. ("xsltproc" ,libxslt)
  8570. ("cmake-minimal" ,cmake-minimal)
  8571. ("python-pygobject" ,python-pygobject)
  8572. ("gtk-doc" ,gtk-doc/stable)
  8573. ("intltool" ,intltool)
  8574. ("dbus" ,dbus)
  8575. ("pkg-config" ,pkg-config)
  8576. ("vala" ,vala)))
  8577. (inputs
  8578. `(("dbus" ,dbus)
  8579. ("sqlite" ,sqlite)
  8580. ("libxml2" ,libxml2)
  8581. ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
  8582. ("json-glib" ,json-glib)
  8583. ("libsoup" ,libsoup)))
  8584. (synopsis "Metadata database, indexer and search tool")
  8585. (home-page "https://wiki.gnome.org/Projects/Tracker")
  8586. (description
  8587. "Tracker is a search engine and triplestore for desktop, embedded and mobile.
  8588. It is a middleware component aimed at desktop application developers who want
  8589. their apps to browse and search user content. It's not designed to be used
  8590. directly by desktop users, but it provides a commandline tool named
  8591. @command{tracker} for the adventurous.
  8592. Tracker allows your application to instantly perform full-text searches across
  8593. all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
  8594. example. This is achieved by indexing the user's home directory in the
  8595. background.
  8596. Tracker also allows your application to query and list content that the user
  8597. has stored. For example, GNOME Music displays all the music files that are
  8598. found by Tracker. This means that GNOME Music doesn't need to maintain a
  8599. database of its own.
  8600. If you need to go beyond simple searches, Tracker is also a linked data
  8601. endpoint and it understands SPARQL. ")
  8602. ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
  8603. ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
  8604. ;; libstemmer is bsd-3 and the rest is gpl2+.
  8605. (license (list license:gpl2+
  8606. license:bsd-3
  8607. license:lgpl2.1+))))
  8608. (define-public tracker-miners
  8609. (package
  8610. (name "tracker-miners")
  8611. (version "3.1.2")
  8612. (source (origin
  8613. (method url-fetch)
  8614. (uri (string-append "mirror://gnome/sources/tracker-miners/"
  8615. (version-major+minor version)
  8616. "/tracker-miners-" version ".tar.xz"))
  8617. (sha256
  8618. (base32
  8619. "0fpd69lgm8cckbamcf9c2q57glxf0s3jcfwkq8p3s4lfsvdclmd0"))))
  8620. (build-system meson-build-system)
  8621. (arguments
  8622. `(#:glib-or-gtk? #t
  8623. #:configure-flags
  8624. (list "-Dminer_rss=false" ; libgrss is required.
  8625. ;; Ensure the RUNPATH contains all installed library locations.
  8626. (string-append "-Dc_link_args=-Wl,-rpath="
  8627. (assoc-ref %outputs "out")
  8628. "/lib/tracker-miners-3.0")
  8629. ;; TODO: Enable functional tests. Currently, the following error
  8630. ;; appears:
  8631. ;; Exception: The functional tests require DConf to be the default
  8632. ;; GSettings backend. Got GKeyfileSettingsBackend instead.
  8633. "-Dfunctional_tests=false"
  8634. "-Dsystemd_user_services=false")
  8635. #:phases
  8636. (modify-phases %standard-phases
  8637. (add-before 'configure 'set-shell
  8638. (lambda _
  8639. (setenv "SHELL" (which "bash"))))
  8640. (add-before 'configure 'fix-paths
  8641. (lambda* (#:key inputs #:allow-other-keys)
  8642. (let* ((manpage "/etc/asciidoc/docbook-xsl/manpage.xsl")
  8643. (file (search-input-file inputs manpage)))
  8644. (substitute* "docs/manpages/meson.build"
  8645. (("/etc/asciidoc[^']+")
  8646. file)))))
  8647. (add-before 'configure 'fix-tests
  8648. (lambda* (#:key inputs #:allow-other-keys)
  8649. ;; Disable those tests that require the functional_tests option
  8650. ;; to be true and the UPower daemon to be started.
  8651. (substitute* "examples/python/meson.build"
  8652. (("foreach example_name:.*")
  8653. "foreach example_name: []"))
  8654. ;; Disable this test that is failing randomly:
  8655. ;; https://gitlab.gnome.org/GNOME/tracker-miners/-/issues/170.
  8656. (substitute* "tests/libtracker-miner/meson.build"
  8657. (("'miner-fs'.*")
  8658. ""))))
  8659. (replace 'check
  8660. (lambda* (#:key tests? #:allow-other-keys)
  8661. (when tests?
  8662. ;; Some tests expect to write to $HOME.
  8663. (setenv "HOME" "/tmp")
  8664. (setenv "LANG" "en_US.UTF-8")
  8665. (invoke "dbus-run-session" "--" "meson" "test"
  8666. "--print-errorlogs")))))))
  8667. (native-inputs
  8668. `(("dbus" ,dbus)
  8669. ("intltool" ,intltool)
  8670. ("glib:bin" ,glib "bin")
  8671. ("docbook-xsl" ,docbook-xsl)
  8672. ("docbook-xml-4.5" ,docbook-xml)
  8673. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  8674. ("asciidoc" ,asciidoc)
  8675. ("xsltproc" ,libxslt)
  8676. ("gobject-introspection" ,gobject-introspection)
  8677. ("pkg-config" ,pkg-config)
  8678. ("python-pygobject" ,python-pygobject)))
  8679. (inputs
  8680. `(("exempi" ,exempi)
  8681. ("ffmpeg" ,ffmpeg)
  8682. ("flac" ,flac)
  8683. ("giflib" ,giflib)
  8684. ("glib" ,glib)
  8685. ("gstreamer" ,gstreamer)
  8686. ("icu4c" ,icu4c)
  8687. ("json-glib" ,json-glib)
  8688. ("libcue" ,libcue)
  8689. ("libexif" ,libexif)
  8690. ("libgsf" ,libgsf)
  8691. ("libgxps" ,libgxps)
  8692. ("libiptcdata" ,libiptcdata)
  8693. ("libjpeg" ,libjpeg-turbo)
  8694. ("libosinfo" ,libosinfo)
  8695. ("libpng" ,libpng)
  8696. ("libseccomp" ,libseccomp)
  8697. ("libsoup" ,libsoup)
  8698. ("libtiff" ,libtiff)
  8699. ("libvorbis" ,libvorbis)
  8700. ("libxml2" ,libxml2)
  8701. ("poppler" ,poppler)
  8702. ("shared-mime-info" ,shared-mime-info)
  8703. ("taglib" ,taglib)
  8704. ("totem-pl-parser" ,totem-pl-parser)
  8705. ("tracker" ,tracker)
  8706. ("upower" ,upower)
  8707. ("zlib" ,zlib)))
  8708. (synopsis "Metadata database, indexer and search tool")
  8709. (home-page "https://wiki.gnome.org/Projects/Tracker")
  8710. (description
  8711. "Tracker is an advanced framework for first class objects with associated
  8712. metadata and tags. It provides a one stop solution for all metadata, tags,
  8713. shared object databases, search tools and indexing.")
  8714. ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
  8715. ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
  8716. (license (list license:gpl2+
  8717. license:lgpl2.1+
  8718. license:lgpl2.0+))))
  8719. (define-public nautilus
  8720. (package
  8721. (name "nautilus")
  8722. (version "40.2")
  8723. (source (origin
  8724. (method url-fetch)
  8725. (uri (string-append "mirror://gnome/sources/" name "/"
  8726. (version-major version) "/"
  8727. name "-" version ".tar.xz"))
  8728. (sha256
  8729. (base32
  8730. "03gn416vvpvyy75pj3xkpxrqilbvjhqbvrdi5fdaivp50zzg47mp"))))
  8731. (build-system meson-build-system)
  8732. (arguments
  8733. '(#:glib-or-gtk? #t
  8734. #:phases
  8735. (modify-phases %standard-phases
  8736. (add-after 'unpack 'skip-gtk-update-icon-cache
  8737. ;; Don't create 'icon-theme.cache'.
  8738. (lambda _
  8739. (substitute* "build-aux/meson/postinstall.py"
  8740. (("gtk-update-icon-cache") "true")))))
  8741. ;; XXX: FAIL: check-nautilus
  8742. ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
  8743. #:tests? #f))
  8744. (native-inputs
  8745. `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
  8746. ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
  8747. ("gobject-introspection" ,gobject-introspection)
  8748. ("intltool" ,intltool)
  8749. ("pkg-config" ,pkg-config)))
  8750. (inputs
  8751. `(("dconf" ,dconf)
  8752. ("gexiv2" ,gexiv2)
  8753. ("gvfs" ,gvfs)
  8754. ("exempi" ,exempi)
  8755. ("gnome-desktop" ,gnome-desktop)
  8756. ("gnome-autoar" ,gnome-autoar)
  8757. ("gst-plugins-base" ,gst-plugins-base)
  8758. ("json-glib" ,json-glib)
  8759. ("libhandy" ,libhandy)
  8760. ("libportal" ,libportal)
  8761. ("libseccomp" ,libseccomp)
  8762. ("libselinux" ,libselinux)
  8763. ("libsoup" ,libsoup)
  8764. ("tracker" ,tracker)
  8765. ("tracker-miners" ,tracker-miners)
  8766. ;; XXX: gtk+ is required by libnautilus-extension.pc
  8767. ;;
  8768. ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
  8769. ;; package. See:
  8770. ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
  8771. ("gtk+" ,gtk+)
  8772. ("libexif" ,libexif)
  8773. ("libxml2" ,libxml2)))
  8774. (synopsis "File manager for GNOME")
  8775. (home-page "https://wiki.gnome.org/Apps/Nautilus")
  8776. (description
  8777. "Nautilus (Files) is a file manager designed to fit the GNOME desktop
  8778. design and behaviour, giving the user a simple way to navigate and manage its
  8779. files.")
  8780. (license license:gpl2+)))
  8781. (define-public baobab
  8782. (package
  8783. (name "baobab")
  8784. (version "40.0")
  8785. (source (origin
  8786. (method url-fetch)
  8787. (uri (string-append
  8788. "mirror://gnome/sources/" name "/"
  8789. (version-major version) "/"
  8790. name "-" version ".tar.xz"))
  8791. (sha256
  8792. (base32
  8793. "19yii3bdgivxrcka1c4g6dpbmql5nyawwhzlsph7z6bs68nambm6"))))
  8794. (build-system meson-build-system)
  8795. (arguments
  8796. '(#:glib-or-gtk? #t))
  8797. (native-inputs
  8798. `(("intltool" ,intltool)
  8799. ("pkg-config" ,pkg-config)
  8800. ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
  8801. ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
  8802. ("itstool" ,itstool)
  8803. ("xmllint" ,libxml2)
  8804. ("glib" ,glib "bin")
  8805. ("vala" ,vala)))
  8806. (inputs
  8807. `(("gtk+" ,gtk+)
  8808. ("libhandy" ,libhandy)))
  8809. (synopsis "Disk usage analyzer for GNOME")
  8810. (description
  8811. "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
  8812. usage in the GNOME desktop environment. It can easily scan device volumes or
  8813. a specific user-requested directory branch (local or remote). Once the scan
  8814. is complete it provides a graphical representation of each selected folder.")
  8815. (home-page "https://wiki.gnome.org/Apps/Baobab")
  8816. (license license:gpl2+)))
  8817. (define-public gnome-backgrounds
  8818. (package
  8819. (name "gnome-backgrounds")
  8820. (version "40.1")
  8821. (source
  8822. (origin
  8823. (method url-fetch)
  8824. (uri (string-append "mirror://gnome/sources/" name "/"
  8825. (version-major version) "/"
  8826. name "-" version ".tar.xz"))
  8827. (sha256
  8828. (base32
  8829. "03m7ldfk00cly9igrq0qizq1y0f45vijmm23f1dl5kh1lc6qmpv0"))))
  8830. (build-system meson-build-system)
  8831. (native-inputs
  8832. `(("gettext" ,gettext-minimal)))
  8833. (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
  8834. (synopsis "Background images for the GNOME desktop")
  8835. (description
  8836. "GNOME backgrounds package contains a collection of graphics files which
  8837. can be used as backgrounds in the GNOME Desktop environment. Additionally,
  8838. the package creates the proper framework and directory structure so that you
  8839. can add your own files to the collection.")
  8840. (license (list license:gpl2+
  8841. license:cc-by2.0
  8842. license:cc-by-sa2.0
  8843. license:cc-by-sa3.0))))
  8844. (define-public gnome-screenshot
  8845. (package
  8846. (name "gnome-screenshot")
  8847. (version "40.0")
  8848. (source
  8849. (origin
  8850. (method url-fetch)
  8851. (uri (string-append "mirror://gnome/sources/" name "/"
  8852. (version-major version) "/"
  8853. name "-" version ".tar.xz"))
  8854. (sha256
  8855. (base32
  8856. "1qm544ymwibk31s30k47vnn79xg30m18r7l4di0c57g375dak31n"))))
  8857. (build-system meson-build-system)
  8858. (arguments
  8859. '(#:phases
  8860. (modify-phases %standard-phases
  8861. (add-after 'unpack 'skip-gtk-update-icon-cache
  8862. ;; Don't create 'icon-theme.cache'.
  8863. (lambda _
  8864. (substitute* "build-aux/postinstall.py"
  8865. (("gtk-update-icon-cache") "true"))
  8866. #t)))))
  8867. (native-inputs
  8868. `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
  8869. ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
  8870. ("intltool" ,intltool)
  8871. ("appstream-glib" ,appstream-glib)
  8872. ("pkg-config" ,pkg-config)))
  8873. (inputs
  8874. `(("gtk+" ,gtk+)
  8875. ("libcanberra" ,libcanberra)
  8876. ("libhandy" ,libhandy)
  8877. ("libx11" ,libx11)
  8878. ("libxext" ,libxext)))
  8879. (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
  8880. (synopsis "Take pictures of your screen")
  8881. (description
  8882. "GNOME Screenshot is a utility used for taking screenshots of the entire
  8883. screen, a window or a user defined area of the screen, with optional
  8884. beautifying border effects.")
  8885. (license license:gpl2+)))
  8886. (define-public dconf-editor
  8887. (package
  8888. (name "dconf-editor")
  8889. (version "3.38.3")
  8890. (source
  8891. (origin
  8892. (method url-fetch)
  8893. (uri (string-append "mirror://gnome/sources/" name "/"
  8894. (version-major+minor version) "/"
  8895. name "-" version ".tar.xz"))
  8896. (sha256
  8897. (base32
  8898. "1qvrxrk1h8bd75xwasxbvlkqrw6xkavjimvc7sslkw6lvb3z86jp"))))
  8899. (build-system meson-build-system)
  8900. (native-inputs
  8901. `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
  8902. ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
  8903. ("intltool" ,intltool)
  8904. ("pkg-config" ,pkg-config)
  8905. ("vala" ,vala)))
  8906. (inputs
  8907. `(("dconf" ,dconf)
  8908. ("gtk+" ,gtk+)
  8909. ("libxml2" ,libxml2)))
  8910. (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
  8911. (synopsis "Graphical editor for GNOME's dconf configuration system")
  8912. (description
  8913. "Dconf-editor is a graphical tool for browsing and editing the dconf
  8914. configuration system for GNOME. It allows users to configure desktop
  8915. software that do not provide their own configuration interface.")
  8916. (license license:lgpl2.1+)))
  8917. (define-public gnome-default-applications
  8918. (package
  8919. (name "gnome-default-applications")
  8920. (version "0")
  8921. (build-system trivial-build-system)
  8922. (source #f)
  8923. (propagated-inputs
  8924. `(("nautilus" ,nautilus)
  8925. ("evince" ,evince)))
  8926. (arguments
  8927. `(#:modules ((guix build utils))
  8928. #:builder
  8929. (begin
  8930. (use-modules (guix build utils))
  8931. (let* ((out (assoc-ref %outputs "out"))
  8932. (apps (string-append out "/share/applications")))
  8933. (mkdir-p apps)
  8934. (call-with-output-file (string-append apps "/gnome-mimeapps.list")
  8935. (lambda (port)
  8936. (format port "[Default Applications]\n")
  8937. (format port "inode/directory=org.gnome.Nautilus.desktop\n")
  8938. (format port "application/pdf=evince.desktop\n")
  8939. (format port "application/postscript=evince.desktop\n")))
  8940. #t))))
  8941. (synopsis "Default MIME type associations for the GNOME desktop")
  8942. (description
  8943. "Given many installed packages which might handle a given MIME type, a
  8944. user running the GNOME desktop probably has some preferences: for example,
  8945. that folders be opened by default by the Nautilus file manager, not the Baobab
  8946. disk usage analyzer. This package establishes that set of default MIME type
  8947. associations for GNOME.")
  8948. (license license:gpl3+)
  8949. (home-page #f)))
  8950. (define-public libgovirt
  8951. (package
  8952. (name "libgovirt")
  8953. (version "0.3.8")
  8954. (source (origin
  8955. (method url-fetch)
  8956. (uri (string-append "mirror://gnome/sources/" name "/"
  8957. (version-major+minor version) "/"
  8958. name "-" version ".tar.xz"))
  8959. (sha256
  8960. (base32
  8961. "1y0x1wyakj3ya33hgj0w1jkbcn50q21gmn2zyalxysqp55i1ij8x"))))
  8962. (build-system glib-or-gtk-build-system)
  8963. (native-inputs
  8964. `(("gettext" ,gettext-minimal)
  8965. ("glib:bin" ,glib "bin")
  8966. ("gobject-introspection" ,gobject-introspection)
  8967. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  8968. ("gtk+:bin" ,gtk+ "bin")
  8969. ("pkg-config" ,pkg-config)))
  8970. (inputs
  8971. `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
  8972. ("librest" ,rest)))
  8973. (synopsis "GoVirt Library")
  8974. (description "GoVirt is a GObject wrapper for the oVirt REST API.")
  8975. (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
  8976. (license license:gpl2+)))
  8977. (define-public gnome-weather
  8978. (package
  8979. (name "gnome-weather")
  8980. (version "40.1")
  8981. (source (origin
  8982. (method url-fetch)
  8983. (uri (string-append "mirror://gnome/sources/" name "/"
  8984. (version-major version) "/"
  8985. name "-" version ".tar.xz"))
  8986. (sha256
  8987. (base32
  8988. "0k9wnyinvx6433r07kvjyahgqc605g7gbpf3d0h6vi4p8x61849x"))))
  8989. (build-system meson-build-system)
  8990. (native-inputs
  8991. `(("gettext" ,gettext-minimal)
  8992. ("glib:bin" ,glib "bin")
  8993. ("gobject-introspection" ,gobject-introspection)
  8994. ("gtk+:bin" ,gtk+ "bin")
  8995. ("pkg-config" ,pkg-config)))
  8996. (inputs
  8997. `(("appstream-glib" ,appstream-glib)
  8998. ("geoclue" ,geoclue)
  8999. ("gjs" ,gjs)
  9000. ("gnome-desktop" ,gnome-desktop)
  9001. ("libgweather" ,libgweather)
  9002. ("libhandy" ,libhandy)))
  9003. (arguments
  9004. `(#:glib-or-gtk? #t
  9005. #:phases
  9006. ,#~(modify-phases %standard-phases
  9007. (add-after 'unpack 'fix-service-file
  9008. (lambda _
  9009. (substitute* "data/org.gnome.Weather.service.in"
  9010. (("Exec=[[:graph:]]+")
  9011. (string-append "Exec=" #$output
  9012. "/bin/gnome-weather")))))
  9013. (add-after 'install 'fix-desktop-file
  9014. ;; FIXME: "gapplication launch org.gnome.Weather" fails for some
  9015. ;; reason. See https://issues.guix.gnu.org/issue/39324.
  9016. (lambda _
  9017. (let ((applications
  9018. (string-append #$output "/share/applications")))
  9019. (substitute* (string-append applications
  9020. "/org.gnome.Weather.desktop")
  9021. (("Exec=.*") "Exec=gnome-weather\n")))))
  9022. (add-after 'install 'wrap
  9023. (lambda _
  9024. (let ((gi-typelib-path (getenv "GI_TYPELIB_PATH")))
  9025. ;; GNOME Weather needs the typelib files of GTK+, Pango etc
  9026. ;; at runtime.
  9027. (wrap-program (string-append #$output "/bin/gnome-weather")
  9028. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))))))
  9029. (synopsis "Weather monitoring for GNOME desktop")
  9030. (description "GNOME Weather is a small application that allows you to
  9031. monitor the current weather conditions for your city, or anywhere in the
  9032. world.")
  9033. (home-page "https://wiki.gnome.org/Apps/Weather")
  9034. (license license:gpl2+)))
  9035. (define-public gnome
  9036. (package
  9037. (name "gnome")
  9038. (version (package-version gnome-shell))
  9039. (source #f)
  9040. (build-system trivial-build-system)
  9041. (arguments '(#:builder (begin (mkdir %output) #t)))
  9042. (propagated-inputs
  9043. `(;; GNOME-Core-OS-Services
  9044. ("accountsservice" ,accountsservice)
  9045. ("network-manager" ,network-manager)
  9046. ("packagekit" ,packagekit)
  9047. ("upower" ,upower)
  9048. ;; GNOME-Core-Shell
  9049. ("adwaita-icon-theme" ,adwaita-icon-theme)
  9050. ("gdm" ,gdm)
  9051. ("glib-networking" ,glib-networking)
  9052. ("gnome-backgrounds" ,gnome-backgrounds)
  9053. ("gnome-bluetooth" ,gnome-bluetooth)
  9054. ("gnome-color-manager" ,gnome-color-manager)
  9055. ("gnome-control-center" ,gnome-control-center)
  9056. ("gnome-desktop" ,gnome-desktop)
  9057. ("gnome-initial-setup" ,gnome-initial-setup)
  9058. ("gnome-keyring" ,gnome-keyring)
  9059. ("gnome-menus" ,gnome-menus)
  9060. ("gnome-session" ,gnome-session)
  9061. ("gnome-settings-daemon" ,gnome-settings-daemon)
  9062. ("gnome-shell-extensions" ,gnome-shell-extensions)
  9063. ("gnome-shell" ,gnome-shell)
  9064. ("gnome-themes-extra" ,gnome-themes-extra)
  9065. ("gnome-user-docs" ,gnome-user-docs)
  9066. ("gnome-user-share" ,gnome-user-share)
  9067. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  9068. ("gvfs" ,gvfs)
  9069. ("mutter" ,mutter)
  9070. ("orca" ,orca)
  9071. ("rygel" ,rygel)
  9072. ("sushi" ,sushi)
  9073. ;; GNOME-Core-Utilities
  9074. ("baobab" ,baobab)
  9075. ("cheese" ,cheese)
  9076. ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
  9077. ;; only works on x86_64, so exclude it on other architectures.
  9078. ,@(if (string-prefix? "x86_64" (%current-system))
  9079. `(("eog" ,eog))
  9080. '())
  9081. ("epiphany" ,epiphany)
  9082. ("evince" ,evince)
  9083. ("file-roller" ,file-roller)
  9084. ("gedit" ,gedit)
  9085. ("gnome-boxes" ,gnome-boxes)
  9086. ("gnome-calculator" ,gnome-calculator)
  9087. ("gnome-calendar" ,gnome-calendar)
  9088. ("gnome-characters" ,gnome-characters)
  9089. ("gnome-clocks" ,gnome-clocks)
  9090. ("gnome-contacts" ,gnome-contacts)
  9091. ("gnome-disk-utility" ,gnome-disk-utility)
  9092. ("gnome-font-viewer" ,gnome-font-viewer)
  9093. ("gnome-maps" ,gnome-maps)
  9094. ("gnome-music" ,gnome-music)
  9095. ("gnome-photos" ,gnome-photos)
  9096. ("gnome-screenshot" ,gnome-screenshot)
  9097. ("gnome-system-monitor" ,gnome-system-monitor)
  9098. ("gnome-terminal" ,gnome-terminal)
  9099. ("gnome-weather" ,gnome-weather)
  9100. ("nautilus" ,nautilus)
  9101. ("simple-scan" ,simple-scan)
  9102. ("totem" ,totem)
  9103. ("tracker-miners" ,tracker-miners)
  9104. ("yelp" ,yelp)
  9105. ;; Others
  9106. ("hicolor-icon-theme" ,hicolor-icon-theme)
  9107. ("gnome-online-accounts" ,gnome-online-accounts)
  9108. ;; Packages not part of GNOME proper but that are needed for a good
  9109. ;; experience. See <https://bugs.gnu.org/39646>.
  9110. ;; XXX: Find out exactly which ones are needed and why.
  9111. ("font-cantarell" ,font-cantarell)
  9112. ("font-dejavu" ,font-dejavu)
  9113. ("at-spi2-core" ,at-spi2-core)
  9114. ("dbus" ,dbus)
  9115. ("dconf" ,dconf)
  9116. ("desktop-file-utils" ,desktop-file-utils)
  9117. ("gnome-default-applications" ,gnome-default-applications)
  9118. ("gnome-themes-standard" ,gnome-themes-standard)
  9119. ("gst-plugins-base" ,gst-plugins-base)
  9120. ("gst-plugins-good" ,gst-plugins-good)
  9121. ("gucharmap" ,gucharmap)
  9122. ("pinentry-gnome3" ,pinentry-gnome3)
  9123. ("pulseaudio" ,pulseaudio)
  9124. ("shared-mime-info" ,shared-mime-info)
  9125. ("system-config-printer" ,system-config-printer)
  9126. ("xdg-user-dirs" ,xdg-user-dirs)
  9127. ("yelp" ,yelp)
  9128. ("zenity" ,zenity)))
  9129. (synopsis "The GNU desktop environment")
  9130. (home-page "https://www.gnome.org/")
  9131. (description
  9132. "GNOME is the graphical desktop for GNU. It includes a wide variety of
  9133. applications for browsing the web, editing text and images, creating
  9134. documents and diagrams, playing media, scanning, and much more.")
  9135. (license license:gpl2+)))
  9136. (define-public byzanz
  9137. ;; The last stable release of Byzanz was in 2011, but there have been many
  9138. ;; useful commits made to the Byzanz repository since then that it would be
  9139. ;; silly to use such an old release.
  9140. (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
  9141. (package
  9142. (name "byzanz")
  9143. (version (string-append "0.2-1." (string-take commit 7)))
  9144. (source (origin
  9145. (method git-fetch)
  9146. (uri (git-reference
  9147. (url "https://git.gnome.org/browse/byzanz")
  9148. (commit commit)))
  9149. (file-name (string-append name "-" version "-checkout"))
  9150. (sha256
  9151. (base32
  9152. "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
  9153. (build-system glib-or-gtk-build-system)
  9154. (arguments
  9155. '(#:phases
  9156. (modify-phases %standard-phases
  9157. (add-before 'bootstrap 'build-without-Werror
  9158. (lambda _
  9159. ;; The build system cleverly detects that we're not building from
  9160. ;; a release tarball and turns on -Werror for GCC.
  9161. ;; Unsurprisingly, there is a warning during compilation that
  9162. ;; causes the build to fail unnecessarily, so we remove the flag.
  9163. (substitute* '("configure.ac")
  9164. (("-Werror") ""))
  9165. #t)))))
  9166. (native-inputs
  9167. `(("autoconf" ,autoconf)
  9168. ("automake" ,automake)
  9169. ("gnome-common" ,gnome-common)
  9170. ("intltool" ,intltool)
  9171. ("libtool" ,libtool)
  9172. ("pkg-config" ,pkg-config)
  9173. ("which" ,which)))
  9174. (inputs
  9175. `(("glib" ,glib)
  9176. ("gstreamer" ,gstreamer)
  9177. ("gst-plugins-base" ,gst-plugins-base)
  9178. ("gtk+" ,gtk+)))
  9179. (synopsis "Desktop recording program")
  9180. (description "Byzanz is a simple desktop recording program with a
  9181. command-line interface. It can record part or all of an X display for a
  9182. specified duration and save it as a GIF encoded animated image file.")
  9183. (home-page "https://git.gnome.org/browse/byzanz")
  9184. (license license:gpl2+))))
  9185. (define-public authenticator
  9186. (package
  9187. (name "authenticator")
  9188. (version "3.32.2")
  9189. (source
  9190. (origin
  9191. (method git-fetch)
  9192. (uri (git-reference
  9193. (url "https://gitlab.gnome.org/World/Authenticator")
  9194. (commit version)))
  9195. (file-name (git-file-name name version))
  9196. (sha256
  9197. (base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
  9198. (build-system meson-build-system)
  9199. (arguments
  9200. `(#:glib-or-gtk? #t
  9201. #:phases
  9202. (modify-phases %standard-phases
  9203. (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
  9204. (lambda* (#:key inputs outputs #:allow-other-keys)
  9205. (let ((prog (string-append (assoc-ref outputs "out")
  9206. "/bin/authenticator"))
  9207. (pylib (string-append (assoc-ref outputs "out")
  9208. "/lib/python"
  9209. ,(version-major+minor
  9210. (package-version python))
  9211. "/site-packages")))
  9212. (wrap-program prog
  9213. `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
  9214. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
  9215. #t))))))
  9216. (native-inputs
  9217. `(("desktop-file-utils" ,desktop-file-utils)
  9218. ("gettext" ,gettext-minimal)
  9219. ("glib:bin" ,glib "bin")
  9220. ("gobject-introspection" ,gobject-introspection)
  9221. ("gtk+:bin" ,gtk+ "bin")
  9222. ("pkg-config" ,pkg-config)))
  9223. (inputs
  9224. `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  9225. ("gtk+" ,gtk+)
  9226. ("libhandy" ,libhandy-0.0)
  9227. ("libsecret" ,libsecret)
  9228. ("python-beautifulsoup4" ,python-beautifulsoup4)
  9229. ("python-pillow" ,python-pillow)
  9230. ("python-pyfavicon" ,python-pyfavicon)
  9231. ("python-pygobject" ,python-pygobject)
  9232. ("python-pyotp" ,python-pyotp)
  9233. ("python-pyzbar" ,python-pyzbar)
  9234. ("yoyo-migrations" ,yoyo-migrations)
  9235. ("zbar" ,zbar)))
  9236. (home-page "https://gitlab.gnome.org/World/Authenticator/")
  9237. (synopsis "Two-factor authentication application built for GNOME")
  9238. (description
  9239. "Authenticator is a two-factor authentication (2FA) application built for
  9240. the GNOME desktop environment.
  9241. Features:
  9242. @itemize
  9243. @item QR code scanner
  9244. @item Beautiful UI
  9245. @item Huge database of more than 560 supported services
  9246. @item Keep your PIN tokens secure by locking the application with a password
  9247. @item Automatically fetch an image for services using their favicon
  9248. @item The possibility to add new services
  9249. @end itemize")
  9250. (license license:gpl3+)))
  9251. (define-public gsound
  9252. (package
  9253. (name "gsound")
  9254. (version "1.0.2")
  9255. (source (origin
  9256. (method url-fetch)
  9257. (uri (string-append "mirror://gnome/sources/" name "/"
  9258. (version-major+minor version) "/"
  9259. name "-" version ".tar.xz"))
  9260. (sha256
  9261. (base32
  9262. "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
  9263. (build-system glib-or-gtk-build-system)
  9264. (native-inputs
  9265. `(("pkg-config" ,pkg-config)
  9266. ("gobject-introspection" ,gobject-introspection)
  9267. ("vala" ,vala)))
  9268. (inputs
  9269. `(("glib" ,glib)
  9270. ("libcanberra" ,libcanberra)))
  9271. (home-page "https://wiki.gnome.org/Projects/GSound")
  9272. (synopsis "GObject wrapper for libcanberra")
  9273. (description
  9274. "GSound is a small library for playing system sounds. It's designed to be
  9275. used via GObject Introspection, and is a thin wrapper around the libcanberra C
  9276. library.")
  9277. (license license:lgpl2.1+)))
  9278. (define-public libzapojit
  9279. (package
  9280. (name "libzapojit")
  9281. (version "0.0.3")
  9282. (source (origin
  9283. (method url-fetch)
  9284. (uri (string-append "mirror://gnome/sources/" name "/"
  9285. (version-major+minor version) "/"
  9286. name "-" version ".tar.xz"))
  9287. (sha256
  9288. (base32
  9289. "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
  9290. (build-system gnu-build-system)
  9291. (native-inputs
  9292. `(("gobject-introspection" ,gobject-introspection)
  9293. ("intltool" ,intltool)
  9294. ("pkg-config" ,pkg-config)))
  9295. (inputs
  9296. `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
  9297. ("json-glib" ,json-glib)
  9298. ("rest" ,rest)))
  9299. (home-page "https://wiki.gnome.org/Projects/Zapojit")
  9300. (synopsis "Library for accessing SkyDrive and Hotmail")
  9301. (description
  9302. "Libzapojit is a GLib-based library for accessing online service APIs of
  9303. Microsoft SkyDrive and Hotmail, using their REST protocols.")
  9304. (license license:lgpl2.1+)))
  9305. (define-public gnome-clocks
  9306. (package
  9307. (name "gnome-clocks")
  9308. (version "40.0")
  9309. (source (origin
  9310. (method url-fetch)
  9311. (uri (string-append "mirror://gnome/sources/" name "/"
  9312. (version-major version) "/"
  9313. name "-" version ".tar.xz"))
  9314. (sha256
  9315. (base32
  9316. "02d3jg46sn8d9gd4dsaly22gg5vkbz2gpq4pmwpvncb4rsqk7sn2"))))
  9317. (build-system meson-build-system)
  9318. (arguments
  9319. '(#:glib-or-gtk? #t
  9320. #:phases
  9321. (modify-phases %standard-phases
  9322. (add-after 'unpack 'skip-gtk-update-icon-cache
  9323. ;; Don't create 'icon-theme.cache'.
  9324. (lambda _
  9325. (substitute* "build-aux/post-install.py"
  9326. (("gtk-update-icon-cache") "true")))))))
  9327. (native-inputs
  9328. `(("vala" ,vala)
  9329. ("pkg-config" ,pkg-config)
  9330. ("glib" ,glib "bin") ; for glib-compile-resources
  9331. ("desktop-file-utils" ,desktop-file-utils)
  9332. ("gettext" ,gettext-minimal)
  9333. ("itstool" ,itstool)))
  9334. (inputs
  9335. `(("glib" ,glib)
  9336. ("gtk+" ,gtk+)
  9337. ("gsound" ,gsound)
  9338. ("geoclue" ,geoclue)
  9339. ("geocode-glib" ,geocode-glib)
  9340. ("libgweather" ,libgweather)
  9341. ("libhandy" ,libhandy)
  9342. ("gnome-desktop" ,gnome-desktop)))
  9343. (home-page "https://wiki.gnome.org/Apps/Clocks")
  9344. (synopsis "GNOME's clock application")
  9345. (description
  9346. "GNOME Clocks is a simple clocks application designed to fit the GNOME
  9347. desktop. It supports world clock, stop watch, alarms, and count down timer.")
  9348. (license license:gpl3+)))
  9349. (define-public gnome-calendar
  9350. (package
  9351. (name "gnome-calendar")
  9352. (version "40.2")
  9353. (source (origin
  9354. (method url-fetch)
  9355. (uri (string-append "mirror://gnome/sources/" name "/"
  9356. (version-major version) "/"
  9357. name "-" version ".tar.xz"))
  9358. (sha256
  9359. (base32
  9360. "0czasxnmbw2zm21lmxam8qixacagciq3f815s809hn0f9byh2dwy"))))
  9361. (build-system meson-build-system)
  9362. (arguments
  9363. '(#:glib-or-gtk? #t
  9364. ;; gnome-calendar has to be installed before the tests can be run
  9365. ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
  9366. #:tests? #f
  9367. #:phases
  9368. (modify-phases %standard-phases
  9369. (add-after 'unpack 'skip-gtk-update-icon-cache
  9370. ;; Don't create 'icon-theme.cache'.
  9371. (lambda _
  9372. (substitute* "build-aux/meson/meson_post_install.py"
  9373. (("gtk-update-icon-cache") "true"))
  9374. #t)))))
  9375. (native-inputs
  9376. `(("gettext" ,gettext-minimal)
  9377. ("glib-bin" ,glib "bin") ; For glib-compile-schemas
  9378. ("pkg-config" ,pkg-config)))
  9379. (inputs
  9380. `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
  9381. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  9382. ("libdazzle" ,libdazzle)
  9383. ("libedataserverui" ,evolution-data-server)
  9384. ("libgweather" ,libgweather)
  9385. ("libhandy" ,libhandy)
  9386. ("geoclue" ,geoclue)))
  9387. (propagated-inputs
  9388. `(("evolution-data-server" ,evolution-data-server)))
  9389. (home-page "https://wiki.gnome.org/Apps/Calendar")
  9390. (synopsis "GNOME's calendar application")
  9391. (description
  9392. "GNOME Calendar is a simple calendar application designed to fit the GNOME
  9393. desktop. It supports multiple calendars, month, week and year view.")
  9394. (license license:gpl3+)))
  9395. (define-public gnome-todo
  9396. (package
  9397. (name "gnome-todo")
  9398. (version "40.1")
  9399. (source (origin
  9400. (method url-fetch)
  9401. (uri (string-append "mirror://gnome/sources/" name "/"
  9402. (version-major version) "/"
  9403. name "-" version ".tar.xz"))
  9404. (sha256
  9405. (base32
  9406. "1r1fb3zgjvkhx93by24j8cg1w1g3zvwr49vqkscjn261vqs44jq3"))))
  9407. (build-system meson-build-system)
  9408. (arguments
  9409. `(#:glib-or-gtk? #t
  9410. ;; XXX: Some tests fail with the following error:
  9411. ;; Settings schema 'org.gnome.todo' is not installed.
  9412. #:tests? #f
  9413. #:phases
  9414. (modify-phases %standard-phases
  9415. (add-after 'unpack 'skip-gtk-update-icon-cache
  9416. ;; Don't create 'icon-theme.cache'.
  9417. (lambda _
  9418. (substitute* "build-aux/meson/meson_post_install.py"
  9419. (("gtk-update-icon-cache") "true")))))))
  9420. (native-inputs
  9421. `(("gettext" ,gettext-minimal)
  9422. ("gobject-introspection" ,gobject-introspection)
  9423. ("glib:bin" ,glib "bin") ; For glib-compile-resources
  9424. ("gtk-bin" ,gtk "bin") ; For gtk-update-icon-cache
  9425. ("pkg-config" ,pkg-config)))
  9426. (inputs
  9427. `(("rest" ,rest) ; For Todoist plugin
  9428. ("gtk" ,gtk)
  9429. ("json-glib" ,json-glib) ; For Todoist plugin
  9430. ("libadwaita" ,libadwaita)
  9431. ("libedataserverui" ,evolution-data-server)
  9432. ("libical" ,libical)
  9433. ("libpeas" ,libpeas)
  9434. ("libportal" ,libportal)
  9435. ("python-pygobject" ,python-pygobject)
  9436. ("evolution-data-server" ,evolution-data-server)
  9437. ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
  9438. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
  9439. (home-page "https://wiki.gnome.org/Apps/Todo")
  9440. (synopsis "GNOME's ToDo Application")
  9441. (description
  9442. "GNOME To Do is a simplistic personal task manager designed to perfectly
  9443. fit the GNOME desktop.")
  9444. (license license:gpl3+)))
  9445. (define-public gnome-dictionary
  9446. (package
  9447. (name "gnome-dictionary")
  9448. (version "40.0")
  9449. (source (origin
  9450. (method url-fetch)
  9451. (uri (string-append "mirror://gnome/sources/" name "/"
  9452. (version-major version) "/"
  9453. name "-" version ".tar.xz"))
  9454. (sha256
  9455. (base32
  9456. "1d8dhcfys788vv27v34i3s3x3jdvdi2kqn2a5p8c937a9hm0qr9f"))))
  9457. (build-system meson-build-system)
  9458. (arguments
  9459. '(#:glib-or-gtk? #t
  9460. #:phases
  9461. (modify-phases %standard-phases
  9462. (add-after 'unpack 'skip-gtk-update-icon-cache
  9463. ;; Don't create 'icon-theme.cache'.
  9464. (lambda _
  9465. (substitute* "build-aux/meson/post-install.py"
  9466. (("gtk-update-icon-cache") "true")))))))
  9467. (native-inputs
  9468. `(("glib:bin" ,glib "bin")
  9469. ("gobject-introspection" ,gobject-introspection)
  9470. ("intltool" ,intltool)
  9471. ("itstool" ,itstool)
  9472. ("pkg-config" ,pkg-config)
  9473. ("xmllint" ,libxml2)))
  9474. (inputs
  9475. `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  9476. ("gtk+" ,gtk+)))
  9477. (home-page "https://wiki.gnome.org/Apps/Dictionary")
  9478. (synopsis "Look up words in dictionary sources")
  9479. (description
  9480. "GNOME Dictionary can look for the definition or translation of a word in
  9481. existing databases over the internet.")
  9482. (license license:gpl3+)))
  9483. (define-public gnome-tweaks
  9484. (package
  9485. (name "gnome-tweaks")
  9486. (version "40.0")
  9487. (source (origin
  9488. (method url-fetch)
  9489. (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
  9490. (version-major version) "/"
  9491. "gnome-tweaks-" version ".tar.xz"))
  9492. (patches
  9493. (list (search-patch "gnome-tweaks-search-paths.patch")))
  9494. (sha256
  9495. (base32
  9496. "0sn3xsjhnini0f2dyi1ymrr3fb8mi7w5j5lsyw11rc5h67h3ypzr"))))
  9497. (build-system meson-build-system)
  9498. (arguments
  9499. `(#:glib-or-gtk? #t
  9500. #:configure-flags '("-Dlocalstatedir=/tmp"
  9501. "-Dsysconfdir=/tmp")
  9502. #:imported-modules ((guix build python-build-system)
  9503. ,@%meson-build-system-modules)
  9504. #:phases
  9505. (modify-phases %standard-phases
  9506. (add-after 'unpack 'skip-gtk-update-icon-cache
  9507. ;; Don't create 'icon-theme.cache'.
  9508. (lambda _
  9509. (substitute* "meson-postinstall.py"
  9510. (("gtk-update-icon-cache") "true"))))
  9511. (add-after 'install 'wrap
  9512. (@@ (guix build python-build-system) wrap))
  9513. (add-after 'wrap 'wrap-gi-typelib
  9514. (lambda* (#:key inputs outputs #:allow-other-keys)
  9515. (let ((out (assoc-ref outputs "out"))
  9516. (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
  9517. (wrap-program (string-append out "/bin/gnome-tweaks")
  9518. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))))))
  9519. (native-inputs
  9520. `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
  9521. ("intltool" ,intltool)
  9522. ("pkg-config" ,pkg-config)))
  9523. (inputs
  9524. `(("gnome-desktop" ,gnome-desktop)
  9525. ("gtk+" ,gtk+)
  9526. ("gobject-introspection" ,gobject-introspection)
  9527. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  9528. ("libhandy" ,libhandy-0.0)
  9529. ("libnotify" ,libnotify)
  9530. ("libsoup" ,libsoup)
  9531. ("nautilus" ,nautilus)
  9532. ("python" ,python)
  9533. ("python-pygobject" ,python-pygobject)))
  9534. (synopsis "Customize advanced GNOME 3 options")
  9535. (home-page "https://wiki.gnome.org/Apps/Tweaks")
  9536. (description
  9537. "GNOME Tweaks allows adjusting advanced configuration settings in
  9538. GNOME 3. This includes things like the fonts used in user interface elements,
  9539. alternative user interface themes, changes in window management behavior,
  9540. GNOME Shell appearance and extension, etc.")
  9541. (license license:gpl3+)))
  9542. (define-public gnome-shell-extensions
  9543. (package
  9544. (name "gnome-shell-extensions")
  9545. (version "40.4")
  9546. (source (origin
  9547. (method url-fetch)
  9548. (uri (string-append "mirror://gnome/sources/" name "/"
  9549. (version-major version) "/"
  9550. name "-" version ".tar.xz"))
  9551. (sha256
  9552. (base32
  9553. "0yfd1bcwf72dmr1hfh7g8s5cb7snyiyg86575hqx1frbq914q7gm"))))
  9554. (build-system meson-build-system)
  9555. (arguments
  9556. '(#:configure-flags '("-Dextension_set=all")))
  9557. (native-inputs
  9558. `(("glib:bin" ,glib "bin")
  9559. ("intltool" ,intltool)
  9560. ("pkg-config" ,pkg-config)))
  9561. (propagated-inputs
  9562. `(("glib" ,glib)))
  9563. (synopsis "Extensions for GNOME Shell")
  9564. (description "GNOME Shell extensions modify and extend GNOME Shell
  9565. functionality and behavior.")
  9566. (home-page "https://extensions.gnome.org/")
  9567. (license license:gpl3+)))
  9568. (define-public folks
  9569. (package
  9570. (name "folks")
  9571. (version "0.14.0")
  9572. (source (origin
  9573. (method url-fetch)
  9574. (uri (string-append
  9575. "mirror://gnome/sources/folks/"
  9576. (version-major+minor version) "/"
  9577. "folks-" version ".tar.xz"))
  9578. (sha256
  9579. (base32
  9580. "1f9b52vmwnq7s51vj26w2618dn2ph5g12ibbkbyk6fvxcgd7iryn"))))
  9581. (build-system meson-build-system)
  9582. (arguments
  9583. '(#:phases
  9584. (modify-phases %standard-phases
  9585. (add-after 'unpack 'skip-gtk-update-icon-cache
  9586. ;; Don't create 'icon-theme.cache'.
  9587. (lambda _
  9588. (substitute* "meson_post_install.py"
  9589. (("gtk-update-icon-cache") "true"))
  9590. #t)))))
  9591. (inputs
  9592. `(("bdb" ,bdb)
  9593. ("dbus-glib" ,dbus-glib)
  9594. ("evolution-data-server" ,evolution-data-server)
  9595. ("glib" ,glib)
  9596. ("libgee" ,libgee)
  9597. ("readline" ,readline)
  9598. ("telepathy-glib" ,telepathy-glib)))
  9599. (native-inputs
  9600. `(("glib:bin" ,glib "bin")
  9601. ("gobject-introspection" ,gobject-introspection)
  9602. ("python-dbusmock" ,python-dbusmock)
  9603. ("intltool" ,intltool)
  9604. ("pkg-config" ,pkg-config)
  9605. ("vala" ,vala)))
  9606. (synopsis "Library to aggregate data about people")
  9607. (description "Libfolks is a library that aggregates information about people
  9608. from multiple sources (e.g., Telepathy connection managers for IM contacts,
  9609. Evolution Data Server for local contacts, libsocialweb for web service contacts,
  9610. etc.) to create metacontacts. It's written in Vala, which generates C code when
  9611. compiled.")
  9612. (home-page "https://wiki.gnome.org/Projects/Folks")
  9613. (license license:lgpl2.1+)))
  9614. (define-public gfbgraph
  9615. (package
  9616. (name "gfbgraph")
  9617. (version "0.2.4")
  9618. (source (origin
  9619. (method url-fetch)
  9620. (uri (string-append
  9621. "mirror://gnome/sources/gfbgraph/"
  9622. (version-major+minor version) "/"
  9623. "gfbgraph-" version ".tar.xz"))
  9624. (sha256
  9625. (base32
  9626. "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
  9627. (build-system glib-or-gtk-build-system)
  9628. (arguments
  9629. `(#:tests? #f ; tests appear to require the network
  9630. #:configure-flags '("--disable-static"
  9631. "--enable-gtk-doc"
  9632. "--enable-introspection")))
  9633. (native-inputs
  9634. `(("gobject-introspection" ,gobject-introspection)
  9635. ("gtk-doc" ,gtk-doc/stable)
  9636. ("pkg-config" ,pkg-config)
  9637. ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
  9638. ("autoconf" ,autoconf)
  9639. ("automake" ,automake)
  9640. ("libtool" ,libtool)
  9641. ("which" ,which)))
  9642. (inputs
  9643. `(("json-glib" ,json-glib)
  9644. ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
  9645. ("rest" ,rest)))
  9646. (synopsis "GLib/GObject wrapper for the Facebook API")
  9647. (description "This library allows you to use the Facebook API from
  9648. GLib/GObject code.")
  9649. (home-page "https://wiki.gnome.org/Projects/GFBGraph")
  9650. (license license:lgpl2.1+)))
  9651. (define-public libgnomekbd
  9652. (package
  9653. (name "libgnomekbd")
  9654. (version "3.26.1")
  9655. (source (origin
  9656. (method url-fetch)
  9657. (uri (string-append "mirror://gnome/sources/libgnomekbd/"
  9658. (version-major+minor version) "/"
  9659. "libgnomekbd-" version ".tar.xz"))
  9660. (sha256
  9661. (base32
  9662. "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
  9663. (build-system gnu-build-system)
  9664. (native-inputs
  9665. `(("pkg-config" ,pkg-config)
  9666. ("glib" ,glib "bin")
  9667. ("intltool" ,intltool)))
  9668. (propagated-inputs
  9669. ;; Referred to in .h files and .pc.
  9670. `(("glib" ,glib)
  9671. ("gtk+" ,gtk+)
  9672. ("libxklavier" ,libxklavier)))
  9673. (home-page "https://www.gnome.org")
  9674. (synopsis "GNOME keyboard configuration library")
  9675. (description
  9676. "Libgnomekbd is a keyboard configuration library for the GNOME desktop
  9677. environment, which can notably display keyboard layouts.")
  9678. (license license:lgpl2.0+)))
  9679. ;;; This package is no longer maintained:
  9680. ;;; https://wiki.gnome.org/Attic/LibUnique
  9681. ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
  9682. ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
  9683. (define-public libunique
  9684. (package
  9685. (name "libunique")
  9686. (version "3.0.2")
  9687. (source (origin
  9688. (method url-fetch)
  9689. (uri (string-append "mirror://gnome/sources/" name "/"
  9690. (version-major+minor version) "/"
  9691. name "-" version ".tar.xz"))
  9692. (sha256
  9693. (base32
  9694. "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
  9695. (build-system glib-or-gtk-build-system)
  9696. (arguments
  9697. `(#:configure-flags '("--disable-static"
  9698. "--disable-dbus" ; use gdbus
  9699. "--enable-introspection")))
  9700. (native-inputs
  9701. `(("pkg-config" ,pkg-config)
  9702. ("gobject-introspection" ,gobject-introspection)
  9703. ("glib:bin" ,glib "bin")
  9704. ("gtk-doc" ,gtk-doc/stable)))
  9705. (propagated-inputs
  9706. ;; Referred to in .h files and .pc.
  9707. `(("gtk+" ,gtk+)))
  9708. (home-page "https://wiki.gnome.org/Attic/LibUnique")
  9709. (synopsis "Library for writing single instance applications")
  9710. (description
  9711. "Libunique is a library for writing single instance applications. If you
  9712. launch a single instance application twice, the second instance will either just
  9713. quit or will send a message to the running instance. Libunique makes it easy to
  9714. write this kind of application, by providing a base class, taking care of all
  9715. the IPC machinery needed to send messages to a running instance, and also
  9716. handling the startup notification side.")
  9717. (license license:lgpl2.1+)))
  9718. (define-public gnome-calculator
  9719. (package
  9720. (name "gnome-calculator")
  9721. (version "40.1")
  9722. (source
  9723. (origin
  9724. (method url-fetch)
  9725. (uri (string-append "mirror://gnome/sources/" name "/"
  9726. (version-major version) "/"
  9727. name "-" version ".tar.xz"))
  9728. (sha256
  9729. (base32
  9730. "1xkazxbkpn1z5pfphhps7fc5q4yc8lp7f6b222n8bx5iyxhwbrkz"))))
  9731. (build-system meson-build-system)
  9732. (arguments
  9733. '(#:glib-or-gtk? #t
  9734. #:phases
  9735. (modify-phases %standard-phases
  9736. (add-before 'check 'pre-check
  9737. (lambda _
  9738. ;; Tests require a writable HOME.
  9739. (setenv "HOME" (getcwd)))))))
  9740. (native-inputs
  9741. `(("gettext" ,gettext-minimal)
  9742. ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
  9743. ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
  9744. ("itstool" ,itstool)
  9745. ("vala" ,vala)
  9746. ("pkg-config" ,pkg-config)))
  9747. (inputs
  9748. `(("glib" ,glib)
  9749. ("gtksourceview" ,gtksourceview)
  9750. ("libgee" ,libgee)
  9751. ("libhandy" ,libhandy)
  9752. ("libsoup" ,libsoup)
  9753. ("libxml2" ,libxml2)
  9754. ("mpc" ,mpc)
  9755. ("mpfr" ,mpfr)))
  9756. (home-page "https://wiki.gnome.org/Apps/Calculator")
  9757. (synopsis "Desktop calculator")
  9758. (description
  9759. "Calculator is an application that solves mathematical equations and
  9760. is suitable as a default application in a Desktop environment.")
  9761. (license license:gpl3)))
  9762. (define-public xpad
  9763. (package
  9764. (name "xpad")
  9765. (version "5.1.0")
  9766. (source
  9767. (origin
  9768. (method url-fetch)
  9769. (uri (string-append "https://launchpad.net/xpad/trunk/"
  9770. version "/+download/"
  9771. name "-" version ".tar.bz2"))
  9772. (sha256
  9773. (base32
  9774. "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
  9775. (build-system gnu-build-system)
  9776. (native-inputs
  9777. `(("autoconf" ,autoconf)
  9778. ("automake" ,automake)
  9779. ("gtk+:bin" ,gtk+ "bin")
  9780. ("intltool" ,intltool)
  9781. ("pkg-config" ,pkg-config)))
  9782. (inputs
  9783. `(("gtksourceview" ,gtksourceview-3)
  9784. ("libsm" ,libsm)))
  9785. (home-page "https://wiki.gnome.org/Apps/Xpad")
  9786. (synopsis "Virtual sticky note")
  9787. (description
  9788. "Xpad is a sticky note that strives to be simple, fault tolerant,
  9789. and customizable. Xpad consists of independent pad windows, each is
  9790. basically a text box in which notes can be written.")
  9791. (license license:gpl3+)))
  9792. (define-public gucharmap
  9793. (let ((unicode-files
  9794. '(("Blocks.txt"
  9795. "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
  9796. ("DerivedAge.txt"
  9797. "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
  9798. ("NamesList.txt"
  9799. "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
  9800. ("Scripts.txt"
  9801. "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
  9802. ("UnicodeData.txt"
  9803. "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
  9804. ("Unihan.zip"
  9805. "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
  9806. (package
  9807. (name "gucharmap")
  9808. (version "12.0.1")
  9809. (source
  9810. (origin
  9811. (method url-fetch)
  9812. (uri (string-append "mirror://gnome/sources/" name "/"
  9813. (version-major+minor version) "/"
  9814. name "-" version ".tar.xz"))
  9815. (sha256
  9816. (base32
  9817. "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
  9818. (build-system glib-or-gtk-build-system)
  9819. (arguments
  9820. `(#:modules ((ice-9 match)
  9821. (guix build glib-or-gtk-build-system)
  9822. (guix build utils))
  9823. #:configure-flags
  9824. (list "--with-unicode-data=../unicode-data")
  9825. #:phases
  9826. (modify-phases %standard-phases
  9827. (add-after 'unpack 'prepare-unicode-data
  9828. (lambda* (#:key inputs #:allow-other-keys)
  9829. (mkdir-p "../unicode-data")
  9830. (with-directory-excursion "../unicode-data"
  9831. (for-each (match-lambda
  9832. ((file _)
  9833. (install-file (assoc-ref inputs file) ".")))
  9834. ',unicode-files))
  9835. #t)))))
  9836. (native-inputs
  9837. `(("desktop-file-utils" ,desktop-file-utils)
  9838. ("glib:bin" ,glib "bin") ; for glib-compile-resources.
  9839. ("gobject-introspection" ,gobject-introspection)
  9840. ("intltool" ,intltool)
  9841. ("itstool" ,itstool)
  9842. ("pkg-config" ,pkg-config)
  9843. ,@(map (match-lambda
  9844. ((file hash)
  9845. `(,file
  9846. ,(origin
  9847. (method url-fetch)
  9848. (uri (string-append
  9849. "http://www.unicode.org/Public/12.0.0/ucd/"
  9850. file))
  9851. (sha256 (base32 hash))))))
  9852. unicode-files)
  9853. ("unzip" ,unzip)))
  9854. (inputs
  9855. `(("gtk+" ,gtk+)
  9856. ("xmllint" ,libxml2)))
  9857. (home-page "https://wiki.gnome.org/Apps/Gucharmap")
  9858. (synopsis "Unicode character picker and font browser")
  9859. (description
  9860. "This program allows you to browse through all the available Unicode
  9861. characters and categories for the installed fonts, and to examine their
  9862. detailed properties. It is an easy way to find the character you might
  9863. only know by its Unicode name or code point.")
  9864. (license license:gpl3+))))
  9865. (define-public gcolor3
  9866. (package
  9867. (name "gcolor3")
  9868. (version "2.4.0")
  9869. (source
  9870. (origin
  9871. (method git-fetch)
  9872. (uri (git-reference
  9873. (url "https://gitlab.gnome.org/World/gcolor3")
  9874. (commit (string-append "v" version))))
  9875. (file-name (git-file-name name version))
  9876. (sha256
  9877. (base32 "1igqmach1vhcrvbpw346pmkbb5kabbb806ssswrvkp569n700wmc"))))
  9878. (build-system meson-build-system)
  9879. (arguments
  9880. `(#:glib-or-gtk? #t))
  9881. (native-inputs
  9882. `(("desktop-file-utils" ,desktop-file-utils)
  9883. ("gettext" ,gettext-minimal)
  9884. ("glib:bin" ,glib "bin")
  9885. ("gtk+:bin" ,gtk+ "bin")
  9886. ("pkg-config" ,pkg-config)))
  9887. (inputs
  9888. `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  9889. ("gtk+" ,gtk+)
  9890. ("libportal" ,libportal)))
  9891. (home-page "https://www.hjdskes.nl/projects/gcolor3/")
  9892. (synopsis "Simple color chooser written in GTK3")
  9893. (description "Color Picker is a simple color chooser written in GTK3. It
  9894. supports both X and Wayland display servers.")
  9895. (license license:gpl2+)))
  9896. (define-public bluefish
  9897. (package
  9898. (name "bluefish")
  9899. (version "2.2.12")
  9900. (source
  9901. (origin
  9902. (method url-fetch)
  9903. (uri (string-append "https://www.bennewitz.com/bluefish/stable/source/"
  9904. "bluefish-" version ".tar.gz"))
  9905. (sha256
  9906. (base32 "09hgxq139kbkjda5y073lqhq1z1x7cx0j80jh77afrqa3y9c53wl"))))
  9907. (build-system gnu-build-system)
  9908. (native-inputs
  9909. `(("desktop-file-utils" ,desktop-file-utils)
  9910. ("intltool" ,intltool)
  9911. ("pkg-config" ,pkg-config)))
  9912. (inputs
  9913. `(("enchant" ,enchant)
  9914. ("gtk+" ,gtk+)
  9915. ("python" ,python-wrapper)
  9916. ("xmllint" ,libxml2)
  9917. ("gucharmap" ,gucharmap)))
  9918. (home-page "http://bluefish.openoffice.nl")
  9919. (synopsis "Web development studio")
  9920. (description
  9921. "Bluefish is an editor aimed at programmers and web developers,
  9922. with many options to write web sites, scripts and other code.
  9923. Bluefish supports many programming and markup languages.")
  9924. (license license:gpl3+)))
  9925. (define-public gnome-system-monitor
  9926. (package
  9927. (name "gnome-system-monitor")
  9928. (version "40.1")
  9929. (source
  9930. (origin
  9931. (method url-fetch)
  9932. (uri (string-append "mirror://gnome/sources/" name "/"
  9933. (version-major version) "/"
  9934. name "-" version ".tar.xz"))
  9935. (sha256
  9936. (base32
  9937. "06hxd4igxas2kyind5jwfq5qbfkknykpdfy2sy3anylhcx1hzczx"))))
  9938. (build-system meson-build-system)
  9939. (arguments
  9940. '(#:glib-or-gtk? #t
  9941. #:configure-flags '("-Dsystemd=false")))
  9942. (native-inputs
  9943. `(("glib:bin" ,glib "bin") ; for glib-mkenums.
  9944. ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
  9945. ("intltool" ,intltool)
  9946. ("itstool" ,itstool)
  9947. ("libgtop" ,libgtop)
  9948. ("polkit" ,polkit)
  9949. ("pkg-config" ,pkg-config)))
  9950. (inputs
  9951. `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
  9952. ("gtk+" ,gtk+)
  9953. ("gtkmm" ,gtkmm-3)
  9954. ("libhandy" ,libhandy)
  9955. ("librsvg" ,librsvg)
  9956. ("libxml2" ,libxml2)
  9957. ("libwnck" ,libwnck)))
  9958. (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
  9959. (synopsis "Process viewer and system resource monitor for GNOME")
  9960. (description
  9961. "GNOME System Monitor is a GNOME process viewer and system monitor with
  9962. an attractive, easy-to-use interface. It has features, such as a tree view
  9963. for process dependencies, icons for processes, the ability to hide processes,
  9964. graphical time histories of CPU/memory/swap usage and the ability to
  9965. kill/reinice processes.")
  9966. (license license:gpl2+)))
  9967. (define-public python-pyatspi
  9968. (package
  9969. (name "python-pyatspi")
  9970. (version "2.34.0")
  9971. (source (origin
  9972. (method url-fetch)
  9973. (uri (string-append
  9974. "mirror://gnome/sources/pyatspi/"
  9975. (version-major+minor version)
  9976. "/pyatspi-" version ".tar.xz"))
  9977. (sha256
  9978. (base32
  9979. "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
  9980. (build-system gnu-build-system)
  9981. (arguments
  9982. `(#:phases
  9983. (modify-phases %standard-phases
  9984. (add-before 'build 'fix-atk-load
  9985. (lambda _
  9986. (substitute* "pyatspi/__init__.py"
  9987. (("from gi.repository import Atspi")
  9988. "gi.require_version('Gtk', '3.0')
  9989. from gi.repository import Gtk
  9990. from gi.repository import Atspi"))
  9991. #t)))))
  9992. (native-inputs
  9993. `(("pkg-config" ,pkg-config)))
  9994. (inputs
  9995. `(("python" ,python)))
  9996. (propagated-inputs
  9997. `(("python-pygobject" ,python-pygobject)))
  9998. (synopsis "Python client bindings for D-Bus AT-SPI")
  9999. (home-page "https://wiki.linuxfoundation.org/accessibility\
  10000. /atk/at-spi/at-spi_on_d-bus")
  10001. (description
  10002. "This package includes a python client library for the AT-SPI D-Bus
  10003. accessibility infrastructure.")
  10004. (license license:lgpl2.0)
  10005. (properties '((upstream-name . "pyatspi")))))
  10006. (define-public python2-pyatspi
  10007. (package/inherit python-pyatspi
  10008. (name "python2-pyatspi")
  10009. (inputs
  10010. `(("python" ,python-2)))
  10011. (propagated-inputs
  10012. `(("python-pygobject" ,python2-pygobject)))))
  10013. (define-public orca
  10014. (package
  10015. (name "orca")
  10016. (version "40.0")
  10017. (source (origin
  10018. (method url-fetch)
  10019. (uri (string-append
  10020. "mirror://gnome/sources/" name "/"
  10021. (version-major version) "/"
  10022. name "-" version ".tar.xz"))
  10023. (sha256
  10024. (base32
  10025. "0hq0zdcn80ficpcffbk667907v6m7dih3dhyc7ss01mrj3iyw000"))))
  10026. (build-system glib-or-gtk-build-system)
  10027. (arguments
  10028. '(#:phases
  10029. (modify-phases %standard-phases
  10030. (add-before 'configure 'qualify-xkbcomp
  10031. (lambda* (#:key inputs #:allow-other-keys)
  10032. (let ((xkbcomp (string-append
  10033. (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
  10034. (substitute* "src/orca/orca.py"
  10035. (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
  10036. #t))
  10037. (add-after 'install 'wrap-orca
  10038. (lambda* (#:key outputs #:allow-other-keys)
  10039. (let* ((out (assoc-ref outputs "out"))
  10040. (prog (string-append out "/bin/orca")))
  10041. (wrap-program prog
  10042. `("GI_TYPELIB_PATH" ":" prefix
  10043. (,(getenv "GI_TYPELIB_PATH")))
  10044. `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
  10045. (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
  10046. `("GUIX_PYTHONPATH" ":" prefix
  10047. (,(getenv "GUIX_PYTHONPATH")))))
  10048. #t)))))
  10049. (native-inputs
  10050. `(("intltool" ,intltool)
  10051. ("itstool" ,itstool)
  10052. ("pkg-config" ,pkg-config)
  10053. ("xmllint" ,libxml2)))
  10054. (inputs
  10055. `(("at-spi2-atk" ,at-spi2-atk)
  10056. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  10057. ("gstreamer" ,gstreamer)
  10058. ("gst-plugins-base" ,gst-plugins-base)
  10059. ("gst-plugins-good" ,gst-plugins-good)
  10060. ("gtk+" ,gtk+)
  10061. ("python" ,python)
  10062. ("python-pygobject" ,python-pygobject)
  10063. ("python-pyatspi" ,python-pyatspi)
  10064. ("python-speechd" ,speech-dispatcher)
  10065. ("xkbcomp" ,xkbcomp)))
  10066. (synopsis
  10067. "Screen reader for individuals who are blind or visually impaired")
  10068. (home-page "https://wiki.gnome.org/Projects/Orca")
  10069. (description
  10070. "Orca is a screen reader that provides access to the graphical desktop
  10071. via speech and refreshable braille. Orca works with applications and toolkits
  10072. that support the Assistive Technology Service Provider Interface (AT-SPI).")
  10073. (license license:lgpl2.1+)))
  10074. (define-public gspell
  10075. (package
  10076. (name "gspell")
  10077. (version "1.8.2")
  10078. (source (origin
  10079. (method url-fetch)
  10080. (uri (string-append "mirror://gnome/sources/" name "/"
  10081. (version-major+minor version) "/"
  10082. name "-" version ".tar.xz"))
  10083. (sha256
  10084. (base32
  10085. "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
  10086. (patches (search-patches "gspell-dash-test.patch"))))
  10087. (build-system glib-or-gtk-build-system)
  10088. (arguments
  10089. '(#:configure-flags (list "--enable-vala")
  10090. #:phases
  10091. (modify-phases %standard-phases
  10092. (add-before 'check 'pre-check
  10093. (lambda* (#:key inputs #:allow-other-keys)
  10094. ;; Tests require a running X server.
  10095. (system "Xvfb :1 &")
  10096. (setenv "DISPLAY" ":1")
  10097. ;; For the missing /etc/machine-id.
  10098. (setenv "DBUS_FATAL_WARNINGS" "0")
  10099. ;; Allow Enchant and its Aspell backend to find the en_US
  10100. ;; dictionary.
  10101. (setenv "ASPELL_DICT_DIR"
  10102. (search-input-directory inputs "/lib/aspell")))))))
  10103. (inputs
  10104. `(("iso-codes" ,iso-codes)))
  10105. (native-inputs
  10106. `(("glib" ,glib "bin")
  10107. ("gobject-introspection" ,gobject-introspection)
  10108. ("pkg-config" ,pkg-config)
  10109. ("vala" ,vala) ;for VAPI, needed by Geary
  10110. ("xmllint" ,libxml2)
  10111. ;; For tests.
  10112. ("aspell-dict-en" ,aspell-dict-en)
  10113. ("xorg-server" ,xorg-server-for-tests)))
  10114. (propagated-inputs
  10115. ;; Referred by .pc file.
  10116. `(("enchant" ,enchant)
  10117. ("glib" ,glib)
  10118. ("gtk+" ,gtk+)))
  10119. (home-page "https://wiki.gnome.org/Projects/gspell")
  10120. (synopsis "GNOME's alternative spell checker")
  10121. (description
  10122. "gspell provides a flexible API to add spell-checking to a GTK+
  10123. application. It provides a GObject API, spell-checking to text entries and
  10124. text views, and buttons to choose the language.")
  10125. (license license:gpl2+)))
  10126. (define-public gnome-planner
  10127. (package
  10128. (name "gnome-planner")
  10129. (version "0.14.6")
  10130. (source (origin
  10131. (method url-fetch)
  10132. (uri (string-append "mirror://gnome/sources/planner/"
  10133. (version-major+minor version) "/planner-"
  10134. version ".tar.xz"))
  10135. (sha256
  10136. (base32
  10137. "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
  10138. (build-system glib-or-gtk-build-system)
  10139. (arguments
  10140. ;; Disable the Python bindings because the Planner program functions
  10141. ;; without them, and (as of 2017-06-13) we have not packaged all of
  10142. ;; packages that are necessary for building the Python bindings.
  10143. `(#:configure-flags
  10144. (list "--disable-python"
  10145. ,@(if (string=? "aarch64-linux" (%current-system))
  10146. '("--build=aarch64-unknown-linux-gnu")
  10147. '()))))
  10148. (inputs
  10149. `(("libgnomecanvas" ,libgnomecanvas)
  10150. ("libgnomeui" ,libgnomeui)
  10151. ("libglade" ,libglade)
  10152. ("gnome-vfs" ,gnome-vfs)
  10153. ("gconf" ,gconf)
  10154. ("libxml2" ,libxml2)
  10155. ("libxslt" ,libxslt)
  10156. ("gtk+" ,gtk+)
  10157. ("glib" ,glib)))
  10158. (native-inputs
  10159. `(("intltool" ,intltool)
  10160. ("scrollkeeper" ,scrollkeeper)
  10161. ("pkg-config" ,pkg-config)))
  10162. (home-page "https://wiki.gnome.org/Apps/Planner")
  10163. (synopsis "Project management software for the GNOME desktop")
  10164. (description
  10165. "GNOME Planner is a project management tool based on the Work Breakdown
  10166. Structure (WBS). Its goal is to enable you to easily plan projects. Based on
  10167. the resources, tasks, and constraints that you define, Planner generates
  10168. various views into a project. For example, Planner can show a Gantt chart of
  10169. the project. It can show a detailed summary of tasks including their
  10170. duration, cost, and current progress. It can also show a report of resource
  10171. utilization that highlights under-utilized and over-utilized resources. These
  10172. views can be printed as PDF or PostScript files, or exported to HTML.")
  10173. (license license:gpl2+)))
  10174. (define-public lollypop
  10175. (package
  10176. (name "lollypop")
  10177. (version "1.4.6")
  10178. (source
  10179. (origin
  10180. (method url-fetch)
  10181. (uri (string-append "https://adishatz.org/lollypop/"
  10182. "lollypop-" version ".tar.xz"))
  10183. (sha256
  10184. (base32 "1hlahr50gsagx1ifcdk4yn43xps6w0vqn0gnd6xckfc7qmg1pgq7"))))
  10185. (build-system meson-build-system)
  10186. (arguments
  10187. `(#:imported-modules
  10188. (,@%meson-build-system-modules
  10189. (guix build python-build-system))
  10190. #:modules
  10191. ((guix build meson-build-system)
  10192. ((guix build python-build-system) #:prefix python:)
  10193. (guix build utils))
  10194. #:glib-or-gtk? #t
  10195. #:tests? #f ; no test suite
  10196. #:phases
  10197. (modify-phases %standard-phases
  10198. (add-after 'install 'wrap-program
  10199. (lambda* (#:key outputs #:allow-other-keys)
  10200. (let ((out (assoc-ref outputs "out"))
  10201. (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
  10202. (wrap-program (string-append out "/bin/lollypop")
  10203. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
  10204. #t))
  10205. (add-after 'install 'wrap-python
  10206. (assoc-ref python:%standard-phases 'wrap)))))
  10207. (native-inputs
  10208. `(("intltool" ,intltool)
  10209. ("itstool" ,itstool)
  10210. ("glib:bin" ,glib "bin") ; For glib-compile-resources
  10211. ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
  10212. ("pkg-config" ,pkg-config)))
  10213. (inputs
  10214. `(("glib-networking" ,glib-networking)
  10215. ("gobject-introspection" ,gobject-introspection)
  10216. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  10217. ("gst-plugins-base" ,gst-plugins-base)
  10218. ("libnotify" ,libnotify)
  10219. ("libsecret" ,libsecret)
  10220. ("libhandy" ,libhandy)
  10221. ("libsoup" ,libsoup)
  10222. ("python" ,python)
  10223. ("python-beautifulsoup4" ,python-beautifulsoup4)
  10224. ("python-gst" ,python-gst)
  10225. ("python-pil" ,python-pillow)
  10226. ("python-pycairo" ,python-pycairo)
  10227. ("python-pygobject" ,python-pygobject)
  10228. ("python-pylast" ,python-pylast)
  10229. ("totem-pl-parser" ,totem-pl-parser)
  10230. ("webkitgtk" ,webkitgtk)))
  10231. (propagated-inputs
  10232. `(;; gst-plugins-base is required to start Lollypop,
  10233. ;; the others are required to play streaming.
  10234. ("gst-plugins-good" ,gst-plugins-good)
  10235. ("gst-plugins-ugly" ,gst-plugins-ugly)))
  10236. (home-page "https://wiki.gnome.org/Apps/Lollypop")
  10237. (synopsis "GNOME music playing application")
  10238. (description
  10239. "Lollypop is a music player designed to play well with GNOME desktop.
  10240. Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
  10241. from artists and tracks from the web. It also fetches cover artworks
  10242. automatically and it can stream songs from online music services and charts.")
  10243. (license license:gpl3+)))
  10244. (define-public gnome-video-effects
  10245. (package
  10246. (name "gnome-video-effects")
  10247. (version "0.5.0")
  10248. (source (origin
  10249. (method url-fetch)
  10250. (uri (string-append "mirror://gnome/sources/" name "/"
  10251. (version-major+minor version) "/" name "-"
  10252. version ".tar.xz"))
  10253. (sha256
  10254. (base32
  10255. "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
  10256. (build-system meson-build-system)
  10257. (native-inputs
  10258. `(("gettext" ,gettext-minimal)
  10259. ("pkg-config" ,pkg-config)))
  10260. (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
  10261. (synopsis "Video effects for Cheese and other GNOME applications")
  10262. (description
  10263. "A collection of GStreamer video filters and effects to be used in
  10264. photo-booth-like software, such as Cheese.")
  10265. (license license:gpl2+)))
  10266. (define-public cheese
  10267. (package
  10268. (name "cheese")
  10269. (version "3.38.0")
  10270. (source (origin
  10271. (method url-fetch)
  10272. (uri (string-append "mirror://gnome/sources/" name "/"
  10273. (version-major+minor version) "/" name "-"
  10274. version ".tar.xz"))
  10275. (sha256
  10276. (base32
  10277. "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8"))
  10278. (patches (search-patches "cheese-vala-update.patch"))))
  10279. (arguments
  10280. `(#:glib-or-gtk? #t
  10281. ;; Tests require GDK.
  10282. #:tests? #f
  10283. #:phases
  10284. (modify-phases %standard-phases
  10285. (add-after 'unpack 'skip-gtk-update-icon-cache
  10286. (lambda _
  10287. ;; Don't create 'icon-theme.cache'
  10288. (substitute* "meson_post_install.py"
  10289. (("gtk-update-icon-cache") (which "true")))
  10290. #t))
  10291. (add-after 'unpack 'patch-docbook-xml
  10292. (lambda* (#:key inputs #:allow-other-keys)
  10293. ;; Avoid a network connection attempt during the build.
  10294. (substitute* '("docs/reference/cheese.xml"
  10295. "docs/reference/cheese-docs.xml")
  10296. (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
  10297. (string-append (assoc-ref inputs "docbook-xml")
  10298. "/xml/dtd/docbook/docbookx.dtd")))
  10299. #t))
  10300. (add-after 'install 'wrap-cheese
  10301. (lambda* (#:key inputs outputs #:allow-other-keys)
  10302. (let ((out (assoc-ref outputs "out"))
  10303. (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
  10304. (wrap-program (string-append out "/bin/cheese")
  10305. `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
  10306. #t)))))
  10307. (build-system meson-build-system)
  10308. (native-inputs
  10309. `(("docbook-xsl" ,docbook-xsl)
  10310. ("docbook-xml" ,docbook-xml-4.3)
  10311. ("gettext" ,gettext-minimal)
  10312. ("glib:bin" ,glib "bin")
  10313. ("gtk-doc" ,gtk-doc/stable)
  10314. ("itstool" ,itstool)
  10315. ("libxml2" ,libxml2)
  10316. ("libxslt" ,libxslt)
  10317. ("pkg-config" ,pkg-config)
  10318. ("vala" ,vala)))
  10319. (propagated-inputs
  10320. `(("gnome-video-effects" ,gnome-video-effects)
  10321. ("clutter" ,clutter)
  10322. ("clutter-gst" ,clutter-gst)
  10323. ("clutter-gtk" ,clutter-gtk)
  10324. ("libcanberra" ,libcanberra)
  10325. ("gdk-pixbuf" ,gdk-pixbuf)
  10326. ("glib" ,glib)
  10327. ("gstreamer" ,gstreamer)))
  10328. (inputs
  10329. `(("gnome-desktop" ,gnome-desktop)
  10330. ("gobject-introspection" ,gobject-introspection)
  10331. ("gst-plugins-base" ,gst-plugins-base)
  10332. ("gst-plugins-good" ,gst-plugins-good)
  10333. ("gst-plugins-bad" ,gst-plugins-bad)
  10334. ("gtk+" ,gtk+)
  10335. ("libx11" ,libx11)
  10336. ("libxtst" ,libxtst)))
  10337. (home-page "https://wiki.gnome.org/Apps/Cheese")
  10338. (synopsis "Webcam photo booth software for GNOME")
  10339. (description
  10340. "Cheese uses your webcam to take photos and videos. Cheese can also
  10341. apply fancy special effects and lets you share the fun with others.")
  10342. (license license:gpl2+)))
  10343. (define-public passwordsafe
  10344. (package
  10345. (name "passwordsafe")
  10346. (version "5.0")
  10347. (source
  10348. (origin
  10349. (method git-fetch)
  10350. (uri (git-reference
  10351. (url "https://gitlab.gnome.org/World/PasswordSafe")
  10352. (commit version)))
  10353. (file-name (git-file-name name version))
  10354. (sha256
  10355. (base32 "1xh64bbg10gnfzlck5jvqy2zk6hbk9cyqgv85xc9kbdvs8n4lhgh"))))
  10356. (build-system meson-build-system)
  10357. (arguments
  10358. `(#:glib-or-gtk? #t
  10359. #:phases
  10360. (modify-phases %standard-phases
  10361. (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
  10362. (lambda* (#:key outputs #:allow-other-keys)
  10363. (let ((prog (string-append (assoc-ref outputs "out")
  10364. "/bin/gnome-passwordsafe"))
  10365. (pylib (string-append (assoc-ref outputs "out")
  10366. "/lib/python"
  10367. ,(version-major+minor
  10368. (package-version python))
  10369. "/site-packages")))
  10370. (wrap-program prog
  10371. `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
  10372. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
  10373. #t))))))
  10374. (native-inputs
  10375. `(("desktop-file-utils" ,desktop-file-utils)
  10376. ("gettext" ,gettext-minimal)
  10377. ("glib:bin" ,glib "bin")
  10378. ("gobject-introspection" ,gobject-introspection)
  10379. ("gtk+:bin" ,gtk+ "bin")
  10380. ("pkg-config" ,pkg-config)))
  10381. (inputs
  10382. `(("glib" ,glib)
  10383. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  10384. ("gtk+" ,gtk+)
  10385. ("libhandy" ,libhandy)
  10386. ("libpwquality" ,libpwquality)
  10387. ("python-pygobject" ,python-pygobject)
  10388. ("python-pykeepass" ,python-pykeepass)))
  10389. (home-page "https://gitlab.gnome.org/World/PasswordSafe")
  10390. (synopsis "Password manager for the GNOME desktop")
  10391. (description
  10392. "Password Safe is a password manager which makes use of the KeePass v4
  10393. format. It integrates perfectly with the GNOME desktop and provides an easy
  10394. and uncluttered interface for the management of password databases.")
  10395. (license license:gpl3+)))
  10396. (define-public sound-juicer
  10397. (package
  10398. (name "sound-juicer")
  10399. (version "3.24.0")
  10400. (source
  10401. (origin
  10402. (method url-fetch)
  10403. (uri (string-append "mirror://gnome/sources/" name "/"
  10404. (version-major+minor version) "/"
  10405. name "-" version ".tar.xz"))
  10406. (sha256
  10407. (base32
  10408. "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
  10409. (build-system glib-or-gtk-build-system)
  10410. (native-inputs
  10411. `(("desktop-file-utils" ,desktop-file-utils)
  10412. ("intltool" ,intltool)
  10413. ("itstool" ,itstool)
  10414. ("pkg-config" ,pkg-config)
  10415. ("xmllint" ,libxml2)))
  10416. (inputs
  10417. `(("gtk+" ,gtk+)
  10418. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  10419. ("gstreamer" ,gstreamer)
  10420. ("gst-plugins-base" ,gst-plugins-base)
  10421. ("gst-plugins-good" ,gst-plugins-good)
  10422. ("iso-codes" ,iso-codes)
  10423. ("libbrasero-media3" ,brasero)
  10424. ("libcanberra" ,libcanberra)
  10425. ("libdiscid" ,libdiscid)
  10426. ("libmusicbrainz" ,libmusicbrainz)
  10427. ("neon" ,neon)))
  10428. (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
  10429. (synopsis "Audio music cd ripper")
  10430. (description "Sound Juicer extracts audio from compact discs and convert it
  10431. into audio files that a personal computer or digital audio player can play.
  10432. It supports ripping to any audio codec supported by a GStreamer plugin, such as
  10433. mp3, Ogg Vorbis and FLAC")
  10434. (license license:gpl2+)))
  10435. (define-public soundconverter
  10436. (package
  10437. (name "soundconverter")
  10438. (version "3.0.2")
  10439. (source
  10440. (origin
  10441. (method url-fetch)
  10442. (uri (string-append "https://launchpad.net/soundconverter/trunk/"
  10443. version "/+download/"
  10444. "soundconverter-" version ".tar.xz"))
  10445. (sha256
  10446. (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
  10447. (build-system glib-or-gtk-build-system)
  10448. (arguments
  10449. `(#:imported-modules ((guix build python-build-system)
  10450. (guix build glib-or-gtk-build-system)
  10451. ,@%gnu-build-system-modules)
  10452. #:modules ((guix build glib-or-gtk-build-system)
  10453. (guix build utils)
  10454. ((guix build gnu-build-system) #:prefix gnu:)
  10455. ((guix build python-build-system) #:prefix python:))
  10456. #:phases
  10457. (modify-phases %standard-phases
  10458. (add-after 'install 'wrap-soundconverter-for-python
  10459. (assoc-ref python:%standard-phases 'wrap))
  10460. (add-after 'install 'wrap-soundconverter
  10461. (lambda* (#:key inputs outputs #:allow-other-keys)
  10462. (let ((out (assoc-ref outputs "out"))
  10463. (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
  10464. (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
  10465. (wrap-program (string-append out "/bin/soundconverter")
  10466. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
  10467. `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
  10468. #t)))))
  10469. (native-inputs
  10470. `(("intltool" ,intltool)
  10471. ("pkg-config" ,pkg-config)
  10472. ("glib:bin" ,glib "bin")))
  10473. (inputs
  10474. `(("gtk+" ,gtk+)
  10475. ("python" ,python)
  10476. ("python-pygobject" ,python-pygobject)
  10477. ("gstreamer" ,gstreamer)
  10478. ("gst-plugins-base" ,gst-plugins-base)))
  10479. (home-page "https://soundconverter.org/")
  10480. (synopsis "Convert between audio formats with a graphical interface")
  10481. (description
  10482. "SoundConverter supports converting between many audio formats including
  10483. Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
  10484. configurable file renaming. ")
  10485. (license license:gpl3)))
  10486. (define-public workrave
  10487. (package
  10488. (name "workrave")
  10489. (version "1.10.43")
  10490. (source
  10491. (origin
  10492. (method git-fetch)
  10493. (uri (git-reference
  10494. (url "https://github.com/rcaelers/workrave")
  10495. (commit (string-append "v" (string-map
  10496. (match-lambda (#\. #\_) (chr chr))
  10497. version)))))
  10498. (file-name (git-file-name name version))
  10499. (sha256
  10500. (base32 "1baa9qjzd4b3q1zy5vhvyrx0hyz17mk237373ca48647897kw4cr"))))
  10501. (build-system glib-or-gtk-build-system)
  10502. (arguments
  10503. ;; The only tests are maintainer tests (in po/), which fail.
  10504. `(#:tests? #f))
  10505. (inputs `(("glib" ,glib)
  10506. ("gtk+" ,gtk+)
  10507. ("gdk-pixbuf" ,gdk-pixbuf)
  10508. ("gtkmm" ,gtkmm-3)
  10509. ("glibmm" ,glibmm)
  10510. ("libx11" ,libx11)
  10511. ("libxtst" ,libxtst)
  10512. ("dconf" ,dconf)
  10513. ("libice" ,libice)
  10514. ("libsm" ,libsm)
  10515. ("libxscrnsaver" ,libxscrnsaver)))
  10516. (native-inputs `(("boost" ,boost)
  10517. ("pkg-config" ,pkg-config)
  10518. ("gettext" ,gettext-minimal)
  10519. ("autoconf" ,autoconf)
  10520. ("autoconf-archive" , autoconf-archive)
  10521. ("automake" ,automake)
  10522. ("libtool" ,libtool)
  10523. ("intltool" ,intltool)
  10524. ("gobject-introspection" ,gobject-introspection)
  10525. ("python3" ,python-3)
  10526. ("python-jinja2" ,python-jinja2)))
  10527. (synopsis "Tool to help prevent repetitive strain injury (RSI)")
  10528. (description
  10529. "Workrave is a program that assists in the recovery and prevention of
  10530. repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
  10531. micro-pauses and rest breaks, and restricts you to your daily limit.")
  10532. (home-page "http://www.workrave.org")
  10533. (license license:gpl3+)))
  10534. (define-public ghex
  10535. (package
  10536. (name "ghex")
  10537. (version "3.18.4")
  10538. (source (origin
  10539. (method url-fetch)
  10540. (uri (string-append "mirror://gnome/sources/ghex/"
  10541. (version-major+minor version) "/"
  10542. "ghex-" version ".tar.xz"))
  10543. (sha256
  10544. (base32
  10545. "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
  10546. (build-system meson-build-system)
  10547. (arguments
  10548. '(#:glib-or-gtk? #t
  10549. #:phases
  10550. (modify-phases %standard-phases
  10551. (add-after 'unpack 'skip-gtk-update-icon-cache
  10552. ;; Don't create 'icon-theme.cache'.
  10553. (lambda _
  10554. (substitute* "meson_post_install.py"
  10555. (("gtk-update-icon-cache") (which "true")))
  10556. #t)))))
  10557. (native-inputs
  10558. `(("pkg-config" ,pkg-config)
  10559. ("glib:bin" ,glib "bin") ; for glib-compile-schemas
  10560. ("gnome-common" ,gnome-common)
  10561. ("which" ,which)
  10562. ("intltool" ,intltool)
  10563. ("yelp-tools" ,yelp-tools)
  10564. ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
  10565. (inputs
  10566. `(("atk" ,atk)
  10567. ("gtk" ,gtk+)))
  10568. (synopsis "GNOME hexadecimal editor")
  10569. (description "The GHex program can view and edit files in two ways:
  10570. hexadecimal or ASCII. It is useful for editing binary files in general.")
  10571. (home-page "https://wiki.gnome.org/Apps/Ghex")
  10572. (license license:gpl2)))
  10573. (define-public libdazzle
  10574. (package
  10575. (name "libdazzle")
  10576. (version "3.37.1")
  10577. (source (origin
  10578. (method url-fetch)
  10579. (uri (string-append "mirror://gnome/sources/libdazzle/"
  10580. (version-major+minor version) "/"
  10581. "libdazzle-" version ".tar.xz"))
  10582. (sha256
  10583. (base32
  10584. "03r5cr11dc031qa3694bpgm3lajrhiiln67kvl7vjj4q0scf7w7x"))))
  10585. (build-system meson-build-system)
  10586. (arguments
  10587. `(#:phases
  10588. (modify-phases %standard-phases
  10589. (add-before 'check 'pre-check
  10590. (lambda _
  10591. ;; Tests require a running X server.
  10592. (system "Xvfb :1 &")
  10593. (setenv "DISPLAY" ":1")
  10594. #t)))))
  10595. (native-inputs
  10596. `(("glib" ,glib "bin") ; glib-compile-resources
  10597. ("pkg-config" ,pkg-config)
  10598. ;; For tests.
  10599. ("xorg-server" ,xorg-server-for-tests)))
  10600. (inputs
  10601. `(("glib" ,glib)
  10602. ("gobject-introspection" ,gobject-introspection)
  10603. ("gtk+" ,gtk+)
  10604. ("vala" ,vala)))
  10605. (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
  10606. (synopsis "Companion library to GObject and Gtk+")
  10607. (description "The libdazzle library is a companion library to GObject and
  10608. Gtk+. It provides various features that the authors wish were in the
  10609. underlying library but cannot for various reasons. In most cases, they are
  10610. wildly out of scope for those libraries. In other cases, they are not quite
  10611. generic enough to work for everyone.")
  10612. (license license:gpl3+)))
  10613. (define-public evolution
  10614. (package
  10615. (name "evolution")
  10616. (version "3.34.2")
  10617. (source (origin
  10618. (method url-fetch)
  10619. (uri (string-append "mirror://gnome/sources/evolution/"
  10620. (version-major+minor version) "/"
  10621. "evolution-" version ".tar.xz"))
  10622. (sha256
  10623. (base32
  10624. "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))
  10625. (patches (search-patches "evolution-CVE-2020-11879.patch"
  10626. "evolution-printableoptions.patch"))))
  10627. (build-system cmake-build-system)
  10628. (arguments
  10629. `(#:imported-modules (,@%cmake-build-system-modules
  10630. (guix build glib-or-gtk-build-system))
  10631. #:modules ((guix build cmake-build-system)
  10632. ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
  10633. (guix build utils))
  10634. #:configure-flags
  10635. (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
  10636. "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
  10637. ; in four years and cannot be built.
  10638. #:phases
  10639. (modify-phases %standard-phases
  10640. ;; The build system attempts to install user interface modules to the
  10641. ;; output directory of the "evolution-data-server" package. This
  10642. ;; change redirects that change.
  10643. (add-after 'unpack 'patch-ui-module-dir
  10644. (lambda* (#:key outputs #:allow-other-keys)
  10645. (substitute* "src/modules/alarm-notify/CMakeLists.txt"
  10646. (("\\$\\{edsuimoduledir\\}")
  10647. (string-append (assoc-ref outputs "out")
  10648. "/lib/evolution-data-server/ui-modules")))
  10649. #t))
  10650. (add-after 'install 'glib-or-gtk-compile-schemas
  10651. (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
  10652. (add-after 'install 'glib-or-gtk-wrap
  10653. (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
  10654. (native-inputs
  10655. `(("glib" ,glib "bin") ; glib-mkenums
  10656. ("pkg-config" ,pkg-config)
  10657. ("intltool" ,intltool)
  10658. ("itstool" ,itstool)))
  10659. (inputs
  10660. `(("enchant" ,enchant)
  10661. ("evolution-data-server" ,evolution-data-server) ; must be the same version
  10662. ("gcr" ,gcr)
  10663. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  10664. ("gnome-autoar" ,gnome-autoar)
  10665. ("gnome-desktop" ,gnome-desktop)
  10666. ("gspell" ,gspell)
  10667. ("highlight" ,highlight)
  10668. ("libcanberra" ,libcanberra)
  10669. ("libgweather" ,libgweather)
  10670. ("libnotify" ,libnotify)
  10671. ("libsoup" ,libsoup)
  10672. ("nss" ,nss)
  10673. ("openldap" ,openldap)
  10674. ("webkitgtk" ,webkitgtk)
  10675. ("ytnef" ,ytnef)))
  10676. (home-page "https://gitlab.gnome.org/GNOME/evolution")
  10677. (synopsis "Manage your email, contacts and schedule")
  10678. (description "Evolution is a personal information management application
  10679. that provides integrated mail, calendaring and address book
  10680. functionality.")
  10681. ;; See COPYING for details.
  10682. (license (list license:lgpl2.1 license:lgpl3 ; either one of these
  10683. license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
  10684. license:lgpl2.1+)))) ; smime/lib/*
  10685. (define-public gthumb
  10686. (package
  10687. (name "gthumb")
  10688. (version "3.10.3")
  10689. (source (origin
  10690. (method url-fetch)
  10691. (uri (string-append "mirror://gnome/sources/gthumb/"
  10692. (version-major+minor version) "/"
  10693. "gthumb-" version ".tar.xz"))
  10694. (sha256
  10695. (base32
  10696. "04n2sgasc03kiczyzkq362pjilj12hq2r5qj07lynqr9rivkzdys"))))
  10697. (build-system meson-build-system)
  10698. (arguments
  10699. `(#:glib-or-gtk? #t
  10700. #:configure-flags
  10701. ;; Ensure the RUNPATH contains all installed library locations.
  10702. (list (string-append "-Dc_link_args=-Wl,-rpath="
  10703. (assoc-ref %outputs "out")
  10704. "/lib/gthumb/extensions")
  10705. (string-append "-Dcpp_link_args=-Wl,-rpath="
  10706. (assoc-ref %outputs "out")
  10707. "/lib/gthumb/extensions"))))
  10708. (native-inputs
  10709. `(("pkg-config" ,pkg-config)
  10710. ("glib:bin" ,glib "bin") ; for glib-compile-resources
  10711. ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
  10712. ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
  10713. ("intltool" ,intltool)
  10714. ("itstool" ,itstool)))
  10715. (inputs
  10716. `(("exiv2" ,exiv2)
  10717. ("gtk" ,gtk+)
  10718. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  10719. ("gstreamer" ,gstreamer)
  10720. ("clutter" ,clutter)
  10721. ("clutter-gst" ,clutter-gst)
  10722. ("clutter-gtk" ,clutter-gtk)
  10723. ("libjpeg" ,libjpeg-turbo)
  10724. ("libtiff" ,libtiff)
  10725. ("libraw" ,libraw)))
  10726. (home-page "https://wiki.gnome.org/Apps/Gthumb")
  10727. (synopsis "GNOME image viewer and browser")
  10728. (description "GThumb is an image viewer, browser, organizer, editor and
  10729. advanced image management tool")
  10730. (license license:gpl2+)))
  10731. (define-public terminator
  10732. (package
  10733. (name "terminator")
  10734. (version "2.1.1")
  10735. (source
  10736. (origin
  10737. (method url-fetch)
  10738. (uri (string-append "https://github.com/gnome-terminator/terminator/"
  10739. "releases/download/v" version "/"
  10740. name "-" version ".tar.gz"))
  10741. (sha256
  10742. (base32 "0xdgmam7ghnxw6g38a4gjw3kk3rhga8c66lns18k928jlr9fmddw"))))
  10743. (build-system python-build-system)
  10744. (native-inputs
  10745. `(("gettext" ,gettext-minimal)
  10746. ("glib:bin" ,glib "bin") ; for glib-compile-resources
  10747. ("gobject-introspection" ,gobject-introspection)
  10748. ("intltool" ,intltool)
  10749. ("pkg-config" ,pkg-config)
  10750. ("python-psutil" ,python-psutil)
  10751. ("python-pytest-runner" ,python-pytest-runner)
  10752. ("python-pytest" ,python-pytest)))
  10753. (inputs
  10754. `(("cairo" ,cairo)
  10755. ("dbus-glib" ,dbus-glib)
  10756. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  10757. ("gtk+" ,gtk+)
  10758. ("python" ,python-wrapper)
  10759. ("python-dbus" ,python-dbus)
  10760. ("python-notify2" ,python-notify2)
  10761. ("python-pycairo" ,python-pycairo)
  10762. ("python-pygobject" ,python-pygobject)
  10763. ("vte" ,vte)))
  10764. (propagated-inputs
  10765. `(("python-configobj" ,python-configobj)))
  10766. (arguments
  10767. ;; One test out of 28 fails due to dbus-python and python-notify; skip
  10768. ;; tests.
  10769. `(#:tests? #f
  10770. #:imported-modules ((guix build glib-or-gtk-build-system)
  10771. ,@%python-build-system-modules)
  10772. #:modules ((guix build python-build-system)
  10773. ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
  10774. (guix build utils))
  10775. #:phases
  10776. (modify-phases %standard-phases
  10777. (add-after 'unpack 'handle-dbus-python
  10778. (lambda _
  10779. ;; python-dbus cannot be found but it's really there. See
  10780. ;; https://github.com/SpotlightKid/jack-select/issues/2
  10781. (substitute* "setup.py"
  10782. (("'dbus-python',") ""))
  10783. #t))
  10784. (add-after 'install 'wrap-program
  10785. (lambda* (#:key outputs #:allow-other-keys)
  10786. (let ((prog (string-append (assoc-ref outputs "out")
  10787. "/bin/terminator"))
  10788. (pylib (string-append (assoc-ref outputs "out")
  10789. "/lib/python"
  10790. ,(version-major+minor
  10791. (package-version python))
  10792. "/site-packages")))
  10793. (wrap-program prog
  10794. `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
  10795. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
  10796. #t)))
  10797. (add-after 'wrap-program 'glib-or-gtk-wrap
  10798. (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
  10799. (home-page "https://gnome-terminator.org/")
  10800. (synopsis "Store and run multiple GNOME terminals in one window")
  10801. (description
  10802. "Terminator allows you to run multiple GNOME terminals in a grid and
  10803. tabs, and it supports drag and drop re-ordering of terminals.")
  10804. (license license:gpl2)))
  10805. (define-public libhandy
  10806. (package
  10807. (name "libhandy")
  10808. (version "1.2.3")
  10809. (source
  10810. (origin
  10811. (method git-fetch)
  10812. (uri (git-reference
  10813. (url "https://gitlab.gnome.org/GNOME/libhandy")
  10814. (commit version)))
  10815. (file-name (git-file-name name version))
  10816. (sha256
  10817. (base32 "1ng2607cp4dfl169rj7zi8q5p6fzxy3a4l0glm7mj75yd1a603rz"))))
  10818. (build-system meson-build-system)
  10819. (arguments
  10820. `(#:configure-flags
  10821. '("-Dglade_catalog=enabled"
  10822. ;; XXX: Generating the documentation fails because the
  10823. ;; libhandy.devhelp2 document cannot be created. This seems to be
  10824. ;; caused by a problem during the XSL transformation.
  10825. "-Dgtk_doc=false")
  10826. #:phases
  10827. (modify-phases %standard-phases
  10828. (add-after 'unpack 'patch-docbook-xml
  10829. (lambda* (#:key inputs #:allow-other-keys)
  10830. (for-each
  10831. (lambda (file)
  10832. (substitute* file
  10833. (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
  10834. (search-input-file inputs
  10835. "/xml/dtd/docbook/docbookx.dtd"))))
  10836. (find-files "doc" "\\.xml"))))
  10837. (add-before 'check 'pre-check
  10838. (lambda _
  10839. ;; Tests require a running X server.
  10840. (system "Xvfb :1 &")
  10841. (setenv "DISPLAY" ":1")
  10842. #t)))))
  10843. (inputs
  10844. `(("gtk+" ,gtk+)
  10845. ("glade" ,glade3)))
  10846. (native-inputs
  10847. `(("glib:bin" ,glib "bin")
  10848. ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
  10849. ("vala" ,vala)
  10850. ("libxml2" ,libxml2)
  10851. ("libxslt" ,libxslt)
  10852. ("docbook-xsl" ,docbook-xsl)
  10853. ("docbook-xml" ,docbook-xml-4.3)
  10854. ("gtk-doc" ,gtk-doc/stable)
  10855. ("pkg-config" ,pkg-config)
  10856. ("gettext" ,gettext-minimal)
  10857. ;; Test suite dependencies.
  10858. ("xorg-server" ,xorg-server-for-tests)
  10859. ("hicolor-icon-theme" ,hicolor-icon-theme)))
  10860. (home-page "https://gitlab.gnome.org/GNOME/libhandy/")
  10861. (synopsis "Library full of GTK+ widgets for mobile phones")
  10862. (description "The aim of the handy library is to help with developing user
  10863. interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
  10864. for usage on small and big screens.")
  10865. (license license:lgpl2.1+)))
  10866. (define-public libhandy-0.0
  10867. (package
  10868. (inherit libhandy)
  10869. (version "0.0.13")
  10870. (source
  10871. (origin
  10872. (method git-fetch)
  10873. (uri (git-reference
  10874. (url "https://gitlab.gnome.org/GNOME/libhandy")
  10875. (commit (string-append "v" version))))
  10876. (file-name (git-file-name "libhandy" version))
  10877. (sha256
  10878. (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
  10879. (arguments
  10880. (substitute-keyword-arguments (package-arguments libhandy)
  10881. ((#:configure-flags flags)
  10882. '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
  10883. (define-public libgit2-glib
  10884. (package
  10885. (name "libgit2-glib")
  10886. (version "0.99.0.1")
  10887. (source (origin
  10888. (method url-fetch)
  10889. (uri (string-append "mirror://gnome/sources/" name "/"
  10890. (version-major+minor version) "/"
  10891. name "-" version ".tar.xz"))
  10892. (sha256
  10893. (base32
  10894. "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
  10895. (build-system meson-build-system)
  10896. (native-inputs
  10897. `(("glib:bin" ,glib "bin") ;; For glib-mkenums
  10898. ("gobject-introspection" ,gobject-introspection)
  10899. ("pkg-config" ,pkg-config)
  10900. ("python-pygobject" ,python-pygobject)
  10901. ("python-wrapper" ,python-wrapper)
  10902. ("vala" ,vala)))
  10903. (inputs
  10904. `(("glib" ,glib)
  10905. ("libssh2" ,libssh2)))
  10906. (propagated-inputs
  10907. `(;; In Requires of libgit2-glib.pc.
  10908. ("libgit2" ,libgit2)))
  10909. (synopsis "GLib wrapper around the libgit2 Git access library")
  10910. (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
  10911. access library. It only implements the core plumbing functions, not really the
  10912. higher level porcelain stuff.")
  10913. (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
  10914. (license license:gpl2+)))
  10915. (define-public gitg
  10916. (package
  10917. (name "gitg")
  10918. (version "3.32.1")
  10919. (source (origin
  10920. (method url-fetch)
  10921. (uri (string-append "mirror://gnome/sources/" name "/"
  10922. (version-major+minor version) "/"
  10923. name "-" version ".tar.xz"))
  10924. (sha256
  10925. (base32
  10926. "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
  10927. (build-system meson-build-system)
  10928. (arguments
  10929. `(#:glib-or-gtk? #t
  10930. #:phases
  10931. (modify-phases %standard-phases
  10932. (add-after 'unpack 'disable-post-install-partially
  10933. (lambda _
  10934. (substitute* "meson_post_install.py"
  10935. (("'python'") ; there are no python sources to compile
  10936. (string-append "'" (which "true") "'"))
  10937. (("gtk-update-icon-cache") (which "true")))
  10938. #t))
  10939. (add-after 'unpack 'fix-test-sources
  10940. (lambda _
  10941. (substitute* "tests/libgitg/test-commit.vala"
  10942. (("/bin/bash") (which "bash")))
  10943. #t))
  10944. (add-after 'glib-or-gtk-wrap 'wrap-typelib
  10945. (lambda* (#:key outputs #:allow-other-keys)
  10946. (let ((prog (string-append (assoc-ref outputs "out")
  10947. "/bin/gitg")))
  10948. (wrap-program prog
  10949. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
  10950. #t))))))
  10951. (inputs
  10952. `(("glib" ,glib)
  10953. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  10954. ("gtk+" ,gtk+)
  10955. ("gtkspell3" ,gtkspell3)
  10956. ("gtksourceview" ,gtksourceview-3)
  10957. ("json-glib" ,json-glib)
  10958. ("libdazzle" ,libdazzle)
  10959. ("libgee" ,libgee)
  10960. ("libgit2-glib" ,libgit2-glib)
  10961. ("libpeas" ,libpeas)
  10962. ("libsecret" ,libsecret)
  10963. ("libsoup" ,libsoup)
  10964. ("libxml2" ,libxml2)))
  10965. (native-inputs
  10966. `(("glib:bin" ,glib "bin")
  10967. ("gtk+:bin" ,gtk+ "bin")
  10968. ("gobject-introspection" ,gobject-introspection)
  10969. ("intltool" ,intltool)
  10970. ("pkg-config" ,pkg-config)
  10971. ("vala" ,vala)))
  10972. (synopsis "Graphical user interface for git")
  10973. (description
  10974. "gitg is a graphical user interface for git. It aims at being a small,
  10975. fast and convenient tool to visualize the history of git repositories.
  10976. Besides visualization, gitg also provides several utilities to manage your
  10977. repository and commit your work.")
  10978. (home-page "https://wiki.gnome.org/Apps/Gitg")
  10979. (license license:gpl2+)))
  10980. (define-public gamin
  10981. (package
  10982. (name "gamin")
  10983. (version "0.1.10")
  10984. (source (origin
  10985. (method url-fetch)
  10986. (uri (string-append "mirror://gnome/sources/" name "/"
  10987. (version-major+minor version) "/"
  10988. name "-" version ".tar.bz2"))
  10989. (sha256
  10990. (base32
  10991. "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
  10992. (build-system gnu-build-system)
  10993. (arguments
  10994. `(#:phases
  10995. (modify-phases %standard-phases
  10996. ;; The 'config.sub' is too old to recognise aarch64.
  10997. ,@(if (and=> (%current-target-system) target-aarch64?)
  10998. `((add-after 'unpack 'replace-config.sub
  10999. (lambda _
  11000. (delete-file "config.sub")
  11001. (symlink (which "config.sub") "config.sub"))))
  11002. '())
  11003. (add-after 'unpack 'remove-deprecated-macro
  11004. (lambda _
  11005. (substitute* '("server/gam_node.c"
  11006. "server/gam_subscription.h"
  11007. "server/gam_node.h"
  11008. "server/gam_subscription.c")
  11009. (("G_CONST_RETURN") "const"))
  11010. #t))
  11011. ;; The configure script runs a test program unconditionally,
  11012. ;; without an option to manually set the test result.
  11013. ;; Override this test anyway.
  11014. ,@(if (%current-target-system)
  11015. `((add-after 'bootstrap 'set-have-abstract-sockets
  11016. (lambda _
  11017. (define in-abstract-sockets-test? #f)
  11018. (substitute* "configure"
  11019. (("^#### Abstract sockets\n$")
  11020. (set! in-abstract-sockets-test? #t)
  11021. "#### Abstract sockets\n")
  11022. (("^have_abstract_sockets=no\n$")
  11023. (set! in-abstract-sockets-test? #f)
  11024. ;; ‘Abstract sockets’ appear to be Linux-only.
  11025. (string-append "have_abstract_sockets="
  11026. ,(if (target-linux?)
  11027. "yes"
  11028. "no")
  11029. "\nif false; then\nif false; then :\n"))
  11030. (("^(.*\n)$" line)
  11031. (if in-abstract-sockets-test?
  11032. "" ; delete
  11033. line))))))
  11034. '()))))
  11035. (inputs
  11036. `(("glib" ,glib)))
  11037. (native-inputs
  11038. `(("pkg-config" ,pkg-config)
  11039. ,@(if (and=> (%current-target-system) target-aarch64?)
  11040. `(("config" ,config))
  11041. '())))
  11042. (home-page "https://people.gnome.org/~veillard/gamin/")
  11043. (synopsis "File alteration monitor")
  11044. (description
  11045. "Gamin is a file and directory monitoring system defined to be a subset
  11046. of the FAM (File Alteration Monitor) system. This is a service provided by a
  11047. library which detects when a file or a directory has been modified.")
  11048. (license license:gpl2+)))
  11049. (define-public gnome-mahjongg
  11050. (package
  11051. (name "gnome-mahjongg")
  11052. (version "3.35.1")
  11053. (source (origin
  11054. (method git-fetch)
  11055. (uri (git-reference
  11056. (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
  11057. (commit version)))
  11058. (file-name (git-file-name name version))
  11059. (sha256
  11060. (base32
  11061. "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
  11062. (build-system meson-build-system)
  11063. (arguments
  11064. `(#:glib-or-gtk? #t))
  11065. (native-inputs
  11066. `(("appstream-glib" ,appstream-glib)
  11067. ("gettext" ,gettext-minimal)
  11068. ("glib:bin" ,glib "bin") ;; For glib-compile-resources
  11069. ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
  11070. ("itstool" ,itstool)
  11071. ("pkg-config" ,pkg-config)
  11072. ("vala" ,vala)))
  11073. (propagated-inputs
  11074. `(("dconf" ,dconf)))
  11075. (inputs
  11076. `(("glib" ,glib)
  11077. ("gtk+" ,gtk+)
  11078. ("librsvg" ,librsvg)))
  11079. (synopsis "Mahjongg tile-matching game")
  11080. (description "GNOME Mahjongg is a game based on the classic Chinese
  11081. tile-matching game Mahjong. It features multiple board layouts, tile themes,
  11082. and a high score table.")
  11083. (home-page "https://wiki.gnome.org/Apps/Mahjongg")
  11084. (license license:gpl2+)))
  11085. (define-public gnome-themes-extra
  11086. (package
  11087. (name "gnome-themes-extra")
  11088. (version "3.28")
  11089. (source
  11090. (origin
  11091. (method url-fetch)
  11092. (uri (string-append "mirror://gnome/sources/" name "/"
  11093. (version-major+minor version) "/" name "-"
  11094. version ".tar.xz"))
  11095. (sha256
  11096. (base32
  11097. "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
  11098. (build-system gnu-build-system)
  11099. (arguments
  11100. '(#:configure-flags
  11101. ;; Don't create 'icon-theme.cache'.
  11102. (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
  11103. (true (string-append coreutils "/bin/true")))
  11104. (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
  11105. (native-inputs
  11106. `(("glib:bin" ,glib "bin")
  11107. ("intltool" ,intltool)
  11108. ("pkg-config" ,pkg-config)))
  11109. (inputs
  11110. `(("glib" ,glib)
  11111. ("gtk+" ,gtk+)
  11112. ("gtk+-2" ,gtk+-2)
  11113. ("librsvg" ,librsvg)
  11114. ("libxml2" ,libxml2)))
  11115. (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
  11116. (synopsis "GNOME Extra Themes")
  11117. (description "This package provides themes and related elements that don't
  11118. really fit in other upstream packages. It offers legacy support for GTK+ 2
  11119. versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
  11120. index files needed for Adwaita to be used outside of GNOME.")
  11121. (license license:lgpl2.1+)))
  11122. (define-public gnote
  11123. (package
  11124. (name "gnote")
  11125. (version "40.2")
  11126. (source
  11127. (origin
  11128. (method url-fetch)
  11129. (uri (string-append "mirror://gnome/sources/" name "/"
  11130. (version-major version) "/"
  11131. "gnote-" version ".tar.xz"))
  11132. (sha256
  11133. (base32 "01fqdfgcl32cf40jw9q0h7f5bghl1lvf89vln1lh41ncrk0iw6vy"))))
  11134. (build-system glib-or-gtk-build-system)
  11135. (native-inputs
  11136. `(("desktop-file-utils" ,desktop-file-utils)
  11137. ("glib:bin" ,glib "bin")
  11138. ("gobject-introspection" ,gobject-introspection)
  11139. ("intltool" ,intltool)
  11140. ("itstool" ,itstool)
  11141. ("pkg-config" ,pkg-config)
  11142. ("unittest-cpp" ,unittest-cpp))) ;FIXME: not found by pkg-config
  11143. (inputs
  11144. `(("glibmm" ,glibmm)
  11145. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  11146. ("gspell" ,gspell)
  11147. ("gtk+" ,gtk+)
  11148. ("gtkmm" ,gtkmm-3)
  11149. ("libsecret" ,libsecret)
  11150. ("libuuid" ,util-linux "lib")
  11151. ("libxml2" ,libxml2)
  11152. ("libxslt" ,libxslt)))
  11153. (synopsis "Note-taking application for the GNOME desktop")
  11154. (description
  11155. "Gnote is a note-taking application written for the GNOME desktop
  11156. environment.")
  11157. (home-page "https://wiki.gnome.org/Apps/Gnote")
  11158. (license license:gpl3+)))
  11159. (define-public polari
  11160. (package
  11161. (name "polari")
  11162. (version "3.36.3")
  11163. (source (origin
  11164. (method url-fetch)
  11165. (uri (string-append "mirror://gnome/sources/polari/"
  11166. (version-major+minor version)
  11167. "/polari-" version ".tar.xz"))
  11168. (sha256
  11169. (base32
  11170. "0fpmrvhd40yay051bzn4x3gsrzdv42nav0pm5ps0np8wk1z689jg"))))
  11171. (build-system meson-build-system)
  11172. (arguments
  11173. `(#:glib-or-gtk? #t
  11174. #:phases
  11175. (modify-phases %standard-phases
  11176. (add-after 'unpack 'skip-gtk-update-icon-cache
  11177. (lambda _
  11178. (substitute* "meson/meson-postinstall.sh"
  11179. (("gtk-update-icon-cache") (which "true")))
  11180. #t))
  11181. (add-after 'glib-or-gtk-wrap 'wrap-typelib
  11182. (lambda* (#:key outputs #:allow-other-keys)
  11183. (let ((prog (string-append (assoc-ref outputs "out")
  11184. "/bin/polari")))
  11185. (wrap-program prog
  11186. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
  11187. #t))))))
  11188. (inputs
  11189. `(("glib" ,glib)
  11190. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  11191. ("gspell" ,gspell)
  11192. ("gtk+" ,gtk+)
  11193. ("gjs" ,gjs)
  11194. ("libsecret" ,libsecret)
  11195. ("libsoup" ,libsoup)
  11196. ("telepathy-glib" ,telepathy-glib)
  11197. ("telepathy-logger" ,telepathy-logger)))
  11198. (native-inputs
  11199. `(("glib:bin" ,glib "bin")
  11200. ("gobject-introspection" ,gobject-introspection)
  11201. ("intltool" ,intltool)
  11202. ("pkg-config" ,pkg-config)
  11203. ("yelp-tools" ,yelp-tools)))
  11204. (propagated-inputs
  11205. `(("telepathy-idle" ,telepathy-idle)
  11206. ("telepathy-mission-control" ,telepathy-mission-control)))
  11207. (synopsis "Simple IRC Client")
  11208. (description
  11209. "Polari is a simple Internet Relay Chat (IRC) client that is designed to
  11210. integrate seamlessly with the GNOME desktop.")
  11211. (home-page "https://wiki.gnome.org/Apps/Polari")
  11212. (license license:gpl2+)))
  11213. (define-public gnome-boxes
  11214. (package
  11215. (name "gnome-boxes")
  11216. (version "40.3")
  11217. (source
  11218. (origin
  11219. (method url-fetch)
  11220. (uri (string-append "mirror://gnome/sources/gnome-boxes/"
  11221. (version-major version) "/"
  11222. "gnome-boxes-" version ".tar.xz"))
  11223. (sha256
  11224. (base32 "0n20yzxsc7mv73a905djvsas76vknfn67ad1n0rnvgm48n7qxw7z"))))
  11225. (build-system meson-build-system)
  11226. (arguments
  11227. '(#:glib-or-gtk? #t
  11228. #:configure-flags (list "-Drdp=false"
  11229. (string-append "-Dc_link_args=-Wl,-rpath="
  11230. (assoc-ref %outputs "out")
  11231. "/lib/gnome-boxes"))))
  11232. (native-inputs
  11233. `(("glib:bin" ,glib "bin") ; for glib-compile-resources
  11234. ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
  11235. ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
  11236. ("itstool" ,itstool)
  11237. ("intltool" ,intltool)
  11238. ("vala" ,vala)
  11239. ("pkg-config" ,pkg-config)))
  11240. (inputs
  11241. `(("libarchive" ,libarchive)
  11242. ("glib-networking" ,glib-networking) ;for TLS support
  11243. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  11244. ("gtk" ,gtk+)
  11245. ("gtk-vnc" ,gtk-vnc)
  11246. ("gtksourceview" ,gtksourceview)
  11247. ("json-glib" ,json-glib)
  11248. ("libosinfo" ,libosinfo)
  11249. ("libsecret" ,libsecret)
  11250. ("libsoup" ,libsoup)
  11251. ("libusb" ,libusb)
  11252. ("libvirt" ,libvirt)
  11253. ("libvirt-glib" ,libvirt-glib)
  11254. ("libxml" ,libxml2)
  11255. ("spice-gtk" ,spice-gtk)
  11256. ("sparql-query" ,sparql-query)
  11257. ("vte" ,vte)
  11258. ("webkitgtk" ,webkitgtk)
  11259. ("tracker" ,tracker)
  11260. ("libgudev" ,libgudev)))
  11261. (home-page "https://wiki.gnome.org/Apps/Boxes")
  11262. (synopsis "View, access, and manage remote and virtual systems")
  11263. (description "GNOME Boxes is a simple application to view, access, and
  11264. manage remote and virtual systems. Note that this application requires the
  11265. @code{libvirt} and @code{virtlog} daemons to run. Use the command
  11266. @command{info '(guix) Virtualization Services'} to learn how to configure
  11267. these services on the Guix System.")
  11268. (license (list
  11269. ;; For data/icons/empty-boxes.png.
  11270. license:cc-by2.0
  11271. ;; For all others.
  11272. license:lgpl2.0+))))
  11273. (define-public geary
  11274. (package
  11275. (name "geary")
  11276. (version "3.34.1")
  11277. (source (origin
  11278. (method git-fetch)
  11279. (uri (git-reference
  11280. (url "https://gitlab.gnome.org/GNOME/geary")
  11281. (commit version)))
  11282. (file-name (git-file-name name version))
  11283. (sha256
  11284. (base32
  11285. "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))
  11286. (patches (search-patches "geary-CVE-2020-24661.patch"))))
  11287. (build-system meson-build-system)
  11288. (arguments
  11289. `(#:glib-or-gtk? #t
  11290. #:phases (modify-phases %standard-phases
  11291. (add-after 'unpack 'disable-failing-tests
  11292. (lambda _
  11293. (substitute* "test/meson.build"
  11294. (("test\\('client-tests', geary_test_client_bin\\)")
  11295. ""))
  11296. #t))
  11297. (add-after 'unpack 'disable-postinstall-script
  11298. (lambda _
  11299. (substitute* "meson.build"
  11300. (("meson.add_install_script\\(\
  11301. join_paths\\('build-aux', 'post_install.py'\\)\\)")
  11302. ""))
  11303. #t))
  11304. (add-before 'check 'setup-xvfb
  11305. (lambda _
  11306. (system "Xvfb :1 &")
  11307. (setenv "DISPLAY" ":1")
  11308. #t)))))
  11309. (inputs
  11310. `(("enchant" ,enchant)
  11311. ("folks" ,folks)
  11312. ("gcr" ,gcr)
  11313. ("glib" ,glib)
  11314. ("gmime" ,gmime-2.6)
  11315. ("gnome-online-accounts:lib"
  11316. ,gnome-online-accounts "lib")
  11317. ("gspell" ,gspell)
  11318. ("gtk+" ,gtk+)
  11319. ("iso-codes" ,iso-codes)
  11320. ("json-glib" ,json-glib)
  11321. ("libcanberra" ,libcanberra)
  11322. ("libgee" ,libgee)
  11323. ("libhandy" ,libhandy-0.0)
  11324. ("libpeas" ,libpeas)
  11325. ("libsecret" ,libsecret)
  11326. ("libunwind" ,libunwind)
  11327. ("sqlite" ,sqlite)
  11328. ("webkitgtk" ,webkitgtk)
  11329. ("ytnef" ,ytnef)))
  11330. (native-inputs
  11331. `(("appstream-glib" ,appstream-glib)
  11332. ("cmake-minimal" ,cmake-minimal)
  11333. ("desktop-file-utils" ,desktop-file-utils)
  11334. ("gettext" ,gettext-minimal)
  11335. ("glib:bin" ,glib "bin")
  11336. ("gobject-introspection" ,gobject-introspection)
  11337. ("itstool" ,itstool)
  11338. ("libarchive" ,libarchive)
  11339. ("libxml2" ,libxml2)
  11340. ("pkg-config" ,pkg-config)
  11341. ("vala" ,vala)
  11342. ("xvfb" ,xorg-server-for-tests)))
  11343. (synopsis "GNOME email application built around conversations")
  11344. (description
  11345. "Geary collects related messages together into conversations,
  11346. making it easy to find and follow your discussions. Full-text and keyword
  11347. search makes it easy to find the email you are looking for. Geary's
  11348. full-featured composer lets you send rich, styled text with images, links, and
  11349. lists, but also send lightweight, easy to read text messages. Geary
  11350. automatically picks up your existing GNOME Online Accounts, and adding more is
  11351. easy. Geary has a clean, fast, modern interface that works like you want it
  11352. to.")
  11353. (home-page "https://wiki.gnome.org/Apps/Geary")
  11354. (license (list
  11355. ;; geary
  11356. license:lgpl2.1+
  11357. ;; icons
  11358. license:cc-by3.0
  11359. license:cc-by-sa3.0
  11360. license:public-domain
  11361. ;; snowball
  11362. license:bsd-2))))
  11363. (define-public glabels
  11364. (package
  11365. (name "glabels")
  11366. (version "3.4.1")
  11367. (source
  11368. (origin
  11369. (method url-fetch)
  11370. (uri (string-append "mirror://gnome/sources/" name "/"
  11371. (version-major+minor version) "/"
  11372. "glabels-" version ".tar.xz"))
  11373. (sha256
  11374. (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
  11375. (build-system glib-or-gtk-build-system)
  11376. (native-inputs
  11377. `(("gettext" ,gettext-minimal)
  11378. ("glib:bin" ,glib "bin")
  11379. ("intltool" ,intltool)
  11380. ("itstool" ,itstool)
  11381. ("pkg-config" ,pkg-config)))
  11382. (inputs
  11383. `(("gtk+" ,gtk+)
  11384. ("librsvg" ,librsvg)
  11385. ("libxml2" ,libxml2)))
  11386. (arguments
  11387. `(#:configure-flags '("CFLAGS=-fcommon")))
  11388. (home-page "https://glabels.org/")
  11389. (synopsis "Program for creating labels and business cards")
  11390. (description
  11391. "gLabels is a program for creating labels and business cards. It is
  11392. designed to work with various laser/ink-jet peel-off label and business
  11393. card sheets that you’ll find at most office supply stores.")
  11394. (license license:gpl3+)))
  11395. (define-public gnome-latex
  11396. (package
  11397. (name "gnome-latex")
  11398. (version "3.38.0")
  11399. (source
  11400. (origin
  11401. (method url-fetch)
  11402. (uri (string-append "mirror://gnome/sources/" name "/"
  11403. (version-major+minor version) "/"
  11404. "gnome-latex-" version ".tar.xz"))
  11405. (sha256
  11406. (base32 "0xqd49pgi82dygqnxj08i1v22b0vwwhx3zvdinhrx4jny339yam8"))))
  11407. (build-system glib-or-gtk-build-system)
  11408. (native-inputs
  11409. `(("gettext" ,gettext-minimal)
  11410. ("glib:bin" ,glib "bin")
  11411. ("gobject-introspection" ,gobject-introspection)
  11412. ("gtk-doc" ,gtk-doc/stable)
  11413. ("intltool" ,intltool)
  11414. ("itstool" ,itstool)
  11415. ("pkg-config" ,pkg-config)
  11416. ("vala" ,vala)))
  11417. (inputs
  11418. `(("amtk" ,amtk)
  11419. ("dconf" ,dconf)
  11420. ("glib" ,glib)
  11421. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  11422. ("gspell" ,gspell)
  11423. ("gtk+" ,gtk+)
  11424. ("gtksourceview" ,gtksourceview)
  11425. ("libgee" ,libgee)
  11426. ("tepl" ,tepl-5)
  11427. ("uchardet" ,uchardet)))
  11428. (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
  11429. (synopsis "LaTeX editor for the GNOME desktop")
  11430. (description
  11431. "GNOME LaTeX is a LaTeX editor for the GNOME desktop. It has features
  11432. such as build tools, completion of LaTeX commands, structure navigation,
  11433. symbol tables, document templates, project management, spell-checking, menus
  11434. and toolbars.")
  11435. (license license:gpl3+)))
  11436. (define-public setzer
  11437. (package
  11438. (name "setzer")
  11439. (version "0.4.1")
  11440. (source
  11441. (origin
  11442. (method git-fetch)
  11443. (uri (git-reference
  11444. (url "https://github.com/cvfosammmm/Setzer")
  11445. (commit (string-append "v" version))))
  11446. (file-name (git-file-name name version))
  11447. (sha256
  11448. (base32 "1rcx2c07jg1ij81pnvg3px49hfbjmkagn68d3gp79z3gcajbp2av"))))
  11449. (build-system meson-build-system)
  11450. (arguments
  11451. `(#:glib-or-gtk? #t
  11452. #:phases
  11453. (modify-phases %standard-phases
  11454. (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
  11455. (lambda* (#:key outputs #:allow-other-keys)
  11456. (let ((prog (string-append (assoc-ref outputs "out")
  11457. "/bin/setzer"))
  11458. (pylib (string-append (assoc-ref outputs "out")
  11459. "/lib/python"
  11460. ,(version-major+minor
  11461. (package-version python))
  11462. "/site-packages")))
  11463. (wrap-program prog
  11464. `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
  11465. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
  11466. #t))))))
  11467. (native-inputs
  11468. `(("desktop-file-utils" ,desktop-file-utils)
  11469. ("gettext" ,gettext-minimal)
  11470. ("glib:bin" ,glib "bin")
  11471. ("gobject-introspection" ,gobject-introspection)
  11472. ("gtk+:bin" ,gtk+ "bin")))
  11473. (inputs
  11474. `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  11475. ("gspell" ,gspell)
  11476. ("gtk+" ,gtk+)
  11477. ("gtksourceview" ,gtksourceview)
  11478. ("pango" ,pango)
  11479. ("poppler" ,poppler)
  11480. ("python-pdfminer" ,python-pdfminer-six)
  11481. ("python-pycairo" ,python-pycairo)
  11482. ("python-pygobject" ,python-pygobject)
  11483. ("python-pyxdg" ,python-pyxdg)
  11484. ("webkitgtk" ,webkitgtk)
  11485. ("xdg-utils" ,xdg-utils)))
  11486. (home-page "https://www.cvfosammmm.org/setzer/")
  11487. (synopsis "LaTeX editor written in Python with GTK+")
  11488. (description
  11489. "Setzer is a simple yet full-featured LaTeX editor written in Python with
  11490. GTK+. It integrates well with the GNOME desktop environment.")
  11491. (license license:gpl3+)))
  11492. (define-public apostrophe
  11493. (package
  11494. (name "apostrophe")
  11495. (version "2.4")
  11496. (source (origin
  11497. (method git-fetch)
  11498. (uri (git-reference
  11499. (url "https://gitlab.gnome.org/somas/apostrophe")
  11500. (commit (string-append "v" version))))
  11501. (file-name (git-file-name name version))
  11502. (sha256
  11503. (base32
  11504. "1qzy3zhi18wf42m034s8kcmx9gl05j620x3hf6rnycq2fvy7g4gz"))))
  11505. (build-system meson-build-system)
  11506. (arguments
  11507. `(#:glib-or-gtk? #t
  11508. #:phases
  11509. (modify-phases %standard-phases
  11510. (add-after 'unpack 'patch-meson
  11511. (lambda _
  11512. (substitute* "build-aux/meson_post_install.py"
  11513. (("gtk-update-icon-cache") "true"))
  11514. #t))
  11515. (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
  11516. (lambda* (#:key inputs outputs #:allow-other-keys)
  11517. (let ((prog (string-append (assoc-ref outputs "out")
  11518. "/bin/apostrophe"))
  11519. (pylib (string-append (assoc-ref outputs "out")
  11520. "/lib/python"
  11521. ,(version-major+minor
  11522. (package-version python))
  11523. "/site-packages")))
  11524. (wrap-program prog
  11525. `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
  11526. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
  11527. `("PATH" prefix (,(dirname
  11528. (search-input-file inputs
  11529. "/bin/pandoc")))))))))))
  11530. (inputs
  11531. `(("glib" ,glib)
  11532. ("gobject-introspection" ,gobject-introspection)
  11533. ("gspell" ,gspell)
  11534. ("gtk+" ,gtk+)
  11535. ("libhandy" ,libhandy)
  11536. ("pandoc" ,pandoc)
  11537. ("python-chardet" ,python-chardet)
  11538. ("python-levenshtein" ,python-levenshtein)
  11539. ("python-regex" ,python-regex)
  11540. ("python-pycairo" ,python-pycairo)
  11541. ("python-pygobject" ,python-pygobject)
  11542. ("python-pyenchant" ,python-pyenchant)
  11543. ("python-pypandoc" ,python-pypandoc)
  11544. ("webkitgtk" ,webkitgtk)))
  11545. (native-inputs
  11546. `(("gettext" ,gettext-minimal)
  11547. ("glib:bin" ,glib "bin")
  11548. ("pkg-config" ,pkg-config)))
  11549. (home-page "https://gitlab.gnome.org/somas/apostrophe")
  11550. (synopsis "Markdown editor written in Python with GTK+")
  11551. (description "Apostrophe is a GTK+ based distraction free Markdown editor.
  11552. It uses pandoc as back-end for parsing Markdown.")
  11553. (license license:gpl3)))
  11554. (define-public libratbag
  11555. (package
  11556. (name "libratbag")
  11557. (version "0.14")
  11558. (source
  11559. (origin
  11560. (method git-fetch)
  11561. (uri (git-reference
  11562. (url "https://github.com/libratbag/libratbag")
  11563. (commit (string-append "v" version))))
  11564. (file-name (git-file-name name version))
  11565. (sha256
  11566. (base32 "1fpwp2sj8mf98bqasq2h8qwgprxi7k3iw33gcfid3d1lbyiacw0x"))))
  11567. (build-system meson-build-system)
  11568. (arguments
  11569. `(#:configure-flags
  11570. (list "-Dsystemd=false"
  11571. "-Dlogind-provider=elogind")
  11572. #:phases
  11573. (modify-phases %standard-phases
  11574. (add-after 'install 'wrap
  11575. (lambda* (#:key inputs outputs #:allow-other-keys)
  11576. (let* ((out (assoc-ref outputs "out"))
  11577. (site (string-append
  11578. "/lib/python"
  11579. ,(version-major+minor (package-version python))
  11580. "/site-packages"))
  11581. (evdev (string-append
  11582. (assoc-ref inputs "python-evdev") site))
  11583. (pygo (string-append
  11584. (assoc-ref inputs "python-pygobject") site))
  11585. (python-wrap
  11586. `("GUIX_PYTHONPATH" = (,evdev ,pygo))))
  11587. (wrap-program (string-append out "/bin/" "ratbagctl")
  11588. python-wrap)
  11589. #t))))))
  11590. (native-inputs
  11591. `(("check" ,check)
  11592. ("pkg-config" ,pkg-config)
  11593. ("swig" ,swig)
  11594. ("valgrind" ,valgrind)))
  11595. (inputs
  11596. `(("glib" ,glib)
  11597. ("json-glib" ,json-glib)
  11598. ("libevdev" ,libevdev)
  11599. ("libsystemd" ,elogind)
  11600. ("libunistring" ,libunistring)
  11601. ("python-evdev" ,python-evdev)
  11602. ("python-pygobject" ,python-pygobject)
  11603. ("udev" ,eudev)))
  11604. (home-page "https://github.com/libratbag/libratbag")
  11605. (synopsis "DBus daemon and utility for configuring gaming mice")
  11606. (description "libratbag provides @command{ratbagd}, a DBus daemon to
  11607. configure input devices, mainly gaming mice. The daemon provides a generic
  11608. way to access the various features exposed by these mice and abstracts away
  11609. hardware-specific and kernel-specific quirks. There is also the
  11610. @command{ratbagctl} command line interface for configuring devices.
  11611. libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
  11612. Steelseries.
  11613. The ratbagd DBus service can be enabled by adding the following service to
  11614. your operating-system definition:
  11615. (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
  11616. (license license:expat)))
  11617. (define-public piper
  11618. (package
  11619. (name "piper")
  11620. (version "0.5.1")
  11621. (source
  11622. (origin
  11623. (method git-fetch)
  11624. (uri (git-reference
  11625. (url "https://github.com/libratbag/piper")
  11626. (commit version)))
  11627. (sha256
  11628. (base32 "1nfjnsiwg2rs6gkjsxzhr2708i6di149dgwq3cf6l12rxqpb8arj"))
  11629. (file-name (git-file-name name version))))
  11630. (build-system meson-build-system)
  11631. (native-inputs
  11632. `(("gettext" ,gettext-minimal)
  11633. ("glib:bin" ,glib "bin")
  11634. ("gobject-introspection" ,gobject-introspection)
  11635. ("pkg-config" ,pkg-config)
  11636. ("python-flake8" ,python-flake8)))
  11637. (inputs
  11638. `(("adwaita-icon-theme" ,adwaita-icon-theme)
  11639. ("gtk" ,gtk+)
  11640. ("gtk:bin" ,gtk+ "bin")
  11641. ("librsvg" ,librsvg)
  11642. ("python-evdev" ,python-evdev)
  11643. ("python-lxml" ,python-lxml)
  11644. ("python-pycairo" ,python-pycairo)
  11645. ("python-pygobject" ,python-pygobject)))
  11646. (arguments
  11647. `(#:imported-modules ((guix build python-build-system)
  11648. ,@%meson-build-system-modules)
  11649. #:modules (((guix build python-build-system) #:prefix python:)
  11650. (guix build meson-build-system)
  11651. (guix build utils))
  11652. #:tests? #f ;; The flake8 test fails trying to validate piper.in as code.
  11653. #:phases
  11654. (modify-phases %standard-phases
  11655. (add-after 'unpack 'dont-update-gtk-icon-cache
  11656. (lambda _
  11657. (substitute* "meson.build"
  11658. (("meson.add_install_script('meson_install.sh')") ""))
  11659. #t))
  11660. ;; TODO: Switch to wrap-script when it is fixed.
  11661. (add-after 'install 'wrap-python
  11662. (assoc-ref python:%standard-phases 'wrap))
  11663. (add-after 'wrap-python 'wrap
  11664. (lambda* (#:key outputs #:allow-other-keys)
  11665. (wrap-program
  11666. (string-append (assoc-ref outputs "out" )"/bin/piper")
  11667. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
  11668. #t)))))
  11669. (home-page "https://github.com/libratbag/piper/")
  11670. (synopsis "Configure bindings and LEDs on gaming mice")
  11671. (description "Piper is a GTK+ application for configuring gaming mice with
  11672. onboard configuration for key bindings via libratbag. Piper requires
  11673. a @command{ratbagd} daemon running with root privileges. It can be run
  11674. manually as root, but is preferably configured as a DBus service that can
  11675. launch on demand. This can be configured by enabling the following service,
  11676. provided there is a DBus service present:
  11677. (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
  11678. (license license:gpl2)))
  11679. (define-public parlatype
  11680. (package
  11681. (name "parlatype")
  11682. (version "2.1")
  11683. (source
  11684. (origin
  11685. (method git-fetch)
  11686. (uri (git-reference
  11687. (url "https://github.com/gkarsay/parlatype")
  11688. (commit (string-append "v" version))))
  11689. (file-name (git-file-name name version))
  11690. (sha256
  11691. (base32 "1c15ja0rwz3jj8bnqdq0nmqka39iwrhy8krdv2a2x8nl4shfpmv0"))))
  11692. (build-system meson-build-system)
  11693. (arguments
  11694. `(#:glib-or-gtk? #t
  11695. #:tests? #f ;require internet access
  11696. #:phases
  11697. (modify-phases %standard-phases
  11698. (add-after 'install 'wrap-parlatype
  11699. ;; Add gstreamer plugin provided in this package to system's
  11700. ;; plugins.
  11701. (lambda* (#:key outputs #:allow-other-keys)
  11702. (let* ((out (assoc-ref outputs "out"))
  11703. (gst-plugin-path (string-append
  11704. out "/lib/gstreamer-1.0/"
  11705. ":"
  11706. (getenv "GST_PLUGIN_SYSTEM_PATH"))))
  11707. (wrap-program (string-append out "/bin/parlatype")
  11708. `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
  11709. #t)))))
  11710. (native-inputs
  11711. `(("appstream-glib" ,appstream-glib)
  11712. ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
  11713. ("gettext" ,gettext-minimal)
  11714. ("glib" ,glib "bin") ;for glib-compile-resources
  11715. ("pkg-config" ,pkg-config)
  11716. ("yelp-tools" ,yelp-tools)))
  11717. (inputs
  11718. `(("gst-plugins-base" ,gst-plugins-base)
  11719. ("gst-plugins-good" ,gst-plugins-good)
  11720. ("gstreamer" ,gstreamer)
  11721. ("gtk+" ,gtk+)
  11722. ("pocketsphinx" ,pocketsphinx)
  11723. ("pulseaudio" ,pulseaudio)
  11724. ("sphinxbase" ,sphinxbase)))
  11725. (home-page "http://gkarsay.github.io/parlatype/")
  11726. (synopsis "GNOME audio player for transcription")
  11727. (description "Parlatype is an audio player for the GNOME desktop
  11728. environment. Its main purpose is the manual transcription of spoken
  11729. audio files.")
  11730. (license license:gpl3+)))
  11731. (define-public jsonrpc-glib
  11732. (package
  11733. (name "jsonrpc-glib")
  11734. (version "3.34.0")
  11735. (source (origin
  11736. (method url-fetch)
  11737. (uri (string-append "mirror://gnome/sources/" name "/"
  11738. (version-major+minor version) "/"
  11739. name "-" version ".tar.xz"))
  11740. (sha256
  11741. (base32
  11742. "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
  11743. (build-system meson-build-system)
  11744. (inputs
  11745. `(("json-glib" ,json-glib)
  11746. ("glib" ,glib)))
  11747. (native-inputs
  11748. `(("pkg-config" ,pkg-config)
  11749. ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
  11750. ("gobject-introspection" ,gobject-introspection)
  11751. ("vala" ,vala)))
  11752. (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
  11753. (synopsis "JSON-RPC library for GLib")
  11754. (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
  11755. peers in either a synchronous or asynchronous fashion. It also allows
  11756. communicating using the GVariant serialization format instead of JSON when
  11757. both peers support it. You might want that when communicating on a single
  11758. host to avoid parser overhead and memory-allocator fragmentation.")
  11759. (license license:lgpl2.1+)))
  11760. (define-public feedbackd
  11761. (package
  11762. (name "feedbackd")
  11763. (version "0.0.0+git20200527")
  11764. (source (origin
  11765. (method git-fetch)
  11766. (uri (git-reference
  11767. (url "https://source.puri.sm/Librem5/feedbackd.git")
  11768. (commit (string-append "v" version))))
  11769. (file-name (git-file-name name version))
  11770. (sha256
  11771. (base32
  11772. "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
  11773. (build-system meson-build-system)
  11774. (native-inputs
  11775. `(("glib:bin" ,glib "bin")
  11776. ("gobject-introspection" ,gobject-introspection)
  11777. ("pkg-config" ,pkg-config)
  11778. ("vala" ,vala)))
  11779. (inputs
  11780. `(("dbus" ,dbus)
  11781. ("gsound" ,gsound)
  11782. ("json-glib" ,json-glib)
  11783. ("libgudev" ,libgudev)))
  11784. (propagated-inputs
  11785. `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
  11786. (synopsis "Haptic/visual/audio feedback via DBus")
  11787. (description "Feedbackd provides a DBus daemon to act on events to provide
  11788. haptic, visual and audio feedback. It offers the libfeedbackd library and
  11789. GObject introspection bindings.")
  11790. (home-page "https://source.puri.sm/Librem5/feedbackd")
  11791. (license (list license:lgpl2.1+ ; libfeedbackd
  11792. license:lgpl3+)))) ; the rest
  11793. (define-public sysprof
  11794. (package
  11795. (name "sysprof")
  11796. (version "3.36.0")
  11797. (source
  11798. (origin
  11799. (method url-fetch)
  11800. (uri (string-append "mirror://gnome/sources/sysprof/"
  11801. (version-major+minor version) "/"
  11802. "sysprof-" version ".tar.xz"))
  11803. (sha256
  11804. (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46"))))
  11805. (build-system meson-build-system)
  11806. (arguments
  11807. `(#:configure-flags
  11808. (list (string-append "-Dsystemdunitdir="
  11809. %output
  11810. "/share/systemd"))
  11811. #:tests? #f ; 3/4 test-model-filter barfs some dbus nonsense
  11812. #:phases
  11813. (modify-phases %standard-phases
  11814. (add-after 'unpack 'patch-install-script
  11815. (lambda _
  11816. (substitute* "build-aux/meson/post_install.sh"
  11817. (("gtk-update-icon-cache") "true")
  11818. (("update-desktop-database") "true"))
  11819. #t)))))
  11820. (inputs
  11821. `(("glib" ,glib)
  11822. ("gtk+" ,gtk+)
  11823. ("libdazzle" ,libdazzle)
  11824. ("polkit" ,polkit)))
  11825. (native-inputs
  11826. `(("gettext" ,gettext-minimal)
  11827. ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
  11828. ("itstool" ,itstool)
  11829. ("pkg-config" ,pkg-config)
  11830. ("xmllint" ,libxml2)))
  11831. ;; This home page is so woefully out of date as to be essentially useless.
  11832. ;; (home-page "http://www.sysprof.com")
  11833. (home-page "https://wiki.gnome.org/Apps/Sysprof")
  11834. (synopsis "System-wide performance profiler for GNU/Linux")
  11835. (description
  11836. "Sysprof performs detailed, accurate, and fast CPU profiling of an entire
  11837. GNU/Linux system including the kernel and all user-space applications. This
  11838. helps find the function(s) in which a program spends most of its time.
  11839. It uses the kernel's built-in @code{ptrace} feature and handles shared
  11840. libraries. Applications do not need to be recompiled--or even restarted.")
  11841. (license license:gpl3+)))
  11842. (define-public gnome-builder
  11843. (package
  11844. (name "gnome-builder")
  11845. (version "3.36.1")
  11846. (source (origin
  11847. (method url-fetch)
  11848. (uri (string-append "mirror://gnome/sources/" name "/"
  11849. (version-major+minor version) "/"
  11850. name "-" version ".tar.xz"))
  11851. (sha256
  11852. (base32
  11853. "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"))))
  11854. (build-system meson-build-system)
  11855. (arguments
  11856. `(#:configure-flags (list "-Dnetwork_tests=false"
  11857. ;; TODO: Enable all plugins...
  11858. "-Dplugin_clang=false"
  11859. "-Dplugin_flatpak=false"
  11860. "-Dplugin_glade=false"
  11861. ;; XXX: This one has been shown not to work in
  11862. ;; <https://issues.guix.gnu.org/45272>
  11863. "-Dplugin_jedi=false"
  11864. ;; ... except this one.
  11865. "-Dplugin_update_manager=false")
  11866. #:phases
  11867. (modify-phases %standard-phases
  11868. (add-after 'unpack 'patch-meson
  11869. (lambda* (#:key inputs #:allow-other-keys)
  11870. (substitute* "build-aux/meson/post_install.py"
  11871. (("gtk-update-icon-cache") "true")
  11872. (("update-desktop-database") "true"))
  11873. (substitute* "src/libide/meson.build"
  11874. (("/usr/lib")
  11875. (string-append (assoc-ref inputs "python-pygobject")
  11876. "/lib")))
  11877. #t))
  11878. (add-after 'configure 'fix-ninja
  11879. (lambda _
  11880. ;; #43296: meson(?) incorrectly assumes we want to link
  11881. ;; this PIE against a static libselinux.
  11882. (substitute* "build.ninja"
  11883. (("libselinux\\.a") "libselinux.so"))
  11884. #t))
  11885. (add-before 'check 'pre-check
  11886. (lambda _
  11887. (system "Xvfb :1 &")
  11888. (setenv "DISPLAY" ":1")
  11889. #t)))))
  11890. (inputs
  11891. `(("devhelp" ,devhelp)
  11892. ("gspell" ,gspell)
  11893. ("gtk+" ,gtk+)
  11894. ("json-glib" ,json-glib)
  11895. ("jsonrpc-glib" ,jsonrpc-glib)
  11896. ("libdazzle" ,libdazzle)
  11897. ("libgit2-glib" ,libgit2-glib)
  11898. ("libpeas" ,libpeas)
  11899. ("python-pygobject" ,python-pygobject)
  11900. ("sysprof" ,sysprof)
  11901. ("template-glib" ,template-glib)
  11902. ("vte" ,vte)
  11903. ("webkitgtk" ,webkitgtk)))
  11904. (propagated-inputs
  11905. `(("gtksourceview" ,gtksourceview))) ;needed for settings
  11906. (native-inputs
  11907. `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
  11908. ("glib:bin" ,glib "bin")
  11909. ("gettext" ,gettext-minimal)
  11910. ("pkg-config" ,pkg-config)
  11911. ("vala" ,vala)
  11912. ("xorg-server" ,xorg-server-for-tests)))
  11913. (home-page "https://wiki.gnome.org/Apps/Builder")
  11914. (synopsis "Toolsmith for GNOME-based applications")
  11915. (description "Builder aims to be an integrated development
  11916. environment (IDE) for writing GNOME-based software. It features fuzzy search,
  11917. auto-completion, a mini code map, documentation browsing, Git integration, an
  11918. integrated profiler via Sysprof, debugging support, and more.")
  11919. (license license:gpl3+)))
  11920. (define-public komikku
  11921. (package
  11922. (name "komikku")
  11923. (version "0.31.0")
  11924. (source
  11925. (origin
  11926. (method git-fetch)
  11927. (uri (git-reference
  11928. (url "https://gitlab.com/valos/Komikku/")
  11929. (commit (string-append "v" version))))
  11930. (file-name (git-file-name name version))
  11931. (sha256
  11932. (base32
  11933. "0vldcjq24y4xxg8dzlyhfpqxbqn5g160lz1lmmkp7g9im2zrxh52"))))
  11934. (build-system meson-build-system)
  11935. (arguments
  11936. `(#:glib-or-gtk? #t
  11937. #:phases
  11938. (modify-phases %standard-phases
  11939. (add-after 'unpack 'patch-sources
  11940. (lambda _
  11941. (substitute* "komikku/utils.py"
  11942. (("from komikku\\.servers import get_servers_list")
  11943. ;; code following that line should migrate old databases
  11944. ;; but the line itself results in an import error
  11945. "return data_dir_path"))))
  11946. (add-after 'unpack 'skip-gtk-update-icon-cache
  11947. (lambda _
  11948. (substitute* "meson_post_install.py"
  11949. (("gtk-update-icon-cache") (which "true")))
  11950. #t))
  11951. (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
  11952. (lambda* (#:key outputs #:allow-other-keys)
  11953. (let ((prog (string-append (assoc-ref outputs "out")
  11954. "/bin/komikku")))
  11955. (wrap-program prog
  11956. `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
  11957. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
  11958. #t))))))
  11959. (inputs
  11960. `(("gtk+" ,gtk+)
  11961. ("libhandy" ,libhandy)
  11962. ("libnotify" ,libnotify)
  11963. ("libsecret" ,libsecret)
  11964. ("python-beautifulsoup4" ,python-beautifulsoup4)
  11965. ("python-brotli" ,python-brotli)
  11966. ("python-cloudscraper" ,python-cloudscraper)
  11967. ("python-dateparser" ,python-dateparser)
  11968. ("python-keyring" ,python-keyring)
  11969. ("python-lxml" ,python-lxml)
  11970. ("python-magic" ,python-magic)
  11971. ("python-natsort" ,python-natsort)
  11972. ("python-pillow" ,python-pillow)
  11973. ("python-pure-protobuf" ,python-pure-protobuf)
  11974. ("python-pycairo" ,python-pycairo)
  11975. ("python-pygobject" ,python-pygobject)
  11976. ("python-requests" ,python-requests)
  11977. ("python-unidecode" ,python-unidecode)
  11978. ("webkitgtk" ,webkitgtk)))
  11979. (native-inputs
  11980. `(("desktop-file-utils" ,desktop-file-utils)
  11981. ("gettext" ,gettext-minimal)
  11982. ("glib:bin" ,glib "bin")
  11983. ("gobject-introspection" ,gobject-introspection)
  11984. ("pkg-config" ,pkg-config)))
  11985. (home-page "https://gitlab.com/valos/Komikku")
  11986. (synopsis "Manga reader for GNOME")
  11987. (description "Komikku is an online/offline manga reader for GNOME,
  11988. developed with the aim of being used with the Librem 5 phone.")
  11989. (license license:gpl3+)))
  11990. (define-public libgda
  11991. (package
  11992. (name "libgda")
  11993. (version "5.2.10")
  11994. (source
  11995. (origin
  11996. (method git-fetch)
  11997. (uri (git-reference
  11998. (url "https://gitlab.gnome.org/GNOME/libgda.git/")
  11999. (commit (string-append "LIBGDA_" (string-replace-substring
  12000. version "." "_")))))
  12001. (file-name (git-file-name name version))
  12002. (sha256
  12003. (base32 "18rg773gq9v3cdywpmrp12c5xyp97ir9yqjinccpi22sksb1kl8a"))))
  12004. (build-system gnu-build-system)
  12005. (arguments
  12006. `(#:configure-flags '("--enable-vala")
  12007. ;; There's a race between check_cnc_lock and check_threaded_cnc
  12008. ;; in tests/multi-threading.
  12009. #:parallel-tests? #f
  12010. #:phases
  12011. (modify-phases %standard-phases
  12012. (add-after 'unpack 'fix-glade-install
  12013. (lambda _
  12014. (substitute* "configure.ac"
  12015. (("`\\$PKG_CONFIG --variable=catalogdir gladeui-2\\.0`")
  12016. "${datadir}/glade/catalogs")
  12017. (("`\\$PKG_CONFIG --variable=pixmapdir gladeui-2\\.0`")
  12018. "${datadir}/glade/pixmaps"))
  12019. #t))
  12020. (add-before 'check 'pre-check
  12021. (lambda* (#:key inputs #:allow-other-keys)
  12022. ;; Tests require a running X server.
  12023. (system "Xvfb :1 &")
  12024. (setenv "DISPLAY" ":1")
  12025. #t))
  12026. (add-after 'install 'symlink-glade-module
  12027. (lambda* (#:key outputs #:allow-other-keys)
  12028. (let* ((shlib "libgda-ui-5.0.so")
  12029. (out (assoc-ref outputs "out"))
  12030. (out/lib (string-append out "/lib"))
  12031. (moduledir (string-append out/lib "/glade/modules")))
  12032. (mkdir-p moduledir)
  12033. (symlink (string-append out/lib "/" shlib)
  12034. (string-append moduledir "/" shlib))
  12035. #t))))))
  12036. (propagated-inputs
  12037. `(("libxml2" ,libxml2))) ; required by libgda-5.0.pc
  12038. (inputs
  12039. `(("glib" ,glib)
  12040. ("glade" ,glade3)
  12041. ("gtk+" ,gtk+)
  12042. ("libsecret" ,libsecret)
  12043. ("libxslt" ,libxslt)
  12044. ("openssl" ,openssl)
  12045. ("vala" ,vala)))
  12046. (native-inputs
  12047. `(("autoconf" ,autoconf)
  12048. ("autoconf-archive" ,autoconf-archive)
  12049. ("automake" ,automake)
  12050. ("glib:bin" ,glib "bin")
  12051. ("gnome-common" ,gnome-common)
  12052. ("gobject-introspection" ,gobject-introspection)
  12053. ("gtk-doc" ,gtk-doc/stable)
  12054. ("intltool" ,intltool)
  12055. ("libtool" ,libtool)
  12056. ("pkg-config" ,pkg-config)
  12057. ("vala" ,vala)
  12058. ("which" ,which)
  12059. ("xorg-server" ,xorg-server-for-tests)
  12060. ("yelp-tools" ,yelp-tools)))
  12061. (home-page "https://gitlab.gnome.org/GNOME/libgda")
  12062. (synopsis "Uniform data access")
  12063. (description
  12064. "GNU Data Access (GDA) is an attempt to provide uniform access to
  12065. different kinds of data sources (databases, information servers, mail spools,
  12066. etc). It is a complete architecture that provides all you need to access
  12067. your data.")
  12068. (license license:lgpl2.1+)))
  12069. (define-public gtranslator
  12070. (package
  12071. (name "gtranslator")
  12072. (version "3.36.0")
  12073. (source (origin
  12074. (method url-fetch)
  12075. (uri (string-append "mirror://gnome/sources/" name "/"
  12076. (version-major+minor version) "/"
  12077. name "-" version ".tar.xz"))
  12078. (sha256
  12079. (base32
  12080. "1lxd2nkji4jk8g2xmyc1a1r3ww710ddk91zh9psmx8xlb4xivaid"))))
  12081. (build-system meson-build-system)
  12082. (inputs
  12083. `(("json-glib" ,json-glib)
  12084. ("jsonrpc-glib" ,jsonrpc-glib)
  12085. ("gettext" ,gettext-minimal)
  12086. ("glib" ,glib)
  12087. ("gtk+" ,gtk+)
  12088. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  12089. ("gspell" ,gspell)
  12090. ("libdazzle" ,libdazzle)
  12091. ("libgda" ,libgda)
  12092. ("libsoup" ,libsoup)))
  12093. (native-inputs
  12094. `(("glib:bin" ,glib "bin")
  12095. ("itstool" ,itstool)
  12096. ("pkg-config" ,pkg-config)))
  12097. (propagated-inputs
  12098. `(("gtksourceview" ,gtksourceview))) ; required for source view
  12099. (arguments
  12100. `(#:build-type "release"
  12101. #:glib-or-gtk? #t
  12102. #:phases
  12103. (modify-phases %standard-phases
  12104. (add-after 'unpack 'skip-gtk-update-icon-cache
  12105. (lambda _
  12106. (substitute* "build-aux/meson/meson_post_install.py"
  12107. (("gtk-update-icon-cache") (which "true")))
  12108. #t)))))
  12109. (home-page "https://wiki.gnome.org/Apps/Gtranslator")
  12110. (synopsis "Translation making program")
  12111. (description
  12112. "gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor
  12113. for the GNOME 3.x platform with many features. It aims to be a very complete
  12114. editing environment for translation issues within the GNU gettext/GNOME desktop
  12115. world.")
  12116. (license license:gpl3+)))
  12117. (define-public ocrfeeder
  12118. (package
  12119. (name "ocrfeeder")
  12120. (version "0.8.3")
  12121. (source (origin
  12122. (method url-fetch)
  12123. (uri (string-append "mirror://gnome/sources/ocrfeeder/"
  12124. (version-major+minor version) "/"
  12125. "ocrfeeder-" version ".tar.xz"))
  12126. (sha256
  12127. (base32
  12128. "12f5gnq92ffnd5zaj04df7jrnsdz1zn4zcgpbf5p9qnd21i2y529"))))
  12129. (build-system gnu-build-system)
  12130. (arguments
  12131. `(#:phases
  12132. (modify-phases %standard-phases
  12133. (add-after
  12134. 'install 'wrap-program
  12135. (lambda* (#:key outputs #:allow-other-keys)
  12136. (let ((prog (string-append (assoc-ref outputs "out")
  12137. "/bin/" "ocrfeeder"))
  12138. (pylib (string-append (assoc-ref outputs "out")
  12139. "/lib/python"
  12140. ,(version-major+minor
  12141. (package-version python))
  12142. "/site-packages")))
  12143. (wrap-program prog
  12144. `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
  12145. `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
  12146. #t))))))
  12147. (native-inputs
  12148. `(("glib:bin" ,glib "bin") ; for glib-compile-resources
  12149. ("gobject-introspection" ,gobject-introspection)
  12150. ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
  12151. ("intltool" ,intltool)
  12152. ("itstool" ,itstool)
  12153. ("pkg-config" ,pkg-config)
  12154. ("xmllint" ,libxml2)))
  12155. (inputs
  12156. `(("enchant" ,enchant)
  12157. ("glib" ,glib)
  12158. ("goocanvas" ,goocanvas)
  12159. ("gtk" ,gtk+)
  12160. ("gtkspell3" ,gtkspell3)
  12161. ("libjpeg" ,libjpeg-turbo)
  12162. ("libtiff" ,libtiff)
  12163. ("libraw" ,libraw)
  12164. ("ocrad" ,ocrad)
  12165. ("python" ,python-wrapper)
  12166. ("python-pygobject" ,python-pygobject)
  12167. ("python-odfpy" ,python-odfpy)
  12168. ("python-pillow" ,python-pillow)
  12169. ("python-pyenchant" ,python-pyenchant)
  12170. ("python-reportlab" ,python-reportlab)
  12171. ("python-sane" ,python-sane)
  12172. ("sane-backends" ,sane-backends)
  12173. ("tesseract-ocr" ,tesseract-ocr)))
  12174. (home-page "https://wiki.gnome.org/Apps/OCRFeeder")
  12175. (synopsis "Complete OCR Suite")
  12176. (description "OCRFeeder is a complete Optical Character Recognition and
  12177. Document Analysis and Recognition program.")
  12178. (license license:gpl3+)))
  12179. (define-public libadwaita
  12180. (let ((commit "8d66b987a19979d9d7b85dacc6bad5ce0c8743fe")
  12181. (revision "1"))
  12182. (package
  12183. (name "libadwaita")
  12184. (version (git-version "0.0.1" revision commit))
  12185. (source (origin
  12186. (method git-fetch)
  12187. (uri (git-reference
  12188. (url "https://gitlab.gnome.org/GNOME/libadwaita.git")
  12189. (commit commit)))
  12190. (file-name (git-file-name name version))
  12191. (sha256
  12192. (base32
  12193. "0i3wav6jsyi4w4i2r1rad769m5y5s9djj4zqb7dfyh0bad24ba3q"))))
  12194. (build-system meson-build-system)
  12195. (arguments
  12196. `(#:phases
  12197. (modify-phases %standard-phases
  12198. (add-before 'check 'pre-check
  12199. (lambda* (#:key inputs #:allow-other-keys)
  12200. ;; Tests require a running X server.
  12201. (system "Xvfb :1 &")
  12202. (setenv "DISPLAY" ":1"))))))
  12203. (native-inputs
  12204. `(("sassc" ,sassc)
  12205. ("glib:bin" ,glib "bin")
  12206. ("gtk-doc" ,gtk-doc/stable)
  12207. ("pkg-config" ,pkg-config)
  12208. ("vala" ,vala)
  12209. ("xvfb" ,xorg-server-for-tests)))
  12210. (inputs
  12211. `(("gtk" ,gtk)
  12212. ("gobject-introspection" ,gobject-introspection)
  12213. ("libportal" ,libportal)))
  12214. (home-page "https://gnome.pages.gitlab.gnome.org/libadwaita/")
  12215. (synopsis "Building blocks for GNOME applications")
  12216. (description
  12217. "@code(libadwaita) offers widgets and objects to build GNOME
  12218. applications scaling from desktop workstations to mobile phones. It is the
  12219. successor of @code{libhandy} for GTK4.")
  12220. (license license:lgpl2.1+))))