web.scm 249 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411
  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
  3. ;;; Copyright © 2013 Aljosha Papsch <misc@rpapsch.de>
  4. ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
  5. ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
  6. ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
  7. ;;; Copyright © 2018 Raoul Jean Pierre Bonnal <ilpuccio.febo@gmail.com>
  8. ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
  9. ;;; Copyright © 2015, 2016, 2017, 2018 Eric Bavier <bavier@member.fsf.org>
  10. ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
  11. ;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
  12. ;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
  13. ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
  14. ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
  15. ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
  16. ;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
  17. ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
  18. ;;; Copyright © 2016, 2017, 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
  19. ;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
  20. ;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org>
  21. ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
  22. ;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
  23. ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
  24. ;;; Copyright © 2017 Petter <petter@mykolab.ch>
  25. ;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
  26. ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
  27. ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
  28. ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
  29. ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
  30. ;;; Copyright © 2018 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
  31. ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
  32. ;;;
  33. ;;; This file is part of GNU Guix.
  34. ;;;
  35. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  36. ;;; under the terms of the GNU General Public License as published by
  37. ;;; the Free Software Foundation; either version 3 of the License, or (at
  38. ;;; your option) any later version.
  39. ;;;
  40. ;;; GNU Guix is distributed in the hope that it will be useful, but
  41. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  42. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  43. ;;; GNU General Public License for more details.
  44. ;;;
  45. ;;; You should have received a copy of the GNU General Public License
  46. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  47. (define-module (gnu packages web)
  48. #:use-module (ice-9 match)
  49. #:use-module ((guix licenses) #:prefix l:)
  50. #:use-module (guix packages)
  51. #:use-module (guix download)
  52. #:use-module (guix git-download)
  53. #:use-module (guix cvs-download)
  54. #:use-module (guix hg-download)
  55. #:use-module (guix utils)
  56. #:use-module (guix build-system gnu)
  57. #:use-module (guix build-system glib-or-gtk)
  58. #:use-module (guix build-system perl)
  59. #:use-module (guix build-system cmake)
  60. #:use-module (guix build-system trivial)
  61. #:use-module (guix build-system python)
  62. #:use-module (guix build-system ant)
  63. #:use-module (guix build-system scons)
  64. #:use-module (gnu packages)
  65. #:use-module (gnu packages admin)
  66. #:use-module (gnu packages adns)
  67. #:use-module (gnu packages apr)
  68. #:use-module (gnu packages check)
  69. #:use-module (gnu packages documentation)
  70. #:use-module (gnu packages docbook)
  71. #:use-module (gnu packages autotools)
  72. #:use-module (gnu packages compression)
  73. #:use-module (gnu packages cyrus-sasl)
  74. #:use-module (gnu packages databases)
  75. #:use-module (gnu packages bison)
  76. #:use-module (gnu packages flex)
  77. #:use-module (gnu packages freedesktop)
  78. #:use-module (gnu packages kerberos)
  79. #:use-module (gnu packages gcc)
  80. #:use-module (gnu packages gd)
  81. #:use-module (gnu packages gettext)
  82. #:use-module (gnu packages glib)
  83. #:use-module (gnu packages gnome)
  84. #:use-module (gnu packages gnu-doc)
  85. #:use-module (gnu packages gnupg)
  86. #:use-module (gnu packages gnuzilla)
  87. #:use-module (gnu packages gperf)
  88. #:use-module (gnu packages gtk)
  89. #:use-module (gnu packages guile)
  90. #:use-module (gnu packages guile-xyz)
  91. #:use-module (gnu packages java)
  92. #:use-module (gnu packages jemalloc)
  93. #:use-module (gnu packages image)
  94. #:use-module (gnu packages imagemagick)
  95. #:use-module (gnu packages libevent)
  96. #:use-module (gnu packages libidn)
  97. #:use-module (gnu packages libunistring)
  98. #:use-module (gnu packages linux)
  99. #:use-module (gnu packages lisp)
  100. #:use-module (gnu packages lua)
  101. #:use-module (gnu packages markup)
  102. #:use-module (gnu packages ncurses)
  103. #:use-module (gnu packages openstack)
  104. #:use-module (gnu packages base)
  105. #:use-module (gnu packages package-management)
  106. #:use-module (gnu packages perl)
  107. #:use-module (gnu packages perl-check)
  108. #:use-module (gnu packages python)
  109. #:use-module (gnu packages python-web)
  110. #:use-module (gnu packages python-xyz)
  111. #:use-module (gnu packages pcre)
  112. #:use-module (gnu packages pkg-config)
  113. #:use-module (gnu packages qt)
  114. #:use-module (gnu packages readline)
  115. #:use-module (gnu packages valgrind)
  116. #:use-module (gnu packages xml)
  117. #:use-module (gnu packages curl)
  118. #:use-module (gnu packages texinfo)
  119. #:use-module (gnu packages textutils)
  120. #:use-module (gnu packages tls)
  121. #:use-module (gnu packages version-control))
  122. (define-public httpd
  123. (package
  124. (name "httpd")
  125. (version "2.4.38")
  126. (source (origin
  127. (method url-fetch)
  128. (uri (string-append "mirror://apache/httpd/httpd-"
  129. version ".tar.bz2"))
  130. (sha256
  131. (base32
  132. "0jiriyyf3pm6axf4mrz6c2z08yhs21hb4d23viq87jclm5bmiikx"))))
  133. (build-system gnu-build-system)
  134. (native-inputs `(("pcre" ,pcre "bin"))) ;for 'pcre-config'
  135. (inputs `(("apr" ,apr)
  136. ("apr-util" ,apr-util)
  137. ("openssl" ,openssl)
  138. ("perl" ,perl))) ; needed to run bin/apxs
  139. (arguments
  140. `(#:test-target "test"
  141. #:configure-flags (list "--enable-rewrite"
  142. "--enable-userdir"
  143. "--enable-vhost-alias"
  144. "--enable-ssl"
  145. "--enable-mime-magic"
  146. (string-append "--sysconfdir="
  147. (assoc-ref %outputs "out")
  148. "/etc/httpd"))))
  149. (synopsis "Featureful HTTP server")
  150. (description
  151. "The Apache HTTP Server Project is a collaborative software development
  152. effort aimed at creating a robust, commercial-grade, featureful, and
  153. freely-available source code implementation of an HTTP (Web) server. The
  154. project is jointly managed by a group of volunteers located around the world,
  155. using the Internet and the Web to communicate, plan, and develop the server
  156. and its related documentation.")
  157. (license l:asl2.0)
  158. (home-page "https://httpd.apache.org/")))
  159. (define-public mod-wsgi
  160. (package
  161. (name "mod-wsgi")
  162. (version "4.5.22")
  163. (source (origin
  164. (method git-fetch)
  165. (uri (git-reference
  166. (url "https://github.com/GrahamDumpleton/mod_wsgi.git")
  167. (commit version)))
  168. (file-name (git-file-name name version))
  169. (sha256
  170. (base32
  171. "1q90xw2cbhka5gcd6yc69iir73x4gm7fm75qpkins2ryfl6w1q3f"))))
  172. (build-system gnu-build-system)
  173. (arguments
  174. '(#:tests? #f ; TODO: can't figure out if there are tests
  175. #:make-flags (list
  176. (string-append "DESTDIR="
  177. (assoc-ref %outputs "out"))
  178. "LIBEXECDIR=/modules")))
  179. (inputs
  180. `(("httpd" ,httpd)
  181. ("python" ,python-wrapper)))
  182. (synopsis "Apache HTTPD module for Python WSGI applications")
  183. (description
  184. "The mod_wsgi module for the Apache HTTPD Server adds support for running
  185. applications that support the Python @acronym{WSGI, Web Server Gateway
  186. Interface} specification.")
  187. (license l:asl2.0)
  188. (home-page "https://modwsgi.readthedocs.io/")))
  189. (define-public nginx
  190. (package
  191. (name "nginx")
  192. ;; Consider updating the nginx-documentation package if the nginx package is
  193. ;; updated.
  194. (version "1.14.2")
  195. (source (origin
  196. (method url-fetch)
  197. (uri (string-append "https://nginx.org/download/nginx-"
  198. version ".tar.gz"))
  199. (sha256
  200. (base32
  201. "15wppq12qmq8acjs35xfj61czhf9cdc0drnl5mm8hcg3aihryb80"))))
  202. (build-system gnu-build-system)
  203. (inputs `(("openssl" ,openssl)
  204. ("pcre" ,pcre)
  205. ("zlib" ,zlib)))
  206. (arguments
  207. `(#:tests? #f ; no test target
  208. #:phases
  209. (modify-phases %standard-phases
  210. (add-before 'configure 'patch-/bin/sh
  211. (lambda _
  212. (substitute* "auto/feature"
  213. (("/bin/sh") (which "sh")))
  214. #t))
  215. (replace 'configure
  216. ;; The configure script is hand-written, not from GNU autotools.
  217. (lambda* (#:key outputs #:allow-other-keys)
  218. (let ((flags
  219. (list (string-append "--prefix=" (assoc-ref outputs "out"))
  220. "--with-http_ssl_module"
  221. "--with-http_v2_module"
  222. "--with-pcre-jit"
  223. "--with-debug"
  224. ;; Even when not cross-building, we pass the
  225. ;; --crossbuild option to avoid customizing for the
  226. ;; kernel version on the build machine.
  227. ,(let ((system "Linux") ; uname -s
  228. (release "3.2.0") ; uname -r
  229. ;; uname -m
  230. (machine (match (or (%current-target-system)
  231. (%current-system))
  232. ("x86_64-linux" "x86_64")
  233. ("i686-linux" "i686")
  234. ("mips64el-linux" "mips64")
  235. ;; Prevent errors when querying
  236. ;; this package on unsupported
  237. ;; platforms, e.g. when running
  238. ;; "guix package --search="
  239. (_ "UNSUPPORTED"))))
  240. (string-append "--crossbuild="
  241. system ":" release ":" machine)))))
  242. (setenv "CC" "gcc")
  243. (format #t "environment variable `CC' set to `gcc'~%")
  244. (format #t "configure flags: ~s~%" flags)
  245. (apply invoke "./configure" flags)
  246. #t)))
  247. (add-after 'install 'install-man-page
  248. (lambda* (#:key outputs #:allow-other-keys)
  249. (let* ((out (assoc-ref outputs "out"))
  250. (man (string-append out "/share/man")))
  251. (install-file "objs/nginx.8" (string-append man "/man8"))
  252. #t)))
  253. (add-after 'install 'fix-root-dirs
  254. (lambda* (#:key outputs #:allow-other-keys)
  255. ;; 'make install' puts things in strange places, so we need to
  256. ;; clean it up ourselves.
  257. (let* ((out (assoc-ref outputs "out"))
  258. (share (string-append out "/share/nginx")))
  259. ;; This directory is empty, so get rid of it.
  260. (rmdir (string-append out "/logs"))
  261. ;; Example configuration and HTML files belong in
  262. ;; /share.
  263. (mkdir-p share)
  264. (rename-file (string-append out "/conf")
  265. (string-append share "/conf"))
  266. (rename-file (string-append out "/html")
  267. (string-append share "/html"))
  268. #t))))))
  269. (home-page "https://nginx.org")
  270. (synopsis "HTTP and reverse proxy server")
  271. (description
  272. "Nginx (\"engine X\") is a high-performance web and reverse proxy server
  273. created by Igor Sysoev. It can be used both as a stand-alone web server
  274. and as a proxy to reduce the load on back-end HTTP or mail servers.")
  275. ;; Almost all of nginx is distributed under the bsd-2 license.
  276. ;; The exceptions are:
  277. ;; * The 'nginx-http-push' module is covered by the expat license.
  278. ;; * The 'nginx-development-kit' module is mostly covered by bsd-3,
  279. ;; except for two source files which are bsd-4 licensed.
  280. (license (list l:bsd-2 l:expat l:bsd-3 l:bsd-4))))
  281. (define nginx-xslscript
  282. (let ((revision 11)
  283. (changeset "01dc9ba12e1b"))
  284. (package
  285. (name "nginx-xslscript")
  286. (version
  287. (simple-format #f "2014-03-31-~A-~A" revision changeset))
  288. (source (origin
  289. (method hg-fetch)
  290. (uri (hg-reference
  291. (url "http://hg.nginx.org/xslscript")
  292. (changeset changeset)))
  293. (file-name (string-append name "-" version))
  294. (sha256
  295. (base32
  296. "0am8zvdx3jmiwkg5q07qjaw5r26r4i2v5i4yr8a1k0jgib6ii08g"))))
  297. (build-system gnu-build-system)
  298. (arguments
  299. '(#:tests? #f ; No test suite
  300. #:phases
  301. (modify-phases %standard-phases
  302. (delete 'configure)
  303. (delete 'build)
  304. (replace 'install
  305. (lambda* (#:key outputs #:allow-other-keys)
  306. (let ((out-bin (string-append
  307. (assoc-ref outputs "out")
  308. "/bin")))
  309. (mkdir-p out-bin)
  310. (copy-file "xslscript.pl"
  311. (string-append
  312. out-bin
  313. "/xslscript.pl"))
  314. #t))))))
  315. (home-page "http://hg.nginx.org/xslscript")
  316. (synopsis "XSLScript with NGinx specific modifications")
  317. (description
  318. "XSLScript is a terse notation for writing complex XSLT stylesheets.
  319. This is modified version, specifically intended for use with the NGinx
  320. documentation.")
  321. (license l:bsd-2))))
  322. (define-public nginx-documentation
  323. ;; This documentation should be relevant for nginx@1.13.11.
  324. (let ((revision 2131)
  325. (changeset "dbaf3950f8e9"))
  326. (package
  327. (name "nginx-documentation")
  328. (version
  329. (simple-format #f "2018-04-04-~A-~A" revision changeset))
  330. (source
  331. (origin (method hg-fetch)
  332. (uri (hg-reference
  333. (url "http://hg.nginx.org/nginx.org")
  334. (changeset changeset)))
  335. (file-name (string-append name "-" version))
  336. (sha256
  337. (base32
  338. "0acdjsdaqixzh9g9s6db552v4pan4nqrllyqapay9ns9yzh1hrp7"))))
  339. (build-system gnu-build-system)
  340. (arguments
  341. '(#:tests? #f ; no test suite
  342. #:phases
  343. (modify-phases %standard-phases
  344. (delete 'configure) ; no configure script
  345. (replace 'build
  346. (lambda* (#:key outputs #:allow-other-keys)
  347. (let ((output (assoc-ref outputs "out")))
  348. (substitute* "umasked.sh"
  349. ((" /bin/sh") (string-append " " (which "sh"))))
  350. ;; The documentation includes a banner, which makes sense on
  351. ;; the NGinx website, but doesn't make much sense when
  352. ;; viewing locally. Therefore, modify the CSS to remove the
  353. ;; banner.
  354. (substitute* "xslt/style.xslt"
  355. (("#banner \\{ background: black;")
  356. "#banner { background: black;
  357. display: none;"))
  358. (invoke "make")
  359. #t)))
  360. (replace 'install
  361. (lambda* (#:key outputs #:allow-other-keys)
  362. (let ((output (assoc-ref outputs "out")))
  363. (mkdir-p output)
  364. (copy-recursively "libxslt" output)
  365. #t))))))
  366. (native-inputs
  367. `(("libxml2" ,libxml2)
  368. ("libxslt" ,libxslt)
  369. ("nginx-xslscript" ,nginx-xslscript)))
  370. (home-page "https://nginx.org")
  371. (synopsis "Documentation for the nginx web server")
  372. (description
  373. "This package provides HTML documentation for the nginx web server.")
  374. (license l:bsd-2))))
  375. (define-public fcgi
  376. (package
  377. (name "fcgi")
  378. (version "2.4.0")
  379. (source
  380. (origin
  381. (method url-fetch)
  382. ;; Upstream has disappeared.
  383. (uri (string-append "https://sources.archlinux.org/other/packages/fcgi/"
  384. "fcgi-" version ".tar.gz"))
  385. (sha256
  386. (base32
  387. "1f857wnl1d6jfrgfgfpz3zdaj8fch3vr13mnpcpvy8bang34bz36"))
  388. (patches (search-patches "fcgi-2.4.0-poll.patch"
  389. "fcgi-2.4.0-gcc44-fixes.patch"))))
  390. (build-system gnu-build-system)
  391. ;; Parallel building is not supported.
  392. (arguments `(#:parallel-build? #f))
  393. ;; This is an archived fork of the original home page, www.fastcgi.com.
  394. (home-page "https://fastcgi-archives.github.io/")
  395. (synopsis "Language-independent, high-performant extension to CGI")
  396. (description "FastCGI is a language-independent, scalable extension to CGI
  397. that provides high performance without the limitations of server specific
  398. APIs.")
  399. ;; This package is released under the Open Market License, a variant of
  400. ;; the Expat license, incompatible with the GPL.
  401. (license (l:non-copyleft "file://LICENSE.TERMS"))))
  402. (define-public fcgiwrap
  403. (package
  404. (name "fcgiwrap")
  405. (version "1.1.0")
  406. (source
  407. (origin
  408. (method git-fetch)
  409. (uri (git-reference
  410. (url "https://github.com/gnosek/fcgiwrap.git")
  411. (commit version)))
  412. (file-name (git-file-name name version))
  413. (sha256
  414. (base32 "1ryw66h9aazi83amk8l7ha8k5g0c7qvk5g6jv376a1ws9xk2qw6f"))))
  415. (build-system gnu-build-system)
  416. (arguments
  417. `(#:tests? #f ; no tests included
  418. #:make-flags (list "CC=gcc")))
  419. (native-inputs
  420. `(("autoconf" ,autoconf)
  421. ("automake" ,automake)
  422. ("pkg-config" ,pkg-config)))
  423. (inputs
  424. `(("fcgi" ,fcgi)))
  425. (home-page "https://nginx.localdomain.pl/wiki/FcgiWrap")
  426. (synopsis "Simple server for running CGI applications over FastCGI")
  427. (description "Fcgiwrap is a simple server for running CGI applications
  428. over FastCGI. It hopes to provide clean CGI support to Nginx (and other web
  429. servers that may need it).")
  430. (license l:expat)))
  431. (define-public starman
  432. (package
  433. (name "starman")
  434. (version "0.4014")
  435. (source
  436. (origin
  437. (method url-fetch)
  438. (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
  439. "Starman-" version ".tar.gz"))
  440. (sha256
  441. (base32
  442. "1sbb5rb3vs82rlh1fjkgkcmj5pj62b4y9si4ihh45sl9m8c2qxx5"))))
  443. (build-system perl-build-system)
  444. (native-inputs
  445. `(("perl-libwww" ,perl-libwww)
  446. ("perl-module-build-tiny" ,perl-module-build-tiny)
  447. ("perl-test-requires" ,perl-test-requires)))
  448. (propagated-inputs
  449. `(("perl-data-dump" ,perl-data-dump)
  450. ("perl-http-date" ,perl-http-date)
  451. ("perl-http-message" ,perl-http-message)
  452. ("perl-http-parser-xs" ,perl-http-parser-xs)
  453. ("perl-net-server" ,perl-net-server)
  454. ("perl-plack" ,perl-plack)
  455. ("perl-test-tcp" ,perl-test-tcp)))
  456. (home-page "https://metacpan.org/release/Starman")
  457. (synopsis "PSGI/Plack web server")
  458. (description "Starman is a PSGI perl web server that has unique features
  459. such as high performance, preforking, signal support, superdaemon awareness,
  460. and UNIX socket support.")
  461. (license l:perl-license)))
  462. (define-public icedtea-web
  463. (package
  464. (name "icedtea-web")
  465. (version "1.6.2")
  466. (source (origin
  467. (method url-fetch)
  468. (uri (string-append
  469. "http://icedtea.wildebeest.org/download/source/"
  470. name "-" version ".tar.gz"))
  471. (sha256
  472. (base32
  473. "004kwrngyxxlrlzby4vzxjr0xcyngcdc9dfgnvi61ffnjr006ryf"))))
  474. (build-system gnu-build-system)
  475. (arguments
  476. `(#:configure-flags
  477. (list "--disable-plugin" ;NPAPI plugins are obsolete nowadays.
  478. (string-append "BIN_BASH=" (assoc-ref %build-inputs "bash")
  479. "/bin/bash")
  480. (string-append "--with-jdk-home=" (assoc-ref %build-inputs "jdk")))))
  481. (outputs '("out" "doc"))
  482. (native-inputs
  483. `(("pkg-config" ,pkg-config)
  484. ("zip" ,zip)))
  485. (inputs
  486. `(("gtk+" ,gtk+)
  487. ("jdk" ,icedtea "jdk")))
  488. (home-page "http://icedtea.classpath.org/wiki/IcedTea-Web")
  489. (synopsis "Java Web Start")
  490. (description
  491. "IcedTea-Web is an implementation of the @dfn{Java Network Launching
  492. Protocol}, also known as Java Web Start. This package provides tools and
  493. libraries for working with JNLP applets.")
  494. ;; The program is mainly GPL2+, with some individual files under LGPL2.1+
  495. ;; or dual licenses.
  496. (license l:gpl2+)))
  497. (define-public jansson
  498. (package
  499. (name "jansson")
  500. (version "2.12")
  501. (source (origin
  502. (method url-fetch)
  503. (uri
  504. (string-append "http://www.digip.org/jansson/releases/jansson-"
  505. version ".tar.bz2"))
  506. (sha256
  507. (base32
  508. "1lp1mv8pjp5yziws66cy0dhpcam4bbjqhffk13v4vgdybp674pb4"))))
  509. (build-system gnu-build-system)
  510. (arguments
  511. `(#:configure-flags '("--disable-static")))
  512. (home-page "http://www.digip.org/jansson/")
  513. (synopsis "JSON C library")
  514. (description
  515. "Jansson is a C library for encoding, decoding and manipulating JSON
  516. data.")
  517. (license l:expat)))
  518. (define-public json-c
  519. (package
  520. (name "json-c")
  521. (version "0.13.1")
  522. (source (origin
  523. (method url-fetch)
  524. (uri (string-append
  525. "https://s3.amazonaws.com/json-c_releases/releases/json-c-"
  526. version ".tar.gz"))
  527. (sha256
  528. (base32
  529. "0ws8dz9nk8q2c0gbf66kg2r6mrkl7kamd3gpdv9zsyrz9n6n0zmq"))
  530. (modules '((guix build utils)))
  531. (snippet
  532. '(begin
  533. ;; Somehow 'config.h.in' is older than
  534. ;; 'aclocal.m4', which would trigger a rule to
  535. ;; run 'autoheader'.
  536. (set-file-time "config.h.in"
  537. (stat "aclocal.m4"))
  538. #t))))
  539. (build-system gnu-build-system)
  540. (home-page "https://github.com/json-c/json-c/wiki")
  541. (synopsis "JSON implementation in C")
  542. (description
  543. "JSON-C implements a reference counting object model that allows you to
  544. easily construct JSON objects in C, output them as JSON-formatted strings and
  545. parse JSON-formatted strings back into the C representation of JSON objects.
  546. It aims to conform to RFC 7159.")
  547. (license l:x11)))
  548. ;; TODO: remove this old version when all dependents have been updated.
  549. (define-public json-c-0.12
  550. (package
  551. (inherit json-c)
  552. (version "0.12.1")
  553. (source (origin
  554. (method url-fetch)
  555. (uri (string-append
  556. "https://s3.amazonaws.com/json-c_releases/releases/json-c-"
  557. version ".tar.gz"))
  558. (sha256
  559. (base32 "08qibrq29a5v7g23wi5icy6l4fbfw90h9ccps6vq0bcklx8n84ra"))
  560. (modules '((guix build utils)))
  561. (snippet
  562. '(begin
  563. ;; Somehow 'config.h.in' is older than
  564. ;; 'aclocal.m4', which would trigger a rule to
  565. ;; run 'autoheader'.
  566. (set-file-time "config.h.in"
  567. (stat "aclocal.m4"))
  568. ;; Don't try to build with -Werror.
  569. (substitute* (find-files "." "Makefile\\.in")
  570. (("-Werror") ""))
  571. #t))))))
  572. (define-public json-parser
  573. (package
  574. (name "json-parser")
  575. (version "1.1.0")
  576. (source (origin
  577. ;; do not use auto-generated tarballs
  578. (method git-fetch)
  579. (uri (git-reference
  580. (url "https://github.com/udp/json-parser.git")
  581. (commit (string-append "v" version))))
  582. (file-name (git-file-name name version))
  583. (sha256
  584. (base32
  585. "1ls7z4fx0sq633s5bc0j1gh36sv087gmrgr7rza22wjq2d4606yf"))))
  586. ;; FIXME: we should build the python bindings in a separate package
  587. (build-system gnu-build-system)
  588. ;; the tests are written for the python bindings which are not built here
  589. (arguments '(#:tests? #f))
  590. (home-page "https://github.com/udp/json-parser")
  591. (synopsis "JSON parser written in ANSI C")
  592. (description "This package provides a very low footprint JSON parser
  593. written in portable ANSI C.
  594. @itemize
  595. @item BSD licensed with no dependencies (i.e. just drop the C file into your
  596. project)
  597. @item Never recurses or allocates more memory than it needs
  598. @item Very simple API with operator sugar for C++
  599. @end itemize")
  600. (license l:bsd-2)))
  601. (define-public qjson
  602. (package
  603. (name "qjson")
  604. (version "0.9.0")
  605. (source (origin
  606. (method git-fetch)
  607. (uri (git-reference
  608. (url "https://github.com/flavio/qjson.git")
  609. (commit version)))
  610. (file-name (git-file-name name version))
  611. (sha256
  612. (base32
  613. "1f4wnxzx0qdmxzc7hqk28m0sva7z9p9xmxm6aifvjlp0ha6pmfxs"))))
  614. (build-system cmake-build-system)
  615. (arguments
  616. ;; The tests require a running X server.
  617. `(#:configure-flags '("-DQJSON_BUILD_TESTS=ON"
  618. "-DCMAKE_CXX_FLAGS=-std=gnu++11 -fPIC")
  619. #:phases
  620. (modify-phases %standard-phases
  621. (add-after 'unpack 'disable-broken-test
  622. (lambda _
  623. ;; FIXME: One test fails. See
  624. ;; https://github.com/flavio/qjson/issues/105
  625. (substitute* "tests/scanner/testscanner.cpp"
  626. (("QTest::newRow\\(\"too large exponential\"\\)" line)
  627. (string-append "//" line)))
  628. #t))
  629. (add-before 'check 'render-offscreen
  630. (lambda _ (setenv "QT_QPA_PLATFORM" "offscreen") #t)))))
  631. (inputs
  632. `(("qtbase" ,qtbase)))
  633. (home-page "http://qjson.sourceforge.net")
  634. (synopsis "Library that maps JSON data to QVariant objects")
  635. (description "QJson is a Qt-based library that maps JSON data to
  636. @code{QVariant} objects. JSON arrays will be mapped to @code{QVariantList}
  637. instances, while JSON's objects will be mapped to @code{QVariantMap}.")
  638. ;; Only version 2.1 of the license
  639. (license l:lgpl2.1)))
  640. (define-public krona-tools
  641. (package
  642. (name "krona-tools")
  643. (version "2.7")
  644. (source (origin
  645. (method url-fetch)
  646. (uri (string-append
  647. "https://github.com/marbl/Krona/releases/download/v"
  648. version "/KronaTools-" version ".tar"))
  649. (sha256
  650. (base32
  651. "0wvgllcqscsfb4xc09y3fqhx8i38pmr4w55vjs5y79wx56n710iq"))))
  652. (build-system perl-build-system)
  653. (arguments
  654. `(#:phases
  655. (modify-phases %standard-phases
  656. ;; There is no configure or build steps.
  657. (delete 'configure)
  658. (delete 'build)
  659. ;; Install script "install.pl" expects the build directory to remain
  660. ;; after installation, creating symlinks etc., so re-implement it
  661. ;; here.
  662. (replace 'install
  663. (lambda* (#:key outputs #:allow-other-keys)
  664. (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
  665. (perl (string-append (assoc-ref outputs "out")
  666. "/lib/perl5/site_perl/krona-tools/lib")))
  667. (mkdir-p bin)
  668. (for-each
  669. (lambda (script)
  670. (let* ((executable (string-append "scripts/" script ".pl")))
  671. ;; Prefix executables with 'kt' as install script does.
  672. (copy-file executable (string-append bin "/kt" script))))
  673. '("ClassifyBLAST"
  674. "GetContigMagnitudes"
  675. "GetLCA"
  676. "GetTaxIDFromAcc"
  677. "GetTaxInfo"
  678. "ImportBLAST"
  679. "ImportDiskUsage"
  680. "ImportEC"
  681. "ImportFCP"
  682. "ImportGalaxy"
  683. "ImportKrona"
  684. "ImportMETAREP-BLAST"
  685. "ImportMETAREP-EC"
  686. "ImportMGRAST"
  687. "ImportPhymmBL"
  688. "ImportRDP"
  689. "ImportRDPComparison"
  690. "ImportTaxonomy"
  691. "ImportText"
  692. "ImportXML"))
  693. (for-each
  694. (lambda (directory)
  695. (copy-recursively directory
  696. (string-append perl "/../" directory)))
  697. (list "data" "img" "taxonomy" "src"))
  698. (install-file "lib/KronaTools.pm" perl))))
  699. (add-after 'install 'wrap-program
  700. (lambda* (#:key inputs outputs #:allow-other-keys)
  701. (let* ((out (assoc-ref outputs "out"))
  702. (path (getenv "PERL5LIB")))
  703. (for-each
  704. (lambda (executable)
  705. (wrap-program executable
  706. `("PERL5LIB" ":" prefix
  707. (,(string-append out "/lib/perl5/site_perl/krona-tools/lib")))))
  708. (find-files (string-append out "/bin/") ".*")))))
  709. (delete 'check)
  710. (add-after 'wrap-program 'check
  711. (lambda* (#:key inputs outputs #:allow-other-keys)
  712. (with-directory-excursion "data"
  713. (invoke (string-append (assoc-ref outputs "out") "/bin/ktImportText")
  714. "ec.tsv")))))))
  715. (inputs
  716. `(("perl" ,perl)))
  717. (home-page "https://github.com/marbl/Krona/wiki")
  718. (synopsis "Hierarchical data exploration with zoomable HTML5 pie charts")
  719. (description
  720. "Krona is a flexible tool for exploring the relative proportions of
  721. hierarchical data, such as metagenomic classifications, using a radial,
  722. space-filling display. It is implemented using HTML5 and JavaScript, allowing
  723. charts to be explored locally or served over the Internet, requiring only a
  724. current version of any major web browser.")
  725. (license l:bsd-3)))
  726. (define-public rapidjson
  727. (package
  728. (name "rapidjson")
  729. (version "1.1.0")
  730. (source (origin
  731. (method git-fetch)
  732. (uri (git-reference
  733. (url "https://github.com/miloyip/rapidjson.git")
  734. (commit (string-append "v" version))))
  735. (file-name (git-file-name name version))
  736. (sha256
  737. (base32
  738. "1jixgb8w97l9gdh3inihz7avz7i770gy2j2irvvlyrq3wi41f5ab"))
  739. (modules '((guix build utils)))
  740. (snippet
  741. '(begin
  742. ;; Remove code using the problematic JSON license (see
  743. ;; <https://www.gnu.org/licenses/license-list.html#JSON>).
  744. (delete-file-recursively "bin/jsonchecker")
  745. #t))))
  746. (build-system cmake-build-system)
  747. (arguments
  748. `(,@(if (string-prefix? "aarch64" (or (%current-target-system)
  749. (%current-system)))
  750. '(#:phases
  751. (modify-phases %standard-phases
  752. (add-after 'unpack 'patch-aarch-march-detection
  753. (lambda _
  754. (substitute* (find-files "." "^CMakeLists\\.txt$")
  755. (("native") "armv8-a"))
  756. #t))))
  757. '())))
  758. (home-page "https://github.com/miloyip/rapidjson")
  759. (synopsis "JSON parser/generator for C++ with both SAX/DOM style API")
  760. (description
  761. "RapidJSON is a fast JSON parser/generator for C++ with both SAX/DOM
  762. style API.")
  763. (license l:expat)))
  764. (define-public libyajl
  765. (package
  766. (name "libyajl")
  767. (version "2.1.0")
  768. (source (origin
  769. (method git-fetch)
  770. (uri (git-reference
  771. (url "https://github.com/lloyd/yajl.git")
  772. (commit version)))
  773. (file-name (git-file-name name version))
  774. (sha256
  775. (base32
  776. "00yj06drb6izcxfxfqlhimlrb089kka0w0x8k27pyzyiq7qzcvml"))))
  777. (build-system cmake-build-system)
  778. (arguments
  779. '(#:phases
  780. (modify-phases %standard-phases
  781. (add-after 'patch-source-shebangs 'patch-tests
  782. (lambda _
  783. (substitute* "test/parsing/run_tests.sh"
  784. (("`which echo`") (which "echo")))
  785. #t)))))
  786. (home-page "https://lloyd.github.io/yajl/")
  787. (synopsis "C library for parsing JSON")
  788. (description
  789. "Yet Another JSON Library (YAJL) is a small event-driven (SAX-style) JSON
  790. parser written in ANSI C and a small validating JSON generator.")
  791. (license l:isc)))
  792. (define-public libwebsockets
  793. (package
  794. (name "libwebsockets")
  795. (version "1.3")
  796. (source (origin
  797. ;; The project does not publish tarballs, so we have to take
  798. ;; things from Git.
  799. (method git-fetch)
  800. (uri (git-reference
  801. (url "https://github.com/warmcat/libwebsockets.git")
  802. (commit (string-append "v" version
  803. "-chrome37-firefox30"))))
  804. (sha256
  805. (base32
  806. "12fqh2d2098mgf0ls19p9lzibpsqhv7mc5rn1yvrbfnazmcr40g4"))
  807. (file-name (string-append name "-" version))))
  808. (build-system cmake-build-system)
  809. (arguments
  810. ;; XXX: The thing lacks a 'make test' target, because CMakeLists.txt
  811. ;; doesn't use 'add_test', and it's unclear how to run the test suite.
  812. '(#:tests? #f))
  813. (native-inputs `(("perl" ,perl))) ; to build the HTML doc
  814. (inputs `(("zlib" ,zlib)
  815. ("openssl" ,openssl)))
  816. (synopsis "WebSockets library written in C")
  817. (description
  818. "Libwebsockets is a library that allows C programs to establish client
  819. and server WebSockets connections---a protocol layered above HTTP that allows
  820. for efficient socket-like bidirectional reliable communication channels.")
  821. (home-page "http://libwebsockets.org/")
  822. ;; This is LGPLv2.1-only with extra exceptions specified in 'LICENSE'.
  823. (license l:lgpl2.1)))
  824. (define-public libpsl
  825. (package
  826. (name "libpsl")
  827. (version "0.20.2")
  828. (source (origin
  829. (method url-fetch)
  830. (uri (string-append "https://github.com/rockdaboot/libpsl/"
  831. "releases/download/libpsl-" version
  832. "/libpsl-" version ".tar.gz"))
  833. (sha256
  834. (base32
  835. "03sn3fbcrmgl9x2f1gc6rbrdlbrnwbhrnkgi733gqb95cvmhmzgq"))))
  836. (build-system gnu-build-system)
  837. (native-inputs
  838. `(("pkg-config" ,pkg-config)))
  839. (inputs
  840. `(("libidn2" ,libidn2)
  841. ("libunistring" ,libunistring)
  842. ("python-2" ,python-2)))
  843. (home-page "https://github.com/rockdaboot/libpsl")
  844. (synopsis "C library for the Publix Suffix List")
  845. (description
  846. "A \"public suffix\" is a domain name under which Internet users can
  847. directly register own names.
  848. Browsers and other web clients can use it to avoid privacy-leaking
  849. \"supercookies\", avoid privacy-leaking \"super domain\" certificates, domain
  850. highlighting parts of the domain in a user interface, and sorting domain lists
  851. by site.
  852. Libpsl has built-in PSL data for fast access, allows to load PSL data from
  853. files, checks if a given domain is a public suffix, provides immediate cookie
  854. domain verification, finds the longest public part of a given domain, finds
  855. the shortest private part of a given domain, works with international
  856. domains (UTF-8 and IDNA2008 Punycode), is thread-safe, and handles IDNA2008
  857. UTS#46.")
  858. (license l:x11)))
  859. (define-public tidy
  860. (package
  861. (name "tidy")
  862. (version "20091223")
  863. (source (origin
  864. (method cvs-fetch)
  865. (uri (cvs-reference
  866. (root-directory
  867. ":pserver:anonymous@tidy.cvs.sourceforge.net:/cvsroot/tidy")
  868. (module "tidy")
  869. (revision "2009-12-23")))
  870. (file-name (string-append name "-" version "-checkout"))
  871. (sha256
  872. (base32
  873. "14dsnmirjcrvwsffqp3as70qr6bbfaig2fv3zvs5g7005jrsbvpb"))
  874. (patches (search-patches "tidy-CVE-2015-5522+5523.patch"))))
  875. (build-system gnu-build-system)
  876. (arguments
  877. '(#:phases (modify-phases %standard-phases
  878. (replace 'bootstrap
  879. (lambda* (#:key inputs #:allow-other-keys)
  880. ;; configure.in and Makefile.am aren't in the root of the
  881. ;; source tree.
  882. (copy-recursively "build/gnuauto" ".")
  883. (setenv "AUTOMAKE" "automake --foreign")
  884. (invoke "autoreconf" "-vfi"))))))
  885. (native-inputs
  886. `(("automake" ,automake)
  887. ("autoconf" ,autoconf)
  888. ("libtool" ,libtool)))
  889. (synopsis "HTML validator and tidier")
  890. (description "HTML Tidy is a command-line tool and C library that can be
  891. used to validate and fix HTML data.")
  892. (home-page "http://tidy.sourceforge.net/")
  893. (license (l:x11-style "file:///include/tidy.h"))))
  894. (define-public tinyproxy
  895. (package
  896. (name "tinyproxy")
  897. (version "1.10.0")
  898. (source (origin
  899. (method url-fetch)
  900. (uri (string-append "https://github.com/tinyproxy/tinyproxy/"
  901. "releases/download/" version "/tinyproxy-"
  902. version ".tar.xz"))
  903. (sha256
  904. (base32
  905. "10jnk6y2swld25mm47mjc0nkffyzsfysnsxwr7cs0ns1kil8ggjr"))))
  906. (build-system gnu-build-system)
  907. (arguments
  908. `(#:configure-flags
  909. (list
  910. ;; For the log file, etc.
  911. "--localstatedir=/var")
  912. #:phases
  913. (modify-phases %standard-phases
  914. (add-before 'build 'pre-build
  915. (lambda* (#:key inputs #:allow-other-keys #:rest args)
  916. ;; Uncommenting the next two lines may assist in debugging
  917. ;; (substitute* "docs/man5/Makefile" (("a2x") "a2x -v"))
  918. ;; (setenv "XML_DEBUG_CATALOG" "1")
  919. #t)))))
  920. (home-page "https://tinyproxy.github.io/")
  921. (synopsis "Light-weight HTTP/HTTPS proxy daemon")
  922. (description "Tinyproxy is a light-weight HTTP/HTTPS proxy
  923. daemon. Designed from the ground up to be fast and yet small, it is an ideal
  924. solution for use cases such as embedded deployments where a full featured HTTP
  925. proxy is required, but the system resources for a larger proxy are
  926. unavailable.")
  927. (license l:gpl2+)))
  928. (define-public polipo
  929. (package
  930. (name "polipo")
  931. (version "1.1.1")
  932. (source
  933. (origin
  934. (method url-fetch)
  935. (uri (string-append
  936. "http://www.pps.univ-paris-diderot.fr/~jch/software/files/polipo/polipo-"
  937. version ".tar.gz"))
  938. (sha256
  939. (base32
  940. "05g09sg9qkkhnc2mxldm1w1xkxzs2ylybkjzs28w8ydbjc3pand2"))))
  941. (native-inputs `(("texinfo" ,texinfo)))
  942. (build-system gnu-build-system)
  943. (arguments
  944. `(#:phases (modify-phases %standard-phases
  945. (delete 'configure))
  946. #:make-flags (let ((out (assoc-ref %outputs "out")))
  947. (list (string-append "PREFIX=" out)
  948. (string-append "LOCAL_ROOT="
  949. out "/share/polipo/www")
  950. "CC=gcc"))
  951. ;; No 'check' target.
  952. #:tests? #f))
  953. (home-page "http://www.pps.univ-paris-diderot.fr/~jch/software/polipo/")
  954. (synopsis "Small caching web proxy")
  955. (description
  956. "Polipo is a small caching web proxy (web cache, HTTP proxy, and proxy
  957. server). It was primarily designed to be used by one person or a small group
  958. of people.")
  959. (license l:expat)))
  960. (define-public websockify
  961. (package
  962. (name "websockify")
  963. (version "0.8.0")
  964. (source (origin
  965. (method git-fetch)
  966. (uri (git-reference
  967. (url "https://github.com/novnc/websockify.git")
  968. (commit (string-append "v" version))))
  969. (file-name (git-file-name name version))
  970. (sha256
  971. (base32
  972. "0pcic8qs0gdwrfjgfaf893jyddaw97wcjm2mmvwn0xyhmy8mbmw1"))))
  973. (build-system python-build-system)
  974. (arguments
  975. `(#:tests? #f)) ; FIXME: 2 out of 6 tests fail with "ImportError: No module
  976. ; named 'stubout'". The tests can be run by replacing the check phase with
  977. ; the command "python setup.py nosetests --verbosity=3".
  978. (native-inputs `(; Required for tests:
  979. ("python-mox3" ,python-mox3)
  980. ("python-nose" ,python-nose)))
  981. (propagated-inputs `(("python-numpy" ,python-numpy)))
  982. (home-page "https://github.com/novnc/websockify")
  983. (synopsis "WebSockets support for any application/server")
  984. (description "Websockify translates WebSockets traffic to normal socket
  985. traffic. Websockify accepts the WebSockets handshake, parses it, and then
  986. begins forwarding traffic between the client and the target in both
  987. directions.")
  988. (license l:lgpl3)))
  989. (define-public wwwoffle
  990. (package
  991. (name "wwwoffle")
  992. (version "2.9j")
  993. (source (origin
  994. (method url-fetch)
  995. (uri (string-append "https://www.gedanken.org.uk/software/"
  996. "wwwoffle/download/wwwoffle-"
  997. version ".tgz"))
  998. (sha256
  999. (base32
  1000. "1ihil1xq9dp21hf108khxbw6f3baq0w5c0j3af038y6lkmad4vdi"))))
  1001. (build-system gnu-build-system)
  1002. (arguments
  1003. `(#:configure-flags '("--with-gnutls")
  1004. #:tests? #f)) ; no test target
  1005. (native-inputs `(("flex" ,flex)))
  1006. (inputs `(("gnutls" ,gnutls)
  1007. ("libcrypt" ,libgcrypt)))
  1008. (home-page "https://www.gedanken.org.uk/software/wwwoffle/")
  1009. (synopsis "Caching web proxy optimized for intermittent internet links")
  1010. (description "WWWOFFLE is a proxy web server that is especially good for
  1011. intermittent internet links. It can cache HTTP, HTTPS, FTP, and finger
  1012. protocols, and supports browsing and requesting pages while offline, indexing,
  1013. modifying pages and incoming and outgoing headers, monitoring pages for
  1014. changes, and much more.")
  1015. (license l:gpl2+)))
  1016. (define-public liboauth
  1017. (package
  1018. (name "liboauth")
  1019. (version "1.0.3")
  1020. (source (origin
  1021. (method url-fetch)
  1022. (uri (string-append "mirror://sourceforge/liboauth/liboauth-"
  1023. version ".tar.gz"))
  1024. (sha256
  1025. (base32
  1026. "07w1aq8y8wld43wmbk2q8134p3bfkp2vma78mmsfgw2jn1bh3xhd"))))
  1027. (build-system gnu-build-system)
  1028. (arguments '(#:configure-flags '("--enable-nss")))
  1029. (native-inputs `(("pkg-config" ,pkg-config)))
  1030. (propagated-inputs
  1031. `(("curl" ,curl)
  1032. ("nss" ,nss)))
  1033. (home-page "https://sourceforge.net/projects/liboauth")
  1034. (synopsis "C library implementing the OAuth API")
  1035. (description
  1036. "liboauth is a collection of C functions implementing the OAuth API.
  1037. liboauth provides functions to escape and encode strings according to OAuth
  1038. specifications and offers high-level functionality built on top to sign
  1039. requests or verify signatures using either NSS or OpenSSL for calculating the
  1040. hash/signatures.")
  1041. ;; Source code may be distributed under either license.
  1042. (license (list l:expat l:gpl2+))))
  1043. (define-public libyaml
  1044. (package
  1045. (name "libyaml")
  1046. (version "0.1.7")
  1047. (source
  1048. (origin
  1049. (method url-fetch)
  1050. (uri (string-append
  1051. "http://pyyaml.org/download/libyaml/yaml-"
  1052. version ".tar.gz"))
  1053. (sha256
  1054. (base32
  1055. "0a87931cx5m14a1x8rbjix3nz7agrcgndf4h392vm62a4rby9240"))))
  1056. (build-system gnu-build-system)
  1057. (home-page "http://pyyaml.org/wiki/LibYAML")
  1058. (synopsis "YAML 1.1 parser and emitter written in C")
  1059. (description
  1060. "LibYAML is a YAML 1.1 parser and emitter written in C.")
  1061. (license l:expat)))
  1062. (define-public libquvi-scripts
  1063. (package
  1064. (name "libquvi-scripts")
  1065. (version "0.4.21")
  1066. (source
  1067. (origin
  1068. (method url-fetch)
  1069. (uri (string-append
  1070. "mirror://sourceforge/quvi/" (version-major+minor version) "/"
  1071. name "/" name "-" version ".tar.xz"))
  1072. (sha256
  1073. (base32 "0d0giry6bb57pnidymvdl7i5x9bq3ljk3g4bs294hcr5mj3cq0kw"))))
  1074. (build-system gnu-build-system)
  1075. (home-page "http://quvi.sourceforge.net/")
  1076. (synopsis "Media stream URL parser")
  1077. (description "This package contains support scripts called by libquvi to
  1078. parse media stream properties.")
  1079. (license l:lgpl2.1+)))
  1080. (define-public libquvi
  1081. (package
  1082. (name "libquvi")
  1083. (version "0.4.1")
  1084. (source
  1085. (origin
  1086. (method url-fetch)
  1087. (uri (string-append
  1088. "mirror://sourceforge/quvi/" (version-major+minor version) "/" name "/"
  1089. name "-" version ".tar.xz"))
  1090. (sha256
  1091. (base32 "00x9gbmzc5cns0gnfag0hsphcr3cb33vbbb9s7ppvvd6bxz2z1mm"))))
  1092. (build-system gnu-build-system)
  1093. (native-inputs `(("pkg-config" ,pkg-config)))
  1094. (inputs
  1095. `(("curl" ,curl)
  1096. ("cyrus-sasl" ,cyrus-sasl)
  1097. ("libquvi-scripts" ,libquvi-scripts)
  1098. ("lua" ,lua-5.1)
  1099. ("openssl" ,openssl)
  1100. ("zlib" ,zlib)))
  1101. (arguments
  1102. ;; Lua provides no .pc file, so add CFLAGS/LIBS manually.
  1103. '(#:configure-flags
  1104. (let ((lua (assoc-ref %build-inputs "lua")))
  1105. (list
  1106. (string-append "liblua_CFLAGS=-I" lua "/include")
  1107. (string-append "liblua_LIBS=-L" lua "/libs -llua")))))
  1108. (home-page "http://quvi.sourceforge.net/")
  1109. (synopsis "Media stream URL parser")
  1110. (description "libquvi is a library with a C API for parsing media stream
  1111. URLs and extracting their actual media files.")
  1112. (license l:lgpl2.1+)))
  1113. (define-public quvi
  1114. (package
  1115. (name "quvi")
  1116. (version "0.4.2")
  1117. (source
  1118. (origin
  1119. (method url-fetch)
  1120. (uri (string-append
  1121. "mirror://sourceforge/" name "/" (version-major+minor version)
  1122. "/" name "/" name "-" version ".tar.xz"))
  1123. (sha256
  1124. (base32 "09lhl6dv5zpryasx7yjslfrcdcqlsbwapvd5lg7w6sm5x5n3k8ci"))))
  1125. (build-system gnu-build-system)
  1126. (native-inputs `(("pkg-config" ,pkg-config)))
  1127. (inputs
  1128. `(("curl" ,curl)
  1129. ("libquvi" ,libquvi)))
  1130. (home-page "http://quvi.sourceforge.net/")
  1131. (synopsis "Media stream URL parser")
  1132. (description "quvi is a command-line-tool suite to extract media files
  1133. from streaming URLs. It is a command-line wrapper for the libquvi library.")
  1134. (license l:lgpl2.1+)))
  1135. (define-public serf
  1136. (package
  1137. (name "serf")
  1138. (version "1.3.9")
  1139. (source
  1140. (origin
  1141. (method url-fetch)
  1142. (uri (string-append "https://archive.apache.org/dist/serf/serf-"
  1143. version ".tar.bz2"))
  1144. (sha256
  1145. (base32 "1k47gbgpp52049andr28y28nbwh9m36bbb0g8p0aka3pqlhjv72l"))))
  1146. (build-system scons-build-system)
  1147. (propagated-inputs
  1148. `(("apr" ,apr)
  1149. ("apr-util" ,apr-util)
  1150. ("openssl" ,openssl)))
  1151. (inputs
  1152. `(;; TODO: Fix build with gss.
  1153. ;;("gss" ,gss)
  1154. ("zlib" ,zlib)))
  1155. (arguments
  1156. `(#:scons ,scons-python2
  1157. #:scons-flags (list (string-append "APR=" (assoc-ref %build-inputs "apr"))
  1158. (string-append "APU=" (assoc-ref %build-inputs "apr-util"))
  1159. (string-append "OPENSSL=" (assoc-ref %build-inputs "openssl"))
  1160. ;; (string-append "GSSAPI=" (assoc-ref %build-inputs "gss"))
  1161. (string-append "ZLIB=" (assoc-ref %build-inputs "zlib"))
  1162. (string-append "PREFIX=" %output))
  1163. #:phases
  1164. (modify-phases %standard-phases
  1165. (add-after 'unpack 'scons-propagate-environment
  1166. (lambda _
  1167. ;; By design, SCons does not, by default, propagate
  1168. ;; environment variables to subprocesses. See:
  1169. ;; <http://comments.gmane.org/gmane.linux.distributions.nixos/4969>
  1170. ;; Here, we modify the SConstruct file to arrange for
  1171. ;; environment variables to be propagated.
  1172. (substitute* "SConstruct"
  1173. (("^env = Environment\\(")
  1174. "env = Environment(ENV=os.environ, "))))
  1175. (add-before 'check 'disable-broken-tests
  1176. (lambda _
  1177. ;; These tests rely on SSL certificates that expired 2017-04-18.
  1178. ;; While there are newer certs available upstream, we don't want
  1179. ;; this package to suddenly "expire" some time in the future.
  1180. ;; https://bugs.gnu.org/26671
  1181. (let ((broken-tests
  1182. '("test_ssl_trust_rootca"
  1183. "test_ssl_certificate_chain_with_anchor"
  1184. "test_ssl_certificate_chain_all_from_server"
  1185. "test_ssl_no_servercert_callback_allok"
  1186. "test_ssl_large_response"
  1187. "test_ssl_large_request"
  1188. "test_ssl_client_certificate"
  1189. "test_ssl_future_server_cert"
  1190. "test_setup_ssltunnel"
  1191. "test_ssltunnel_basic_auth"
  1192. "test_ssltunnel_basic_auth_server_has_keepalive_off"
  1193. "test_ssltunnel_basic_auth_proxy_has_keepalive_off"
  1194. "test_ssltunnel_basic_auth_proxy_close_conn_on_200resp"
  1195. "test_ssltunnel_digest_auth")))
  1196. (for-each
  1197. (lambda (test)
  1198. (substitute* "test/test_context.c"
  1199. (((string-append "SUITE_ADD_TEST\\(suite, " test "\\);")) "")))
  1200. broken-tests)
  1201. #t))))))
  1202. (home-page "https://serf.apache.org/")
  1203. (synopsis "High-performance asynchronous HTTP client library")
  1204. (description
  1205. "serf is a C-based HTTP client library built upon the Apache Portable
  1206. Runtime (APR) library. It multiplexes connections, running the read/write
  1207. communication asynchronously. Memory copies and transformations are kept to a
  1208. minimum to provide high performance operation.")
  1209. ;; Most of the code is covered by the Apache License, Version 2.0, but the
  1210. ;; bundled CuTest framework uses a different non-copyleft license.
  1211. (license (list l:asl2.0 (l:non-copyleft "file://test/CuTest-README.txt")))))
  1212. (define-public sassc
  1213. ;; libsass must be statically linked and it isn't included in the sassc
  1214. ;; release tarballs, hence this odd package recipe.
  1215. (let* ((version "3.4.5")
  1216. (libsass
  1217. (origin
  1218. (method url-fetch)
  1219. (uri (string-append
  1220. "https://github.com/sass/libsass/archive/"
  1221. version ".tar.gz"))
  1222. (file-name (string-append "libsass-" version ".tar.gz"))
  1223. (sha256
  1224. (base32
  1225. "1j22138l5ymqjfj5zan9d2hipa3ahjmifgpjahqy1smlg5sb837x")))))
  1226. (package
  1227. (name "sassc")
  1228. (version version)
  1229. (source (origin
  1230. (method url-fetch)
  1231. (uri (string-append "https://github.com/sass/sassc/archive/"
  1232. version ".tar.gz"))
  1233. (file-name (string-append "sassc-" version ".tar.gz"))
  1234. (sha256
  1235. (base32
  1236. "1xk4kmmvziz9sal3swpqa10q0s289xjpcz8aggmly8mvxvmngsi9"))))
  1237. (build-system gnu-build-system)
  1238. (arguments
  1239. `(#:make-flags
  1240. (list "CC=gcc"
  1241. (string-append "PREFIX=" (assoc-ref %outputs "out")))
  1242. #:test-target "test"
  1243. ;; FIXME: "make test" rebuilds the application and gets lost in a
  1244. ;; non-existing directory.
  1245. #:tests? #f
  1246. #:phases
  1247. (modify-phases %standard-phases
  1248. (delete 'bootstrap)
  1249. (delete 'configure)
  1250. (add-after 'unpack 'unpack-libsass-and-set-path
  1251. (lambda* (#:key inputs #:allow-other-keys)
  1252. (invoke "tar" "xvf" (assoc-ref inputs "libsass"))
  1253. (setenv "SASS_LIBSASS_PATH"
  1254. (string-append (getcwd) "/libsass-" ,version))
  1255. #t)))))
  1256. (inputs
  1257. `(("libsass" ,libsass)))
  1258. (synopsis "CSS pre-processor")
  1259. (description "SassC is a compiler written in C for the CSS pre-processor
  1260. language known as SASS.")
  1261. (home-page "http://sass-lang.com/libsass")
  1262. (license l:expat))))
  1263. (define-public perl-apache-logformat-compiler
  1264. (package
  1265. (name "perl-apache-logformat-compiler")
  1266. (version "0.33")
  1267. (source
  1268. (origin
  1269. (method url-fetch)
  1270. (uri (string-append "mirror://cpan/authors/id/K/KA/KAZEBURO/"
  1271. "Apache-LogFormat-Compiler-" version ".tar.gz"))
  1272. (sha256
  1273. (base32
  1274. "17blk3zhp05azgypn25ydxf3d7fyfgr9bxyiv7xkchhqma96vwqv"))))
  1275. (build-system perl-build-system)
  1276. (native-inputs
  1277. `(("perl-http-message" ,perl-http-message)
  1278. ("perl-module-build" ,perl-module-build)
  1279. ("perl-test-mocktime" ,perl-test-mocktime)
  1280. ("perl-try-tiny" ,perl-try-tiny)
  1281. ("perl-uri" ,perl-uri)))
  1282. (propagated-inputs
  1283. `(("perl-posix-strftime-compiler" ,perl-posix-strftime-compiler)))
  1284. (arguments `(#:tests? #f)) ;TODO: Timezone test failures
  1285. (home-page "https://metacpan.org/release/Apache-LogFormat-Compiler")
  1286. (synopsis "Compile a log format string to perl-code")
  1287. (description "This module provides methods to compile a log format string
  1288. to perl-code, for faster generation of access_log lines.")
  1289. (license l:perl-license)))
  1290. (define-public perl-authen-sasl
  1291. (package
  1292. (name "perl-authen-sasl")
  1293. (version "2.16")
  1294. (source
  1295. (origin
  1296. (method url-fetch)
  1297. (uri (string-append "mirror://cpan/authors/id/G/GB/GBARR/"
  1298. "Authen-SASL-" version ".tar.gz"))
  1299. (sha256
  1300. (base32
  1301. "02afhlrdq5hh5g8b32fa79fqq5i76qzwfqqvfi9zi57h31szl536"))))
  1302. (build-system perl-build-system)
  1303. (arguments
  1304. '(#:phases
  1305. (modify-phases %standard-phases
  1306. (add-after 'unpack 'set-env
  1307. ;; Fix the build with Perl 5.26.0. Try removing this phase for later
  1308. ;; versions of perl-authen-sasl.
  1309. (lambda _ (setenv "PERL_USE_UNSAFE_INC" "1") #t)))))
  1310. (propagated-inputs
  1311. `(("perl-digest-hmac" ,perl-digest-hmac)
  1312. ("perl-gssapi" ,perl-gssapi)))
  1313. (home-page "https://metacpan.org/release/Authen-SASL")
  1314. (synopsis "SASL authentication framework")
  1315. (description "Authen::SASL provides an SASL authentication framework.")
  1316. (license l:perl-license)))
  1317. (define-public perl-catalyst-action-renderview
  1318. (package
  1319. (name "perl-catalyst-action-renderview")
  1320. (version "0.16")
  1321. (source
  1322. (origin
  1323. (method url-fetch)
  1324. (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
  1325. "Catalyst-Action-RenderView-"
  1326. version ".tar.gz"))
  1327. (sha256
  1328. (base32
  1329. "0j1rrld13cjk7ks92b5hv3xw4rfm2lvmksb4rlzd8mx0a0wj0rc5"))))
  1330. (build-system perl-build-system)
  1331. (native-inputs
  1332. `(("perl-http-request-ascgi" ,perl-http-request-ascgi)
  1333. ("perl-module-install" ,perl-module-install)))
  1334. (propagated-inputs
  1335. `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
  1336. ("perl-data-visitor" ,perl-data-visitor)
  1337. ("perl-mro-compat" ,perl-mro-compat)))
  1338. (home-page "https://metacpan.org/release/Catalyst-Action-RenderView")
  1339. (synopsis "Sensible default Catalyst action")
  1340. (description "This Catalyst action implements a sensible default end
  1341. action, which will forward to the first available view.")
  1342. (license l:perl-license)))
  1343. (define-public perl-catalyst-action-rest
  1344. (package
  1345. (name "perl-catalyst-action-rest")
  1346. (version "1.20")
  1347. (source (origin
  1348. (method url-fetch)
  1349. (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
  1350. "Catalyst-Action-REST-" version ".tar.gz"))
  1351. (sha256
  1352. (base32
  1353. "1mpa64p61f3dp24xnhdraswch4sqj5vyv1iivcvvh5h0xi0haiy0"))))
  1354. (build-system perl-build-system)
  1355. (native-inputs
  1356. `(("perl-test-requires" ,perl-test-requires)
  1357. ("perl-module-install" ,perl-module-install)))
  1358. (propagated-inputs
  1359. `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
  1360. ("perl-class-inspector" ,perl-class-inspector)
  1361. ("perl-config-general" ,perl-config-general)
  1362. ("perl-cpanel-json-xs" ,perl-cpanel-json-xs)
  1363. ("perl-libwww" ,perl-libwww)
  1364. ("perl-moose" ,perl-moose)
  1365. ("perl-mro-compat" ,perl-mro-compat)
  1366. ("perl-namespace-autoclean" ,perl-namespace-autoclean)
  1367. ("perl-params-validate" ,perl-params-validate)
  1368. ("perl-uri-find" ,perl-uri-find)
  1369. ("perl-xml-simple" ,perl-xml-simple)))
  1370. (home-page "https://metacpan.org/release/Catalyst-Action-REST")
  1371. (synopsis "Automated REST Method Dispatching")
  1372. (description "This Action handles doing automatic method dispatching for
  1373. REST requests. It takes a normal Catalyst action, and changes the dispatch to
  1374. append an underscore and method name. First it will try dispatching to an
  1375. action with the generated name, and failing that it will try to dispatch to a
  1376. regular method.")
  1377. (license l:perl-license)))
  1378. (define-public perl-catalyst-authentication-store-dbix-class
  1379. (package
  1380. (name "perl-catalyst-authentication-store-dbix-class")
  1381. (version "0.1506")
  1382. (source
  1383. (origin
  1384. (method url-fetch)
  1385. (uri (string-append "mirror://cpan/authors/id/I/IL/ILMARI/"
  1386. "Catalyst-Authentication-Store-DBIx-Class-"
  1387. version ".tar.gz"))
  1388. (sha256
  1389. (base32
  1390. "0i5ja7690fs9nhxcij6lw51j804sm8s06m5mvk1n8pi8jljrymvw"))))
  1391. (build-system perl-build-system)
  1392. (native-inputs
  1393. `(("perl-catalyst-plugin-authorization-roles"
  1394. ,perl-catalyst-plugin-authorization-roles)
  1395. ("perl-catalyst-plugin-session-state-cookie"
  1396. ,perl-catalyst-plugin-session-state-cookie)
  1397. ("perl-dbd-sqlite" ,perl-dbd-sqlite)
  1398. ("perl-module-install" ,perl-module-install)
  1399. ("perl-test-www-mechanize-catalyst" ,perl-test-www-mechanize-catalyst)))
  1400. (propagated-inputs
  1401. `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
  1402. ("perl-catalyst-plugin-authentication"
  1403. ,perl-catalyst-plugin-authentication)
  1404. ("perl-dbix-class" ,perl-dbix-class)
  1405. ("perl-catalyst-model-dbic-schema" ,perl-catalyst-model-dbic-schema)))
  1406. (home-page
  1407. "https://metacpan.org/release/Catalyst-Authentication-Store-DBIx-Class")
  1408. (synopsis "Storage class for Catalyst authentication using DBIx::Class")
  1409. (description "The Catalyst::Authentication::Store::DBIx::Class class
  1410. provides access to authentication information stored in a database via
  1411. DBIx::Class.")
  1412. (license l:perl-license)))
  1413. (define-public perl-catalyst-component-instancepercontext
  1414. (package
  1415. (name "perl-catalyst-component-instancepercontext")
  1416. (version "0.001001")
  1417. (source
  1418. (origin
  1419. (method url-fetch)
  1420. (uri (string-append "mirror://cpan/authors/id/G/GR/GRODITI/"
  1421. "Catalyst-Component-InstancePerContext-"
  1422. version ".tar.gz"))
  1423. (sha256
  1424. (base32
  1425. "0wfj4vnn2cvk6jh62amwlg050p37fcwdgrn9amcz24z6w4qgjqvz"))))
  1426. (build-system perl-build-system)
  1427. (native-inputs
  1428. `(("perl-module-install" ,perl-module-install)))
  1429. (propagated-inputs
  1430. `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
  1431. ("perl-moose" ,perl-moose)))
  1432. (home-page
  1433. "https://metacpan.org/release/Catalyst-Component-InstancePerContext")
  1434. (synopsis "Create only one instance of Moose component per context")
  1435. (description "Catalyst::Component::InstancePerContext returns a new
  1436. instance of a component on each request.")
  1437. (license l:perl-license)))
  1438. (define-public perl-catalyst-devel
  1439. (package
  1440. (name "perl-catalyst-devel")
  1441. (version "1.39")
  1442. (source
  1443. (origin
  1444. (method url-fetch)
  1445. (uri (string-append "mirror://cpan/authors/id/I/IL/ILMARI/"
  1446. "Catalyst-Devel-" version ".tar.gz"))
  1447. (sha256
  1448. (base32
  1449. "12m50bbkggjmpxihv3wnvr0g2qng0zwhlzi5ygppjz8wh2x73qxw"))))
  1450. (build-system perl-build-system)
  1451. (native-inputs
  1452. `(("perl-test-fatal" ,perl-test-fatal)))
  1453. (propagated-inputs
  1454. `(("perl-catalyst-action-renderview" ,perl-catalyst-action-renderview)
  1455. ("perl-catalyst-plugin-configloader" ,perl-catalyst-plugin-configloader)
  1456. ("perl-catalyst-plugin-static-simple" ,perl-catalyst-plugin-static-simple)
  1457. ("perl-catalyst-runtime" ,perl-catalyst-runtime)
  1458. ("perl-config-general" ,perl-config-general)
  1459. ("perl-file-changenotify" ,perl-file-changenotify)
  1460. ("perl-file-copy-recursive" ,perl-file-copy-recursive)
  1461. ("perl-file-sharedir" ,perl-file-sharedir)
  1462. ("perl-module-install" ,perl-module-install)
  1463. ("perl-moose" ,perl-moose)
  1464. ("perl-moosex-emulate-class-accessor-fast"
  1465. ,perl-moosex-emulate-class-accessor-fast)
  1466. ("perl-namespace-autoclean" ,perl-namespace-autoclean)
  1467. ("perl-namespace-clean" ,perl-namespace-clean)
  1468. ("perl-path-class" ,perl-path-class)
  1469. ("perl-template-toolkit" ,perl-template-toolkit)))
  1470. (home-page "https://metacpan.org/release/Catalyst-Devel")
  1471. (synopsis "Catalyst Development Tools")
  1472. (description "The Catalyst-Devel distribution includes a variety of
  1473. modules useful for the development of Catalyst applications, but not required
  1474. to run them. Catalyst-Devel includes the Catalyst::Helper system, which
  1475. autogenerates scripts and tests; Module::Install::Catalyst, a Module::Install
  1476. extension for Catalyst; and requirements for a variety of development-related
  1477. modules.")
  1478. (license l:perl-license)))
  1479. (define-public perl-catalyst-dispatchtype-regex
  1480. (package
  1481. (name "perl-catalyst-dispatchtype-regex")
  1482. (version "5.90035")
  1483. (source
  1484. (origin
  1485. (method url-fetch)
  1486. (uri (string-append "mirror://cpan/authors/id/M/MG/MGRIMES/"
  1487. "Catalyst-DispatchType-Regex-" version ".tar.gz"))
  1488. (sha256
  1489. (base32
  1490. "06jq1lmpq88rmp9zik5gqczg234xac0hiyc3l698iif7zsgcyb80"))))
  1491. (build-system perl-build-system)
  1492. (native-inputs
  1493. `(("perl-module-build" ,perl-module-build) ;needs Module::Build >= 0.4004
  1494. ("perl-namespace-autoclean" ,perl-namespace-autoclean)
  1495. ("perl-catalyst-runtime" ,perl-catalyst-runtime)))
  1496. (propagated-inputs
  1497. `(("perl-moose" ,perl-moose)
  1498. ("perl-text-simpletable" ,perl-text-simpletable)))
  1499. (home-page "https://metacpan.org/release/Catalyst-DispatchType-Regex")
  1500. (synopsis "Regex DispatchType for Catalyst")
  1501. (description "Dispatch type managing path-matching behaviour using
  1502. regexes. Regex dispatch types have been deprecated and removed from Catalyst
  1503. core. It is recommend that you use Chained methods or other techniques
  1504. instead. As part of the refactoring, the dispatch priority of Regex vs Regexp
  1505. vs LocalRegex vs LocalRegexp may have changed. Priority is now influenced by
  1506. when the dispatch type is first seen in your application.")
  1507. (license l:perl-license)))
  1508. (define-public perl-catalyst-model-dbic-schema
  1509. (package
  1510. (name "perl-catalyst-model-dbic-schema")
  1511. (version "0.65")
  1512. (source
  1513. (origin
  1514. (method url-fetch)
  1515. (uri (string-append "mirror://cpan/authors/id/G/GB/GBJK/"
  1516. "Catalyst-Model-DBIC-Schema-"
  1517. version ".tar.gz"))
  1518. (sha256
  1519. (base32
  1520. "1spfjcjc0b9dv3k2gbanqj1m1cqzyxb32p76dhdwizzpbvpi3a96"))))
  1521. (build-system perl-build-system)
  1522. (native-inputs
  1523. `(("perl-dbd-sqlite" ,perl-dbd-sqlite)
  1524. ("perl-module-install" ,perl-module-install)
  1525. ("perl-test-exception" ,perl-test-exception)
  1526. ("perl-test-requires" ,perl-test-requires)))
  1527. (propagated-inputs
  1528. `(("perl-carp-clan" ,perl-carp-clan)
  1529. ("perl-catalyst-component-instancepercontext"
  1530. ,perl-catalyst-component-instancepercontext)
  1531. ("perl-catalyst-runtime" ,perl-catalyst-runtime)
  1532. ("perl-catalystx-component-traits" ,perl-catalystx-component-traits)
  1533. ("perl-dbix-class" ,perl-dbix-class)
  1534. ("perl-dbix-class-cursor-cached" ,perl-dbix-class-cursor-cached)
  1535. ("perl-dbix-class-schema-loader" ,perl-dbix-class-schema-loader)
  1536. ("perl-hash-merge" ,perl-hash-merge)
  1537. ("perl-list-moreutils" ,perl-list-moreutils)
  1538. ("perl-module-runtime" ,perl-module-runtime)
  1539. ("perl-moose" ,perl-moose)
  1540. ("perl-moosex-markasmethods" ,perl-moosex-markasmethods)
  1541. ("perl-moosex-nonmoose" ,perl-moosex-nonmoose)
  1542. ("perl-moosex-types" ,perl-moosex-types)
  1543. ("perl-moosex-types-loadableclass" ,perl-moosex-types-loadableclass)
  1544. ("perl-namespace-autoclean" ,perl-namespace-autoclean)
  1545. ("perl-namespace-clean" ,perl-namespace-clean)
  1546. ("perl-tie-ixhash" ,perl-tie-ixhash)
  1547. ("perl-try-tiny" ,perl-try-tiny)))
  1548. (home-page "https://metacpan.org/release/Catalyst-Model-DBIC-Schema")
  1549. (synopsis "DBIx::Class::Schema Model Class")
  1550. (description "This is a Catalyst Model for DBIx::Class::Schema-based
  1551. Models.")
  1552. (license l:perl-license)))
  1553. (define-public perl-catalyst-plugin-accesslog
  1554. (package
  1555. (name "perl-catalyst-plugin-accesslog")
  1556. (version "1.10")
  1557. (source
  1558. (origin
  1559. (method url-fetch)
  1560. (uri (string-append "mirror://cpan/authors/id/A/AR/ARODLAND/"
  1561. "Catalyst-Plugin-AccessLog-" version ".tar.gz"))
  1562. (sha256
  1563. (base32
  1564. "0811rj45q4v2y8wka3wb9d5m4vbyhcmkvddf2wz4x69awzjbhgc7"))))
  1565. (build-system perl-build-system)
  1566. (propagated-inputs
  1567. `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
  1568. ("perl-datetime" ,perl-datetime)
  1569. ("perl-moose" ,perl-moose)
  1570. ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
  1571. (home-page "https://metacpan.org/release/Catalyst-Plugin-AccessLog")
  1572. (synopsis "Request logging from within Catalyst")
  1573. (description "This Catalyst plugin enables you to create \"access logs\"
  1574. from within a Catalyst application instead of requiring a webserver to do it
  1575. for you. It will work even with Catalyst debug logging turned off.")
  1576. (license l:perl-license)))
  1577. (define-public perl-catalyst-plugin-authentication
  1578. (package
  1579. (name "perl-catalyst-plugin-authentication")
  1580. (version "0.10023")
  1581. (source
  1582. (origin
  1583. (method url-fetch)
  1584. (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
  1585. "Catalyst-Plugin-Authentication-"
  1586. version ".tar.gz"))
  1587. (sha256
  1588. (base32
  1589. "0v6hb4r1wv3djrnqvnjcn3xx1scgqzx8nyjdg9lfc1ybvamrl0rn"))))
  1590. (build-system perl-build-system)
  1591. (native-inputs
  1592. `(("perl-module-install" ,perl-module-install)))
  1593. (propagated-inputs
  1594. `(("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
  1595. ("perl-catalyst-runtime" ,perl-catalyst-runtime)
  1596. ("perl-class-inspector" ,perl-class-inspector)
  1597. ("perl-moose" ,perl-moose)
  1598. ("perl-moosex-emulate-class-accessor-fast"
  1599. ,perl-moosex-emulate-class-accessor-fast)
  1600. ("perl-mro-compat" ,perl-mro-compat)
  1601. ("perl-namespace-autoclean" ,perl-namespace-autoclean)
  1602. ("perl-string-rewriteprefix" ,perl-string-rewriteprefix)
  1603. ("perl-test-exception" ,perl-test-exception)
  1604. ("perl-try-tiny" ,perl-try-tiny)))
  1605. (home-page "https://metacpan.org/release/Catalyst-Plugin-Authentication")
  1606. (synopsis "Infrastructure plugin for the Catalyst authentication framework")
  1607. (description "The authentication plugin provides generic user support for
  1608. Catalyst apps. It is the basis for both authentication (checking the user is
  1609. who they claim to be), and authorization (allowing the user to do what the
  1610. system authorises them to do).")
  1611. (license l:perl-license)))
  1612. (define-public perl-catalyst-plugin-authorization-roles
  1613. (package
  1614. (name "perl-catalyst-plugin-authorization-roles")
  1615. (version "0.09")
  1616. (source
  1617. (origin
  1618. (method url-fetch)
  1619. (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
  1620. "Catalyst-Plugin-Authorization-Roles-"
  1621. version ".tar.gz"))
  1622. (sha256
  1623. (base32
  1624. "0l83lkwmq0lngwh8b1rv3r719pn8w1gdbyhjqm74rnd0wbjl8h7f"))))
  1625. (build-system perl-build-system)
  1626. (native-inputs
  1627. `(("perl-module-install" ,perl-module-install)
  1628. ("perl-test-exception" ,perl-test-exception)))
  1629. (propagated-inputs
  1630. `(("perl-catalyst-plugin-authentication"
  1631. ,perl-catalyst-plugin-authentication)
  1632. ("perl-catalyst-runtime" ,perl-catalyst-runtime)
  1633. ("perl-set-object" ,perl-set-object)
  1634. ("perl-universal-isa" ,perl-universal-isa)))
  1635. (home-page
  1636. "https://metacpan.org/release/Catalyst-Plugin-Authorization-Roles")
  1637. (synopsis "Role-based authorization for Catalyst")
  1638. (description "Catalyst::Plugin::Authorization::Roles provides role-based
  1639. authorization for Catalyst based on Catalyst::Plugin::Authentication.")
  1640. (license l:perl-license)))
  1641. (define-public perl-catalyst-plugin-captcha
  1642. (package
  1643. (name "perl-catalyst-plugin-captcha")
  1644. (version "0.04")
  1645. (source
  1646. (origin
  1647. (method url-fetch)
  1648. (uri (string-append "mirror://cpan/authors/id/D/DI/DIEGOK/"
  1649. "Catalyst-Plugin-Captcha-" version ".tar.gz"))
  1650. (sha256
  1651. (base32
  1652. "0llyj3v5nx9cx46jdbbvxf1lc9s9cxq5ml22xmx3wkb201r5qgaa"))))
  1653. (build-system perl-build-system)
  1654. (propagated-inputs
  1655. `(("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
  1656. ("perl-catalyst-runtime" ,perl-catalyst-runtime)
  1657. ("perl-gd-securityimage" ,perl-gd-securityimage)
  1658. ("perl-http-date" ,perl-http-date)))
  1659. (home-page "https://metacpan.org/release/Catalyst-Plugin-Captcha")
  1660. (synopsis "Captchas for Catalyst")
  1661. (description "This plugin creates and validates Captcha images for
  1662. Catalyst.")
  1663. (license l:perl-license)))
  1664. (define-public perl-catalyst-plugin-configloader
  1665. (package
  1666. (name "perl-catalyst-plugin-configloader")
  1667. (version "0.34")
  1668. (source
  1669. (origin
  1670. (method url-fetch)
  1671. (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
  1672. "Catalyst-Plugin-ConfigLoader-"
  1673. version ".tar.gz"))
  1674. (sha256
  1675. (base32
  1676. "19j7p4v7mbx6wrmpvmrnd974apx7hdl2s095ga3b9zcbdrl77h5q"))))
  1677. (build-system perl-build-system)
  1678. (native-inputs
  1679. `(("perl-path-class" ,perl-path-class)
  1680. ("perl-module-install" ,perl-module-install)))
  1681. (propagated-inputs
  1682. `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
  1683. ("perl-config-any" ,perl-config-any)
  1684. ("perl-data-visitor" ,perl-data-visitor)
  1685. ("perl-mro-compat" ,perl-mro-compat)))
  1686. (home-page "https://metacpan.org/release/Catalyst-Plugin-ConfigLoader")
  1687. (synopsis "Load config files of various types")
  1688. (description "This module will attempt to load find and load configuration
  1689. files of various types. Currently it supports YAML, JSON, XML, INI and Perl
  1690. formats.")
  1691. (license l:perl-license)))
  1692. (define-public perl-catalyst-plugin-session
  1693. (package
  1694. (name "perl-catalyst-plugin-session")
  1695. (version "0.40")
  1696. (source
  1697. (origin
  1698. (method url-fetch)
  1699. (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
  1700. "Catalyst-Plugin-Session-" version ".tar.gz"))
  1701. (sha256
  1702. (base32
  1703. "171vi9xcl775scjaw4fcfdmqvz0rb1nr0xxg2gb3ng6bjzpslhgv"))))
  1704. (build-system perl-build-system)
  1705. (native-inputs
  1706. `(("perl-module-install" ,perl-module-install)
  1707. ("perl-test-deep" ,perl-test-deep)
  1708. ("perl-test-exception" ,perl-test-exception)))
  1709. (propagated-inputs
  1710. `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
  1711. ("perl-moose" ,perl-moose)
  1712. ("perl-moosex-emulate-class-accessor-fast"
  1713. ,perl-moosex-emulate-class-accessor-fast)
  1714. ("perl-mro-compat" ,perl-mro-compat)
  1715. ("perl-namespace-clean" ,perl-namespace-clean)
  1716. ("perl-object-signature" ,perl-object-signature)
  1717. ("perl-test-www-mechanize-psgi" ,perl-test-www-mechanize-psgi)))
  1718. (home-page "https://metacpan.org/release/Catalyst-Plugin-Session")
  1719. (synopsis "Catalyst generic session plugin")
  1720. (description "This plugin links the two pieces required for session
  1721. management in web applications together: the state, and the store.")
  1722. (license l:perl-license)))
  1723. (define-public perl-catalyst-plugin-session-state-cookie
  1724. (package
  1725. (name "perl-catalyst-plugin-session-state-cookie")
  1726. (version "0.17")
  1727. (source
  1728. (origin
  1729. (method url-fetch)
  1730. (uri (string-append "mirror://cpan/authors/id/M/MS/MSTROUT/"
  1731. "Catalyst-Plugin-Session-State-Cookie-"
  1732. version ".tar.gz"))
  1733. (sha256
  1734. (base32
  1735. "1rvxbfnpf9x2pc2zgpazlcgdlr2dijmxgmcs0m5nazs0w6xikssb"))))
  1736. (build-system perl-build-system)
  1737. (native-inputs
  1738. `(("perl-module-install" ,perl-module-install)))
  1739. (propagated-inputs
  1740. `(("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
  1741. ("perl-catalyst-runtime" ,perl-catalyst-runtime)
  1742. ("perl-moose" ,perl-moose)
  1743. ("perl-mro-compat" ,perl-mro-compat)
  1744. ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
  1745. (home-page
  1746. "https://metacpan.org/release/Catalyst-Plugin-Session-State-Cookie")
  1747. (synopsis "Maintain session IDs using cookies")
  1748. (description "In order for Catalyst::Plugin::Session to work, the session
  1749. ID needs to be stored on the client, and the session data needs to be stored
  1750. on the server. This plugin stores the session ID on the client using the
  1751. cookie mechanism.")
  1752. (license l:perl-license)))
  1753. (define-public perl-catalyst-plugin-session-store-fastmmap
  1754. (package
  1755. (name "perl-catalyst-plugin-session-store-fastmmap")
  1756. (version "0.16")
  1757. (source
  1758. (origin
  1759. (method url-fetch)
  1760. (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
  1761. "Catalyst-Plugin-Session-Store-FastMmap-"
  1762. version ".tar.gz"))
  1763. (sha256
  1764. (base32
  1765. "0x3j6zv3wr41jlwr6yb2jpmcx019ibyn11y8653ffnwhpzbpzsxs"))))
  1766. (build-system perl-build-system)
  1767. (propagated-inputs
  1768. `(("perl-cache-fastmmap" ,perl-cache-fastmmap)
  1769. ("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
  1770. ("perl-catalyst-runtime" ,perl-catalyst-runtime)
  1771. ("perl-moosex-emulate-class-accessor-fast"
  1772. ,perl-moosex-emulate-class-accessor-fast)
  1773. ("perl-mro-compat" ,perl-mro-compat)
  1774. ("perl-path-class" ,perl-path-class)))
  1775. (home-page
  1776. "https://metacpan.org/release/Catalyst-Plugin-Session-Store-FastMmap")
  1777. (synopsis "FastMmap session storage backend")
  1778. (description "Catalyst::Plugin::Session::Store::FastMmap is a fast session
  1779. storage plugin for Catalyst that uses an mmap'ed file to act as a shared
  1780. memory interprocess cache. It is based on Cache::FastMmap.")
  1781. (license l:perl-license)))
  1782. (define-public perl-catalyst-plugin-stacktrace
  1783. (package
  1784. (name "perl-catalyst-plugin-stacktrace")
  1785. (version "0.12")
  1786. (source
  1787. (origin
  1788. (method url-fetch)
  1789. (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
  1790. "Catalyst-Plugin-StackTrace-" version ".tar.gz"))
  1791. (sha256
  1792. (base32
  1793. "1b2ksz74cpigxqzf63rddar3vfmnbpwpdcbs11v0ml89pb8ar79j"))))
  1794. (build-system perl-build-system)
  1795. (native-inputs
  1796. `(("perl-module-install" ,perl-module-install)))
  1797. (propagated-inputs
  1798. `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
  1799. ("perl-devel-stacktrace" ,perl-devel-stacktrace)
  1800. ("perl-mro-compat" ,perl-mro-compat)))
  1801. (home-page "https://metacpan.org/release/Catalyst-Plugin-StackTrace")
  1802. (synopsis "Stack trace on the Catalyst debug screen")
  1803. (description "This plugin enhances the standard Catalyst debug screen by
  1804. including a stack trace of your application up to the point where the error
  1805. occurred. Each stack frame is displayed along with the package name, line
  1806. number, file name, and code context surrounding the line number.")
  1807. (license l:perl-license)))
  1808. (define-public perl-catalyst-plugin-static-simple
  1809. (package
  1810. (name "perl-catalyst-plugin-static-simple")
  1811. (version "0.36")
  1812. (source
  1813. (origin
  1814. (method url-fetch)
  1815. (uri (string-append "mirror://cpan/authors/id/I/IL/ILMARI/"
  1816. "Catalyst-Plugin-Static-Simple-" version ".tar.gz"))
  1817. (sha256
  1818. (base32
  1819. "0m4l627p2fvzr4i6sgdxhdvsx4wpa6qmaibsbxlg5x5yjs7k7drn"))))
  1820. (build-system perl-build-system)
  1821. (native-inputs
  1822. `(("perl-module-install" ,perl-module-install)))
  1823. (propagated-inputs
  1824. `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
  1825. ("perl-mime-types" ,perl-mime-types)
  1826. ("perl-moose" ,perl-moose)
  1827. ("perl-moosex-types" ,perl-moosex-types)
  1828. ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
  1829. (home-page "https://metacpan.org/release/Catalyst-Plugin-Static-Simple")
  1830. (synopsis "Simple serving of static pages")
  1831. (description "The Static::Simple plugin is designed to make serving static
  1832. content in your application during development quick and easy, without
  1833. requiring a single line of code from you. This plugin detects static files by
  1834. looking at the file extension in the URL (such as .css or .png or .js). The
  1835. plugin uses the lightweight MIME::Types module to map file extensions to
  1836. IANA-registered MIME types, and will serve your static files with the correct
  1837. MIME type directly to the browser, without being processed through Catalyst.")
  1838. (license l:perl-license)))
  1839. (define-public perl-catalyst-runtime
  1840. (package
  1841. (name "perl-catalyst-runtime")
  1842. (version "5.90119")
  1843. (source
  1844. (origin
  1845. (method url-fetch)
  1846. (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
  1847. "Catalyst-Runtime-" version ".tar.gz"))
  1848. (sha256
  1849. (base32
  1850. "1iw7x9rqk3sz2hm1bw01blz5vwm7zlljdf4xj3r8vz54f1yggzqr"))))
  1851. (build-system perl-build-system)
  1852. (native-inputs
  1853. `(("perl-test-fatal" ,perl-test-fatal)))
  1854. (propagated-inputs
  1855. `(("perl-cgi-simple" ,perl-cgi-simple)
  1856. ("perl-cgi-struct" ,perl-cgi-struct)
  1857. ("perl-class-c3-adopt-next" ,perl-class-c3-adopt-next)
  1858. ("perl-class-date" ,perl-class-date)
  1859. ("perl-class-load" ,perl-class-load)
  1860. ("perl-data-dump" ,perl-data-dump)
  1861. ("perl-http-body" ,perl-http-body)
  1862. ("perl-http-message" ,perl-http-message)
  1863. ("perl-json-maybexs" ,perl-json-maybexs)
  1864. ("perl-libwww" ,perl-libwww)
  1865. ("perl-module-pluggable" ,perl-module-pluggable)
  1866. ("perl-moose" ,perl-moose)
  1867. ("perl-moosex-emulate-class-accessor-fast"
  1868. ,perl-moosex-emulate-class-accessor-fast)
  1869. ("perl-moosex-getopt" ,perl-moosex-getopt)
  1870. ("perl-moosex-methodattributes" ,perl-moosex-methodattributes)
  1871. ("perl-namespace-clean" ,perl-namespace-clean)
  1872. ("perl-path-class" ,perl-path-class)
  1873. ("perl-plack" ,perl-plack)
  1874. ("perl-plack-middleware-fixmissingbodyinredirect"
  1875. ,perl-plack-middleware-fixmissingbodyinredirect)
  1876. ("perl-plack-middleware-methodoverride"
  1877. ,perl-plack-middleware-methodoverride)
  1878. ("perl-plack-middleware-removeredundantbody"
  1879. ,perl-plack-middleware-removeredundantbody)
  1880. ("perl-plack-middleware-reverseproxy"
  1881. ,perl-plack-middleware-reverseproxy)
  1882. ("perl-plack-test-externalserver" ,perl-plack-test-externalserver)
  1883. ("perl-safe-isa" ,perl-safe-isa)
  1884. ("perl-string-rewriteprefix" ,perl-string-rewriteprefix)
  1885. ("perl-text-simpletable" ,perl-text-simpletable)
  1886. ("perl-tree-simple" ,perl-tree-simple)
  1887. ("perl-tree-simple-visitorfactory" ,perl-tree-simple-visitorfactory)
  1888. ("perl-try-tiny" ,perl-try-tiny)
  1889. ("perl-uri" ,perl-uri)
  1890. ("perl-uri-ws" ,perl-uri-ws)))
  1891. (home-page "https://metacpan.org/release/Catalyst-Runtime")
  1892. (synopsis "The Catalyst Framework Runtime")
  1893. (description "Catalyst is a modern framework for making web applications.
  1894. It is designed to make it easy to manage the various tasks you need to do to
  1895. run an application on the web, either by doing them itself, or by letting you
  1896. \"plug in\" existing Perl modules that do what you need.")
  1897. (license l:perl-license)))
  1898. (define-public perl-catalyst-traitfor-request-proxybase
  1899. (package
  1900. (name "perl-catalyst-traitfor-request-proxybase")
  1901. (version "0.000005")
  1902. (source
  1903. (origin
  1904. (method url-fetch)
  1905. (uri (string-append "mirror://cpan/authors/id/B/BO/BOBTFISH/"
  1906. "Catalyst-TraitFor-Request-ProxyBase-"
  1907. version ".tar.gz"))
  1908. (sha256
  1909. (base32
  1910. "02kir63d5cs2ipj3fn1qlmmx3gqi1xqzrxfr4pv5vjhjgsm0zgx7"))))
  1911. (build-system perl-build-system)
  1912. (native-inputs
  1913. `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
  1914. ("perl-catalystx-roleapplicator" ,perl-catalystx-roleapplicator)
  1915. ("perl-http-message" ,perl-http-message)
  1916. ("perl-module-install" ,perl-module-install)))
  1917. (propagated-inputs
  1918. `(("perl-moose" ,perl-moose)
  1919. ("perl-namespace-autoclean" ,perl-namespace-autoclean)
  1920. ("perl-uri" ,perl-uri)))
  1921. (home-page
  1922. "https://metacpan.org/release/Catalyst-TraitFor-Request-ProxyBase")
  1923. (synopsis "Replace request base with value passed by HTTP proxy")
  1924. (description "This module is a Moose::Role which allows you more
  1925. flexibility in your application's deployment configurations when deployed
  1926. behind a proxy. Using this module, the request base ($c->req->base) is
  1927. replaced with the contents of the X-Request-Base header.")
  1928. (license l:perl-license)))
  1929. (define-public perl-catalyst-view-download
  1930. (package
  1931. (name "perl-catalyst-view-download")
  1932. (version "0.09")
  1933. (source
  1934. (origin
  1935. (method url-fetch)
  1936. (uri (string-append "mirror://cpan/authors/id/G/GA/GAUDEON/"
  1937. "Catalyst-View-Download-" version ".tar.gz"))
  1938. (sha256
  1939. (base32
  1940. "1qgq6y9iwfbhbkbgpw9czang2ami6z8jk1zlagrzdisy4igqzkvs"))))
  1941. (build-system perl-build-system)
  1942. (native-inputs
  1943. `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
  1944. ("perl-module-install" ,perl-module-install)
  1945. ("perl-test-simple" ,perl-test-simple)
  1946. ("perl-test-www-mechanize-catalyst" ,perl-test-www-mechanize-catalyst)
  1947. ("perl-text-csv" ,perl-text-csv)
  1948. ("perl-xml-simple" ,perl-xml-simple)))
  1949. (home-page "https://metacpan.org/release/Catalyst-View-Download")
  1950. (synopsis "Download data in many formats")
  1951. (description "The purpose of this module is to provide a method for
  1952. downloading data into many supportable formats. For example, downloading a
  1953. table based report in a variety of formats (CSV, HTML, etc.).")
  1954. (license l:perl-license)))
  1955. (define-public perl-catalyst-view-json
  1956. (package
  1957. (name "perl-catalyst-view-json")
  1958. (version "0.36")
  1959. (source
  1960. (origin
  1961. (method url-fetch)
  1962. (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
  1963. "Catalyst-View-JSON-" version ".tar.gz"))
  1964. (sha256
  1965. (base32
  1966. "0x943j1n2r0zqanyzdrs1xsnn8ayn2wqskn7h144xcqa6v6gcisl"))))
  1967. (build-system perl-build-system)
  1968. (native-inputs
  1969. `(("perl-module-install" ,perl-module-install)
  1970. ("perl-yaml" ,perl-yaml)))
  1971. (inputs
  1972. `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
  1973. ("perl-json-maybexs" ,perl-json-maybexs)
  1974. ("perl-mro-compat" ,perl-mro-compat)))
  1975. (home-page "https://metacpan.org/release/Catalyst-View-JSON")
  1976. (synopsis "Catalyst JSON view")
  1977. (description "Catalyst::View::JSON is a Catalyst View handler that returns
  1978. stash data in JSON format.")
  1979. (license l:perl-license)))
  1980. (define-public perl-catalyst-view-tt
  1981. (package
  1982. (name "perl-catalyst-view-tt")
  1983. (version "0.44")
  1984. (source
  1985. (origin
  1986. (method url-fetch)
  1987. (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
  1988. "Catalyst-View-TT-" version ".tar.gz"))
  1989. (sha256
  1990. (base32
  1991. "06d1zg4nbb6kcyjbnyxrkf8z4zlscxr8650d94f7187jygfl8rvh"))))
  1992. (build-system perl-build-system)
  1993. (propagated-inputs
  1994. `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
  1995. ("perl-class-accessor" ,perl-class-accessor)
  1996. ("perl-data-dump" ,perl-data-dump)
  1997. ("perl-mro-compat" ,perl-mro-compat)
  1998. ("perl-path-class" ,perl-path-class)
  1999. ("perl-template-timer" ,perl-template-timer)
  2000. ("perl-template-toolkit" ,perl-template-toolkit)))
  2001. (home-page "https://metacpan.org/release/Catalyst-View-TT")
  2002. (synopsis "Template View Class")
  2003. (description "This module is a Catalyst view class for the Template
  2004. Toolkit.")
  2005. (license l:perl-license)))
  2006. (define-public perl-catalystx-component-traits
  2007. (package
  2008. (name "perl-catalystx-component-traits")
  2009. (version "0.19")
  2010. (source
  2011. (origin
  2012. (method url-fetch)
  2013. (uri (string-append "mirror://cpan/authors/id/R/RK/RKITOVER/"
  2014. "CatalystX-Component-Traits-" version ".tar.gz"))
  2015. (sha256
  2016. (base32
  2017. "0iq4ci8m6g2c4g01fvdl568y7pjz28f3widk986v3pyhr7ll8j88"))))
  2018. (build-system perl-build-system)
  2019. (native-inputs
  2020. `(("perl-moose" ,perl-moose)
  2021. ("perl-catalyst-runtime" ,perl-catalyst-runtime)
  2022. ("perl-moosex-methodattributes" ,perl-moosex-methodattributes)))
  2023. (propagated-inputs
  2024. `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
  2025. ("perl-class-load" ,perl-class-load)
  2026. ("perl-moose" ,perl-moose)
  2027. ("perl-moosex-traits-pluggable" ,perl-moosex-traits-pluggable)
  2028. ("perl-namespace-autoclean" ,perl-namespace-autoclean)
  2029. ("perl-list-moreutils" ,perl-list-moreutils)))
  2030. (home-page "https://metacpan.org/release/CatalystX-Component-Traits")
  2031. (synopsis "Trait Loading and Resolution for Catalyst Components")
  2032. (description "Adds a \"COMPONENT\" in Catalyst::Component method to your
  2033. Catalyst component base class that reads the optional \"traits\" parameter
  2034. from app and component config and instantiates the component subclass with
  2035. those traits using \"new_with_traits\" in MooseX::Traits from
  2036. MooseX::Traits::Pluggable.")
  2037. (license l:perl-license)))
  2038. (define-public perl-catalystx-roleapplicator
  2039. (package
  2040. (name "perl-catalystx-roleapplicator")
  2041. (version "0.005")
  2042. (source
  2043. (origin
  2044. (method url-fetch)
  2045. (uri (string-append "mirror://cpan/authors/id/H/HD/HDP/"
  2046. "CatalystX-RoleApplicator-" version ".tar.gz"))
  2047. (sha256
  2048. (base32
  2049. "0vwaapxn8g5hs2xp63c4dwv9jmapmji4272fakssvgc9frklg3p2"))))
  2050. (build-system perl-build-system)
  2051. (propagated-inputs
  2052. `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
  2053. ("perl-moose" ,perl-moose)
  2054. ("perl-moosex-relatedclassroles" ,perl-moosex-relatedclassroles)))
  2055. (home-page "https://metacpan.org/release/CatalystX-RoleApplicator")
  2056. (synopsis "Apply roles to Catalyst classes")
  2057. (description "CatalystX::RoleApplicator applies roles to Catalyst
  2058. application classes.")
  2059. (license l:perl-license)))
  2060. (define-public perl-catalystx-script-server-starman
  2061. (package
  2062. (name "perl-catalystx-script-server-starman")
  2063. (version "0.03")
  2064. (source
  2065. (origin
  2066. (method url-fetch)
  2067. (uri (string-append "mirror://cpan/authors/id/A/AB/ABRAXXA/"
  2068. "CatalystX-Script-Server-Starman-"
  2069. version ".tar.gz"))
  2070. (sha256
  2071. (base32
  2072. "08jvibq4v8xjj0c3cr93h0w8w0c88ajwjn37xjy7ygxl9krlffp6"))))
  2073. (build-system perl-build-system)
  2074. (native-inputs
  2075. `(("perl-module-install" ,perl-module-install)
  2076. ("perl-test-www-mechanize-catalyst" ,perl-test-www-mechanize-catalyst)))
  2077. (propagated-inputs
  2078. `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
  2079. ("perl-moose" ,perl-moose)
  2080. ("perl-namespace-autoclean" ,perl-namespace-autoclean)
  2081. ("starman" ,starman)))
  2082. (home-page "https://metacpan.org/release/CatalystX-Script-Server-Starman")
  2083. (synopsis "Catalyst development server with Starman")
  2084. (description "This module provides a Catalyst extension to replace the
  2085. development server with Starman.")
  2086. (license l:perl-license)))
  2087. (define-public perl-cgi
  2088. (package
  2089. (name "perl-cgi")
  2090. (version "4.38")
  2091. (source
  2092. (origin
  2093. (method url-fetch)
  2094. (uri (string-append "mirror://cpan/authors/id/L/LE/LEEJO/"
  2095. "CGI-" version ".tar.gz"))
  2096. (sha256
  2097. (base32
  2098. "1m779315rzj4mpgscw209a2wk18iwg2n8zibn8aak4mv56jz8n4c"))))
  2099. (build-system perl-build-system)
  2100. (native-inputs
  2101. `(("perl-test-deep" ,perl-test-deep)
  2102. ("perl-test-nowarnings" ,perl-test-nowarnings)
  2103. ("perl-test-warn" ,perl-test-warn)))
  2104. (propagated-inputs
  2105. `(("perl-html-parser" ,perl-html-parser)))
  2106. (home-page "https://metacpan.org/release/CGI")
  2107. (synopsis "Handle Common Gateway Interface requests and responses")
  2108. (description "CGI.pm is a stable, complete and mature solution for
  2109. processing and preparing HTTP requests and responses. Major features include
  2110. processing form submissions, file uploads, reading and writing cookies, query
  2111. string generation and manipulation, and processing and preparing HTTP
  2112. headers.")
  2113. (license l:perl-license)))
  2114. (define-public perl-cgi-formbuilder
  2115. (package
  2116. (name "perl-cgi-formbuilder")
  2117. (version "3.10")
  2118. (source
  2119. (origin
  2120. (method url-fetch)
  2121. (uri (string-append
  2122. "https://cpan.metacpan.org/authors/id/B/BI/BIGPRESH/"
  2123. "CGI-FormBuilder-" version ".tar.gz"))
  2124. (sha256
  2125. (base32
  2126. "163ixq9kninqq094z2rnkg9pv3bcmvjphlww4vksfrzhq3h9pjdf"))))
  2127. (build-system perl-build-system)
  2128. (inputs `(("perl-cgi" ,perl-cgi)))
  2129. (home-page
  2130. "https://metacpan.org/release/CGI-FormBuilder")
  2131. (synopsis
  2132. "Generate and process stateful forms")
  2133. (description
  2134. "@code{CGI::FormBuilder} provides an easy way to generate and process CGI
  2135. form-based applications.")
  2136. (license l:perl-license)))
  2137. (define-public perl-cgi-session
  2138. (package
  2139. (name "perl-cgi-session")
  2140. (version "4.48")
  2141. (source
  2142. (origin
  2143. (method url-fetch)
  2144. (uri (string-append
  2145. "mirror://cpan/authors/id/M/MA/MARKSTOS/CGI-Session-"
  2146. version
  2147. ".tar.gz"))
  2148. (sha256
  2149. (base32
  2150. "1xsl2pz1jrh127pq0b01yffnj4mnp9nvkp88h5mndrscq9hn8xa6"))))
  2151. (build-system perl-build-system)
  2152. (native-inputs
  2153. `(("perl-module-build" ,perl-module-build)))
  2154. (inputs `(("perl-cgi" ,perl-cgi)))
  2155. (home-page
  2156. "https://metacpan.org/release/CGI-Session")
  2157. (synopsis
  2158. "Persistent session data in CGI applications")
  2159. (description
  2160. "@code{CGI::Session} provides modular session management system across
  2161. HTTP requests.")
  2162. (license l:perl-license)))
  2163. (define-public perl-cgi-simple
  2164. (package
  2165. (name "perl-cgi-simple")
  2166. (version "1.15")
  2167. (source
  2168. (origin
  2169. (method url-fetch)
  2170. (uri (string-append "mirror://cpan/authors/id/M/MA/MANWAR/"
  2171. "CGI-Simple-" version ".tar.gz"))
  2172. (sha256
  2173. (base32
  2174. "013dcy9k4sj9alkksk5aqz65ryxw0rxgg71c7w666y941gd8n46q"))))
  2175. (build-system perl-build-system)
  2176. (native-inputs
  2177. `(("perl-io-stringy" ,perl-io-stringy) ; for IO::Scalar
  2178. ("perl-module-build" ,perl-module-build)
  2179. ("perl-test-exception" ,perl-test-exception)
  2180. ("perl-test-nowarnings" ,perl-test-nowarnings)))
  2181. (home-page "https://metacpan.org/release/CGI-Simple")
  2182. (synopsis "CGI interface that is CGI.pm compliant")
  2183. (description "CGI::Simple provides a relatively lightweight drop in
  2184. replacement for CGI.pm. It shares an identical OO interface to CGI.pm for
  2185. parameter parsing, file upload, cookie handling and header generation.")
  2186. (license l:perl-license)))
  2187. (define-public perl-cgi-struct
  2188. (package
  2189. (name "perl-cgi-struct")
  2190. (version "1.21")
  2191. (source
  2192. (origin
  2193. (method url-fetch)
  2194. (uri (string-append "mirror://cpan/authors/id/F/FU/FULLERMD/"
  2195. "CGI-Struct-" version ".tar.gz"))
  2196. (sha256
  2197. (base32
  2198. "0v4xq2qpryr7i6jngw1wpn8yr2kiib10yxp4aih90vfdznkqsgfi"))))
  2199. (build-system perl-build-system)
  2200. (native-inputs
  2201. `(("perl-test-deep" ,perl-test-deep)))
  2202. (home-page "https://metacpan.org/release/CGI-Struct")
  2203. (synopsis "Build structures from CGI data")
  2204. (description "This is a module for building structured data from CGI
  2205. inputs, in a manner reminiscent of how PHP does.")
  2206. (license l:bsd-2)))
  2207. (define-public perl-datetime-format-http
  2208. (package
  2209. (name "perl-datetime-format-http")
  2210. (version "0.42")
  2211. (source
  2212. (origin
  2213. (method url-fetch)
  2214. (uri (string-append "mirror://cpan/authors/id/C/CK/CKRAS/"
  2215. "DateTime-Format-HTTP-" version ".tar.gz"))
  2216. (sha256
  2217. (base32
  2218. "0h6qqdg1yzqkdxp7hqlp0qa7d1y64nilgimxs79dys2ryjfpcknh"))))
  2219. (build-system perl-build-system)
  2220. (native-inputs
  2221. `(("perl-module-build" ,perl-module-build)))
  2222. (propagated-inputs
  2223. `(("perl-datetime" ,perl-datetime)
  2224. ("perl-http-date" ,perl-http-date)))
  2225. (home-page "https://metacpan.org/release/DateTime-Format-HTTP")
  2226. (synopsis "Date conversion routines")
  2227. (description "This module provides functions that deal with the date
  2228. formats used by the HTTP protocol.")
  2229. (license l:perl-license)))
  2230. (define-public perl-digest-md5-file
  2231. (package
  2232. (name "perl-digest-md5-file")
  2233. (version "0.08")
  2234. (source
  2235. (origin
  2236. (method url-fetch)
  2237. (uri (string-append "mirror://cpan/authors/id/D/DM/DMUEY/"
  2238. "Digest-MD5-File-" version ".tar.gz"))
  2239. (sha256
  2240. (base32
  2241. "060jzf45dlwysw5wsm7av1wvpl06xgk415kwwpvv89r6wda3md5d"))))
  2242. (build-system perl-build-system)
  2243. (propagated-inputs
  2244. `(("perl-libwww" ,perl-libwww)))
  2245. (home-page "https://metacpan.org/release/Digest-MD5-File")
  2246. (synopsis "MD5 sums for files and urls")
  2247. (description "Digest::MD5::File is a Perl extension for getting MD5 sums
  2248. for files and urls.")
  2249. (license l:perl-license)))
  2250. (define-public perl-encode-locale
  2251. (package
  2252. (name "perl-encode-locale")
  2253. (version "1.05")
  2254. (source (origin
  2255. (method url-fetch)
  2256. (uri (string-append
  2257. "mirror://cpan/authors/id/G/GA/GAAS/Encode-Locale-"
  2258. version ".tar.gz"))
  2259. (sha256
  2260. (base32
  2261. "1h8fvcdg3n20c2yp7107yhdkkx78534s9hnvn7ps8hpmf4ks0vqp"))))
  2262. (build-system perl-build-system)
  2263. (license l:perl-license)
  2264. (synopsis "Perl locale encoding determination")
  2265. (description
  2266. "The POSIX locale system is used to specify both the language
  2267. conventions requested by the user and the preferred character set to
  2268. consume and output. The Encode::Locale module looks up the charset and
  2269. encoding (called a CODESET in the locale jargon) and arranges for the
  2270. Encode module to know this encoding under the name \"locale\". It means
  2271. bytes obtained from the environment can be converted to Unicode strings
  2272. by calling Encode::encode(locale => $bytes) and converted back again
  2273. with Encode::decode(locale => $string).")
  2274. (home-page "https://metacpan.org/release/Encode-Locale")))
  2275. (define-public perl-feed-find
  2276. (package
  2277. (name "perl-feed-find")
  2278. (version "0.07")
  2279. (source (origin
  2280. (method url-fetch)
  2281. (uri (string-append "mirror://cpan/authors/id/B/BT/BTROTT/"
  2282. "Feed-Find-" version ".tar.gz"))
  2283. (sha256
  2284. (base32
  2285. "0sa33cm8ww55cymnl8j7b5yspi2y5xkkkgqqa4h6fs3wdqylz600"))))
  2286. (build-system perl-build-system)
  2287. (arguments
  2288. ;; Tests expect to query files at http://stupidfool.org/perl/feeds/
  2289. `(#:tests? #f
  2290. #:phases
  2291. (modify-phases %standard-phases
  2292. (add-after 'unpack 'set-env
  2293. (lambda _ (setenv "PERL_USE_UNSAFE_INC" "1"))))))
  2294. (inputs
  2295. `(("perl-class-errorhandler" ,perl-class-errorhandler)
  2296. ("perl-html-parser" ,perl-html-parser)
  2297. ("perl-libwww" ,perl-libwww)
  2298. ("perl-uri" ,perl-uri)))
  2299. (home-page "https://metacpan.org/release/Feed-Find")
  2300. (synopsis "Syndication feed auto-discovery")
  2301. (description "@code{Feed::Find} implements feed auto-discovery for finding
  2302. syndication feeds, given a URI. It will discover the following feed formats:
  2303. RSS 0.91, RSS 1.0, RSS 2.0, Atom.")
  2304. (license l:perl-license)))
  2305. (define-public perl-file-listing
  2306. (package
  2307. (name "perl-file-listing")
  2308. (version "6.04")
  2309. (source (origin
  2310. (method url-fetch)
  2311. (uri (string-append
  2312. "mirror://cpan/authors/id/G/GA/GAAS/File-Listing-"
  2313. version ".tar.gz"))
  2314. (sha256
  2315. (base32
  2316. "1xcwjlnxaiwwpn41a5yi6nz95ywh3szq5chdxiwj36kqsvy5000y"))))
  2317. (build-system perl-build-system)
  2318. (propagated-inputs
  2319. `(("perl-http-date" ,perl-http-date)))
  2320. (license l:perl-license)
  2321. (synopsis "Perl directory listing parser")
  2322. (description
  2323. "The File::Listing module exports a single function called parse_dir(),
  2324. which can be used to parse directory listings.")
  2325. (home-page "https://metacpan.org/release/File-Listing")))
  2326. (define-public perl-finance-quote
  2327. (package
  2328. (name "perl-finance-quote")
  2329. (version "1.38")
  2330. (source
  2331. (origin
  2332. (method url-fetch)
  2333. (uri (string-append "https://cpan.metacpan.org/authors/id/E/EC/ECOCODE/"
  2334. "Finance-Quote-" version ".tar.gz"))
  2335. (sha256
  2336. (base32
  2337. "0zhqb27y4vdxn476s2kwm9zl2f970yjcyyybnjm9b406krr2fm59"))
  2338. (patches (search-patches
  2339. "perl-finance-quote-unuse-mozilla-ca.patch"))))
  2340. (build-system perl-build-system)
  2341. (propagated-inputs
  2342. `(("perl-cgi" ,perl-cgi)
  2343. ("perl-datetime" ,perl-datetime)
  2344. ("perl-html-parser" ,perl-html-parser)
  2345. ("perl-html-tableextract" ,perl-html-tableextract)
  2346. ("perl-html-tree" ,perl-html-tree)
  2347. ("perl-http-cookies" ,perl-http-cookies)
  2348. ("perl-http-message" ,perl-http-message)
  2349. ("perl-json" ,perl-json)
  2350. ("perl-libwww" ,perl-libwww)
  2351. ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
  2352. ("perl-uri" ,perl-uri)))
  2353. (home-page "https://metacpan.org/release/Finance-Quote")
  2354. (synopsis "Stock and mutual fund quotes")
  2355. (description
  2356. "Finance::Quote gets stock quotes from various internet sources, including
  2357. Yahoo! Finance, Fidelity Investments, and the Australian Stock Exchange.")
  2358. (license l:gpl2)))
  2359. (define-public perl-gssapi
  2360. (package
  2361. (name "perl-gssapi")
  2362. (version "0.28")
  2363. (source
  2364. (origin
  2365. (method url-fetch)
  2366. (uri (string-append "mirror://cpan/authors/id/A/AG/AGROLMS/"
  2367. "GSSAPI-" version ".tar.gz"))
  2368. (sha256
  2369. (base32
  2370. "1mkhwxjjlhr58pd770i9gnf7zy7jj092iv6jfbnb8bvnc5xjr3vx"))))
  2371. (build-system perl-build-system)
  2372. (inputs `(("gssapi" ,mit-krb5)))
  2373. (arguments
  2374. `(#:make-maker-flags
  2375. `(,(string-append "--gssapiimpl=" (assoc-ref %build-inputs "gssapi")))))
  2376. (home-page "https://metacpan.org/release/GSSAPI")
  2377. (synopsis "Perl extension providing access to the GSSAPIv2 library")
  2378. (description "This is a Perl extension for using GSSAPI C bindings as
  2379. described in RFC 2744.")
  2380. (license l:perl-license)))
  2381. (define-public perl-html-element-extended
  2382. (package
  2383. (name "perl-html-element-extended")
  2384. (version "1.18")
  2385. (source
  2386. (origin
  2387. (method url-fetch)
  2388. (uri (string-append "mirror://cpan/authors/id/M/MS/MSISK/"
  2389. "HTML-Element-Extended-" version ".tar.gz"))
  2390. (sha256
  2391. (base32
  2392. "0axknss8c368r5i082yhkfj8mq0w4nglfrpcxcayyzzj13qimvzk"))))
  2393. (build-system perl-build-system)
  2394. (propagated-inputs
  2395. `(("perl-html-tree" ,perl-html-tree)))
  2396. (home-page "https://metacpan.org/release/HTML-Element-Extended")
  2397. (synopsis "Manipulate tables of HTML::Element")
  2398. (description
  2399. "HTML::Element::Extended is a Perl extension for manipulating a table
  2400. composed of HTML::Element style components.")
  2401. (license l:perl-license)))
  2402. (define-public perl-html-form
  2403. (package
  2404. (name "perl-html-form")
  2405. (version "6.03")
  2406. (source
  2407. (origin
  2408. (method url-fetch)
  2409. (uri (string-append "mirror://cpan/authors/id/G/GA/GAAS/"
  2410. "HTML-Form-" version ".tar.gz"))
  2411. (sha256
  2412. (base32
  2413. "0dpwr7yz6hjc3bcqgcbdzjjk9l58ycdjmbam9nfcmm85y2a1vh38"))))
  2414. (build-system perl-build-system)
  2415. (propagated-inputs
  2416. `(("perl-html-parser" ,perl-html-parser)
  2417. ("perl-html-tagset" ,perl-html-tagset)
  2418. ("perl-http-message" ,perl-http-message)
  2419. ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)
  2420. ("perl-uri" ,perl-uri)))
  2421. (home-page "https://metacpan.org/release/HTML-Form")
  2422. (synopsis "Perl class representing an HTML form element")
  2423. (description "Objects of the HTML::Form class represents a single HTML
  2424. <form> ... </form> instance.")
  2425. (license l:perl-license)))
  2426. (define-public perl-html-scrubber
  2427. (package
  2428. (name "perl-html-scrubber")
  2429. (version "0.17")
  2430. (source
  2431. (origin
  2432. (method url-fetch)
  2433. (uri (string-append
  2434. "mirror://cpan/authors/id/N/NI/NIGELM/HTML-Scrubber-"
  2435. version
  2436. ".tar.gz"))
  2437. (sha256
  2438. (base32
  2439. "06p7w4zd42b2yh541mlzyqj40lwmvvn3fyqi8big4mf34la7m2jm"))))
  2440. (build-system perl-build-system)
  2441. (native-inputs
  2442. `(("perl-module-build" ,perl-module-build)
  2443. ("perl-test-cpan-meta" ,perl-test-cpan-meta)
  2444. ("perl-test-differences" ,perl-test-differences)
  2445. ("perl-test-eol" ,perl-test-eol)
  2446. ("perl-test-memory-cycle" ,perl-test-memory-cycle)
  2447. ("perl-test-notabs" ,perl-test-notabs)))
  2448. (inputs
  2449. `(("perl-html-parser" ,perl-html-parser)))
  2450. (home-page
  2451. "https://metacpan.org/release/HTML-Scrubber")
  2452. (synopsis
  2453. "Perl extension for scrubbing/sanitizing html")
  2454. (description
  2455. "@code{HTML::Scrubber} Perl extension for scrubbing/sanitizing HTML.")
  2456. (license l:perl-license)))
  2457. (define-public perl-html-lint
  2458. (package
  2459. (name "perl-html-lint")
  2460. (version "2.26")
  2461. (source
  2462. (origin
  2463. (method url-fetch)
  2464. (uri (string-append "mirror://cpan/authors/id/P/PE/PETDANCE/"
  2465. "HTML-Lint-" version ".tar.gz"))
  2466. (sha256
  2467. (base32
  2468. "02vi1s4sw3hjnndxd6s91cp54iw5pg8n5kl9v0109dfxzn1n9bnl"))))
  2469. (build-system perl-build-system)
  2470. (propagated-inputs
  2471. `(("perl-html-parser" ,perl-html-parser)
  2472. ("perl-html-tagset" ,perl-html-tagset)
  2473. ("perl-libwww" ,perl-libwww)))
  2474. (home-page "https://metacpan.org/release/HTML-Lint")
  2475. (synopsis "Check for HTML errors in a string or file")
  2476. (description "HTML::Lint is a pure-Perl HTML parser and checker for
  2477. syntactic legitmacy.")
  2478. (license l:artistic2.0)))
  2479. (define-public perl-html-tableextract
  2480. (package
  2481. (name "perl-html-tableextract")
  2482. (version "2.13")
  2483. (source
  2484. (origin
  2485. (method url-fetch)
  2486. (uri (string-append "https://cpan.metacpan.org/authors/id/M/MS/MSISK/"
  2487. "HTML-TableExtract-" version ".tar.gz"))
  2488. (sha256
  2489. (base32
  2490. "01jimmss3q68a89696wmclvqwb2ybz6xgabpnbp6mm6jcni82z8a"))))
  2491. (build-system perl-build-system)
  2492. (propagated-inputs
  2493. `(("perl-html-element-extended" ,perl-html-element-extended)
  2494. ("perl-html-parser" ,perl-html-parser)))
  2495. (home-page "https://metacpan.org/release/HTML-TableExtract")
  2496. (synopsis "Extract contents from HTML tables")
  2497. (description
  2498. "HTML::TableExtract is a Perl module for extracting the content contained
  2499. in tables within an HTML document, either as text or encoded element trees.")
  2500. (license l:perl-license)))
  2501. (define-public perl-html-tree
  2502. (package
  2503. (name "perl-html-tree")
  2504. (version "5.07")
  2505. (source
  2506. (origin
  2507. (method url-fetch)
  2508. (uri (string-append "mirror://cpan/authors/id/K/KE/KENTNL/"
  2509. "HTML-Tree-" version ".tar.gz"))
  2510. (sha256
  2511. (base32
  2512. "1gyvm4qlwm9y6hczkpnrdfl303ggbybr0nqxdjw09hii8yw4sdzh"))))
  2513. (build-system perl-build-system)
  2514. (native-inputs
  2515. `(("perl-module-build" ,perl-module-build)
  2516. ("perl-test-fatal" ,perl-test-fatal)))
  2517. (propagated-inputs
  2518. `(("perl-html-parser" ,perl-html-parser)
  2519. ("perl-html-tagset" ,perl-html-tagset)
  2520. ("perl-libwww" ,perl-libwww)))
  2521. (home-page "https://metacpan.org/release/HTML-Tree")
  2522. (synopsis "Work with HTML in a DOM-like tree structure")
  2523. (description "This distribution contains a suite of modules for
  2524. representing, creating, and extracting information from HTML syntax trees.")
  2525. (license l:perl-license)))
  2526. (define-public perl-html-parser
  2527. (package
  2528. (name "perl-html-parser")
  2529. (version "3.72")
  2530. (source (origin
  2531. (method url-fetch)
  2532. (uri (string-append
  2533. "mirror://cpan/authors/id/G/GA/GAAS/HTML-Parser-"
  2534. version ".tar.gz"))
  2535. (sha256
  2536. (base32
  2537. "12v05ywlnsi9lc17z32k9jxx3sj1viy7y1wpl7n4az76v7hwfa7c"))))
  2538. (build-system perl-build-system)
  2539. (inputs
  2540. `(("perl-html-tagset" ,perl-html-tagset)
  2541. ("perl-http-message" ,perl-http-message)))
  2542. (license l:perl-license)
  2543. (synopsis "Perl HTML parser class")
  2544. (description
  2545. "Objects of the HTML::Parser class will recognize markup and separate
  2546. it from plain text (alias data content) in HTML documents. As different
  2547. kinds of markup and text are recognized, the corresponding event handlers
  2548. are invoked.")
  2549. (home-page "https://metacpan.org/release/HTML-Parser")))
  2550. (define-public perl-html-tagset
  2551. (package
  2552. (name "perl-html-tagset")
  2553. (version "3.20")
  2554. (source (origin
  2555. (method url-fetch)
  2556. (uri (string-append
  2557. "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tagset-"
  2558. version ".tar.gz"))
  2559. (sha256
  2560. (base32
  2561. "1qh8249wgr4v9vgghq77zh1d2zs176bir223a8gh3k9nksn7vcdd"))))
  2562. (build-system perl-build-system)
  2563. (license l:perl-license)
  2564. (synopsis "Perl data tables useful in parsing HTML")
  2565. (description
  2566. "The HTML::Tagset module contains several data tables useful in various
  2567. kinds of HTML parsing operations.")
  2568. (home-page "https://metacpan.org/release/HTML-Tagset")))
  2569. (define-public perl-html-template
  2570. (package
  2571. (name "perl-html-template")
  2572. (version "2.97")
  2573. (source (origin
  2574. (method url-fetch)
  2575. (uri (string-append "mirror://cpan/authors/id/S/SA/SAMTREGAR/"
  2576. "HTML-Template-" version ".tar.gz"))
  2577. (sha256
  2578. (base32
  2579. "17qjw8swj2q4b1ic285pndgrkmvpsqw0j68nhqzpk1daydhsyiv5"))))
  2580. (build-system perl-build-system)
  2581. (propagated-inputs
  2582. `(("perl-cgi" ,perl-cgi)))
  2583. (home-page "https://metacpan.org/release/HTML-Template")
  2584. (synopsis "HTML-like templates")
  2585. (description
  2586. "This module attempts to make using HTML templates simple and natural.
  2587. It extends standard HTML with a few new HTML-esque tags: @code{<TMPL_VAR>},
  2588. @code{<TMPL_LOOP>}, @code{<TMPL_INCLUDE>}, @code{<TMPL_IF>},
  2589. @code{<TMPL_ELSE>} and @code{<TMPL_UNLESS>}. The file written with HTML and
  2590. these new tags is called a template. Using this module you fill in the values
  2591. for the variables, loops and branches declared in the template. This allows
  2592. you to separate design from the data.")
  2593. (license l:perl-license)))
  2594. (define-public perl-http-body
  2595. (package
  2596. (name "perl-http-body")
  2597. (version "1.22")
  2598. (source
  2599. (origin
  2600. (method url-fetch)
  2601. (uri (string-append "mirror://cpan/authors/id/G/GE/GETTY/"
  2602. "HTTP-Body-" version ".tar.gz"))
  2603. (sha256
  2604. (base32
  2605. "15vj488i62mdp4ps9k77h39prj70i7anb6b0j8nm7l9vbdc2q3gw"))))
  2606. (build-system perl-build-system)
  2607. (native-inputs
  2608. `(("perl-test-deep" ,perl-test-deep)))
  2609. (propagated-inputs
  2610. `(("perl-file-temp" ,perl-file-temp)
  2611. ("perl-http-message" ,perl-http-message))) ;For HTTP::Headers
  2612. (home-page "https://metacpan.org/release/HTTP-Body")
  2613. (synopsis "HTTP Body Parser")
  2614. (description "HTTP::Body parses chunks of HTTP POST data and supports
  2615. application/octet-stream, application/json, application/x-www-form-urlencoded,
  2616. and multipart/form-data.")
  2617. (license l:perl-license)))
  2618. (define-public perl-http-cookiejar
  2619. (package
  2620. (name "perl-http-cookiejar")
  2621. (version "0.008")
  2622. (source
  2623. (origin
  2624. (method url-fetch)
  2625. (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/"
  2626. "HTTP-CookieJar-" version ".tar.gz"))
  2627. (sha256
  2628. (base32
  2629. "0rfw6avcralggs7bf7n86flvhaahxjnqzvpwszp0sk4z4wwy01wm"))))
  2630. (build-system perl-build-system)
  2631. (native-inputs
  2632. `(("perl-test-deep" ,perl-test-deep)
  2633. ("perl-test-requires" ,perl-test-requires)
  2634. ("perl-time-mock" ,perl-time-mock)
  2635. ("perl-uri" ,perl-uri)))
  2636. (inputs
  2637. `(("perl-time-local" ,perl-time-local)
  2638. ("perl-http-date" ,perl-http-date)))
  2639. (home-page "https://metacpan.org/release/HTTP-CookieJar")
  2640. (synopsis "Minimalist HTTP user agent cookie jar")
  2641. (description "This module implements a minimalist HTTP user agent cookie
  2642. jar in conformance with RFC 6265 <http://tools.ietf.org/html/rfc6265>.")
  2643. (license l:asl2.0)))
  2644. (define-public perl-http-cookies
  2645. (package
  2646. (name "perl-http-cookies")
  2647. (version "6.04")
  2648. (source (origin
  2649. (method url-fetch)
  2650. (uri (string-append
  2651. "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Cookies-"
  2652. version ".tar.gz"))
  2653. (sha256
  2654. (base32
  2655. "1m0kxcirbvbkrm2c59p1bkbvzlcdymg8fdpa7wlxijlx0xwz1iqc"))))
  2656. (build-system perl-build-system)
  2657. (propagated-inputs
  2658. `(("perl-http-message" ,perl-http-message)))
  2659. (license l:perl-license)
  2660. (synopsis "Perl HTTP cookie jars")
  2661. (description
  2662. "The HTTP::Cookies class is for objects that represent a cookie jar,
  2663. that is, a database of all the HTTP cookies that a given LWP::UserAgent
  2664. object knows about.")
  2665. (home-page "https://metacpan.org/release/GAAS/HTTP-Cookies-6.01")))
  2666. (define-public perl-http-daemon
  2667. (package
  2668. (name "perl-http-daemon")
  2669. (version "6.01")
  2670. (source (origin
  2671. (method url-fetch)
  2672. (uri (string-append
  2673. "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Daemon-"
  2674. version ".tar.gz"))
  2675. (sha256
  2676. (base32
  2677. "1hmd2isrkilf0q0nkxms1q64kikjmcw9imbvrjgky6kh89vqdza3"))))
  2678. (build-system perl-build-system)
  2679. (propagated-inputs
  2680. `(("perl-http-message" ,perl-http-message)
  2681. ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)))
  2682. (license l:perl-license)
  2683. (synopsis "Perl simple http server class")
  2684. (description
  2685. "Instances of the HTTP::Daemon class are HTTP/1.1 servers that listen
  2686. on a socket for incoming requests. The HTTP::Daemon is a subclass of
  2687. IO::Socket::INET, so you can perform socket operations directly on it too.")
  2688. (home-page "https://metacpan.org/release/HTTP-Daemon")))
  2689. (define-public perl-http-date
  2690. (package
  2691. (name "perl-http-date")
  2692. (version "6.02")
  2693. (source (origin
  2694. (method url-fetch)
  2695. (uri (string-append
  2696. "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Date-"
  2697. version ".tar.gz"))
  2698. (sha256
  2699. (base32
  2700. "0cz357kafhhzw7w59iyi0wvhw7rlh5g1lh38230ckw7rl0fr9fg8"))))
  2701. (build-system perl-build-system)
  2702. (license l:perl-license)
  2703. (synopsis "Perl date conversion routines")
  2704. (description
  2705. "The HTTP::Date module provides functions that deal with date formats
  2706. used by the HTTP protocol (and then some more).")
  2707. (home-page "https://metacpan.org/release/HTTP-Date")))
  2708. (define-public perl-http-message
  2709. (package
  2710. (name "perl-http-message")
  2711. (version "6.15")
  2712. (source (origin
  2713. (method url-fetch)
  2714. (uri (string-append
  2715. "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Message-"
  2716. version ".tar.gz"))
  2717. (sha256
  2718. (base32
  2719. "11fbvisyvi6bw8z9iq9fm9mraf69qyds09fblhl9gyvg7ccll93v"))))
  2720. (build-system perl-build-system)
  2721. (native-inputs
  2722. `(("perl-try-tiny" ,perl-try-tiny)))
  2723. (propagated-inputs
  2724. `(("perl-encode-locale" ,perl-encode-locale)
  2725. ("perl-http-date" ,perl-http-date)
  2726. ("perl-io-html" ,perl-io-html)
  2727. ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)
  2728. ("perl-uri" ,perl-uri)))
  2729. (license l:perl-license)
  2730. (synopsis "Perl HTTP style message")
  2731. (description
  2732. "An HTTP::Message object contains some headers and a content body.")
  2733. (home-page "https://metacpan.org/release/ETHER/HTTP-Message-6.11")))
  2734. (define-public perl-http-negotiate
  2735. (package
  2736. (name "perl-http-negotiate")
  2737. (version "6.01")
  2738. (source (origin
  2739. (method url-fetch)
  2740. (uri (string-append
  2741. "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Negotiate-"
  2742. version ".tar.gz"))
  2743. (sha256
  2744. (base32
  2745. "05p053vjs5g91v5cmjnny7a3xzddz5k7vnjw81wfh01ilqg9qwhw"))))
  2746. (build-system perl-build-system)
  2747. (propagated-inputs
  2748. `(("perl-http-message" ,perl-http-message)))
  2749. (license l:perl-license)
  2750. (synopsis "Perl http content negotiation")
  2751. (description
  2752. "The HTTP::Negotiate module provides a complete implementation of the
  2753. HTTP content negotiation algorithm specified in
  2754. draft-ietf-http-v11-spec-00.ps chapter 12. Content negotiation allows for
  2755. the selection of a preferred content representation based upon attributes
  2756. of the negotiable variants and the value of the various Accept* header
  2757. fields in the request.")
  2758. (home-page "https://metacpan.org/release/HTTP-Negotiate")))
  2759. (define-public perl-http-parser
  2760. (package
  2761. (name "perl-http-parser")
  2762. (version "0.06")
  2763. (source
  2764. (origin
  2765. (method url-fetch)
  2766. (uri (string-append "mirror://cpan/authors/id/E/ED/EDECA/"
  2767. "HTTP-Parser-" version ".tar.gz"))
  2768. (sha256
  2769. (base32
  2770. "0idwq3jk595xil65lmxz128ha7s3r2n5zknisddpgwnqrghs3igq"))))
  2771. (build-system perl-build-system)
  2772. (propagated-inputs
  2773. `(("perl-http-message" ,perl-http-message)
  2774. ("perl-uri" ,perl-uri)))
  2775. (home-page "https://metacpan.org/release/HTTP-Parser")
  2776. (synopsis "Parse HTTP/1.1 requests")
  2777. (description "This is an HTTP request parser. It takes chunks of text as
  2778. received and returns a 'hint' as to what is required, or returns the
  2779. HTTP::Request when a complete request has been read. HTTP/1.1 chunking is
  2780. supported.")
  2781. (license l:perl-license)))
  2782. (define-public perl-http-parser-xs
  2783. (package
  2784. (name "perl-http-parser-xs")
  2785. (version "0.17")
  2786. (source
  2787. (origin
  2788. (method url-fetch)
  2789. (uri (string-append "mirror://cpan/authors/id/K/KA/KAZUHO/"
  2790. "HTTP-Parser-XS-" version ".tar.gz"))
  2791. (sha256
  2792. (base32
  2793. "02d84xq1mm53c7jl33qyb7v5w4372vydp74z6qj0vc96wcrnhkkr"))))
  2794. (build-system perl-build-system)
  2795. (native-inputs
  2796. `(("perl-module-install" ,perl-module-install)))
  2797. (home-page "https://metacpan.org/release/HTTP-Parser-XS")
  2798. (synopsis "Fast HTTP request parser")
  2799. (description "HTTP::Parser::XS is a fast, primitive HTTP request/response
  2800. parser.")
  2801. (license l:perl-license)))
  2802. (define-public perl-http-request-ascgi
  2803. (package
  2804. (name "perl-http-request-ascgi")
  2805. (version "1.2")
  2806. (source
  2807. (origin
  2808. (method url-fetch)
  2809. (uri (string-append "mirror://cpan/authors/id/F/FL/FLORA/"
  2810. "HTTP-Request-AsCGI-" version ".tar.gz"))
  2811. (sha256
  2812. (base32
  2813. "1smwmiarwcgq7vjdblnb6ldi2x1s5sk5p15p7xvm5byiqq3znnwl"))))
  2814. (build-system perl-build-system)
  2815. (propagated-inputs
  2816. `(("perl-class-accessor" ,perl-class-accessor)
  2817. ("perl-http-message" ,perl-http-message)))
  2818. (home-page "https://metacpan.org/release/HTTP-Request-AsCGI")
  2819. (synopsis "Set up a CGI environment from an HTTP::Request")
  2820. (description "This module provides a convenient way to set up a CGI
  2821. environment from an HTTP::Request.")
  2822. (license l:perl-license)))
  2823. (define-public perl-http-server-simple
  2824. (package
  2825. (name "perl-http-server-simple")
  2826. (version "0.52")
  2827. (source
  2828. (origin
  2829. (method url-fetch)
  2830. (uri (string-append "mirror://cpan/authors/id/B/BP/BPS/"
  2831. "HTTP-Server-Simple-" version ".tar.gz"))
  2832. (sha256
  2833. (base32
  2834. "0k6bg7k6mjixfzxdkkdrhqvaqmdhjszx0zsk8g0bimiby6j9z4yq"))))
  2835. (build-system perl-build-system)
  2836. (propagated-inputs
  2837. `(("perl-cgi" ,perl-cgi)))
  2838. (arguments
  2839. ;; See the discussion of a related tests issue at
  2840. ;; https://lists.gnu.org/archive/html/guix-devel/2015-01/msg00346.html
  2841. `(#:tests? #f
  2842. #:phases (modify-phases %standard-phases
  2843. (add-before 'configure 'set-search-path
  2844. (lambda _
  2845. ;; Work around "dotless @INC" build failure.
  2846. (setenv "PERL5LIB"
  2847. (string-append (getcwd) ":"
  2848. (getenv "PERL5LIB")))
  2849. #t)))))
  2850. (home-page "https://metacpan.org/release/HTTP-Server-Simple")
  2851. (synopsis "Lightweight HTTP server")
  2852. (description "HTTP::Server::Simple is a simple standalone HTTP daemon with
  2853. no non-core module dependencies. It can be used for building a standalone
  2854. http-based UI to your existing tools.")
  2855. (license l:perl-license)))
  2856. (define-public perl-http-tiny
  2857. (package
  2858. (name "perl-http-tiny")
  2859. (version "0.076")
  2860. (source
  2861. (origin
  2862. (method url-fetch)
  2863. (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/"
  2864. "HTTP-Tiny-" version ".tar.gz"))
  2865. (sha256
  2866. (base32
  2867. "11wkxxqj3ff84rgj9q2gzkdgscwp3fzj205846k9ycqinlpsmgfx"))))
  2868. (build-system perl-build-system)
  2869. (inputs
  2870. `(("perl-http-cookiejar" ,perl-http-cookiejar)
  2871. ("perl-io-socket-ip" ,perl-io-socket-ip)
  2872. ("perl-io-socket-ssl" ,perl-io-socket-ssl)
  2873. ("perl-mozilla-ca" ,perl-mozilla-ca)
  2874. ("perl-net-ssleay" ,perl-net-ssleay)))
  2875. (home-page "https://metacpan.org/release/HTTP-Tiny")
  2876. (synopsis "HTTP/1.1 client")
  2877. (description "This is a very simple HTTP/1.1 client, designed for doing
  2878. simple requests without the overhead of a large framework like LWP::UserAgent.
  2879. It supports proxies and redirection. It also correctly resumes after EINTR.")
  2880. (license l:perl-license)))
  2881. (define-public perl-io-html
  2882. (package
  2883. (name "perl-io-html")
  2884. (version "1.00")
  2885. (source (origin
  2886. (method url-fetch)
  2887. (uri (string-append
  2888. "mirror://cpan/authors/id/C/CJ/CJM/IO-HTML-"
  2889. version ".tar.gz"))
  2890. (sha256
  2891. (base32
  2892. "06nj3a0xgp5jxwxx6ayglfk2v7npf5a7gwkqsjlkapjkybarzqh4"))))
  2893. (build-system perl-build-system)
  2894. (license l:perl-license)
  2895. (synopsis "Perl module to open an HTML file with automatic charset detection")
  2896. (description
  2897. "IO::HTML provides an easy way to open a file containing HTML while
  2898. automatically determining its encoding. It uses the HTML5 encoding sniffing
  2899. algorithm specified in section 8.2.2.1 of the draft standard.")
  2900. (home-page "https://metacpan.org/release/IO-HTML")))
  2901. (define-public perl-io-socket-ip
  2902. (package
  2903. (name "perl-io-socket-ip")
  2904. (version "0.39")
  2905. (source
  2906. (origin
  2907. (method url-fetch)
  2908. (uri (string-append "mirror://cpan/authors/id/P/PE/PEVANS/"
  2909. "IO-Socket-IP-" version ".tar.gz"))
  2910. (sha256
  2911. (base32
  2912. "15kv5g1yb4a345sk3r5wfr99f868lhfqkddzsgpqddvccfkhv58i"))))
  2913. (build-system perl-build-system)
  2914. (native-inputs `(("perl-module-build" ,perl-module-build)))
  2915. (home-page "https://metacpan.org/release/IO-Socket-IP")
  2916. (synopsis "Family-neutral IP socket supporting both IPv4 and IPv6")
  2917. (description "This module provides a protocol-independent way to use IPv4
  2918. and IPv6 sockets, intended as a replacement for IO::Socket::INET.")
  2919. (license l:perl-license)))
  2920. (define-public perl-io-socket-ssl
  2921. (package
  2922. (name "perl-io-socket-ssl")
  2923. (version "2.038")
  2924. (source (origin
  2925. (method url-fetch)
  2926. (uri (string-append "mirror://cpan/authors/id/S/SU/SULLR/"
  2927. "IO-Socket-SSL-" version ".tar.gz"))
  2928. (sha256
  2929. (base32
  2930. "11fiifxyvn7njc9p52wgygyw24jz7rh7gnz2ikjphr4l4x9f03rx"))
  2931. (patches (search-patches
  2932. "perl-io-socket-ssl-openssl-1.0.2f-fix.patch"))))
  2933. (build-system perl-build-system)
  2934. (propagated-inputs
  2935. `(("perl-net-ssleay" ,perl-net-ssleay)
  2936. ;; for IDN support
  2937. ("perl-uri" ,perl-uri)))
  2938. (synopsis "Nearly transparent SSL encapsulation for IO::Socket::INET")
  2939. (description
  2940. "IO::Socket::SSL makes using SSL/TLS much easier by wrapping the
  2941. necessary functionality into the familiar IO::Socket interface and providing
  2942. secure defaults whenever possible. This way existing applications can be made
  2943. SSL-aware without much effort, at least if you do blocking I/O and don't use
  2944. select or poll.")
  2945. (license l:perl-license)
  2946. (home-page "https://github.com/noxxi/p5-io-socket-ssl")))
  2947. (define-public perl-libwww
  2948. (package
  2949. (name "perl-libwww")
  2950. (version "6.35")
  2951. (source (origin
  2952. (method url-fetch)
  2953. (uri (string-append
  2954. "mirror://cpan/authors/id/E/ET/ETHER/libwww-perl-"
  2955. version ".tar.gz"))
  2956. (sha256
  2957. (base32
  2958. "0lsrr8r61b67f9wrynkhdhldw5yic4d7cd78zi52q59jgf6mg8nx"))))
  2959. (build-system perl-build-system)
  2960. (native-inputs
  2961. `(("perl-test-fatal" ,perl-test-fatal)
  2962. ("perl-test-needs" ,perl-test-needs)
  2963. ("perl-test-requiresinternet" ,perl-test-requiresinternet)))
  2964. (propagated-inputs
  2965. `(("perl-encode-locale" ,perl-encode-locale)
  2966. ("perl-file-listing" ,perl-file-listing)
  2967. ("perl-html-parser" ,perl-html-parser)
  2968. ("perl-http-cookies" ,perl-http-cookies)
  2969. ("perl-http-daemon" ,perl-http-daemon)
  2970. ("perl-http-date" ,perl-http-date)
  2971. ("perl-http-message" ,perl-http-message)
  2972. ("perl-http-negotiate" ,perl-http-negotiate)
  2973. ("perl-net-http" ,perl-net-http)
  2974. ("perl-try-tiny" ,perl-try-tiny)
  2975. ("perl-uri" ,perl-uri)
  2976. ("perl-www-robotrules" ,perl-www-robotrules)))
  2977. (license l:perl-license)
  2978. (synopsis "Perl modules for the WWW")
  2979. (description
  2980. "The libwww-perl collection is a set of Perl modules which provides a
  2981. simple and consistent application programming interface to the
  2982. World-Wide Web. The main focus of the library is to provide classes
  2983. and functions that allow you to write WWW clients. The library also
  2984. contains modules that are of more general use and even classes that
  2985. help you implement simple HTTP servers.")
  2986. (home-page "https://metacpan.org/release/libwww-perl")))
  2987. (define-public perl-lwp-online
  2988. (package
  2989. (name "perl-lwp-online")
  2990. (version "1.08")
  2991. (source
  2992. (origin
  2993. (method url-fetch)
  2994. (uri (string-append
  2995. "mirror://cpan/authors/id/A/AD/ADAMK/LWP-Online-"
  2996. version ".tar.gz"))
  2997. (sha256
  2998. (base32
  2999. "176f6vbk1018i0y7xj9d406ndbjgwzan2j9nihxnsahzg2vr2vz2"))))
  3000. (build-system perl-build-system)
  3001. (propagated-inputs
  3002. `(("perl-libwww" ,perl-libwww)
  3003. ("perl-uri" ,perl-uri)))
  3004. (native-inputs
  3005. `(("perl-module-install" ,perl-module-install)))
  3006. (home-page "https://metacpan.org/release/LWP-Online")
  3007. (synopsis "Checks whether your process has access to the web")
  3008. (description "This module attempts to answer, as accurately as it can, one
  3009. of the nastiest technical questions there is: am I on the internet?
  3010. A host of networking and security issues make this problem very difficult.
  3011. There are firewalls, proxies (both well behaved and badly behaved). We might
  3012. not have DNS. We might not have a network card at all!")
  3013. (license l:perl-license)))
  3014. (define-public perl-lwp-mediatypes
  3015. (package
  3016. (name "perl-lwp-mediatypes")
  3017. (version "6.02")
  3018. (source (origin
  3019. (method url-fetch)
  3020. (uri (string-append
  3021. "mirror://cpan/authors/id/G/GA/GAAS/LWP-MediaTypes-"
  3022. version ".tar.gz"))
  3023. (sha256
  3024. (base32
  3025. "0xmnblp962qy02akah30sji8bxrqcyqlff2w95l199ghql60ny8q"))))
  3026. (build-system perl-build-system)
  3027. (license l:perl-license)
  3028. (synopsis "Perl module to guess the media type for a file or a URL")
  3029. (description
  3030. "The LWP::MediaTypes module provides functions for handling media (also
  3031. known as MIME) types and encodings. The mapping from file extensions to
  3032. media types is defined by the media.types file. If the ~/.media.types file
  3033. exists it is used instead.")
  3034. (home-page "https://metacpan.org/release/LWP-MediaTypes")))
  3035. (define-public perl-lwp-protocol-https
  3036. (package
  3037. (name "perl-lwp-protocol-https")
  3038. (version "6.07")
  3039. (source
  3040. (origin
  3041. (method url-fetch)
  3042. (uri (string-append "mirror://cpan/authors/id/O/OA/OALDERS/"
  3043. "LWP-Protocol-https-" version ".tar.gz"))
  3044. (sha256
  3045. (base32
  3046. "1rxrpwylfw1afah0nk96kgkwjbl2p1a7lwx50iipg8c4rx3cjb2j"))))
  3047. (build-system perl-build-system)
  3048. (native-inputs
  3049. ;; For tests.
  3050. `(("perl-test-requiresinternet" ,perl-test-requiresinternet)))
  3051. (propagated-inputs
  3052. `(("perl-io-socket-ssl" ,perl-io-socket-ssl)
  3053. ("perl-libwww" ,perl-libwww)
  3054. ;; Users should instead make sure SSL_ca_path is set properly.
  3055. ;; ("perl-mozilla-ca" ,perl-mozilla-ca)
  3056. ("perl-net-http" ,perl-net-http)))
  3057. (home-page "https://metacpan.org/release/LWP-Protocol-https")
  3058. (synopsis "HTTPS support for LWP::UserAgent")
  3059. (description "The LWP::Protocol::https module provides support for using
  3060. https schemed URLs with LWP.")
  3061. (license l:perl-license)))
  3062. (define-public perl-lwp-useragent-determined
  3063. (package
  3064. (name "perl-lwp-useragent-determined")
  3065. (version "1.07")
  3066. (source
  3067. (origin
  3068. (method url-fetch)
  3069. (uri (string-append "mirror://cpan/authors/id/A/AL/ALEXMV/"
  3070. "LWP-UserAgent-Determined-" version ".tar.gz"))
  3071. (sha256
  3072. (base32
  3073. "0lyvbpjng7yfvyha9rp2y2c6liz5hhplmd2grc8jlsfkih7dbn06"))))
  3074. (build-system perl-build-system)
  3075. (propagated-inputs
  3076. `(("perl-libwww" ,perl-libwww)))
  3077. (home-page "https://metacpan.org/release/LWP-UserAgent-Determined")
  3078. (synopsis "Virtual browser that retries errors")
  3079. (description "LWP::UserAgent::Determined works just like LWP::UserAgent,
  3080. except that when you use it to get a web page but run into a
  3081. possibly-temporary error (like a DNS lookup timeout), it'll wait a few seconds
  3082. and retry a few times.")
  3083. (license l:perl-license)))
  3084. (define-public perl-net-amazon-s3
  3085. (package
  3086. (name "perl-net-amazon-s3")
  3087. (version "0.60")
  3088. (source
  3089. (origin
  3090. (method url-fetch)
  3091. (uri (string-append "mirror://cpan/authors/id/P/PF/PFIG/"
  3092. "Net-Amazon-S3-" version ".tar.gz"))
  3093. (sha256
  3094. (base32
  3095. "10dcsq4s2kc9cb1vccx17r187c81drirc3s1hbxh3rb8489kg2b2"))
  3096. (patches (search-patches
  3097. "perl-net-amazon-s3-moose-warning.patch"))))
  3098. (build-system perl-build-system)
  3099. (native-inputs
  3100. `(("perl-libwww" ,perl-libwww)
  3101. ("perl-test-exception" ,perl-test-exception)))
  3102. (propagated-inputs
  3103. `(("perl-data-stream-bulk" ,perl-data-stream-bulk)
  3104. ("perl-datetime-format-http" ,perl-datetime-format-http)
  3105. ("perl-digest-hmac" ,perl-digest-hmac)
  3106. ("perl-digest-md5-file" ,perl-digest-md5-file)
  3107. ("perl-file-find-rule" ,perl-file-find-rule)
  3108. ("perl-http-date" ,perl-http-date)
  3109. ("perl-http-message" ,perl-http-message)
  3110. ("perl-lwp-useragent-determined" ,perl-lwp-useragent-determined)
  3111. ("perl-mime-types" ,perl-mime-types)
  3112. ("perl-moose" ,perl-moose)
  3113. ("perl-moosex-strictconstructor" ,perl-moosex-strictconstructor)
  3114. ("perl-moosex-types-datetime-morecoercions"
  3115. ,perl-moosex-types-datetime-morecoercions)
  3116. ("perl-path-class" ,perl-path-class)
  3117. ("perl-regexp-common" ,perl-regexp-common)
  3118. ("perl-term-encoding" ,perl-term-encoding)
  3119. ("perl-term-progressbar-simple" ,perl-term-progressbar-simple)
  3120. ("perl-uri" ,perl-uri)
  3121. ("perl-xml-libxml" ,perl-xml-libxml)))
  3122. (home-page "https://metacpan.org/release/Net-Amazon-S3")
  3123. (synopsis "Perl interface to Amazon S3")
  3124. (description "This module provides a Perlish interface to Amazon S3.")
  3125. (license l:perl-license)))
  3126. (define-public perl-net-http
  3127. (package
  3128. (name "perl-net-http")
  3129. (version "6.18")
  3130. (source (origin
  3131. (method url-fetch)
  3132. (uri (string-append
  3133. "mirror://cpan/authors/id/O/OA/OALDERS/"
  3134. "Net-HTTP-" version ".tar.gz"))
  3135. (sha256
  3136. (base32
  3137. "074mp9s37q1j290xa3qj1wwgalzla328i2zpnh73xkmdnwnxyhky"))))
  3138. (build-system perl-build-system)
  3139. (propagated-inputs
  3140. `(("perl-io-socket-ssl" ,perl-io-socket-ssl)
  3141. ("perl-uri" ,perl-uri)))
  3142. (license l:perl-license)
  3143. (synopsis "Perl low-level HTTP connection (client)")
  3144. (description
  3145. "The Net::HTTP class is a low-level HTTP client. An instance of the
  3146. Net::HTTP class represents a connection to an HTTP server. The HTTP protocol
  3147. is described in RFC 2616. The Net::HTTP class supports HTTP/1.0 and
  3148. HTTP/1.1.")
  3149. (home-page "https://metacpan.org/release/Net-HTTP")))
  3150. (define-public perl-net-server
  3151. (package
  3152. (name "perl-net-server")
  3153. (version "2.009")
  3154. (source
  3155. (origin
  3156. (method url-fetch)
  3157. (uri (string-append "mirror://cpan/authors/id/R/RH/RHANDOM/"
  3158. "Net-Server-" version ".tar.gz"))
  3159. (sha256
  3160. (base32
  3161. "0gw1k9gcw7habbkxvsfa2gz34brlbwcidk6khgsf1qjm0dbccrw2"))))
  3162. (build-system perl-build-system)
  3163. (home-page "https://metacpan.org/release/Net-Server")
  3164. (synopsis "Extensible Perl server engine")
  3165. (description "Net::Server is an extensible, generic Perl server engine.
  3166. It attempts to be a generic server as in Net::Daemon and NetServer::Generic.
  3167. It includes with it the ability to run as an inetd
  3168. process (Net::Server::INET), a single connection server (Net::Server or
  3169. Net::Server::Single), a forking server (Net::Server::Fork), a preforking
  3170. server which maintains a constant number of preforked
  3171. children (Net::Server::PreForkSimple), or as a managed preforking server which
  3172. maintains the number of children based on server load (Net::Server::PreFork).
  3173. In all but the inetd type, the server provides the ability to connect to one
  3174. or to multiple server ports.")
  3175. (license l:perl-license)))
  3176. (define-public perl-net-smtp-ssl
  3177. (package
  3178. (name "perl-net-smtp-ssl")
  3179. (version "1.04")
  3180. (source
  3181. (origin
  3182. (method url-fetch)
  3183. (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
  3184. "Net-SMTP-SSL-" version ".tar.gz"))
  3185. (sha256
  3186. (base32
  3187. "001a6dcfahf7kkyirqkc8jd4fh4fkal7n7vm9c4dblqrvmdc8abv"))))
  3188. (build-system perl-build-system)
  3189. (propagated-inputs
  3190. `(("perl-io-socket-ssl" ,perl-io-socket-ssl)))
  3191. (home-page "https://metacpan.org/release/Net-SMTP-SSL")
  3192. (synopsis "SSL support for Net::SMTP")
  3193. (description "SSL support for Net::SMTP.")
  3194. (license l:perl-license)))
  3195. (define-public perl-plack
  3196. (package
  3197. (name "perl-plack")
  3198. (version "1.0033")
  3199. (source
  3200. (origin
  3201. (method url-fetch)
  3202. (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
  3203. "Plack-" version ".tar.gz"))
  3204. (sha256
  3205. (base32
  3206. "081jg0xddzpg2anmqi9i6d7vs6c8z7k557bf8xl6vgb3h95pin5w"))))
  3207. (build-system perl-build-system)
  3208. (native-inputs
  3209. `(("perl-test-requires" ,perl-test-requires)
  3210. ("perl-file-sharedir-install" ,perl-file-sharedir-install)))
  3211. (propagated-inputs
  3212. `(("perl-apache-logformat-compiler" ,perl-apache-logformat-compiler)
  3213. ("perl-devel-stacktrace" ,perl-devel-stacktrace)
  3214. ("perl-devel-stacktrace-ashtml" ,perl-devel-stacktrace-ashtml)
  3215. ("perl-file-sharedir" ,perl-file-sharedir)
  3216. ("perl-hash-multivalue" ,perl-hash-multivalue)
  3217. ("perl-http-body" ,perl-http-body)
  3218. ("perl-http-message" ,perl-http-message)
  3219. ("perl-http-tiny" ,perl-http-tiny)
  3220. ("perl-libwww" ,perl-libwww)
  3221. ("perl-stream-buffered" ,perl-stream-buffered)
  3222. ("perl-test-tcp" ,perl-test-tcp)
  3223. ("perl-try-tiny" ,perl-try-tiny)
  3224. ("perl-uri" ,perl-uri)))
  3225. (home-page "https://metacpan.org/release/Plack")
  3226. (synopsis "Perl Superglue for Web frameworks and servers (PSGI toolkit)")
  3227. (description "Plack is a set of tools for using the PSGI stack. It
  3228. contains middleware components, a reference server, and utilities for Web
  3229. application frameworks. Plack is like Ruby's Rack or Python's Paste for
  3230. WSGI.")
  3231. (license l:perl-license)))
  3232. (define-public perl-plack-middleware-fixmissingbodyinredirect
  3233. (package
  3234. (name "perl-plack-middleware-fixmissingbodyinredirect")
  3235. (version "0.12")
  3236. (source
  3237. (origin
  3238. (method url-fetch)
  3239. (uri (string-append "mirror://cpan/authors/id/S/SW/SWEETKID/"
  3240. "Plack-Middleware-FixMissingBodyInRedirect-"
  3241. version ".tar.gz"))
  3242. (sha256
  3243. (base32
  3244. "14dkrmccq7a5vpymx5dv8032gfcvhsw2i6v5sh3c4ym5ymlx08kc"))))
  3245. (build-system perl-build-system)
  3246. (native-inputs
  3247. `(("perl-html-parser" ,perl-html-parser) ;for HTML::Entities
  3248. ("perl-http-message" ,perl-http-message)
  3249. ("perl-plack" ,perl-plack))) ;for Plack::Test
  3250. (home-page
  3251. "https://metacpan.org/release/Plack-Middleware-FixMissingBodyInRedirect")
  3252. (synopsis "Plack::Middleware which sets body for redirect response")
  3253. (description "This module sets the body in redirect response, if it's not
  3254. already set.")
  3255. (license l:perl-license)))
  3256. (define-public perl-plack-middleware-methodoverride
  3257. (package
  3258. (name "perl-plack-middleware-methodoverride")
  3259. (version "0.11")
  3260. (source
  3261. (origin
  3262. (method url-fetch)
  3263. (uri (string-append "mirror://cpan/authors/id/D/DW/DWHEELER/"
  3264. "Plack-Middleware-MethodOverride-"
  3265. version ".tar.gz"))
  3266. (sha256
  3267. (base32
  3268. "1hb8dx7i4vs74n0p737wrvpdnnw6argxrjpr6kj6432zabp8325z"))))
  3269. (build-system perl-build-system)
  3270. (native-inputs
  3271. `(("perl-module-build" ,perl-module-build)))
  3272. (propagated-inputs
  3273. `(("perl-plack" ,perl-plack)))
  3274. (home-page "https://metacpan.org/release/Plack-Middleware-MethodOverride")
  3275. (synopsis "Override REST methods to Plack apps via POST")
  3276. (description "This middleware allows for POST requests that pretend to be
  3277. something else: by adding either a header named X-HTTP-Method-Override to the
  3278. request, or a query parameter named x-tunneled-method to the URI, the client
  3279. can say what method it actually meant.")
  3280. (license l:perl-license)))
  3281. (define-public perl-plack-middleware-removeredundantbody
  3282. (package
  3283. (name "perl-plack-middleware-removeredundantbody")
  3284. (version "0.05")
  3285. (source
  3286. (origin
  3287. (method url-fetch)
  3288. (uri (string-append "mirror://cpan/authors/id/S/SW/SWEETKID/"
  3289. "Plack-Middleware-RemoveRedundantBody-"
  3290. version ".tar.gz"))
  3291. (sha256
  3292. (base32
  3293. "1n3wm0zi8dnk54jx937asl951lslj3jvw0fry4jpzsibg4f6wrx0"))))
  3294. (build-system perl-build-system)
  3295. (propagated-inputs
  3296. `(("perl-plack" ,perl-plack)))
  3297. (home-page
  3298. "https://metacpan.org/release/Plack-Middleware-RemoveRedundantBody")
  3299. (synopsis "Plack::Middleware which removes body for HTTP response")
  3300. (description "This module removes the body in an HTTP response if it's not
  3301. required.")
  3302. (license l:perl-license)))
  3303. (define-public perl-plack-middleware-reverseproxy
  3304. (package
  3305. (name "perl-plack-middleware-reverseproxy")
  3306. (version "0.15")
  3307. (source
  3308. (origin
  3309. (method url-fetch)
  3310. (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
  3311. "Plack-Middleware-ReverseProxy-"
  3312. version ".tar.gz"))
  3313. (sha256
  3314. (base32
  3315. "1zmsccdy6wr5hxzj07r1nsmaymyibk87p95z0wzknjw10lwmqs9f"))))
  3316. (build-system perl-build-system)
  3317. (native-inputs
  3318. `(("perl-module-install" ,perl-module-install)))
  3319. (propagated-inputs
  3320. `(("perl-plack" ,perl-plack)))
  3321. (home-page "https://metacpan.org/release/Plack-Middleware-ReverseProxy")
  3322. (synopsis "Supports app to run as a reverse proxy backend")
  3323. (description "Plack::Middleware::ReverseProxy resets some HTTP headers,
  3324. which are changed by reverse-proxy. You can specify the reverse proxy address
  3325. and stop fake requests using 'enable_if' directive in your app.psgi.")
  3326. (license l:perl-license)))
  3327. (define-public perl-plack-test-externalserver
  3328. (package
  3329. (name "perl-plack-test-externalserver")
  3330. (version "0.01")
  3331. (source
  3332. (origin
  3333. (method url-fetch)
  3334. (uri (string-append "mirror://cpan/authors/id/F/FL/FLORA/"
  3335. "Plack-Test-ExternalServer-" version ".tar.gz"))
  3336. (sha256
  3337. (base32
  3338. "1dbg1p3rgvvbkkpvca5jlc2mzx8iqyiybk88al93pvbca65h1g7h"))))
  3339. (build-system perl-build-system)
  3340. (propagated-inputs
  3341. `(("perl-plack" ,perl-plack)))
  3342. (home-page "https://metacpan.org/release/Plack-Test-ExternalServer")
  3343. (synopsis "Run HTTP tests on external live servers")
  3344. (description "This module allows your to run your Plack::Test tests
  3345. against an external server instead of just against a local application through
  3346. either mocked HTTP or a locally spawned server.")
  3347. (license l:perl-license)))
  3348. (define-public perl-test-tcp
  3349. (package
  3350. (name "perl-test-tcp")
  3351. (version "2.06")
  3352. (source
  3353. (origin
  3354. (method url-fetch)
  3355. (uri (string-append "mirror://cpan/authors/id/T/TO/TOKUHIROM/"
  3356. "Test-TCP-" version ".tar.gz"))
  3357. (sha256
  3358. (base32
  3359. "0acjwm21y2an4f3fasci9qa0isakh9cgp74fk0bzcdi506xmcjbi"))))
  3360. (build-system perl-build-system)
  3361. (propagated-inputs
  3362. `(("perl-test-sharedfork" ,perl-test-sharedfork)))
  3363. (arguments `(#:tests? #f)) ;related to signaling in t/05_sigint.t
  3364. (home-page "https://metacpan.org/release/Test-TCP")
  3365. (synopsis "Testing TCP programs")
  3366. (description "Test::TCP is test utilities for TCP/IP programs.")
  3367. (license l:perl-license)))
  3368. (define-public perl-test-www-mechanize
  3369. (package
  3370. (name "perl-test-www-mechanize")
  3371. (version "1.50")
  3372. (source
  3373. (origin
  3374. (method url-fetch)
  3375. (uri (string-append "mirror://cpan/authors/id/P/PE/PETDANCE/"
  3376. "Test-WWW-Mechanize-" version ".tar.gz"))
  3377. (sha256
  3378. (base32
  3379. "097pl87vdbxbb56vawzvs6ikrlb8nz3dx223kjjbdn3jlli3jjhg"))))
  3380. (build-system perl-build-system)
  3381. (propagated-inputs
  3382. `(("perl-carp-assert-more" ,perl-carp-assert-more)
  3383. ("perl-html-form" ,perl-html-form)
  3384. ("perl-html-lint" ,perl-html-lint)
  3385. ("perl-http-server-simple" ,perl-http-server-simple)
  3386. ("perl-libwww" ,perl-libwww)
  3387. ("perl-test-longstring" ,perl-test-longstring)
  3388. ("perl-www-mechanize" ,perl-www-mechanize)))
  3389. (home-page "https://metacpan.org/release/Test-WWW-Mechanize")
  3390. (synopsis "Testing-specific WWW::Mechanize subclass")
  3391. (description "Test::WWW::Mechanize is a subclass of the Perl module
  3392. WWW::Mechanize that incorporates features for web application testing.")
  3393. (license l:artistic2.0)))
  3394. (define-public perl-test-www-mechanize-catalyst
  3395. (package
  3396. (name "perl-test-www-mechanize-catalyst")
  3397. (version "0.62")
  3398. (source
  3399. (origin
  3400. (method url-fetch)
  3401. (uri (string-append "mirror://cpan/authors/id/M/MS/MSTROUT/"
  3402. "Test-WWW-Mechanize-Catalyst-" version ".tar.gz"))
  3403. (sha256
  3404. (base32 "1cdc2q16vs6fb335pzaislz2rx1ph9acaxyp7v5hv9xbwwddwfqq"))))
  3405. (build-system perl-build-system)
  3406. (native-inputs
  3407. `(("perl-catalyst-plugin-session" ,perl-catalyst-plugin-session)
  3408. ("perl-catalyst-plugin-session-state-cookie"
  3409. ,perl-catalyst-plugin-session-state-cookie)
  3410. ("perl-module-install" ,perl-module-install)
  3411. ("perl-test-exception" ,perl-test-exception)
  3412. ("perl-test-pod" ,perl-test-pod)
  3413. ("perl-test-utf8" ,perl-test-utf8)))
  3414. (propagated-inputs
  3415. `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
  3416. ("perl-class-load" ,perl-class-load)
  3417. ("perl-libwww" ,perl-libwww)
  3418. ("perl-moose" ,perl-moose)
  3419. ("perl-namespace-clean" ,perl-namespace-clean)
  3420. ("perl-test-www-mechanize" ,perl-test-www-mechanize)
  3421. ("perl-www-mechanize" ,perl-www-mechanize)))
  3422. (home-page "https://metacpan.org/release/Test-WWW-Mechanize-Catalyst")
  3423. (synopsis "Test::WWW::Mechanize for Catalyst")
  3424. (description "The Test::WWW::Mechanize::Catalyst module meshes the
  3425. Test::WWW:Mechanize module and the Catalyst web application framework to allow
  3426. testing of Catalyst applications without needing to start up a web server.")
  3427. (license l:perl-license)))
  3428. (define-public perl-test-www-mechanize-psgi
  3429. (package
  3430. (name "perl-test-www-mechanize-psgi")
  3431. (version "0.38")
  3432. (source
  3433. (origin
  3434. (method url-fetch)
  3435. (uri (string-append "mirror://cpan/authors/id/O/OA/OALDERS/"
  3436. "Test-WWW-Mechanize-PSGI-" version ".tar.gz"))
  3437. (sha256
  3438. (base32
  3439. "0fsh2i05kf1kfavv2r9kmnjl7qlyqrd11ikc0qcqzzxsqzzjkg9r"))))
  3440. (build-system perl-build-system)
  3441. (native-inputs
  3442. `(("perl-test-pod" ,perl-test-pod)))
  3443. (propagated-inputs
  3444. `(("perl-plack" ,perl-plack)
  3445. ("perl-test-www-mechanize" ,perl-test-www-mechanize)))
  3446. (home-page "https://metacpan.org/release/Test-WWW-Mechanize-PSGI")
  3447. (synopsis "Test PSGI programs using WWW::Mechanize")
  3448. (description "PSGI is a specification to decouple web server environments
  3449. from web application framework code. Test::WWW::Mechanize is a subclass of
  3450. WWW::Mechanize that incorporates features for web application testing. The
  3451. Test::WWW::Mechanize::PSGI module meshes the two to allow easy testing of PSGI
  3452. applications.")
  3453. (license l:perl-license)))
  3454. (define-public perl-uri
  3455. (package
  3456. (name "perl-uri")
  3457. (version "1.73")
  3458. (source (origin
  3459. (method url-fetch)
  3460. (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
  3461. "URI-" version ".tar.gz"))
  3462. (sha256
  3463. (base32
  3464. "04z4xwiryrbxxi48bwbkgq9q9pwfgqry3wp0ramcrwv3dx5ap9yc"))))
  3465. (build-system perl-build-system)
  3466. (native-inputs
  3467. ;; For tests.
  3468. `(("perl-test-needs" ,perl-test-needs)))
  3469. (license l:perl-license)
  3470. (synopsis "Perl Uniform Resource Identifiers (absolute and relative)")
  3471. (description
  3472. "The URI module implements the URI class. Objects of this class
  3473. represent \"Uniform Resource Identifier references\" as specified in RFC 2396
  3474. and updated by RFC 2732.")
  3475. (home-page "https://metacpan.org/release/URI")))
  3476. (define-public perl-uri-fetch
  3477. (package
  3478. (name "perl-uri-fetch")
  3479. (version "0.13")
  3480. (source (origin
  3481. (method url-fetch)
  3482. (uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/"
  3483. "URI-Fetch-" version ".tar.gz"))
  3484. (sha256
  3485. (base32
  3486. "0rw6xiqm70s218aii9id3hf8j3pz6n22xnwd8v9m1ff2bnh63c0d"))))
  3487. (build-system perl-build-system)
  3488. (arguments
  3489. `(#:tests? #f)) ; Tests require internet connection to succeed
  3490. (inputs
  3491. `(("perl-class-errorhandler" ,perl-class-errorhandler)
  3492. ("perl-libwww" ,perl-libwww)
  3493. ("perl-uri" ,perl-uri)))
  3494. (home-page "https://metacpan.org/release/URI-Fetch")
  3495. (synopsis "Smart URI fetching/caching")
  3496. (description "@code{URI::Fetch} is a smart client for fetching HTTP pages,
  3497. notably syndication feeds (RSS, Atom, and others), in an intelligent, bandwidth-
  3498. and time-saving way.")
  3499. (license l:perl-license)))
  3500. (define-public perl-uri-find
  3501. (package
  3502. (name "perl-uri-find")
  3503. (version "20160806")
  3504. (source
  3505. (origin
  3506. (method url-fetch)
  3507. (uri (string-append "mirror://cpan/authors/id/M/MS/MSCHWERN/"
  3508. "URI-Find-" version ".tar.gz"))
  3509. (sha256
  3510. (base32
  3511. "1mk3jv8x0mcq3ajrn9garnxd0jc7sw4pkwqi88r5apqvlljs84z2"))))
  3512. (build-system perl-build-system)
  3513. (native-inputs
  3514. `(("perl-module-build" ,perl-module-build)))
  3515. (propagated-inputs
  3516. `(("perl-uri" ,perl-uri)))
  3517. (home-page "https://metacpan.org/release/URI-Find")
  3518. (synopsis "Find URIs in arbitrary text")
  3519. (description "This module finds URIs and URLs (according to what URI.pm
  3520. considers a URI) in plain text. It only finds URIs which include a
  3521. scheme (http:// or the like), for something a bit less strict, consider
  3522. URI::Find::Schemeless. For a command-line interface, urifind is provided.")
  3523. (license l:perl-license)))
  3524. (define-public perl-uri-ws
  3525. (package
  3526. (name "perl-uri-ws")
  3527. (version "0.03")
  3528. (source
  3529. (origin
  3530. (method url-fetch)
  3531. (uri (string-append "mirror://cpan/authors/id/P/PL/PLICEASE/"
  3532. "URI-ws-" version ".tar.gz"))
  3533. (sha256
  3534. (base32
  3535. "1vs1wm80sq685944g1l4a0fxcbccc00c0f9648yabdmcf90hwsvf"))))
  3536. (build-system perl-build-system)
  3537. (propagated-inputs
  3538. `(("perl-uri" ,perl-uri)))
  3539. (home-page "https://metacpan.org/release/URI-ws")
  3540. (synopsis "WebSocket support for URI package")
  3541. (description "With this module, the URI package provides the same set of
  3542. methods for WebSocket URIs as it does for HTTP URIs.")
  3543. (license l:perl-license)))
  3544. (define-public perl-uri-template
  3545. (package
  3546. (name "perl-uri-template")
  3547. (version "0.23")
  3548. (source (origin
  3549. (method url-fetch)
  3550. (uri (string-append "mirror://cpan/authors/id/B/BR/BRICAS/URI-Template-"
  3551. version ".tar.gz"))
  3552. (sha256
  3553. (base32
  3554. "0nnijyv4n5qfg7l94j7fmvqy9cbq3gl9sz9anmgsiprmkmpk419j"))))
  3555. (build-system perl-build-system)
  3556. (inputs
  3557. `(("perl-uri" ,perl-uri)))
  3558. (native-inputs
  3559. `(("perl-test-pod-coverage" ,perl-test-pod-coverage)
  3560. ("perl-test-pod" ,perl-test-pod)
  3561. ("perl-module-install" ,perl-module-install)
  3562. ("perl-json" ,perl-json)))
  3563. (home-page "https://metacpan.org/release/URI-Template")
  3564. (synopsis "Object for handling URI templates")
  3565. (description "This perl module provides a wrapper around URI templates as described in
  3566. RFC 6570.")
  3567. (license l:perl-license)))
  3568. (define-public perl-www-curl
  3569. (package
  3570. (name "perl-www-curl")
  3571. (version "4.17")
  3572. (source (origin
  3573. (method url-fetch)
  3574. (uri (string-append
  3575. "mirror://cpan/authors/id/S/SZ/SZBALINT/WWW-Curl-"
  3576. version".tar.gz"))
  3577. (patches (search-patches "perl-www-curl-remove-symbol.patch"))
  3578. (sha256
  3579. (base32
  3580. "1fmp9aib1kaps9vhs4dwxn7b15kgnlz9f714bxvqsd1j1q8spzsj"))))
  3581. (build-system perl-build-system)
  3582. (arguments
  3583. '(#:tests? #f ;XXX: tests require network access
  3584. #:phases (modify-phases %standard-phases
  3585. (add-before 'configure 'set-search-path
  3586. (lambda _
  3587. ;; Work around "dotless @INC" build failure.
  3588. (setenv "PERL5LIB"
  3589. (string-append (getcwd) ":"
  3590. (getenv "PERL5LIB")))
  3591. #t)))))
  3592. (native-inputs
  3593. `(("perl-module-install" ,perl-module-install)))
  3594. (inputs `(("curl" ,curl)))
  3595. (synopsis "Perl extension interface for libcurl")
  3596. (description
  3597. "This is a Perl extension interface for the libcurl file downloading
  3598. library.")
  3599. (license l:perl-license)
  3600. (home-page "https://metacpan.org/release/WWW-Curl")))
  3601. (define-public perl-www-mechanize
  3602. (package
  3603. (name "perl-www-mechanize")
  3604. (version "1.89")
  3605. (source
  3606. (origin
  3607. (method url-fetch)
  3608. (uri (string-append "mirror://cpan/authors/id/O/OA/OALDERS/"
  3609. "WWW-Mechanize-" version ".tar.gz"))
  3610. (sha256
  3611. (base32
  3612. "1mxx362vqiniw8vi6k3j7v9b1s7012irhfcblcz1p6jz9cjqi7mh"))))
  3613. (build-system perl-build-system)
  3614. (native-inputs ;only for tests
  3615. `(("perl-cgi" ,perl-cgi)
  3616. ("perl-test-deep" ,perl-test-deep)
  3617. ("perl-test-fatal" ,perl-test-fatal)
  3618. ("perl-test-output" ,perl-test-output)
  3619. ("perl-test-warnings" ,perl-test-warnings)))
  3620. (propagated-inputs
  3621. `(("perl-html-form" ,perl-html-form)
  3622. ("perl-html-parser" ,perl-html-parser)
  3623. ("perl-html-tree" ,perl-html-tree)
  3624. ("perl-http-message" ,perl-http-message)
  3625. ("perl-http-server-simple" ,perl-http-server-simple)
  3626. ("perl-libwww" ,perl-libwww)
  3627. ("perl-test-warn" ,perl-test-warn)
  3628. ("perl-uri" ,perl-uri)))
  3629. (home-page "https://metacpan.org/release/WWW-Mechanize")
  3630. (synopsis "Web browsing in a Perl object")
  3631. (description "WWW::Mechanize is a Perl module for stateful programmatic
  3632. web browsing, used for automating interaction with websites.")
  3633. (license l:perl-license)))
  3634. (define-public perl-www-opensearch
  3635. (package
  3636. (name "perl-www-opensearch")
  3637. (version "0.17")
  3638. (source (origin
  3639. (method url-fetch)
  3640. (uri (string-append "mirror://cpan/authors/id/B/BR/BRICAS/"
  3641. "WWW-OpenSearch-" version ".tar.gz"))
  3642. (sha256
  3643. (base32
  3644. "1yxplx1q1qk2fvnzqrbk01lz26fy1lyhay51a3ky7q3jgh9p01rb"))))
  3645. (build-system perl-build-system)
  3646. (native-inputs
  3647. `(("perl-class-errorhandler" ,perl-class-errorhandler)
  3648. ("perl-datetime" ,perl-datetime)
  3649. ("perl-datetime-format-mail" ,perl-datetime-format-mail)
  3650. ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
  3651. ("perl-feed-find" ,perl-feed-find)
  3652. ("perl-module-install" ,perl-module-install)
  3653. ("perl-module-pluggable" ,perl-module-pluggable)
  3654. ("perl-uri-fetch" ,perl-uri-fetch)
  3655. ("perl-test-simple" ,perl-test-simple)
  3656. ("perl-xml-atom" ,perl-xml-atom)
  3657. ("perl-xml-rss" ,perl-xml-rss)))
  3658. (inputs
  3659. `(("perl-data-page" ,perl-data-page)
  3660. ("perl-libwww" ,perl-libwww)
  3661. ("perl-uri" ,perl-uri)
  3662. ("perl-uri-template" ,perl-uri-template)
  3663. ("perl-xml-feed" ,perl-xml-feed)
  3664. ("perl-xml-libxml" ,perl-xml-libxml)))
  3665. (home-page "https://metacpan.org/release/WWW-OpenSearch")
  3666. (synopsis "Search A9 OpenSearch compatible engines")
  3667. (description
  3668. "@code{WWW::OpenSearch} is a module to search @url{A9's OpenSearch,
  3669. http://opensearch.a9.com} compatible search engines.")
  3670. (license l:perl-license)))
  3671. (define-public perl-www-robotrules
  3672. (package
  3673. (name "perl-www-robotrules")
  3674. (version "6.02")
  3675. (source (origin
  3676. (method url-fetch)
  3677. (uri (string-append
  3678. "mirror://cpan/authors/id/G/GA/GAAS/WWW-RobotRules-"
  3679. version ".tar.gz"))
  3680. (sha256
  3681. (base32
  3682. "07m50dp5n5jxv3m93i55qvnd67a6g7cvbvlik115kmc8lbkh5da6"))))
  3683. (build-system perl-build-system)
  3684. (propagated-inputs
  3685. `(("perl-uri" ,perl-uri)))
  3686. (license l:perl-license)
  3687. (synopsis "Perl database of robots.txt-derived permissions")
  3688. (description
  3689. "The WWW::RobotRules module parses /robots.txt files as specified in
  3690. \"A Standard for Robot Exclusion\", at
  3691. <http://www.robotstxt.org/wc/norobots.html>. Webmasters can use the
  3692. /robots.txt file to forbid conforming robots from accessing parts of
  3693. their web site.")
  3694. (home-page "https://metacpan.org/release/WWW-RobotRules")))
  3695. (define-public python-feedparser
  3696. (package
  3697. (name "python-feedparser")
  3698. (version "5.2.1")
  3699. (source
  3700. (origin
  3701. (method url-fetch)
  3702. (uri (pypi-uri "feedparser" version ".tar.bz2"))
  3703. (sha256
  3704. (base32
  3705. "00hb4qg2am06g81mygfi1jsbx8830024jm45g6qp9g8fr6am91yf"))))
  3706. (build-system python-build-system)
  3707. (arguments
  3708. '(#:tests? #f))
  3709. (home-page
  3710. "https://github.com/kurtmckee/feedparser")
  3711. (synopsis "Parse feeds in Python")
  3712. (description
  3713. "Universal feed parser which handles RSS 0.9x, RSS 1.0, RSS 2.0,
  3714. CDF, Atom 0.3, and Atom 1.0 feeds.")
  3715. (license (list l:bsd-2 ; source code
  3716. l:freebsd-doc)))) ; documentation
  3717. (define-public python2-feedparser
  3718. (package-with-python2 python-feedparser))
  3719. (define-public gumbo-parser
  3720. (package
  3721. (name "gumbo-parser")
  3722. (version "0.10.1")
  3723. (source (origin
  3724. (method url-fetch)
  3725. (uri (string-append "https://github.com/google/"
  3726. "gumbo-parser/archive/v" version ".tar.gz"))
  3727. (file-name (string-append name "-" version ".tar.gz"))
  3728. (sha256
  3729. (base32
  3730. "1bgg2kbj311pqdzw2v33za7k66g1rv44kkvvnz2gnpaasi9k0ii8"))))
  3731. (build-system gnu-build-system)
  3732. (arguments
  3733. `(#:tests? #f)) ;tests require bundling googletest sources
  3734. ;; The release tarball lacks the generated files.
  3735. (native-inputs
  3736. `(("autoconf" ,autoconf)
  3737. ("automake" ,automake)
  3738. ("libtool" ,libtool)))
  3739. (home-page "https://github.com/google/gumbo-parser")
  3740. (synopsis "HTML5 parsing library")
  3741. (description
  3742. "Gumbo is an implementation of the HTML5 parsing algorithm implemented as
  3743. a pure C99 library.")
  3744. (license l:asl2.0)))
  3745. (define-public uwsgi
  3746. (package
  3747. (name "uwsgi")
  3748. (version "2.0.18")
  3749. (source (origin
  3750. (method url-fetch)
  3751. (uri (string-append "https://projects.unbit.it/downloads/uwsgi-"
  3752. version ".tar.gz"))
  3753. (sha256
  3754. (base32
  3755. "10zmk4npknigmbqcq1wmhd461dk93159px172112vyq0i19sqwj9"))))
  3756. (build-system gnu-build-system)
  3757. (outputs '("out" "python"))
  3758. (arguments
  3759. '(;; XXX: The 'check' target runs cppcheck to do static code analysis.
  3760. ;; But there is no obvious way to run the real tests.
  3761. #:tests? #f
  3762. #:phases
  3763. (modify-phases %standard-phases
  3764. (replace 'configure
  3765. ;; Configuration is done by writing an ini file.
  3766. (lambda* (#:key outputs #:allow-other-keys)
  3767. (let* ((out (assoc-ref outputs "out"))
  3768. (bindir (string-append out "/bin"))
  3769. (plugindir (string-append out "/lib/uwsgi")))
  3770. ;; The build phase outputs files to these directories directly.
  3771. (mkdir-p bindir)
  3772. (mkdir-p plugindir)
  3773. ;; XXX: Enable other plugins.
  3774. (call-with-output-file "buildconf/guix.ini"
  3775. (lambda (port)
  3776. (format port "[uwsgi]
  3777. yaml = libyaml
  3778. bin_name = ~a/uwsgi
  3779. plugin_dir = ~a
  3780. inherit = base
  3781. plugins = cgi,python
  3782. embedded_plugins =
  3783. " bindir plugindir))))
  3784. (setenv "PROFILE" "guix")
  3785. #t))
  3786. (replace 'install
  3787. ;; Move plugins into their own output.
  3788. (lambda* (#:key outputs #:allow-other-keys)
  3789. (let* ((out (assoc-ref outputs "out"))
  3790. (plugindir (string-append out "/lib/uwsgi"))
  3791. (python-plugin (string-append
  3792. plugindir "/python_plugin.so")))
  3793. (install-file python-plugin
  3794. (string-append
  3795. (assoc-ref outputs "python") "/lib/uwsgi"))
  3796. (delete-file python-plugin)
  3797. #t))))))
  3798. (native-inputs
  3799. `(("pkg-config" ,pkg-config)
  3800. ("python" ,python-wrapper)))
  3801. (inputs
  3802. `(("jansson" ,jansson)
  3803. ("libxml2" ,libxml2)
  3804. ("libyaml" ,libyaml)
  3805. ("openssl" ,openssl)
  3806. ("pcre" ,pcre)
  3807. ("zlib" ,zlib)
  3808. ;; For plugins.
  3809. ("python" ,python)))
  3810. (home-page "https://uwsgi-docs.readthedocs.org/")
  3811. (synopsis "Application container server")
  3812. (description
  3813. "uWSGI presents a complete stack for networked/clustered web applications,
  3814. implementing message/object passing, caching, RPC and process management.
  3815. It uses the uwsgi protocol for all the networking/interprocess communications.")
  3816. (license l:gpl2+))) ; with linking exception
  3817. (define-public jq
  3818. (package
  3819. (name "jq")
  3820. (version "1.6")
  3821. (source (origin
  3822. (method url-fetch)
  3823. (uri (string-append "https://github.com/stedolan/jq"
  3824. "/releases/download/jq-" version
  3825. "/jq-" version ".tar.gz"))
  3826. (sha256
  3827. (base32
  3828. "1a76f46a652i2g333kfvrl6mp2w7whf6h1yly519izg4y967h9cn"))))
  3829. (inputs
  3830. `(("oniguruma" ,oniguruma)))
  3831. (native-inputs
  3832. `(;; TODO fix gems to generate documentation
  3833. ;;("ruby" ,ruby)
  3834. ;;("bundler" ,bundler)
  3835. ("valgrind" ,valgrind)))
  3836. (build-system gnu-build-system)
  3837. (home-page "http://stedolan.github.io/jq/")
  3838. (synopsis "Command-line JSON processor")
  3839. (description "jq is like sed for JSON data – you can use it to slice and
  3840. filter and map and transform structured data with the same ease that sed, awk,
  3841. grep and friends let you play with text. It is written in portable C. jq can
  3842. mangle the data format that you have into the one that you want with very
  3843. little effort, and the program to do so is often shorter and simpler than
  3844. you'd expect.")
  3845. (license (list l:expat l:cc-by3.0))))
  3846. (define-public uhttpmock
  3847. (package
  3848. (name "uhttpmock")
  3849. (version "0.5.1")
  3850. (source
  3851. (origin
  3852. (method url-fetch)
  3853. (uri (string-append "http://tecnocode.co.uk/downloads/uhttpmock/"
  3854. name "-" version ".tar.xz"))
  3855. (sha256
  3856. (base32
  3857. "163py4klka423x7li2b685gmg3a6hjf074mlff2ajhmi3l0lm8x6"))))
  3858. (build-system glib-or-gtk-build-system)
  3859. (native-inputs
  3860. `(("gobject-introspection" ,gobject-introspection)
  3861. ;; For check phase.
  3862. ("glib-networking" ,glib-networking)
  3863. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  3864. ("pkg-config" ,pkg-config)))
  3865. (inputs
  3866. `(("libsoup" ,libsoup)))
  3867. (home-page "https://gitlab.com/groups/uhttpmock")
  3868. (synopsis "Library for mocking web service APIs which use HTTP or HTTPS")
  3869. (description
  3870. "Uhttpmock is a project for mocking web service APIs which use HTTP or
  3871. HTTPS. It provides a library, libuhttpmock, which implements recording and
  3872. playback of HTTP request/response traces.")
  3873. (license l:lgpl2.1+)))
  3874. (define-public woof
  3875. (package
  3876. (name "woof")
  3877. (version "2012-05-31")
  3878. (source (origin
  3879. (method url-fetch)
  3880. (uri (string-append
  3881. "http://www.home.unix-ag.org/simon/woof-"
  3882. version ".py"))
  3883. (sha256
  3884. (base32
  3885. "0wjmjhpg6xlid33yi59j47q2qadz20sijrqsjahj30vngz856hyq"))))
  3886. (build-system trivial-build-system)
  3887. (arguments
  3888. '(#:modules ((guix build utils))
  3889. #:builder
  3890. (begin
  3891. (use-modules (guix build utils))
  3892. (let* ((source (assoc-ref %build-inputs "source"))
  3893. (out (assoc-ref %outputs "out"))
  3894. (bin (string-append out "/bin"))
  3895. (python (assoc-ref %build-inputs "python")))
  3896. (mkdir-p bin)
  3897. (with-directory-excursion bin
  3898. (copy-file source "woof")
  3899. (patch-shebang "woof" (list (string-append python "/bin")))
  3900. (chmod "woof" #o555))
  3901. #t))))
  3902. (inputs `(("python" ,python-2)))
  3903. (home-page "http://www.home.unix-ag.org/simon/woof.html")
  3904. (synopsis "Single file web server")
  3905. (description "Woof (Web Offer One File) is a small simple web server that
  3906. can easily be invoked on a single file. Your partner can access the file with
  3907. tools they trust (e.g. wget).")
  3908. (license l:gpl2+)))
  3909. (define netsurf-buildsystem
  3910. (package
  3911. (name "netsurf-buildsystem")
  3912. (version "1.7")
  3913. (source
  3914. (origin
  3915. (method url-fetch)
  3916. (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
  3917. "buildsystem-" version ".tar.gz"))
  3918. (sha256
  3919. (base32
  3920. "1q23aaycv35ma5471l1gxib8lfq2s9kprrkaqgfc926d04rlbmhw"))))
  3921. (build-system gnu-build-system)
  3922. (inputs `(("perl" ,perl)))
  3923. (arguments
  3924. '(#:make-flags (list (string-append "PREFIX=" %output))
  3925. #:tests? #f ;no tests
  3926. #:phases (modify-phases %standard-phases
  3927. (delete 'configure)
  3928. (delete 'build))))
  3929. (home-page "http://www.netsurf-browser.org")
  3930. (synopsis "Build system for the Netsurf project")
  3931. (description
  3932. "This package provides the shared build system for Netsurf project
  3933. libraries.")
  3934. (license l:expat)))
  3935. (define netsurf-buildsystem-arguments
  3936. `(#:make-flags `("COMPONENT_TYPE=lib-shared"
  3937. "CC=gcc" "BUILD_CC=gcc"
  3938. ,(string-append "PREFIX=" %output)
  3939. ,(string-append "NSSHARED="
  3940. (assoc-ref %build-inputs
  3941. "netsurf-buildsystem")
  3942. "/share/netsurf-buildsystem"))
  3943. #:test-target "test"
  3944. #:phases (modify-phases %standard-phases
  3945. (delete 'configure))))
  3946. (define-public libparserutils
  3947. (package
  3948. (name "libparserutils")
  3949. (version "0.2.4")
  3950. (source
  3951. (origin
  3952. (method url-fetch)
  3953. (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
  3954. name "-" version "-src.tar.gz"))
  3955. (sha256
  3956. (base32
  3957. "1n2794y2l0c8nv8z2pxwfnbn882987ifmxjv60zdxkhcndhswarj"))))
  3958. (build-system gnu-build-system)
  3959. (native-inputs
  3960. `(("netsurf-buildsystem" ,netsurf-buildsystem)
  3961. ("pkg-config" ,pkg-config)
  3962. ("perl" ,perl))) ;for test harness
  3963. (arguments netsurf-buildsystem-arguments)
  3964. (home-page "http://www.netsurf-browser.org/projects/libparserutils/")
  3965. (synopsis "Parser building library")
  3966. (description
  3967. "LibParserUtils is a library for building efficient parsers, written in
  3968. C. It is developed as part of the NetSurf project.")
  3969. (license l:expat)))
  3970. (define-public hubbub
  3971. (package
  3972. (name "hubbub")
  3973. (version "0.3.5")
  3974. (source
  3975. (origin
  3976. (method url-fetch)
  3977. (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
  3978. "lib" name "-" version "-src.tar.gz"))
  3979. (sha256
  3980. (base32
  3981. "13yq1k96a7972x4r71i9bcsz9yiglj0yx7lj0ziq5r94w5my70ma"))
  3982. (patches (search-patches "hubbub-sort-entities.patch"))))
  3983. (build-system gnu-build-system)
  3984. (native-inputs
  3985. `(("netsurf-buildsystem" ,netsurf-buildsystem)
  3986. ("pkg-config" ,pkg-config)
  3987. ("doxygen" ,doxygen)
  3988. ("json-c" ,json-c-0.12) ; check whether json-c-0.12 can be removed
  3989. ("perl" ,perl)))
  3990. (propagated-inputs
  3991. `(("libparserutils" ,libparserutils))) ;for libhubbub.pc
  3992. (arguments netsurf-buildsystem-arguments)
  3993. (home-page "http://www.netsurf-browser.org/projects/hubbub/")
  3994. (synopsis "HTML5 compliant parsing library")
  3995. (description
  3996. "Hubbub is an HTML5 compliant parsing library, written in C, which can
  3997. parse both valid and invalid web content. It is developed as part of the
  3998. NetSurf project.")
  3999. (license l:expat)))
  4000. (define-public ikiwiki
  4001. (package
  4002. (name "ikiwiki")
  4003. (version "3.20170111")
  4004. (source
  4005. (origin
  4006. (method url-fetch)
  4007. (uri (string-append "http://snapshot.debian.org/archive/debian/"
  4008. "20170111T215449Z/pool/main/i/ikiwiki/ikiwiki_"
  4009. version ".tar.xz"))
  4010. (sha256
  4011. (base32
  4012. "00d7yzv426fvqbhvzyafddv7fa6b4j2647b0wi371wd5yjj9j3sz"))))
  4013. (build-system perl-build-system)
  4014. (arguments
  4015. `(;; Image tests fail
  4016. ;;
  4017. ;; Test Summary Report
  4018. ;; -------------------
  4019. ;; t/img.t (Wstat: 2304 Tests: 62 Failed: 9)
  4020. ;; Failed tests: 21, 27-28, 30-35
  4021. ;; Non-zero exit status: 9
  4022. #:tests? #f
  4023. #:phases
  4024. (modify-phases %standard-phases
  4025. (add-after 'unpack 'include-PERL5LIB-in-wrapper
  4026. (lambda _
  4027. (substitute* "IkiWiki/Wrapper.pm"
  4028. (("^@wrapper\\_hooks")
  4029. (string-append
  4030. "@wrapper_hooks\n"
  4031. " addenv(\"PERL5LIB\", \""
  4032. (getenv "PERL5LIB")
  4033. "\");")))))
  4034. (add-after 'patch-source-shebangs 'patch-Makefile
  4035. (lambda _
  4036. (substitute* "Makefile.PL"
  4037. (("SYSCONFDIR\\?=") "SYSCONFDIR?=$(PREFIX)"))
  4038. #t))
  4039. (add-after 'install 'wrap-programs
  4040. (lambda* (#:key outputs #:allow-other-keys)
  4041. (let* ((out (assoc-ref outputs "out"))
  4042. (bin (string-append out "/bin/"))
  4043. (path (getenv "PERL5LIB")))
  4044. (for-each (lambda (file)
  4045. (wrap-program file
  4046. `("PERL5LIB" ":" prefix (,path))))
  4047. (find-files bin))
  4048. #t))))))
  4049. (native-inputs
  4050. `(("which" ,which)
  4051. ("perl-html-tagset" ,perl-html-tagset)
  4052. ("perl-timedate" ,perl-timedate)
  4053. ("perl-xml-sax" ,perl-xml-sax)
  4054. ("perl-xml-simple" ,perl-xml-simple)
  4055. ("gettext" ,gettext-minimal)
  4056. ("subversion" ,subversion)
  4057. ("git" ,git)
  4058. ("bazaar" ,bazaar)
  4059. ("cvs" ,cvs)
  4060. ("mercurial" ,mercurial)))
  4061. (inputs
  4062. `(("python" ,python-wrapper)
  4063. ("perl-cgi-formbuilder" ,perl-cgi-formbuilder)
  4064. ("perl-cgi-session" ,perl-cgi-session)
  4065. ("perl-cgi-simple" ,perl-cgi-simple)
  4066. ("perl-db-file" ,perl-db-file)
  4067. ("perl-html-parser" ,perl-html-parser)
  4068. ("perl-html-scrubber" ,perl-html-scrubber)
  4069. ("perl-html-template" ,perl-html-template)
  4070. ("perl-image-magick" ,perl-image-magick)
  4071. ("perl-json" ,perl-json)
  4072. ("perl-text-markdown-discount" ,perl-text-markdown-discount)
  4073. ("perl-uri" ,perl-uri)
  4074. ("perl-yaml-libyaml" ,perl-yaml-libyaml)))
  4075. (home-page "https://ikiwiki.info/")
  4076. (synopsis "Wiki compiler, capable of generating HTML")
  4077. (description
  4078. "Ikiwiki is a wiki compiler, capable of generating a static set of web
  4079. pages, but also incorporating dynamic features like a web based editor and
  4080. commenting.")
  4081. (license l:gpl2+)))
  4082. (define-public libwapcaplet
  4083. (package
  4084. (name "libwapcaplet")
  4085. (version "0.4.1")
  4086. (source
  4087. (origin
  4088. (method url-fetch)
  4089. (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
  4090. name "-" version "-src.tar.gz"))
  4091. (sha256
  4092. (base32
  4093. "134pljlm8kby1yy49826f0ixnpig8iqak6xpyl3aivagnsjnxzy8"))))
  4094. (build-system gnu-build-system)
  4095. (native-inputs
  4096. `(("netsurf-buildsystem" ,netsurf-buildsystem)
  4097. ("pkg-config" ,pkg-config)
  4098. ("check" ,check))) ;for tests
  4099. (arguments netsurf-buildsystem-arguments)
  4100. (home-page "http://www.netsurf-browser.org/projects/libwapcaplet/")
  4101. (synopsis "String internment library")
  4102. (description
  4103. "LibWapcaplet provides a reference counted string internment system
  4104. designed to store small strings and allow rapid comparison of them. It is
  4105. developed as part of the Netsurf project.")
  4106. (license l:expat)))
  4107. (define-public libcss
  4108. (package
  4109. (name "libcss")
  4110. (version "0.8.0")
  4111. (source
  4112. (origin
  4113. (method url-fetch)
  4114. (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
  4115. name "-" version "-src.tar.gz"))
  4116. (sha256
  4117. (base32
  4118. "0pxdqbxn6brj03nv57bsvac5n70k4scn3r5msaw0jgn2k06lk81m"))))
  4119. (build-system gnu-build-system)
  4120. (native-inputs
  4121. `(("netsurf-buildsystem" ,netsurf-buildsystem)
  4122. ("pkg-config" ,pkg-config)
  4123. ("perl" ,perl)))
  4124. (propagated-inputs ;needed for libcss.pc
  4125. `(("libparserutils" ,libparserutils)
  4126. ("libwapcaplet" ,libwapcaplet)))
  4127. (arguments netsurf-buildsystem-arguments)
  4128. (home-page "http://www.netsurf-browser.org/projects/libcss/")
  4129. (synopsis "CSS parser and selection library")
  4130. (description
  4131. "LibCSS is a CSS (Cascading Style Sheet) parser and selection engine,
  4132. written in C. It is developed as part of the NetSurf project.")
  4133. (license l:expat)))
  4134. (define-public libdom
  4135. (package
  4136. (name "libdom")
  4137. (version "0.3.3")
  4138. (source
  4139. (origin
  4140. (method url-fetch)
  4141. (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
  4142. name "-" version "-src.tar.gz"))
  4143. (sha256
  4144. (base32
  4145. "1919757mdl3gii2pl6kzm8b1cal0h06r5nqd2y0kny6hc5yrhsp0"))))
  4146. (build-system gnu-build-system)
  4147. (native-inputs
  4148. `(("netsurf-buildsystem" ,netsurf-buildsystem)
  4149. ("pkg-config" ,pkg-config)
  4150. ("perl" ,perl) ;for test harness
  4151. ("perl-libxml" ,perl-libxml)
  4152. ("perl-switch" ,perl-switch)
  4153. ("perl-xml-xpath" ,perl-xml-xpath)))
  4154. (inputs
  4155. `(("libparserutils" ,libparserutils)
  4156. ("libwapcaplet" ,libwapcaplet)))
  4157. (propagated-inputs
  4158. `(("expat" ,expat) ;needed for headers and linking
  4159. ("hubbub" ,hubbub))) ;for libdom.pc
  4160. (arguments
  4161. `(#:tests? #f ;TODO: re-enable. tests take a looong time.
  4162. ,@netsurf-buildsystem-arguments))
  4163. (home-page "http://www.netsurf-browser.org/projects/libdom/")
  4164. (synopsis "Implementation of the W3C DOM")
  4165. (description
  4166. "LibDOM is an implementation of the W3C DOM, written in C. It is
  4167. developed as part of the NetSurf project.")
  4168. (license l:expat)))
  4169. (define-public libsvgtiny
  4170. (package
  4171. (name "libsvgtiny")
  4172. (version "0.1.7")
  4173. (source
  4174. (origin
  4175. (method url-fetch)
  4176. (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
  4177. name "-" version "-src.tar.gz"))
  4178. (sha256
  4179. (base32
  4180. "10bpkmvfpydj74im3r6kqm9vnvgib6afy0alx71q5n0w5yawy39c"))))
  4181. (build-system gnu-build-system)
  4182. (native-inputs
  4183. `(("netsurf-buildsystem" ,netsurf-buildsystem)
  4184. ("pkg-config" ,pkg-config)
  4185. ("gperf" ,gperf-3.0)))
  4186. (inputs
  4187. `(("libwapcaplet" ,libwapcaplet)))
  4188. (propagated-inputs
  4189. `(("libdom" ,libdom))) ;for libsvgtiny.pc
  4190. (arguments netsurf-buildsystem-arguments)
  4191. (home-page "http://www.netsurf-browser.org/projects/libsvgtiny/")
  4192. (synopsis "Library for parsing SVG files")
  4193. (description
  4194. "Libsvgtiny takes some SVG as input and returns a list of paths and texts
  4195. which can be rendered easily, as defined in
  4196. @url{http://www.w3.org/TR/SVGMobile/}. It is developed as part of the NetSurf
  4197. project.")
  4198. (license l:expat)))
  4199. (define-public libnsbmp
  4200. (package
  4201. (name "libnsbmp")
  4202. (version "0.1.5")
  4203. (source
  4204. (origin
  4205. (method url-fetch)
  4206. (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
  4207. name "-" version "-src.tar.gz"))
  4208. (sha256
  4209. (base32
  4210. "0lib2m07d1i0k80m4blkwnj0g7rha4jbm5vrgd0wwbkyfa0hvk35"))))
  4211. (build-system gnu-build-system)
  4212. (native-inputs
  4213. `(("netsurf-buildsystem" ,netsurf-buildsystem)))
  4214. (arguments netsurf-buildsystem-arguments)
  4215. (home-page "http://www.netsurf-browser.org/projects/libnsbmp/")
  4216. (synopsis "Decoding library for BMP and ICO files")
  4217. (description
  4218. "Libnsbmp is a decoding library for BMP and ICO image file formats,
  4219. written in C. It is developed as part of the NetSurf project.")
  4220. (license l:expat)))
  4221. (define-public libnsgif
  4222. (package
  4223. (name "libnsgif")
  4224. (version "0.2.1")
  4225. (source
  4226. (origin
  4227. (method url-fetch)
  4228. (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
  4229. name "-" version "-src.tar.gz"))
  4230. (sha256
  4231. (base32
  4232. "0jwshypgmx16xlsbx3d8njk8a5khazlplca5mxd3rdbhrlsabbly"))))
  4233. (build-system gnu-build-system)
  4234. (native-inputs
  4235. `(("netsurf-buildsystem" ,netsurf-buildsystem)))
  4236. (arguments netsurf-buildsystem-arguments)
  4237. (home-page "http://www.netsurf-browser.org/projects/libnsgif/")
  4238. (synopsis "Decoding library for GIF files")
  4239. (description
  4240. "Libnsgif is a decoding library for the GIF image file format, written in
  4241. C. It is developed as part of the NetSurf project.")
  4242. (license l:expat)))
  4243. (define-public libnsutils
  4244. (package
  4245. (name "libnsutils")
  4246. (version "0.0.5")
  4247. (source
  4248. (origin
  4249. (method url-fetch)
  4250. (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
  4251. name "-" version "-src.tar.gz"))
  4252. (sha256
  4253. (base32
  4254. "09w1rixps1iiq6wirjwxmd6h87llvjzvw565rahjb3rlyhcplfqf"))))
  4255. (build-system gnu-build-system)
  4256. (native-inputs
  4257. `(("netsurf-buildsystem" ,netsurf-buildsystem)))
  4258. (arguments netsurf-buildsystem-arguments)
  4259. (home-page "http://www.netsurf-browser.org/")
  4260. (synopsis "Utility library for NetSurf")
  4261. (description
  4262. "Libnsutils provides a small number of useful utility routines. It is
  4263. developed as part of the NetSurf project.")
  4264. (license l:expat)))
  4265. (define-public libnspsl
  4266. (package
  4267. (name "libnspsl")
  4268. (version "0.1.3")
  4269. (source
  4270. (origin
  4271. (method url-fetch)
  4272. (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
  4273. name "-" version "-src.tar.gz"))
  4274. (sha256
  4275. (base32
  4276. "1rsk1k2a495axxgv8060s0p1phhhcxrv75252kllbkvr8id5kqld"))))
  4277. (build-system gnu-build-system)
  4278. (native-inputs
  4279. `(("netsurf-buildsystem" ,netsurf-buildsystem)))
  4280. (arguments netsurf-buildsystem-arguments)
  4281. (home-page "http://www.netsurf-browser.org/")
  4282. (synopsis "Library to generate a static Public Suffix List")
  4283. (description
  4284. "Libnspsl is a library to generate a static code representation of the
  4285. Public Suffix List. It is developed as part of the NetSurf project.")
  4286. (license l:expat)))
  4287. (define-public nsgenbind
  4288. (package
  4289. (name "nsgenbind")
  4290. (version "0.6")
  4291. (source
  4292. (origin
  4293. (method url-fetch)
  4294. (uri (string-append "http://download.netsurf-browser.org/libs/releases/"
  4295. name "-" version "-src.tar.gz"))
  4296. (sha256
  4297. (base32
  4298. "0v1cb1rz5fix9ql31nzmglj7sybya6d12b2fkaypm1avcca59xwj"))))
  4299. (build-system gnu-build-system)
  4300. (native-inputs
  4301. `(("netsurf-buildsystem" ,netsurf-buildsystem)
  4302. ("bison" ,bison)
  4303. ("flex" ,flex)))
  4304. (arguments
  4305. (substitute-keyword-arguments netsurf-buildsystem-arguments
  4306. ((#:make-flags flags)
  4307. `(delete "COMPONENT_TYPE=lib-shared" ,flags))))
  4308. (home-page "http://www.netsurf-browser.org/")
  4309. (synopsis "Generate JavaScript to DOM bindings")
  4310. (description
  4311. "@code{nsgenbind} is a tool to generate JavaScript to DOM bindings from
  4312. w3c webidl files and a binding configuration file.")
  4313. (license l:expat)))
  4314. (define-public netsurf
  4315. (package
  4316. (name "netsurf")
  4317. (version "3.8")
  4318. (source
  4319. (origin
  4320. (method url-fetch)
  4321. (uri (string-append "http://download.netsurf-browser.org/netsurf/"
  4322. "releases/source/netsurf-" version "-src.tar.gz"))
  4323. (sha256
  4324. (base32
  4325. "0hjm1h4m1i913y4mhkl7yqdifn8k70fwi58zdh6faypawzryc3m0"))
  4326. (patches (search-patches "netsurf-system-utf8proc.patch"
  4327. "netsurf-y2038-tests.patch"
  4328. "netsurf-longer-test-timeout.patch"
  4329. "netsurf-message-timestamp.patch"))))
  4330. (build-system glib-or-gtk-build-system)
  4331. (native-inputs
  4332. `(("netsurf-buildsystem" ,netsurf-buildsystem)
  4333. ("nsgenbind" ,nsgenbind)
  4334. ("libidn" ,libidn) ;only for tests
  4335. ("check" ,check)
  4336. ("perl" ,perl)
  4337. ("perl-html-parser" ,perl-html-parser)
  4338. ("pkg-config" ,pkg-config)))
  4339. (inputs
  4340. `(("curl" ,curl)
  4341. ("gtk+" ,gtk+-2)
  4342. ("openssl" ,openssl)
  4343. ("utf8proc" ,utf8proc)
  4344. ("libpng" ,libpng)
  4345. ("libjpeg" ,libjpeg)
  4346. ("libcss" ,libcss)
  4347. ("libdom" ,libdom)
  4348. ("libnsbmp" ,libnsbmp)
  4349. ("libnsgif" ,libnsgif)
  4350. ("libnspsl" ,libnspsl)
  4351. ("libnsutils" ,libnsutils)
  4352. ("libsvgtiny" ,libsvgtiny)
  4353. ("miscfiles" ,miscfiles)))
  4354. (arguments
  4355. `(#:make-flags `("CC=gcc" "BUILD_CC=gcc"
  4356. ,(string-append "PREFIX=" %output)
  4357. ,(string-append "NSSHARED="
  4358. (assoc-ref %build-inputs
  4359. "netsurf-buildsystem")
  4360. "/share/netsurf-buildsystem"))
  4361. #:test-target "test"
  4362. #:modules ((ice-9 rdelim)
  4363. (ice-9 match)
  4364. (srfi srfi-1)
  4365. (sxml simple)
  4366. ,@%glib-or-gtk-build-system-modules)
  4367. #:phases
  4368. (modify-phases %standard-phases
  4369. (delete 'configure)
  4370. (add-after 'build 'adjust-welcome
  4371. (lambda _
  4372. ;; First, fix some unended tags and simple substitutions
  4373. (substitute* "frontends/gtk/res/welcome.html"
  4374. (("<(img|input)([^>]*)>" _ tag contents)
  4375. (string-append "<" tag contents " />"))
  4376. (("Licence") "License") ;prefer GNU spelling
  4377. ((" open source") ", free software")
  4378. (("web&nbsp;site") "website")
  4379. ;; Prefer privacy-respecting default search engine
  4380. (("www.google.co.uk") "www.duckduckgo.com/html")
  4381. (("Google Search") "DuckDuckGo Search")
  4382. (("name=\"btnG\"") ""))
  4383. ;; Remove default links so it doesn't seem we're endorsing them
  4384. (with-atomic-file-replacement "frontends/gtk/res/welcome.html"
  4385. (lambda (in out)
  4386. ;; Leave the DOCTYPE header as is
  4387. (display (read-line in 'concat) out)
  4388. (sxml->xml
  4389. (let rec ((sxml (xml->sxml in)))
  4390. ;; We'd like to use sxml-match here, but it can't
  4391. ;; match against generic tag symbols...
  4392. (match sxml
  4393. (`(div (@ (class "links")) . ,rest)
  4394. '())
  4395. ((x ...)
  4396. (map rec x))
  4397. (x x)))
  4398. out)))
  4399. #t))
  4400. (add-before 'check 'patch-check
  4401. (lambda* (#:key inputs #:allow-other-keys)
  4402. (substitute* '("test/bloom.c" "test/hashtable.c")
  4403. (("/usr/share/dict/words")
  4404. (string-append (assoc-ref inputs "miscfiles") "/share/web2")))
  4405. #t))
  4406. (add-after 'install 'install-more
  4407. (lambda* (#:key outputs #:allow-other-keys)
  4408. (let* ((out (assoc-ref outputs "out"))
  4409. (desktop (string-append out "/share/applications/"
  4410. "netsurf.desktop")))
  4411. (mkdir-p (dirname desktop))
  4412. (copy-file "frontends/gtk/res/netsurf-gtk.desktop"
  4413. desktop)
  4414. (substitute* desktop
  4415. (("netsurf-gtk") (string-append out "/bin/netsurf-gtk"))
  4416. (("netsurf.png") (string-append out "/share/netsurf/"
  4417. "netsurf.xpm")))
  4418. (install-file "docs/netsurf-gtk.1"
  4419. (string-append out "/share/man/man1/"))
  4420. #t))))))
  4421. (home-page "http://www.netsurf-browser.org")
  4422. (synopsis "Web browser")
  4423. (description
  4424. "NetSurf is a lightweight web browser that has its own layout and
  4425. rendering engine entirely written from scratch. It is small and capable of
  4426. handling many of the web standards in use today.")
  4427. (license l:gpl2+)))
  4428. (define-public surfraw
  4429. (package
  4430. (name "surfraw")
  4431. (version "2.2.9")
  4432. (source (origin
  4433. (method url-fetch)
  4434. (uri (string-append "https://surfraw.alioth.debian.org/dist/"
  4435. name "-" version ".tar.gz"))
  4436. (sha256
  4437. (base32
  4438. "1fy4ph5h9kp0jzj1m6pfylxnnmgdk0mmdppw76z9jhna4jndk5xa"))))
  4439. (build-system gnu-build-system)
  4440. (arguments
  4441. `(#:phases
  4442. (modify-phases %standard-phases
  4443. (add-before 'configure 'patch-perl
  4444. (lambda* (#:key inputs #:allow-other-keys)
  4445. (let ((perl (assoc-ref inputs "perl")))
  4446. (substitute* "surfraw.IN"
  4447. (("perl -e")
  4448. (string-append perl "/bin/perl -e")))
  4449. #t)))
  4450. (add-after 'install 'compress-elvi.1sr
  4451. (lambda* (#:key outputs #:allow-other-keys)
  4452. ;; The manpages of the elvis are symlinks to elvi.1sr.gz
  4453. ;; but elvi.1sr does not get compressed by our manpage phase.
  4454. (let* ((out (assoc-ref %outputs "out"))
  4455. (man (string-append out "/share/man/man1")))
  4456. (with-directory-excursion man
  4457. (invoke "gzip" "elvi.1sr"))))))))
  4458. (inputs
  4459. `(("perl" ,perl)
  4460. ("perl-www-opensearch" ,perl-www-opensearch)
  4461. ("perl-html-parser" ,perl-html-parser)
  4462. ("perl-libwww" ,perl-libwww)))
  4463. (synopsis "Unix command line interface to the www")
  4464. (description "Surfraw (Shell Users' Revolutionary Front Rage Against the Web)
  4465. provides a unix command line interface to a variety of popular www search engines
  4466. and similar services.")
  4467. (home-page "https://surfraw.alioth.debian.org/")
  4468. (license l:public-domain)))
  4469. (define-public darkhttpd
  4470. (package
  4471. (name "darkhttpd")
  4472. (version "1.12")
  4473. (source
  4474. (origin
  4475. (method url-fetch)
  4476. (uri (string-append "https://unix4lyfe.org/darkhttpd/darkhttpd-"
  4477. version ".tar.bz2"))
  4478. (sha256
  4479. (base32
  4480. "0185wlyx4iqiwfigp1zvql14zw7gxfacncii3d15yaxk4av1f155"))))
  4481. (build-system gnu-build-system)
  4482. (arguments
  4483. `(#:make-flags '("CC=gcc")
  4484. #:tests? #f ; No test suite
  4485. #:phases
  4486. (modify-phases %standard-phases
  4487. (delete 'configure)
  4488. (replace 'install
  4489. (lambda* (#:key outputs #:allow-other-keys)
  4490. (install-file "darkhttpd"
  4491. (string-append (assoc-ref outputs "out")
  4492. "/bin"))
  4493. #t)))))
  4494. (synopsis "Simple static web server")
  4495. (description "darkhttpd is a simple static web server. It is
  4496. standalone and does not need inetd or ucspi-tcp. It does not need any
  4497. config files---you only have to specify the www root.")
  4498. (home-page "https://unix4lyfe.org/darkhttpd/")
  4499. (license l:isc)))
  4500. (define-public goaccess
  4501. (package
  4502. (name "goaccess")
  4503. (version "1.0.2")
  4504. (source (origin
  4505. (method url-fetch)
  4506. (uri (string-append "http://tar.goaccess.io/goaccess-"
  4507. version ".tar.gz"))
  4508. (sha256
  4509. (base32
  4510. "1w84y61f3ldg2f28q6qlyr1scn3mcx0bsbq3i5xi5w193wh3xa2q"))
  4511. (modules '((guix build utils)))
  4512. (snippet '(begin
  4513. (substitute* "src/error.h"
  4514. (("__DATE__") "\"1970-01-01\"")
  4515. (("__TIME__") "\"00:00:00\""))
  4516. #t))))
  4517. (build-system gnu-build-system)
  4518. (inputs
  4519. ;; TODO: Add dependency on geoip-tools.
  4520. `(("glib" ,glib)
  4521. ("ncurses" ,ncurses)))
  4522. (native-inputs
  4523. `(("pkg-config" ,pkg-config)))
  4524. (home-page "https://goaccess.io")
  4525. (synopsis "Analyze Web server logs in real time")
  4526. (description
  4527. "GoAccess is a real-time web log analyzer and interactive viewer that
  4528. runs in a terminal or through your browser. It provides fast and valuable
  4529. HTTP statistics for system administrators that require a visual server report
  4530. on the fly.")
  4531. (license l:x11)))
  4532. (define-public httptunnel
  4533. (package
  4534. (name "httptunnel")
  4535. (version "3.3")
  4536. (source
  4537. (origin
  4538. (method url-fetch)
  4539. (uri (string-append "http://www.nocrew.org/software/httptunnel/"
  4540. name "-" version ".tar.gz"))
  4541. (sha256
  4542. (base32
  4543. "0mn5s6p68n32xzadz6ds5i6bp44dyxzkq68r1yljlv470jr84bql"))
  4544. (modules '((guix build utils)))
  4545. (snippet '(begin
  4546. ;; Remove non-free IETF RFC documentation.
  4547. (delete-file-recursively "doc")
  4548. #t))))
  4549. (build-system gnu-build-system)
  4550. (arguments
  4551. `(#:phases
  4552. (modify-phases %standard-phases
  4553. ;; The default configure phase tries to pass environment variables as
  4554. ;; command-line arguments, which confuses the ./configure script.
  4555. (replace 'configure
  4556. (lambda* (#:key outputs #:allow-other-keys)
  4557. (let* ((out (assoc-ref outputs "out")))
  4558. (setenv "CONFIG_SHELL" (which "bash"))
  4559. (invoke "./configure"
  4560. (string-append "--prefix=" out))))))))
  4561. (home-page "http://www.nocrew.org/software/httptunnel.html")
  4562. (synopsis "Tunnel data connections through HTTP requests")
  4563. (description "httptunnel creates a bidirectional virtual data connection
  4564. tunnelled through HTTP (HyperText Transfer Protocol) requests. This can be
  4565. useful for users behind restrictive firewalls. As long as Web traffic is
  4566. allowed, even through a HTTP-only proxy, httptunnel can be combined with other
  4567. tools like SSH (Secure Shell) to reach the outside world.")
  4568. (license l:gpl2+)))
  4569. (define-public stunnel
  4570. (package
  4571. (name "stunnel")
  4572. (version "5.48")
  4573. (source
  4574. (origin
  4575. (method url-fetch)
  4576. (uri (string-append "https://www.stunnel.org/downloads/stunnel-"
  4577. version ".tar.gz"))
  4578. (sha256
  4579. (base32
  4580. "1pxqn9ixl80nrhfq12igyi874653jclji56hh9w24snf0aixa48h"))))
  4581. (build-system gnu-build-system)
  4582. (native-inputs
  4583. ;; For tests.
  4584. `(("iproute" ,iproute)
  4585. ("netcat" ,netcat)
  4586. ("procps" ,procps)))
  4587. (inputs `(("openssl" ,openssl)))
  4588. (arguments
  4589. `(#:configure-flags
  4590. (list (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl")))
  4591. #:phases
  4592. (modify-phases %standard-phases
  4593. (add-after 'unpack 'patch-output-directories
  4594. (lambda _
  4595. ;; Some (not all) Makefiles have a hard-coded incorrect docdir.
  4596. (substitute* (list "Makefile.in"
  4597. "doc/Makefile.in"
  4598. "tools/Makefile.in")
  4599. (("/doc/stunnel")
  4600. (string-append "/doc/" ,name "-" ,version)))
  4601. #t))
  4602. (add-before 'check 'patch-tests
  4603. (lambda _
  4604. (substitute* "tests/make_test"
  4605. (("/bin/sh ")
  4606. (string-append (which "sh") " ")))
  4607. #t)))))
  4608. (home-page "https://www.stunnel.org")
  4609. (synopsis "TLS proxy for clients or servers")
  4610. (description "Stunnel is a proxy designed to add TLS encryption
  4611. functionality to existing clients and servers without any changes in the
  4612. programs' code. Its architecture is optimized for security, portability, and
  4613. scalability (including load-balancing), making it suitable for large
  4614. deployments.")
  4615. (license l:gpl2+)))
  4616. (define-public varnish
  4617. (package
  4618. (name "varnish")
  4619. (home-page "https://varnish-cache.org/")
  4620. (version "6.1.1")
  4621. (source (origin
  4622. (method url-fetch)
  4623. (uri (string-append home-page "_downloads/varnish-" version ".tgz"))
  4624. (sha256
  4625. (base32
  4626. "0gf9hzzrr1lndbbqi8cwlfasi7l517cy3nbgna88i78lm247rvp0"))))
  4627. (build-system gnu-build-system)
  4628. (arguments
  4629. `(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")
  4630. ;; Use absolute path of GCC so it's found at runtime.
  4631. (string-append "PTHREAD_CC="
  4632. (assoc-ref %build-inputs "gcc")
  4633. "/bin/gcc")
  4634. ;; XXX: Disable PCRE-JIT to work around a segmentation
  4635. ;; fault when using jemalloc 5.x:
  4636. ;; <https://github.com/varnishcache/varnish-cache/issues/2817>
  4637. "--disable-pcre-jit"
  4638. "--localstatedir=/var")
  4639. #:phases
  4640. (modify-phases %standard-phases
  4641. (add-after 'unpack 'use-absolute-file-names
  4642. (lambda _
  4643. (substitute* '("bin/varnishtest/vtc_varnish.c"
  4644. "bin/varnishtest/vtc_process.c"
  4645. "bin/varnishd/mgt/mgt_vcc.c")
  4646. (("/bin/sh") (which "sh")))
  4647. (substitute* "bin/varnishd/mgt/mgt_shmem.c"
  4648. (("rm -rf") (string-append (which "rm") " -rf")))
  4649. #t))
  4650. (add-before 'install 'patch-Makefile
  4651. (lambda _
  4652. (substitute* "Makefile"
  4653. ;; Do not create /var/varnish during install.
  4654. (("^install-data-am: install-data-local") "install-data-am: "))
  4655. #t))
  4656. (add-after 'install 'wrap-varnishd
  4657. ;; Varnish uses GCC to compile VCL, so wrap it with required GCC
  4658. ;; environment variables to avoid propagating them to profiles.
  4659. (lambda* (#:key inputs outputs #:allow-other-keys)
  4660. (let* ((out (assoc-ref outputs "out"))
  4661. (varnishd (string-append out "/sbin/varnishd"))
  4662. (PATH (string-append (assoc-ref inputs "binutils") "/bin"))
  4663. (LIBRARY_PATH (string-append (assoc-ref inputs "libc") "/lib")))
  4664. (wrap-program varnishd
  4665. ;; Add binutils to PATH so gcc finds the 'as' executable.
  4666. `("PATH" ":" prefix (,PATH))
  4667. ;; Make sure 'crti.o' et.al is found.
  4668. `("LIBRARY_PATH" ":" prefix (,LIBRARY_PATH)))
  4669. #t))))))
  4670. (native-inputs
  4671. `(("pkg-config" ,pkg-config)
  4672. ("python-sphinx" ,python-sphinx)
  4673. ("rst2man" ,python-docutils)))
  4674. (inputs
  4675. `(("jemalloc" ,jemalloc)
  4676. ("ncurses" ,ncurses)
  4677. ("pcre" ,pcre)
  4678. ("python" ,python-wrapper)
  4679. ("readline" ,readline)))
  4680. (synopsis "Web application accelerator")
  4681. (description
  4682. "Varnish is a high-performance HTTP accelerator. It acts as a caching
  4683. reverse proxy and load balancer. You install it in front of any server that
  4684. speaks HTTP and configure it to cache the contents through an extensive
  4685. configuration language.")
  4686. (license (list l:bsd-2 ;main distribution
  4687. l:zlib ;lib/libvgz/*
  4688. l:public-domain ;bin/varnishncsa/as64.c, include/miniobj.h
  4689. l:bsd-3)))) ;include/vqueue.h, lib/libvarnishcompat/daemon.c
  4690. (define-public varnish-modules
  4691. (package
  4692. (name "varnish-modules")
  4693. (home-page "https://github.com/varnish/varnish-modules")
  4694. (version "0.15.0")
  4695. (source (origin
  4696. (method url-fetch)
  4697. (uri (string-append "https://download.varnish-software.com"
  4698. "/varnish-modules/varnish-modules-"
  4699. version ".tar.gz"))
  4700. (sha256
  4701. (base32
  4702. "09li9lqa1kb275w1rby2zldyg8r9cfcl4qyv53qyd9xbzilrz751"))))
  4703. (build-system gnu-build-system)
  4704. (native-inputs
  4705. `(("pkg-config" ,pkg-config)))
  4706. (inputs
  4707. `(("python" ,python)
  4708. ("varnish" ,varnish)))
  4709. (synopsis "Collection of Varnish modules")
  4710. (description
  4711. "This package provides a collection of modules (@dfn{vmods}) for the Varnish
  4712. cache server, extending the @dfn{Varnish Configuration Language} (VCL) with
  4713. additional capabilities.")
  4714. (license l:bsd-2)))
  4715. (define-public xinetd
  4716. (package
  4717. (name "xinetd")
  4718. (version "2.3.15")
  4719. (source
  4720. (origin
  4721. (method git-fetch)
  4722. (uri (git-reference
  4723. (url "https://github.com/xinetd-org/xinetd.git")
  4724. (commit (string-append "xinetd-"
  4725. (string-join (string-split version #\.)
  4726. "-")))))
  4727. (file-name (git-file-name name version))
  4728. (patches (search-patches "xinetd-CVE-2013-4342.patch"
  4729. "xinetd-fix-fd-leak.patch"))
  4730. (sha256
  4731. (base32 "0wjai6qagcgxpa1khh639ih7kswgkryc7ll1i4hxhs29sc7irdcn"))))
  4732. (build-system gnu-build-system)
  4733. (arguments
  4734. `(#:configure-flags '("--with-loadavg")
  4735. #:tests? #f)) ; no tests
  4736. (home-page "https://github.com/xinetd-org/xinetd")
  4737. (synopsis "Internet services daemon")
  4738. (description "@code{xinetd}, a more secure replacement for @code{inetd},
  4739. listens for incoming requests over a network and launches the appropriate
  4740. service for that request. Requests are made using port numbers as identifiers
  4741. and xinetd usually launches another daemon to handle the request. It can be
  4742. used to start services with both privileged and non-privileged port numbers.")
  4743. (license (l:fsf-free "file://COPYRIGHT"))))
  4744. (define-public tidy-html
  4745. (package
  4746. (name "tidy-html")
  4747. (version "5.6.0")
  4748. (source
  4749. (origin
  4750. (method url-fetch)
  4751. (uri (string-append "https://github.com/htacg/tidy-html5/archive/"
  4752. version ".tar.gz"))
  4753. (file-name (string-append name "-" version ".tar.gz"))
  4754. (sha256
  4755. (base32
  4756. "0n29wcgw32rhnraj9j21ibhwi0xagmmcskhbaz8ihxly7nx3p9h8"))))
  4757. (build-system cmake-build-system)
  4758. (outputs '("out"
  4759. "static")) ; 1.0MiB of .a files
  4760. (arguments
  4761. `(#:tests? #f ; no tests available
  4762. #:build-type "Release"
  4763. #:phases
  4764. (modify-phases %standard-phases
  4765. (add-after 'install 'move-static-libraries
  4766. (lambda* (#:key outputs #:allow-other-keys)
  4767. ;; Move static libraries to the "static" output.
  4768. (let* ((out (assoc-ref outputs "out"))
  4769. (lib (string-append out "/lib"))
  4770. (static (assoc-ref outputs "static"))
  4771. (slib (string-append static "/lib")))
  4772. (mkdir-p slib)
  4773. (for-each (lambda (file)
  4774. (install-file file slib)
  4775. (delete-file file))
  4776. (find-files lib "\\.a$"))
  4777. #t))))))
  4778. (native-inputs
  4779. `(("libxslt" ,libxslt)))
  4780. (home-page "http://www.html-tidy.org/")
  4781. (synopsis "HTML Tidy with HTML5 support")
  4782. (description
  4783. "Tidy is a console application which corrects and cleans up
  4784. HTML and XML documents by fixing markup errors and upgrading
  4785. legacy code to modern standards.
  4786. Tidy also provides @code{libtidy}, a C static and dynamic library that
  4787. developers can integrate into their applications to make use of the
  4788. functions of Tidy.")
  4789. (license l:bsd-3)))
  4790. (define-public hiawatha
  4791. (package
  4792. (name "hiawatha")
  4793. (version "10.9")
  4794. (source
  4795. (origin
  4796. (method url-fetch)
  4797. (uri (string-append "https://www.hiawatha-webserver.org/files/"
  4798. "hiawatha-" version ".tar.gz"))
  4799. (modules '((guix build utils)))
  4800. (snippet '(begin
  4801. ;; We use packaged libraries, so delete the bundled copies.
  4802. (for-each delete-file-recursively
  4803. (list "extra/nghttp2.tgz" "mbedtls"))
  4804. #t))
  4805. (sha256
  4806. (base32 "1f2j2x1ziawz8ijg3s3izqpyzpiwfyhlsvbv0szxvhvj4a0l7pbl"))))
  4807. (build-system cmake-build-system)
  4808. (arguments
  4809. `(#:tests? #f ; no tests included
  4810. #:configure-flags (list (string-append "-DUSE_SYSTEM_MBEDTLS=on")
  4811. (string-append "-DENABLE_HTTP2=on")
  4812. (string-append "-DUSE_SYSTEM_NGHTTP2=on")
  4813. (string-append "-DENABLE_TOMAHAWK=on")
  4814. (string-append "-DLOG_DIR=/var/log/hiawatha")
  4815. (string-append "-DPID_DIR=/run")
  4816. (string-append "-DWEBROOT_DIR="
  4817. (assoc-ref %outputs "out")
  4818. "/share/hiawatha/html")
  4819. (string-append "-DWORK_DIR=/var/lib/hiawatha"))
  4820. #:phases
  4821. (modify-phases %standard-phases
  4822. (add-after 'unpack 'install-no-empty-directories
  4823. (lambda _
  4824. (substitute* "CMakeLists.txt"
  4825. (("install\\(DIRECTORY DESTINATION" match)
  4826. (string-append "#" match)))
  4827. #t))
  4828. (add-after 'install 'wrap
  4829. (lambda* (#:key inputs outputs #:allow-other-keys)
  4830. ;; Make sure 'hiawatha' finds 'mbedtls'.
  4831. (let* ((out (assoc-ref outputs "out"))
  4832. (sbin (string-append out "/sbin"))
  4833. (mbed (assoc-ref inputs "mbedtls-apache")))
  4834. (wrap-program (string-append sbin "/hiawatha")
  4835. `("PATH" ":" prefix (,mbed)))))))))
  4836. (inputs
  4837. ;; TODO: package "hiawatha-monitor", an optional dependency of "hiawatha".
  4838. `(("libxslt" ,libxslt)
  4839. ("libxml2" ,libxml2)
  4840. ("mbedtls-apache" ,mbedtls-for-hiawatha)
  4841. ("nghttp2" ,nghttp2 "lib")
  4842. ("zlib" ,zlib)))
  4843. (home-page "https://www.hiawatha-webserver.org")
  4844. (synopsis "Webserver with focus on security")
  4845. (description
  4846. "Hiawatha has been written with security in mind.
  4847. Features include the ability to stop SQL injections, XSS and CSRF attacks and
  4848. exploit attempts.")
  4849. (license l:gpl2)))
  4850. (define-public python-httpbin
  4851. (package
  4852. (name "python-httpbin")
  4853. (version "0.5.0")
  4854. (source
  4855. (origin
  4856. (method url-fetch)
  4857. (uri (pypi-uri "httpbin" version))
  4858. (sha256
  4859. (base32
  4860. "1dc92lnk846hpilslrqnr63x55cxll4qx88gif8fm521gv9cbyvr"))))
  4861. (build-system python-build-system)
  4862. (propagated-inputs
  4863. `(("python-decorator" ,python-decorator)
  4864. ("python-flask" ,python-flask)
  4865. ("python-itsdangerous" ,python-itsdangerous)
  4866. ("python-markupsafe" ,python-markupsafe)
  4867. ("python-six" ,python-six)))
  4868. (home-page "https://github.com/Runscope/httpbin")
  4869. (synopsis "HTTP request and response service")
  4870. (description "Testing an HTTP Library can become difficult sometimes.
  4871. @code{RequestBin} is fantastic for testing POST requests, but doesn't let you control the
  4872. response. This exists to cover all kinds of HTTP scenarios. All endpoint responses are
  4873. JSON-encoded.")
  4874. (license l:isc)))
  4875. (define-public python2-httpbin
  4876. (package-with-python2 python-httpbin))
  4877. (define-public python-pytest-httpbin
  4878. (package
  4879. (name "python-pytest-httpbin")
  4880. (version "0.2.3")
  4881. (source
  4882. (origin
  4883. (method url-fetch)
  4884. (uri (pypi-uri "pytest-httpbin" version))
  4885. (sha256
  4886. (base32
  4887. "1y0v2v7xpzpyd4djwp7ad8ifnlxp8r1y6dfbxg5ckzvllkgridn5"))))
  4888. (build-system python-build-system)
  4889. (propagated-inputs
  4890. `(("python-six" ,python-six)
  4891. ("python-httpbin" ,python-httpbin)
  4892. ("python-pytest" ,python-pytest)))
  4893. (home-page
  4894. "https://github.com/kevin1024/pytest-httpbin")
  4895. (synopsis
  4896. "Test your HTTP library against a local copy of httpbin")
  4897. (description
  4898. "@code{Pytest-httpbin} creates a @code{pytest} fixture that is dependency-injected
  4899. into your tests. It automatically starts up a HTTP server in a separate thread running
  4900. @code{httpbin} and provides your test with the URL in the fixture.")
  4901. (license l:expat)))
  4902. (define-public python2-pytest-httpbin
  4903. (package-with-python2 python-pytest-httpbin))
  4904. (define-public http-parser
  4905. (package
  4906. (name "http-parser")
  4907. (version "2.9.0")
  4908. (home-page "https://github.com/nodejs/http-parser")
  4909. (source (origin
  4910. (method git-fetch)
  4911. (uri (git-reference (url home-page)
  4912. (commit (string-append "v" version))))
  4913. (file-name (git-file-name name version))
  4914. (sha256
  4915. (base32
  4916. "1qa3rh9x4as2fc2p0y2hah83iqs7jr5106a8anv317359dgf3ssj"))))
  4917. (build-system gnu-build-system)
  4918. (arguments
  4919. `(#:test-target "test"
  4920. #:make-flags
  4921. (list (string-append "PREFIX="
  4922. (assoc-ref %outputs "out"))
  4923. "CC=gcc" "library")
  4924. #:phases
  4925. (modify-phases %standard-phases
  4926. (delete 'configure))))
  4927. (synopsis "HTTP request/response parser for C")
  4928. (description "This is a parser for HTTP messages written in C. It parses
  4929. both requests and responses. The parser is designed to be used in
  4930. high-performance HTTP applications. It does not make any syscalls nor
  4931. allocations, it does not buffer data, it can be interrupted at anytime.
  4932. Depending on your architecture, it only requires about 40 bytes of data per
  4933. message stream (in a web server that is per connection).")
  4934. (license l:expat)))
  4935. (define-public python2-httpretty
  4936. (package
  4937. (name "python2-httpretty")
  4938. (version "0.8.14")
  4939. (source
  4940. (origin
  4941. (method url-fetch)
  4942. (uri (pypi-uri "httpretty" version))
  4943. (sha256
  4944. (base32
  4945. "0vlp5qkyw3pxwwsg7xmdcfh1csvypvaz4m6abida8s4xmjxpdhc3"))))
  4946. (build-system python-build-system)
  4947. (native-inputs
  4948. `(("python-sphinx-rtd-theme" ,python2-sphinx-rtd-theme)
  4949. ("python-sphinx" ,python2-sphinx)
  4950. ("python-coverage" ,python2-coverage)
  4951. ("python-tornado" ,python2-tornado)
  4952. ("python-urllib3" ,python2-urllib3)
  4953. ("python-sure" ,python2-sure)
  4954. ("python-steadymark" ,python2-steadymark)
  4955. ("python-requests" ,python2-requests)
  4956. ("python-rednose" ,python2-rednose)
  4957. ("python-nose-randomly" ,python2-nose-randomly)
  4958. ("python-misaka" ,python2-misaka)
  4959. ("python-pytest-httpbin" ,python2-pytest-httpbin)
  4960. ("python-nose" ,python2-nose)))
  4961. (arguments
  4962. `(#:tests? #f
  4963. ;; Requires mock>=1.3.0 which requires a more up-to-date
  4964. ;; python-pbr. After updating these trying to build the
  4965. ;; package leads to failures in python-flake8 and other
  4966. ;; packages. The cascade of updates and failures this
  4967. ;; leads to, seems to not be worth having the test run.
  4968. #:python ,python-2
  4969. #:phases
  4970. (modify-phases %standard-phases
  4971. (add-before 'build 'patch-test-requirements
  4972. (lambda* (#:key inputs #:allow-other-keys)
  4973. ;; Update requirements from dependecy==version
  4974. ;; to dependency>=version
  4975. (substitute* "development.txt"
  4976. (("==") ">="))
  4977. #t)))))
  4978. (home-page "http://github.com/gabrielfalcao/httpretty")
  4979. (synopsis "HTTP client mock for Python")
  4980. (description "@code{httpretty} is a helper for faking web requests,
  4981. inspired by Ruby's @code{fakeweb}.")
  4982. (license l:expat)))
  4983. (define-public jo
  4984. (package
  4985. (name "jo")
  4986. (version "1.2")
  4987. (source
  4988. (origin
  4989. (method url-fetch)
  4990. (uri (string-append "https://github.com/jpmens/jo/releases/download/"
  4991. version "/jo-" version ".tar.gz"))
  4992. (sha256
  4993. (base32
  4994. "1bmdck53jslrl3anqqpm6iyjdxrz445qzcc4fr37hr3wjg22zv1n"))))
  4995. (build-system gnu-build-system)
  4996. (home-page "https://github.com/jpmens/jo")
  4997. (synopsis "Output JSON from a shell")
  4998. (description "jo is a command-line utility to create JSON objects or
  4999. arrays. It creates a JSON string on stdout from words provided as
  5000. command-line arguments or read from stdin.")
  5001. (license (list l:gpl2+
  5002. l:expat)))) ; json.c, json.h
  5003. (define-public python-internetarchive
  5004. (package
  5005. (name "python-internetarchive")
  5006. (version "1.7.4")
  5007. (source
  5008. (origin
  5009. (method url-fetch)
  5010. (uri (string-append "https://github.com/jjjake/internetarchive/archive/"
  5011. "v" version ".tar.gz"))
  5012. (file-name (string-append name "-" version ".tar.gz"))
  5013. (sha256
  5014. (base32
  5015. "0sdbb2ag6vmybi8zmbjszi492a587giaaqxyy1p6gy03cb8mc512"))))
  5016. (build-system python-build-system)
  5017. (arguments
  5018. `(#:phases
  5019. (modify-phases %standard-phases
  5020. (delete 'check)
  5021. (add-after 'install 'check
  5022. (lambda* (#:key inputs outputs #:allow-other-keys)
  5023. (add-installed-pythonpath inputs outputs)
  5024. (setenv "PATH" (string-append (assoc-ref outputs "out") "/bin"
  5025. ":" (getenv "PATH")))
  5026. (invoke "py.test" "-v" "-k"
  5027. (string-append
  5028. ;; These tests attempt to make a connection to
  5029. ;; an external web service.
  5030. "not test_get_item_with_kwargs"
  5031. " and not test_ia")))))))
  5032. (propagated-inputs
  5033. `(("python-requests" ,python-requests)
  5034. ("python-jsonpatch" ,python-jsonpatch-0.4)
  5035. ("python-docopt" ,python-docopt)
  5036. ("python-clint" ,python-clint)
  5037. ("python-six" ,python-six)
  5038. ("python-schema" ,python-schema-0.5)
  5039. ("python-backports-csv" ,python-backports-csv)))
  5040. (native-inputs
  5041. `(("python-pytest" ,python-pytest)
  5042. ("python-pytest-capturelog" ,python-pytest-capturelog)
  5043. ("python-responses" ,python-responses)))
  5044. (home-page "https://github.com/jjjake/internetarchive")
  5045. (synopsis "Command-line interface to archive.org")
  5046. (description "@code{ia} is a command-line tool for using
  5047. @url{archive.org} from the command-line. It also emplements the
  5048. internetarchive python module for programatic access to archive.org.")
  5049. (properties
  5050. `((python2-variant . ,(delay python2-internetarchive))))
  5051. (license l:agpl3+)))
  5052. (define-public python2-internetarchive
  5053. (package-with-python2
  5054. (strip-python2-variant python-internetarchive)))
  5055. (define-public python-clf
  5056. (let ((commit-test-clf "d01d25923c599d3261910f79fb948825b4270d07")) ; 0.5.7
  5057. (package
  5058. (name "python-clf")
  5059. (version "0.5.7")
  5060. (source
  5061. (origin
  5062. (method url-fetch)
  5063. (uri (pypi-uri "clf" version))
  5064. (sha256
  5065. (base32
  5066. "0zlkzqnpz7a4iavsq5vaz0nf5nr7qm5znpg1vlpz6rwnx6hikjdb"))))
  5067. (build-system python-build-system)
  5068. (propagated-inputs
  5069. `(("python-docopt" ,python-docopt)
  5070. ("python-pygments" ,python-pygments)
  5071. ("python-requests" ,python-requests)
  5072. ("python-nose" ,python-nose)
  5073. ("python-lxml" ,python-lxml)
  5074. ("python-pyaml" ,python-pyaml)))
  5075. (inputs
  5076. `(("test-clf"
  5077. ,(origin
  5078. (method url-fetch)
  5079. (uri (string-append "https://raw.githubusercontent.com"
  5080. "/ncrocfer/clf/" commit-test-clf
  5081. "/test_clf.py"))
  5082. (sha256
  5083. (base32
  5084. "19lr5zdzsmxgkg7wrjq1yzkiahd03wi4k3dskssyhmjls8c10nqd"))))))
  5085. (arguments
  5086. '(#:phases
  5087. (modify-phases %standard-phases
  5088. (add-after 'unpack 'get-tests
  5089. (lambda _
  5090. (copy-file (assoc-ref %build-inputs "test-clf") "test_clf.py")
  5091. #t))
  5092. (replace 'check
  5093. (lambda _
  5094. (invoke "nosetests"
  5095. ;; These tests require an Internet connection.
  5096. "--exclude=test_browse"
  5097. "--exclude=test_command"
  5098. "--exclude=test_search"))))))
  5099. (home-page "https://github.com/ncrocfer/clf")
  5100. (synopsis "Search code snippets on @url{https://commandlinefu.com}")
  5101. (description "@code{clf} is a command line tool for searching code
  5102. snippets on @url{https://commandlinefu.com}.")
  5103. (license l:expat))))
  5104. (define-public python2-clf
  5105. (package-with-python2 python-clf))
  5106. (define-public rss-bridge
  5107. (package
  5108. (name "rss-bridge")
  5109. (version "2019-01-13")
  5110. (source
  5111. (origin
  5112. (method git-fetch)
  5113. (uri (git-reference
  5114. (url "https://github.com/RSS-Bridge/rss-bridge")
  5115. (commit version)))
  5116. (file-name (git-file-name name version))
  5117. (sha256
  5118. (base32
  5119. "1m0dq491954f0d7k4508ddlywk09whcz9j21rc4yk3lbwpf0nd4c"))))
  5120. (build-system trivial-build-system)
  5121. (arguments
  5122. '(#:modules ((guix build utils))
  5123. #:builder
  5124. (begin
  5125. (use-modules (guix build utils)
  5126. (ice-9 match))
  5127. (let* ((out (assoc-ref %outputs "out"))
  5128. (share-rss-bridge (string-append out "/share/rss-bridge")))
  5129. (mkdir-p share-rss-bridge)
  5130. (copy-recursively (assoc-ref %build-inputs "source") share-rss-bridge)
  5131. #t))))
  5132. (home-page "https://github.com/RSS-Bridge/rss-bridge")
  5133. (synopsis "Generate Atom feeds for social networking websites")
  5134. (description "rss-bridge generates Atom feeds for social networking
  5135. websites lacking feeds. Supported websites include Facebook, Twitter,
  5136. Instagram and YouTube.")
  5137. (license (list l:public-domain
  5138. l:expat)))) ;; vendor/simplehtmldom/simple_html_dom.php
  5139. (define-public linkchecker
  5140. (package
  5141. (name "linkchecker")
  5142. (version "9.4.0")
  5143. (source
  5144. (origin
  5145. (method git-fetch)
  5146. (uri (git-reference
  5147. (url "https://github.com/linkchecker/linkchecker")
  5148. (commit (string-append "v" version))))
  5149. (patches
  5150. (search-patches
  5151. "linkchecker-mark-more-tests-that-require-the-network.patch"))
  5152. (file-name (git-file-name name version))
  5153. (sha256
  5154. (base32
  5155. "03ihjmc4bqxxqv71bb43r2f23sx0xnbq1k2fsg9fw05qa5s9x187"))))
  5156. (build-system python-build-system)
  5157. (inputs
  5158. `(("python2-dnspython" ,python2-dnspython)
  5159. ("python2-pyxdg" ,python2-pyxdg)
  5160. ("python2-requests" ,python2-requests)))
  5161. (native-inputs
  5162. `(("gettext" ,gettext-minimal)
  5163. ("python2-pytest" ,python2-pytest)
  5164. ("python2-miniboa" ,python2-miniboa)
  5165. ("python2-parameterized" ,python2-parameterized)))
  5166. (arguments
  5167. `(#:python ,python-2
  5168. #:phases
  5169. (modify-phases %standard-phases
  5170. ;; Move the 'check phase to after 'install, so that the installed
  5171. ;; library can be used
  5172. (delete 'check)
  5173. (add-after 'install 'check
  5174. (lambda* (#:key outputs #:allow-other-keys)
  5175. (let ((out (assoc-ref outputs "out")))
  5176. ;; Set PYTHONPATH so that the installed linkchecker is used
  5177. (setenv "PYTHONPATH"
  5178. (string-append out "/lib/python2.7/site-packages"
  5179. ":"
  5180. (getenv "PYTHONPATH")))
  5181. ;; Remove this directory to avoid it being used when running
  5182. ;; the tests
  5183. (delete-file-recursively "linkcheck")
  5184. (invoke "py.test" "tests"))
  5185. #t)))))
  5186. (home-page "https://linkcheck.github.io/linkchecker")
  5187. (synopsis "Check websites for broken links")
  5188. (description "LinkChecker is a website validator. It checks for broken
  5189. links in websites. It is recursive and multithreaded providing output in
  5190. colored or normal text, HTML, SQL, CSV, XML or as a sitemap graph. It
  5191. supports checking HTTP/1.1, HTTPS, FTP, mailto, news, nntp, telnet and local
  5192. file links.")
  5193. (license (list l:gpl2+
  5194. l:bsd-2 ; linkcheck/better_exchook2.py
  5195. l:bsd-3 ; linkcheck/colorama.py
  5196. l:psfl ; linkcheck/gzip2.py
  5197. l:expat)))) ; linkcheck/mem.py
  5198. (define-public cadaver
  5199. (package
  5200. (name "cadaver")
  5201. (version "0.23.3")
  5202. (source
  5203. (origin
  5204. (method url-fetch)
  5205. (uri (string-append "http://www.webdav.org/cadaver/"
  5206. name "-" version ".tar.gz"))
  5207. (sha256
  5208. (base32
  5209. "1jizq69ifrjbjvz5y79wh1ny94gsdby4gdxwjad4bfih6a5fck7x"))))
  5210. (build-system gnu-build-system)
  5211. ;; TODO: Unbundle libneon and make build succeed with new neon.
  5212. (arguments
  5213. `(#:configure-flags (list "--with-ssl=openssl")
  5214. #:tests? #f)) ;No tests included
  5215. (native-inputs
  5216. `(("gettext" ,gnu-gettext)
  5217. ("pkg-config" ,pkg-config)
  5218. ("intltool" ,intltool)))
  5219. (inputs
  5220. `(("expat" ,expat)
  5221. ("openssl" ,openssl)))
  5222. (home-page "http://www.webdav.org/cadaver")
  5223. (synopsis "Command-line WebDAV client")
  5224. (description
  5225. "Cadaver is a command-line WebDAV client for Unix. It supports
  5226. file upload, download, on-screen display, namespace operations (move/copy),
  5227. collection creation and deletion, and locking operations.")
  5228. (license l:gpl2)))
  5229. (define-public python-py-ubjson
  5230. (package
  5231. (name "python-py-ubjson")
  5232. (version "0.10.0")
  5233. (source
  5234. (origin
  5235. (method url-fetch)
  5236. (uri (pypi-uri "py-ubjson" version))
  5237. (sha256
  5238. (base32
  5239. "03l9m9w5ip4hw0y69wlys5gzsfb7zcq3a77blj88grgiqhn5vm5n"))))
  5240. (build-system python-build-system)
  5241. (home-page "https://github.com/Iotic-Labs/py-ubjson")
  5242. (synopsis "Universal Binary JSON encoder/decoder")
  5243. (description
  5244. "Py-ubjson is a Python module providing an Universal Binary JSON
  5245. encoder/decoder based on the draft-12 specification for UBJSON.")
  5246. (license l:asl2.0)))
  5247. (define-public java-tomcat
  5248. (package
  5249. (name "java-tomcat")
  5250. (version "8.5.32")
  5251. (source (origin
  5252. (method url-fetch)
  5253. (uri (string-append "mirror://apache/tomcat/tomcat-8/v"
  5254. version "/src/apache-tomcat-" version "-src.tar.gz"))
  5255. (sha256
  5256. (base32
  5257. "1qjsr6zmkdciakya4jqz0ssnsk02qlmmd898c05rasfwcrpj0xi6"))
  5258. (modules '((guix build utils)))
  5259. ;; Delete bundled jars.
  5260. (snippet
  5261. '(begin
  5262. (for-each delete-file (find-files "." "\\.jar$"))
  5263. #t))))
  5264. (build-system ant-build-system)
  5265. (inputs
  5266. `(("java-eclipse-jdt-core" ,java-eclipse-jdt-core)))
  5267. (native-inputs
  5268. `(("java-junit" ,java-junit)))
  5269. (arguments
  5270. `(#:build-target "package"
  5271. #:tests? #f; requires downloading some files.
  5272. #:phases
  5273. (modify-phases %standard-phases
  5274. (add-after 'unpack 'prevent-download
  5275. (lambda _
  5276. ;; This directory must exist
  5277. (mkdir "downloads")
  5278. ;; We patch build.xml so it doesn't download any dependency, because
  5279. ;; we already have all of them.
  5280. (substitute* "build.xml"
  5281. (("download-compile,") "")
  5282. (("depends=\"validate\"") "depends=\"build-prepare\"")
  5283. ((",download-validate") ""))
  5284. #t))
  5285. (add-after 'unpack 'strip-timestamps
  5286. (lambda _
  5287. (substitute* "build.xml"
  5288. (("<filter token=\"YEAR\" value=.*")
  5289. "<filter token=\"YEAR\" value=\"1970\"/>")
  5290. (("<filter token=\"VERSION_BUILT\" value=.*")
  5291. "<filter token=\"VERSION_BUILT\" value=\"Jan 1 1970 00:00:00 UTC\"/>"))
  5292. #t))
  5293. (add-after 'unpack 'generate-properties
  5294. (lambda _
  5295. ;; This could have been passed to make-flags, but getcwd returns
  5296. ;; a different directory then.
  5297. (with-output-to-file "build.properties"
  5298. (lambda _
  5299. (display
  5300. (string-append "base.path=" (getcwd) "/downloads\n"))))
  5301. #t))
  5302. (replace 'install
  5303. (install-jars "output/build/lib")))))
  5304. (home-page "https://tomcat.apache.org")
  5305. (synopsis "Java Servlet, JavaServer Pages, Java Expression Language and Java
  5306. WebSocket")
  5307. (description "Apache Tomcat is a free implementation of the Java
  5308. Servlet, JavaServer Pages, Java Expression Language and Java WebSocket
  5309. technologies.")
  5310. (license l:asl2.0)))
  5311. (define-public java-eclipse-jetty-test-helper
  5312. (package
  5313. (name "java-eclipse-jetty-test-helper")
  5314. (version "4.2")
  5315. (source (origin
  5316. (method url-fetch)
  5317. (uri (string-append "https://github.com/eclipse/jetty.toolchain/"
  5318. "archive/jetty-test-helper-" version ".tar.gz"))
  5319. (sha256
  5320. (base32
  5321. "1jd6r9wc26fa11si4rn2gvy8ml8q4zw1nr6v04mjp8wvwpgvzwx5"))))
  5322. (build-system ant-build-system)
  5323. (arguments
  5324. `(#:jar-name "eclipse-jetty-test-helper.jar"
  5325. #:source-dir "src/main/java"
  5326. #:test-dir "src/test"
  5327. #:jdk ,icedtea-8
  5328. #:phases
  5329. (modify-phases %standard-phases
  5330. (add-before 'configure 'chdir
  5331. (lambda _
  5332. (chdir "jetty-test-helper")))
  5333. (add-before 'build 'fix-paths
  5334. (lambda _
  5335. ;; TODO:
  5336. ;; This file assumes that the build directory is named "target"
  5337. ;; but it is not the case with our ant-build-system. Once we have
  5338. ;; maven though, we will have to rebuild this package because this
  5339. ;; assumption is correct with maven-build-system.
  5340. (substitute*
  5341. "src/main/java/org/eclipse/jetty/toolchain/test/MavenTestingUtils.java"
  5342. (("\"target\"") "\"build\"")
  5343. (("\"tests\"") "\"test-classes\""))
  5344. ;; Tests assume we are building with maven, so that the build
  5345. ;; directory is named "target", and not "build".
  5346. (with-directory-excursion "src/test/java/org/eclipse/jetty/toolchain/test"
  5347. (substitute* '("FSTest.java" "OSTest.java" "TestingDirTest.java"
  5348. "MavenTestingUtilsTest.java")
  5349. (("target/tests") "build/test-classes")
  5350. (("\"target") "\"build")))
  5351. #t)))))
  5352. (inputs
  5353. `(("junit" ,java-junit)
  5354. ("hamcrest" ,java-hamcrest-all)))
  5355. (home-page "https://www.eclipse.org/jetty/")
  5356. (synopsis "Helper classes for jetty tests")
  5357. (description "This packages contains helper classes for testing the Jetty
  5358. Web Server.")
  5359. ;; This program is licensed under both epl and asl.
  5360. (license (list l:epl1.0 l:asl2.0))))
  5361. (define-public java-eclipse-jetty-perf-helper
  5362. (package
  5363. (inherit java-eclipse-jetty-test-helper)
  5364. (name "java-eclipse-jetty-perf-helper")
  5365. (arguments
  5366. `(#:jar-name "eclipse-jetty-perf-helper.jar"
  5367. #:source-dir "src/main/java"
  5368. #:tests? #f; no tests
  5369. #:jdk ,icedtea-8
  5370. #:phases
  5371. (modify-phases %standard-phases
  5372. (add-before 'configure 'chdir
  5373. (lambda _
  5374. (chdir "jetty-perf-helper")
  5375. #t)))))
  5376. (inputs
  5377. `(("hdrhistogram" ,java-hdrhistogram)))))
  5378. (define-public java-eclipse-jetty-util
  5379. (package
  5380. (name "java-eclipse-jetty-util")
  5381. (version "9.4.6")
  5382. (source (origin
  5383. (method url-fetch)
  5384. (uri (string-append "https://github.com/eclipse/jetty.project/"
  5385. "archive/jetty-" version ".v20170531.tar.gz"))
  5386. (sha256
  5387. (base32
  5388. "0x7kbdvkmgr6kbsmbwiiyv3bb0d6wk25frgvld9cf8540136z9p1"))))
  5389. (build-system ant-build-system)
  5390. (arguments
  5391. `(#:jar-name "eclipse-jetty-util.jar"
  5392. #:source-dir "src/main/java"
  5393. #:test-exclude
  5394. (list "**/Abstract*.java"
  5395. ;; requires network
  5396. "**/InetAddressSetTest.java"
  5397. ;; Assumes we are using maven
  5398. "**/TypeUtilTest.java"
  5399. ;; Error on the style of log
  5400. "**/StdErrLogTest.java")
  5401. #:jdk ,icedtea-8
  5402. #:phases
  5403. (modify-phases %standard-phases
  5404. (add-before 'configure 'chdir
  5405. (lambda _
  5406. (chdir "jetty-util")
  5407. #t)))))
  5408. (inputs
  5409. `(("slf4j" ,java-slf4j-api)
  5410. ("servlet" ,java-tomcat)))
  5411. (native-inputs
  5412. `(("junit" ,java-junit)
  5413. ("hamcrest" ,java-hamcrest-all)
  5414. ("perf-helper" ,java-eclipse-jetty-perf-helper)
  5415. ("test-helper" ,java-eclipse-jetty-test-helper)))
  5416. (home-page "https://www.eclipse.org/jetty/")
  5417. (synopsis "Utility classes for Jetty")
  5418. (description "The Jetty Web Server provides an HTTP server and Servlet
  5419. container capable of serving static and dynamic content either from a standalone
  5420. or embedded instantiation. This package provides utility classes.")
  5421. (license (list l:epl1.0 l:asl2.0))))
  5422. ;; This version is required by maven-wagon
  5423. (define-public java-eclipse-jetty-util-9.2
  5424. (package
  5425. (inherit java-eclipse-jetty-util)
  5426. (version "9.2.22")
  5427. (source (origin
  5428. (method url-fetch)
  5429. (uri (string-append "https://github.com/eclipse/jetty.project/"
  5430. "archive/jetty-" version ".v20170606.tar.gz"))
  5431. (sha256
  5432. (base32
  5433. "1i51qlsd7h06d35kx5rqpzbfadbcszycx1iwr6vz7qc9gf9f29la"))))
  5434. (arguments
  5435. `(#:jar-name "eclipse-jetty-util.jar"
  5436. #:source-dir "src/main/java"
  5437. #:jdk ,icedtea-8
  5438. #:test-exclude
  5439. (list "**/Abstract*.java"
  5440. ;; requires network
  5441. "**/InetAddressSetTest.java"
  5442. ;; Assumes we are using maven
  5443. "**/TypeUtilTest.java"
  5444. ;; We don't have an implementation for slf4j
  5445. "**/LogTest.java"
  5446. ;; Error on the style of log
  5447. "**/StdErrLogTest.java")
  5448. #:phases
  5449. (modify-phases %standard-phases
  5450. (add-before 'configure 'chdir
  5451. (lambda _
  5452. (chdir "jetty-util")
  5453. #t))
  5454. (add-before 'build 'fix-test-sources
  5455. (lambda _
  5456. ;; We need to fix issues caused by changes in newer versions of
  5457. ;; jetty-test-helper
  5458. (let ((src "src/test/java/org/eclipse/jetty/util/resource"))
  5459. (substitute* (string-append src "/AbstractFSResourceTest.java")
  5460. (("testdir.getDir\\(\\)") "testdir.getPath().toFile()")
  5461. (("testdir.getFile\\(\"foo\"\\)")
  5462. "testdir.getPathFile(\"foo\").toFile()")
  5463. (("testdir.getFile\\(name\\)")
  5464. "testdir.getPathFile(name).toFile()")))
  5465. #t)))))))
  5466. (define-public java-eclipse-jetty-io
  5467. (package
  5468. (inherit java-eclipse-jetty-util)
  5469. (name "java-eclipse-jetty-io")
  5470. (arguments
  5471. `(#:jar-name "eclipse-jetty-io.jar"
  5472. #:source-dir "src/main/java"
  5473. #:jdk ,icedtea-8
  5474. #:test-exclude (list "**/Abstract*.java"
  5475. ;; Abstract class
  5476. "**/EndPointTest.java")
  5477. #:phases
  5478. (modify-phases %standard-phases
  5479. (add-before 'configure 'chdir
  5480. (lambda _
  5481. (chdir "jetty-io")
  5482. #t)))))
  5483. (inputs
  5484. `(("slf4j" ,java-slf4j-api)
  5485. ("servlet" ,java-javaee-servletapi)
  5486. ("util" ,java-eclipse-jetty-util)))
  5487. (synopsis "Jetty :: IO Utility")
  5488. (description "The Jetty Web Server provides an HTTP server and Servlet
  5489. container capable of serving static and dynamic content either from a standalone
  5490. or embedded instantiation. This package provides IO-related utility classes.")))
  5491. (define-public java-eclipse-jetty-io-9.2
  5492. (package
  5493. (inherit java-eclipse-jetty-io)
  5494. (version (package-version java-eclipse-jetty-util-9.2))
  5495. (source (package-source java-eclipse-jetty-util-9.2))
  5496. (inputs
  5497. `(("util" ,java-eclipse-jetty-util-9.2)
  5498. ,@(package-inputs java-eclipse-jetty-util-9.2)))
  5499. (native-inputs
  5500. `(("mockito" ,java-mockito-1)
  5501. ("cglib" ,java-cglib)
  5502. ("objenesis" ,java-objenesis)
  5503. ("asm" ,java-asm)
  5504. ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
  5505. (define-public java-eclipse-jetty-http
  5506. (package
  5507. (inherit java-eclipse-jetty-util)
  5508. (name "java-eclipse-jetty-http")
  5509. (arguments
  5510. `(#:jar-name "eclipse-jetty-http.jar"
  5511. #:source-dir "src/main/java"
  5512. #:jdk ,icedtea-8
  5513. #:phases
  5514. (modify-phases %standard-phases
  5515. (add-before 'configure 'chdir
  5516. (lambda _
  5517. (chdir "jetty-http")
  5518. #t))
  5519. (add-before 'build 'copy-resources
  5520. (lambda _
  5521. (mkdir-p "build/classes")
  5522. (copy-recursively "src/main/resources/" "build/classes/")
  5523. #t)))))
  5524. (inputs
  5525. `(("slf4j" ,java-slf4j-api)
  5526. ("servlet" ,java-javaee-servletapi)
  5527. ("io" ,java-eclipse-jetty-io)
  5528. ("util" ,java-eclipse-jetty-util)))
  5529. (synopsis "Jetty :: Http Utility")
  5530. (description "The Jetty Web Server provides an HTTP server and Servlet
  5531. container capable of serving static and dynamic content either from a standalone
  5532. or embedded instantiation. This package provides HTTP-related utility classes.")))
  5533. (define-public java-eclipse-jetty-http-9.2
  5534. (package
  5535. (inherit java-eclipse-jetty-http)
  5536. (version (package-version java-eclipse-jetty-util-9.2))
  5537. (source (package-source java-eclipse-jetty-util-9.2))
  5538. (inputs
  5539. `(("util" ,java-eclipse-jetty-util-9.2)
  5540. ("io" ,java-eclipse-jetty-io-9.2)
  5541. ,@(package-inputs java-eclipse-jetty-util-9.2)))))
  5542. (define-public java-eclipse-jetty-jmx
  5543. (package
  5544. (inherit java-eclipse-jetty-util)
  5545. (name "java-eclipse-jetty-jmx")
  5546. (arguments
  5547. `(#:jar-name "eclipse-jetty-jmx.jar"
  5548. #:source-dir "src/main/java"
  5549. #:jdk ,icedtea-8
  5550. #:tests? #f; FIXME: requires com.openpojo.validation
  5551. #:phases
  5552. (modify-phases %standard-phases
  5553. (add-before 'configure 'chdir
  5554. (lambda _
  5555. (chdir "jetty-jmx")
  5556. #t)))))
  5557. (inputs
  5558. `(("slf4j" ,java-slf4j-api)
  5559. ("servlet" ,java-javaee-servletapi)
  5560. ("util" ,java-eclipse-jetty-util)))
  5561. (synopsis "Jetty :: JMX Management")
  5562. (description "The Jetty Web Server provides an HTTP server and Servlet
  5563. container capable of serving static and dynamic content either from a standalone
  5564. or embedded instantiation. This package provides the JMX management.")))
  5565. (define-public java-eclipse-jetty-jmx-9.2
  5566. (package
  5567. (inherit java-eclipse-jetty-jmx)
  5568. (version (package-version java-eclipse-jetty-util-9.2))
  5569. (source (package-source java-eclipse-jetty-util-9.2))
  5570. (inputs
  5571. `(("util" ,java-eclipse-jetty-util-9.2)
  5572. ,@(package-inputs java-eclipse-jetty-util-9.2)))))
  5573. (define java-eclipse-jetty-http-test-classes
  5574. (package
  5575. (inherit java-eclipse-jetty-util)
  5576. (name "java-eclipse-jetty-http-test-classes")
  5577. (arguments
  5578. `(#:jar-name "eclipse-jetty-http.jar"
  5579. #:source-dir "src/test"
  5580. #:tests? #f
  5581. #:jdk ,icedtea-8
  5582. #:phases
  5583. (modify-phases %standard-phases
  5584. (add-before 'configure 'chdir
  5585. (lambda _
  5586. (chdir "jetty-http"))))))
  5587. (inputs
  5588. `(("slf4j" ,java-slf4j-api)
  5589. ("servlet" ,java-tomcat)
  5590. ("http" ,java-eclipse-jetty-http)
  5591. ("io" ,java-eclipse-jetty-io)
  5592. ("util" ,java-eclipse-jetty-util)))))
  5593. (define java-eclipse-jetty-http-test-classes-9.2
  5594. (package
  5595. (inherit java-eclipse-jetty-http-test-classes)
  5596. (version (package-version java-eclipse-jetty-util-9.2))
  5597. (source (package-source java-eclipse-jetty-util-9.2))
  5598. (inputs
  5599. `(("http" ,java-eclipse-jetty-http-9.2)
  5600. ,@(package-inputs java-eclipse-jetty-http-9.2)))))
  5601. (define-public java-eclipse-jetty-server
  5602. (package
  5603. (inherit java-eclipse-jetty-util)
  5604. (name "java-eclipse-jetty-server")
  5605. (arguments
  5606. `(#:jar-name "eclipse-jetty-server.jar"
  5607. #:source-dir "src/main/java"
  5608. #:jdk ,icedtea-8
  5609. #:tests? #f; requires a mockito version we don't have
  5610. #:phases
  5611. (modify-phases %standard-phases
  5612. (add-before 'configure 'chdir
  5613. (lambda _
  5614. (chdir "jetty-server")
  5615. #t))
  5616. (add-before 'build 'fix-source
  5617. (lambda _
  5618. ;; Explicit casts to prevent build failures
  5619. (substitute* "src/main/java/org/eclipse/jetty/server/Request.java"
  5620. (("append\\(LazyList")
  5621. "append((CharSequence)LazyList"))
  5622. (substitute*
  5623. "src/main/java/org/eclipse/jetty/server/handler/ContextHandler.java"
  5624. (((string-append
  5625. "Class<\\? extends EventListener> clazz = _classLoader==null"
  5626. "\\?Loader.loadClass\\(ContextHandler.class,className\\):"
  5627. "_classLoader.loadClass\\(className\\);"))
  5628. (string-append "Class<? extends EventListener> clazz = "
  5629. "(Class<? extends EventListener>) "
  5630. "(_classLoader==null?Loader.loadClass("
  5631. "ContextHandler.class,className):"
  5632. "_classLoader.loadClass(className));")))
  5633. #t)))))
  5634. (inputs
  5635. `(("slf4j" ,java-slf4j-api)
  5636. ("servlet" ,java-javaee-servletapi)
  5637. ("http" ,java-eclipse-jetty-http)
  5638. ("io" ,java-eclipse-jetty-io)
  5639. ("jmx" ,java-eclipse-jetty-jmx)
  5640. ("util" ,java-eclipse-jetty-util)))
  5641. (native-inputs
  5642. `(("test-classes" ,java-eclipse-jetty-http-test-classes)
  5643. ,@(package-native-inputs java-eclipse-jetty-util)))
  5644. (synopsis "Core jetty server artifact")
  5645. (description "The Jetty Web Server provides an HTTP server and Servlet
  5646. container capable of serving static and dynamic content either from a standalone
  5647. or embedded instantiation. This package provides the core jetty server
  5648. artifact.")))
  5649. (define-public java-eclipse-jetty-server-9.2
  5650. (package
  5651. (inherit java-eclipse-jetty-server)
  5652. (version (package-version java-eclipse-jetty-util-9.2))
  5653. (source (package-source java-eclipse-jetty-util-9.2))
  5654. (inputs
  5655. `(("util" ,java-eclipse-jetty-util-9.2)
  5656. ("jmx" ,java-eclipse-jetty-jmx-9.2)
  5657. ("io" ,java-eclipse-jetty-io-9.2)
  5658. ("http" ,java-eclipse-jetty-http-9.2)
  5659. ,@(package-inputs java-eclipse-jetty-util-9.2)))
  5660. (native-inputs
  5661. `(("test-classes" ,java-eclipse-jetty-http-test-classes-9.2)
  5662. ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
  5663. (define-public java-eclipse-jetty-security
  5664. (package
  5665. (inherit java-eclipse-jetty-util)
  5666. (name "java-eclipse-jetty-security")
  5667. (arguments
  5668. `(#:jar-name "eclipse-jetty-security.jar"
  5669. #:source-dir "src/main/java"
  5670. #:jdk ,icedtea-8
  5671. #:test-exclude (list "**/ConstraintTest.*") ; This test fails
  5672. #:phases
  5673. (modify-phases %standard-phases
  5674. (add-before 'configure 'chdir
  5675. (lambda _
  5676. (chdir "jetty-security")
  5677. #t)))))
  5678. (inputs
  5679. `(("slf4j" ,java-slf4j-api)
  5680. ("servlet" ,java-tomcat)
  5681. ("http" ,java-eclipse-jetty-http)
  5682. ("server" ,java-eclipse-jetty-server)
  5683. ("util" ,java-eclipse-jetty-util)))
  5684. (native-inputs
  5685. `(("io" ,java-eclipse-jetty-io)
  5686. ,@(package-native-inputs java-eclipse-jetty-util)))
  5687. (synopsis "Jetty security infrastructure")
  5688. (description "The Jetty Web Server provides an HTTP server and Servlet
  5689. container capable of serving static and dynamic content either from a standalone
  5690. or embedded instantiation. This package provides the core jetty security
  5691. infrastructure")))
  5692. (define-public java-eclipse-jetty-security-9.2
  5693. (package
  5694. (inherit java-eclipse-jetty-security)
  5695. (version (package-version java-eclipse-jetty-util-9.2))
  5696. (source (package-source java-eclipse-jetty-util-9.2))
  5697. (inputs
  5698. `(("util" ,java-eclipse-jetty-util-9.2)
  5699. ("http" ,java-eclipse-jetty-http-9.2)
  5700. ("server" ,java-eclipse-jetty-server-9.2)
  5701. ,@(package-inputs java-eclipse-jetty-util-9.2)))
  5702. (native-inputs
  5703. `(("io" ,java-eclipse-jetty-io-9.2)
  5704. ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
  5705. (define-public java-eclipse-jetty-servlet
  5706. (package
  5707. (inherit java-eclipse-jetty-util)
  5708. (name "java-eclipse-jetty-servlet")
  5709. (arguments
  5710. `(#:jar-name "eclipse-jetty-servlet.jar"
  5711. #:source-dir "src/main/java"
  5712. #:jdk ,icedtea-8
  5713. #:phases
  5714. (modify-phases %standard-phases
  5715. (add-before 'configure 'chdir
  5716. (lambda _
  5717. (chdir "jetty-servlet")
  5718. #t)))))
  5719. (inputs
  5720. `(("slf4j" ,java-slf4j-api)
  5721. ("servlet" ,java-tomcat)
  5722. ("http" ,java-eclipse-jetty-http)
  5723. ("http-test" ,java-eclipse-jetty-http-test-classes)
  5724. ("io" ,java-eclipse-jetty-io)
  5725. ("jmx" ,java-eclipse-jetty-jmx)
  5726. ("security" ,java-eclipse-jetty-security)
  5727. ("server" ,java-eclipse-jetty-server)
  5728. ("util" ,java-eclipse-jetty-util)))
  5729. (synopsis "Jetty Servlet Container")
  5730. (description "The Jetty Web Server provides an HTTP server and Servlet
  5731. container capable of serving static and dynamic content either from a standalone
  5732. or embedded instantiation. This package provides the core jetty servlet
  5733. container.")))
  5734. (define-public java-eclipse-jetty-servlet-9.2
  5735. (package
  5736. (inherit java-eclipse-jetty-servlet)
  5737. (version (package-version java-eclipse-jetty-util-9.2))
  5738. (source (package-source java-eclipse-jetty-util-9.2))
  5739. (arguments
  5740. `(#:jar-name "eclipse-jetty-servlet.jar"
  5741. #:source-dir "src/main/java"
  5742. #:jdk ,icedtea-8
  5743. #:tests? #f; doesn't work
  5744. #:phases
  5745. (modify-phases %standard-phases
  5746. (add-before 'configure 'chdir
  5747. (lambda _
  5748. (chdir "jetty-servlet")
  5749. #t)))))
  5750. (inputs
  5751. `(("util" ,java-eclipse-jetty-util-9.2)
  5752. ("jmx" ,java-eclipse-jetty-jmx-9.2)
  5753. ("io" ,java-eclipse-jetty-io-9.2)
  5754. ("http" ,java-eclipse-jetty-http-9.2)
  5755. ("security" ,java-eclipse-jetty-security-9.2)
  5756. ("http-test" ,java-eclipse-jetty-http-test-classes-9.2)
  5757. ("server" ,java-eclipse-jetty-server-9.2)
  5758. ,@(package-inputs java-eclipse-jetty-util-9.2)))))
  5759. (define-public java-eclipse-jetty-xml
  5760. (package
  5761. (inherit java-eclipse-jetty-util)
  5762. (name "java-eclipse-jetty-xml")
  5763. (arguments
  5764. `(#:jar-name "eclipse-jetty-xml.jar"
  5765. #:source-dir "src/main/java"
  5766. #:jdk ,icedtea-8
  5767. #:tests? #f; most tests require network
  5768. #:phases
  5769. (modify-phases %standard-phases
  5770. (add-before 'configure 'chdir
  5771. (lambda _
  5772. (chdir "jetty-xml")
  5773. #t)))))
  5774. (inputs
  5775. `(("java-eclipse-jetty-util" ,java-eclipse-jetty-util)))
  5776. (native-inputs
  5777. `(("java-eclipse-jetty-io" ,java-eclipse-jetty-io)
  5778. ,@(package-native-inputs java-eclipse-jetty-util)))))
  5779. (define-public java-eclipse-jetty-xml-9.2
  5780. (package
  5781. (inherit java-eclipse-jetty-xml)
  5782. (version (package-version java-eclipse-jetty-util-9.2))
  5783. (source (package-source java-eclipse-jetty-util-9.2))
  5784. (arguments
  5785. `(#:jar-name "eclipse-jetty-xml.jar"
  5786. #:source-dir "src/main/java"
  5787. #:jdk ,icedtea-8
  5788. #:tests? #f; most tests require network
  5789. #:phases
  5790. (modify-phases %standard-phases
  5791. (add-before 'configure 'chdir
  5792. (lambda _
  5793. (chdir "jetty-xml")
  5794. #t)))))
  5795. (inputs
  5796. `(("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
  5797. ,@(package-inputs java-eclipse-jetty-util-9.2)))
  5798. (native-inputs
  5799. `(("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
  5800. ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
  5801. (define-public java-eclipse-jetty-webapp
  5802. (package
  5803. (inherit java-eclipse-jetty-util)
  5804. (name "java-eclipse-jetty-webapp")
  5805. (arguments
  5806. `(#:jar-name "eclipse-jetty-webapp.jar"
  5807. #:source-dir "src/main/java"
  5808. #:jdk ,icedtea-8
  5809. ;; One test fails
  5810. #:test-exclude (list "**/WebAppContextTest.java")
  5811. #:phases
  5812. (modify-phases %standard-phases
  5813. (add-before 'configure 'chdir
  5814. (lambda _
  5815. (chdir "jetty-webapp")
  5816. #t)))))
  5817. (inputs
  5818. `(("java-eclipse-jetty-util" ,java-eclipse-jetty-util)
  5819. ("java-eclipse-jetty-http" ,java-eclipse-jetty-http)
  5820. ("java-eclipse-jetty-server" ,java-eclipse-jetty-server)
  5821. ("java-eclipse-jetty-servlet" ,java-eclipse-jetty-servlet)
  5822. ("java-eclipse-jetty-security" ,java-eclipse-jetty-security)
  5823. ("java-eclipse-jetty-xml" ,java-eclipse-jetty-xml)
  5824. ("java-javaee-servletapi" ,java-javaee-servletapi)))
  5825. (native-inputs
  5826. `(("java-eclipse-jetty-io" ,java-eclipse-jetty-io)
  5827. ,@(package-native-inputs java-eclipse-jetty-util)))))
  5828. (define-public java-eclipse-jetty-webapp-9.2
  5829. (package
  5830. (inherit java-eclipse-jetty-webapp)
  5831. (version (package-version java-eclipse-jetty-util-9.2))
  5832. (source (package-source java-eclipse-jetty-util-9.2))
  5833. (arguments
  5834. `(#:jar-name "eclipse-jetty-webapp.jar"
  5835. #:source-dir "src/main/java"
  5836. #:jdk ,icedtea-8
  5837. #:test-exclude (list "**/WebAppContextTest.java")
  5838. #:phases
  5839. (modify-phases %standard-phases
  5840. (add-before 'configure 'chdir
  5841. (lambda _
  5842. (chdir "jetty-webapp")
  5843. #t)))))
  5844. (inputs
  5845. `(("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
  5846. ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
  5847. ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
  5848. ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
  5849. ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
  5850. ("java-eclipse-jetty-xml-9.2" ,java-eclipse-jetty-xml-9.2)
  5851. ("java-tomcat" ,java-tomcat)
  5852. ,@(package-inputs java-eclipse-jetty-util-9.2)))
  5853. (native-inputs
  5854. `(("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
  5855. ,@(package-native-inputs java-eclipse-jetty-util-9.2)))))
  5856. (define-public java-jsoup
  5857. (package
  5858. (name "java-jsoup")
  5859. (version "1.10.3")
  5860. (source (origin
  5861. (method url-fetch)
  5862. (uri (string-append "https://github.com/jhy/jsoup/archive/jsoup-"
  5863. version ".tar.gz"))
  5864. (sha256
  5865. (base32
  5866. "0xbzw7rjv7s4nz1xk9b2cnin6zkpaldmc3svk71waa7hhjgp0a20"))))
  5867. (build-system ant-build-system)
  5868. (arguments
  5869. `(#:jar-name "jsoup.jar"
  5870. #:source-dir "src/main/java"
  5871. #:phases
  5872. (modify-phases %standard-phases
  5873. (add-before 'build 'copy-resources
  5874. (lambda _
  5875. (let ((classes-dir (string-append (getcwd) "/build/classes")))
  5876. (with-directory-excursion "src/main/java"
  5877. (for-each (lambda (file)
  5878. (let ((dist (string-append classes-dir "/" file)))
  5879. (mkdir-p (dirname dist))
  5880. (copy-file file dist)))
  5881. (find-files "." ".*.properties"))))
  5882. #t)))))
  5883. (native-inputs
  5884. `(("java-junit" ,java-junit)
  5885. ("java-hamcrest-core" ,java-hamcrest-core)
  5886. ("java-gson" ,java-gson)))
  5887. (home-page "https://jsoup.org")
  5888. (synopsis "HTML parser")
  5889. (description "Jsoup is a Java library for working with real-world HTML. It
  5890. provides a very convenient API for extracting and manipulating data, using the
  5891. best of DOM, CSS, and jQuery-like methods.")
  5892. (license l:expat)))
  5893. (define-public tidyp
  5894. (package
  5895. (name "tidyp")
  5896. (version "1.04")
  5897. (source
  5898. (origin
  5899. (method url-fetch)
  5900. (uri (string-append "https://github.com/downloads/petdance/tidyp/tidyp-"
  5901. version ".tar.gz"))
  5902. (sha256
  5903. (base32
  5904. "0f5ky0ih4vap9c6j312jn73vn8m2bj69pl2yd3a5nmv35k9zmc10"))))
  5905. (build-system gnu-build-system)
  5906. ;; ./test-thing.sh tries to run ./testall.sh, which is not included.
  5907. (arguments `(#:tests? #f))
  5908. (home-page "http://www.tidyp.com/")
  5909. (synopsis "Validate HTML")
  5910. (description "Tidyp is a program that can validate your HTML, as well as
  5911. modify it to be more clean and standard. tidyp does not validate HTML 5.
  5912. libtidyp is the library on which the program is based. It can be used by any
  5913. other program that can interface to it. The Perl module @code{HTML::Tidy} is
  5914. based on this library, allowing Perl programmers to easily validate HTML.")
  5915. ;; See htmldoc/license.html
  5916. (license l:bsd-3)))
  5917. (define-public perl-html-tidy
  5918. (package
  5919. (name "perl-html-tidy")
  5920. (version "1.60")
  5921. (source
  5922. (origin
  5923. (method url-fetch)
  5924. (uri (string-append "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tidy-"
  5925. version ".tar.gz"))
  5926. (sha256
  5927. (base32
  5928. "1iyp2fd6j75cn1xvcwl2lxr8qpjxssy2360cyqn6g3kzd1fzdyxw"))))
  5929. (build-system perl-build-system)
  5930. (arguments
  5931. '(#:phases
  5932. (modify-phases %standard-phases
  5933. (add-after 'unpack 'fix-tidyp-paths
  5934. (lambda* (#:key inputs #:allow-other-keys)
  5935. (substitute* "Makefile.PL"
  5936. (("^my \\$inc = \"" line)
  5937. (string-append line
  5938. "-I" (assoc-ref inputs "tidyp") "/include/tidyp "))
  5939. (("-L/usr/lib")
  5940. (string-append
  5941. "-L" (assoc-ref inputs "tidyp") "/lib")))
  5942. #t)))))
  5943. (inputs
  5944. `(("perl-libwww" ,perl-libwww)
  5945. ("tidyp" ,tidyp)))
  5946. (native-inputs
  5947. `(("perl-test-exception" ,perl-test-exception)))
  5948. (home-page "https://metacpan.org/release/HTML-Tidy")
  5949. (synopsis "(X)HTML validation in a Perl object")
  5950. (description "@code{HTML::Tidy} is an HTML checker in a handy dandy
  5951. object. It's meant as a replacement for @code{HTML::Lint}, which is written
  5952. in Perl but is not nearly as capable as @code{HTML::Tidy}.")
  5953. (license l:artistic2.0)))
  5954. (define-public geomyidae
  5955. (package
  5956. (name "geomyidae")
  5957. (version "0.31")
  5958. (source
  5959. (origin
  5960. (method url-fetch)
  5961. (uri (string-append "http://git.r-36.net/geomyidae/snapshot/"
  5962. "geomyidae-" version ".tar.bz2"))
  5963. (sha256
  5964. (base32
  5965. "1ih7220c6mgq4r7blm4kx3pxbl53sph58lqgwci6cmi3c0sq5c3x"))))
  5966. (build-system gnu-build-system)
  5967. (arguments
  5968. `(#:make-flags (list "CC=gcc"
  5969. (string-append "PREFIX="
  5970. (assoc-ref %outputs "out")))
  5971. #:tests? #f ;no tests
  5972. #:phases (modify-phases %standard-phases
  5973. (delete 'configure))))
  5974. (home-page "http://git.r-36.net/geomyidae")
  5975. (synopsis "Small Gopher server")
  5976. (description
  5977. "Geomyidae is a server for distributed hypertext protocol Gopher. Its
  5978. features include:
  5979. @enumerate
  5980. @item Gopher menus (see @file{index.gph} for an example);
  5981. @item directory listings (if no @file{index.gph} was found);
  5982. @item CGI support (@file{.cgi} files are executed);
  5983. @item search support in CGI files;
  5984. @item logging with multiple log levels.
  5985. @end enumerate\n")
  5986. (license l:expat)))
  5987. (define-public cat-avatar-generator
  5988. (package
  5989. (name "cat-avatar-generator")
  5990. (version "1")
  5991. (source (origin
  5992. (method git-fetch)
  5993. (uri (git-reference
  5994. (url "https://framagit.org/Deevad/cat-avatar-generator.git")
  5995. (commit "71c0c662742cafe8afd2d2d50ec84243113e35ad")))
  5996. (file-name (string-append name "-" version))
  5997. (sha256
  5998. (base32
  5999. "0s7b5whqsmfa57prbgl66ym551kg6ly0z14h5dgrlx4lqm70y2yw"))))
  6000. (build-system trivial-build-system)
  6001. (arguments
  6002. `(#:modules ((guix build utils)
  6003. (srfi srfi-1)
  6004. (srfi srfi-26))
  6005. #:builder
  6006. (begin
  6007. (use-modules (guix build utils)
  6008. (srfi srfi-1)
  6009. (srfi srfi-26))
  6010. (let ((source (assoc-ref %build-inputs "source"))
  6011. (php-dir (string-append %output "/share/web/" ,name "/")))
  6012. ;; The cache directory must not be in the store, but in a writable
  6013. ;; location. The webserver will give us this location.
  6014. (copy-recursively source php-dir)
  6015. (substitute* (string-append php-dir "/cat-avatar-generator.php")
  6016. (("\\$cachepath = .*")
  6017. "if(isset($_SERVER['CACHE_DIR']))
  6018. $cachepath = $_SERVER['CACHE_DIR'];
  6019. else
  6020. die('You need to set the CACHE_DIR variable first.');"))
  6021. #t))))
  6022. (home-page "https://framagit.org/Deevad/cat-avatar-generator")
  6023. (synopsis "Random avatar generator")
  6024. (description "Cat avatar generator is a generator of cat pictures optimised
  6025. to generate random avatars, or defined avatar from a \"seed\". This is a
  6026. derivation by David Revoy from the original MonsterID by Andreas Gohr.")
  6027. ;; expat for the code, CC-BY 4.0 for the artwork
  6028. (license (list l:expat
  6029. l:cc-by4.0))))
  6030. (define-public nghttp2
  6031. (package
  6032. (name "nghttp2")
  6033. (version "1.35.1")
  6034. (source
  6035. (origin
  6036. (method url-fetch)
  6037. (uri (string-append "https://github.com/nghttp2/nghttp2/"
  6038. "releases/download/v" version "/"
  6039. name "-" version ".tar.xz"))
  6040. (sha256
  6041. (base32
  6042. "0fi6qg2w82636wixwkqy7bclpgxslmvg82r431hs8h6aqc4mnzwv"))))
  6043. (build-system gnu-build-system)
  6044. (outputs (list "out"
  6045. "lib")) ; only libnghttp2
  6046. (native-inputs
  6047. `(("pkg-config" ,pkg-config)
  6048. ("gcc" ,gcc-7) ; 1.35.0 requires GCC6 or later
  6049. ;; Required by tests.
  6050. ("cunit" ,cunit)
  6051. ("tzdata" ,tzdata-for-tests)))
  6052. (inputs
  6053. ;; Required to build the tools (i.e. without ‘--enable-lib-only’).
  6054. `(("c-ares" ,c-ares)
  6055. ("jansson" ,jansson) ; for HPACK tools
  6056. ("jemalloc" ,jemalloc) ; fight nghttpd{,x} heap fragmentation
  6057. ("libev" ,libev)
  6058. ("libxml2" ,libxml2) ; for ‘nghttp -a’
  6059. ("openssl" ,openssl)))
  6060. (arguments
  6061. `(#:configure-flags
  6062. (list (string-append "--libdir=" (assoc-ref %outputs "lib") "/lib")
  6063. "--enable-app" ; build all the tools
  6064. "--enable-hpack-tools" ; ...all the tools
  6065. "--disable-examples"
  6066. "--disable-static") ; don't bother building .a files
  6067. #:phases
  6068. (modify-phases %standard-phases
  6069. (add-after 'unpack 'break-circular-reference
  6070. ;; libnghttp2.pc by default retains a reference to the ‘out’ output,
  6071. ;; which is not allowed. Break this cycle. While we could install
  6072. ;; only the library to ‘out’ and move everything else to a separate
  6073. ;; output, this would inconvenience the majority of (human) users.
  6074. (lambda* (#:key outputs #:allow-other-keys)
  6075. (substitute* "lib/libnghttp2.pc.in"
  6076. (("@prefix@")
  6077. (assoc-ref outputs "lib")))
  6078. #t))
  6079. (add-before 'configure 'work-around-bug-30756
  6080. (lambda _
  6081. (for-each unsetenv '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH")) #t))
  6082. (add-before 'check 'set-timezone-directory
  6083. (lambda* (#:key inputs #:allow-other-keys)
  6084. (setenv "TZDIR" (string-append (assoc-ref inputs "tzdata")
  6085. "/share/zoneinfo"))
  6086. #t)))))
  6087. (home-page "https://nghttp2.org/")
  6088. (synopsis "HTTP/2 protocol client, proxy, server, and library")
  6089. (description
  6090. "nghttp2 implements the Hypertext Transfer Protocol, version
  6091. 2 (@dfn{HTTP/2}).
  6092. A reusable C library provides the HTTP/2 framing layer, with several tools built
  6093. on top of it:
  6094. @itemize
  6095. @item @command{nghttp}, a command-line HTTP/2 client. It exposes many advanced
  6096. and low-level aspects of the protocol and is useful for debugging.
  6097. @item @command{nghttpd}, a fast, multi-threaded HTTP/2 static web server that
  6098. serves files from a local directory.
  6099. @item @command{nghttpx}, a fast, multi-threaded HTTP/2 reverse proxy that can be
  6100. deployed in front of existing web servers that don't support HTTP/2.
  6101. Both @command{nghttpd} and @command{nghttpx} can fall back to HTTP/1.1 for
  6102. backwards compatibilty with clients that don't speak HTTP/2.
  6103. @item @command{h2load} for benchmarking (only!) your own HTTP/2 servers.
  6104. @item HTTP/2 uses a header compression method called @dfn{HPACK}.
  6105. nghttp2 provides a HPACK encoder and decoder as part of its public API.
  6106. @item @command{deflatehd} converts JSON data or HTTP/1-style header fields to
  6107. compressed JSON header blocks.
  6108. @item @command{inflatehd} converts such compressed headers back to JSON pairs.
  6109. @end itemize\n")
  6110. (license l:expat)))
  6111. (define-public hpcguix-web
  6112. (let ((commit "53e09ea59ec0380b41a4cbda32df8bdb9a10004d")
  6113. (revision "3"))
  6114. (package
  6115. (name "hpcguix-web")
  6116. (version (git-version "0.0.1" revision commit))
  6117. (source (origin
  6118. (method git-fetch)
  6119. (uri (git-reference
  6120. (url "https://github.com/UMCUGenetics/hpcguix-web.git")
  6121. (commit commit)))
  6122. (file-name (git-file-name name version))
  6123. (sha256
  6124. (base32
  6125. "1ah4pn9697vazhbvd45n4b1rrkx2nbhnw384cr0b941q3sz1dfyc"))))
  6126. (build-system gnu-build-system)
  6127. (arguments
  6128. `(#:modules ((guix build gnu-build-system)
  6129. (guix build utils)
  6130. (srfi srfi-26)
  6131. (ice-9 popen)
  6132. (ice-9 rdelim))
  6133. #:phases
  6134. (modify-phases %standard-phases
  6135. (add-before 'configure 'set-variables
  6136. (lambda _
  6137. ;; This prevents a few warnings
  6138. (setenv "GUILE_AUTO_COMPILE" "0")
  6139. (setenv "XDG_CACHE_HOME" (getcwd))
  6140. #t))
  6141. (add-after 'install 'wrap-program
  6142. (lambda* (#:key inputs outputs #:allow-other-keys)
  6143. (let* ((out (assoc-ref outputs "out"))
  6144. (guix (assoc-ref inputs "guix"))
  6145. (guile (assoc-ref inputs "guile"))
  6146. (gcrypt (assoc-ref inputs "guile-gcrypt"))
  6147. (git (assoc-ref inputs "guile-git"))
  6148. (bs (assoc-ref inputs "guile-bytestructures"))
  6149. (json (assoc-ref inputs "guile-json"))
  6150. (guile-cm (assoc-ref inputs
  6151. "guile-commonmark"))
  6152. (deps (list guile gcrypt git bs guile-cm guix json))
  6153. (effective
  6154. (read-line
  6155. (open-pipe* OPEN_READ
  6156. (string-append guile "/bin/guile")
  6157. "-c" "(display (effective-version))")))
  6158. (path (string-join
  6159. (map (cut string-append <>
  6160. "/share/guile/site/"
  6161. effective)
  6162. deps)
  6163. ":"))
  6164. (gopath (string-join
  6165. (map (cut string-append <>
  6166. "/lib/guile/" effective
  6167. "/site-ccache")
  6168. deps)
  6169. ":")))
  6170. (wrap-program (string-append out "/bin/run")
  6171. `("GUILE_LOAD_PATH" ":" prefix (,path))
  6172. `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,gopath)))
  6173. #t))))))
  6174. (native-inputs
  6175. `(("autoconf" ,autoconf)
  6176. ("automake" ,automake)
  6177. ("uglify-js" ,uglify-js)
  6178. ("pkg-config" ,pkg-config)))
  6179. (inputs
  6180. `(("guix" ,guix)))
  6181. (propagated-inputs
  6182. `(("guile" ,guile-2.2)
  6183. ("guile-commonmark" ,guile-commonmark)
  6184. ("guile-json" ,guile-json)))
  6185. (home-page "https://github.com/UMCUGenetics/hpcguix-web")
  6186. (synopsis "Web interface for cluster deployments of Guix")
  6187. (description "Hpcguix-web provides a web interface to the list of packages
  6188. provided by Guix. The list of packages is searchable and provides
  6189. instructions on how to use Guix in a shared HPC environment.")
  6190. (license l:agpl3+))))