From 06412fbe5367ed412816d8fa30d7b8b593a9616d Mon Sep 17 00:00:00 2001 From: Nicolas Graves Date: Sun, 21 Dec 2025 16:24:34 +0100 Subject: [PATCH] gnu: Add python-proton-vpn-local-agent. * gnu/packages/vpn.scm (python-proton-vpn-local-agent): New variable. * gnu/packages/rust-crates.scm: Add python-proton-vpn-local-agent crate list. Change-Id: Ife3ec38218a916eea083d1e7f2f9fffa9679b7a7 Signed-off-by: Sharlatan Hellseher --- gnu/packages/rust-crates.scm | 366 +++++++++++++++++++++++++++++++++++ gnu/packages/vpn.scm | 124 ++++++++++++ 2 files changed, 490 insertions(+) diff --git a/gnu/packages/rust-crates.scm b/gnu/packages/rust-crates.scm index 6db51346098..2939cae2b92 100644 --- a/gnu/packages/rust-crates.scm +++ b/gnu/packages/rust-crates.scm @@ -382,6 +382,10 @@ (crate-source "anstream" "0.6.14" "0nx1vnfs2lil1sl14l49i6jvp6zpjczn85wxx4xw1ycafvx7b321")) +(define rust-anstream-0.6.15 + (crate-source "anstream" "0.6.15" + "09nm4qj34kiwgzczdvj14x7hgsb235g4sqsay3xsz7zqn4d5rqb4")) + (define rust-anstream-0.6.18 (crate-source "anstream" "0.6.18" "16sjk4x3ns2c3ya1x28a44kh6p47c7vhk27251i015hik1lm7k4a")) @@ -430,6 +434,10 @@ (crate-source "anstyle-parse" "0.2.4" "1m121pa4plpcb4g7xali2kv9njmgb3713q3fxf60b4jd0fli2fn0")) +(define rust-anstyle-parse-0.2.5 + (crate-source "anstyle-parse" "0.2.5" + "1jy12rvgbldflnb2x7mcww9dcffw1mx22nyv6p3n7d62h0gdwizb")) + (define rust-anstyle-parse-0.2.6 (crate-source "anstyle-parse" "0.2.6" "1acqayy22fwzsrvr6n0lz6a4zvjjcvgr5sm941m7m0b2fr81cb9v")) @@ -446,6 +454,10 @@ (crate-source "anstyle-query" "1.0.3" "1x9pyl231rry5g45dvkdb2sfnl2dx2f4qd9a5v3ml8kr9ryr0k56")) +(define rust-anstyle-query-1.1.1 + (crate-source "anstyle-query" "1.1.1" + "0aj22iy4pzk6mz745sfrm1ym14r0y892jhcrbs8nkj7nqx9gqdkd")) + (define rust-anstyle-query-1.1.2 (crate-source "anstyle-query" "1.1.2" "036nm3lkyk43xbps1yql3583fp4hg3b1600is7mcyxs1gzrpm53r")) @@ -482,6 +494,10 @@ (crate-source "anstyle-wincon" "3.0.3" "06gv2vbj4hvwb8fxqjmvabp5kx2w01cjgh86pd98y1mpzr4q98v1")) +(define rust-anstyle-wincon-3.0.4 + (crate-source "anstyle-wincon" "3.0.4" + "1y2pkvsrdxbcwircahb4wimans2pzmwwxad7ikdhj5lpdqdlxxsv")) + (define rust-anstyle-wincon-3.0.7 (crate-source "anstyle-wincon" "3.0.7" "0kmf0fq4c8yribdpdpylzz1zccpy84hizmcsac3wrac1f7kk8dfa")) @@ -1018,6 +1034,10 @@ (crate-source "async-task" "4.7.1" "1pp3avr4ri2nbh7s6y9ws0397nkx1zymmcr14sq761ljarh3axcb")) +(define rust-async-trait-0.1.81 + (crate-source "async-trait" "0.1.81" + "01w10ad3984czxrmc8ckdrabhmsv80aynfxibjnqwz1dr3f2h33f")) + (define rust-async-trait-0.1.88 (crate-source "async-trait" "0.1.88" "1dgxvz7g75cmz6vqqz0mri4xazc6a8xfj1db6r9fxz29lzyd6fg5")) @@ -1218,6 +1238,15 @@ (crate-source "aws-lc-rs" "1.14.0" "11i7l7pddlw808xidvm5fb0qi2qnc2lclh9nlmnv2myd15ngzf4l")) +(define rust-aws-lc-rs-1.8.1 + (crate-source "aws-lc-rs" "1.8.1" + "0xxdyn1zcc4jiy0n3bfn56486djbsfd76w0pzn50wlx7s2dlvrsa")) + +(define rust-aws-lc-sys-0.20.1 + ;; TODO: Check bundled sources. + (crate-source "aws-lc-sys" "0.20.1" + "00q73wwzbcp9v1sn155d5gajj5ki9mqlpj9d1hj2vbf6529283hg")) + (define rust-aws-lc-sys-0.28.0 ;; TODO: Unbundle aws-lc. (crate-source "aws-lc-sys" "0.28.0" @@ -1445,6 +1474,10 @@ (crate-source "bindgen" "0.66.1" "19yj6fsb08x0l1pg871vvfvlx1mglamz8hyjpazhfc90zh34xf7j")) +(define rust-bindgen-0.69.4 + (crate-source "bindgen" "0.69.4" + "18194611hn3k1dkxlha7a52sr8vmfhl9blc54xhj08cahd8wh3d0")) + (define rust-bindgen-0.69.5 (crate-source "bindgen" "0.69.5" "1240snlcfj663k04bjsg629g4wx6f83flgbjh5rzpgyagk3864r7")) @@ -1553,6 +1586,10 @@ (crate-source "bitflags" "2.5.0" "1h91vdx1il069vdiiissj8ymzj130rbiic0dbs77yxjgjim9sjyg")) +(define rust-bitflags-2.6.0 + (crate-source "bitflags" "2.6.0" + "1pkidwzn3hnxlsl8zizh0bncgbjnw7c41cx7bby26ncbzmiznj5h")) + (define rust-bitflags-2.9.0 (crate-source "bitflags" "2.9.0" "1gb5w7pxnmx8l2bjz1i6rkbwbm2167k294rhy6cl1y3vbc8i90jw")) @@ -2450,6 +2487,10 @@ (crate-source "cc" "1.1.30" "0icr3vn2r5scpgylbplffd5mh7jcdivqh9dfgsxymnc13fk06s5i")) +(define rust-cc-1.1.8 + (crate-source "cc" "1.1.8" + "0jbmjhn4y94l2cjcpmbsnrkcqix1v0gl1nbynp417k7j8z0xwjsh")) + (define rust-cc-1.2.1 (crate-source "cc" "1.2.1" "0izavwg0w3ahhp8jhajy97adv53r6ggv11g6czyz6pjx43rfk7gx")) @@ -3131,6 +3172,10 @@ "1an1vcala24grlyhvk71ikxk2kmgcbal9kgrzzpjcl9z7i74ahw5" #:snippet '(delete-file-recursively "tests"))) +(define rust-cmake-0.1.50 + (crate-source "cmake" "0.1.50" + "0c3i3548mqbizpgbff94jjgkcd2p6q9fxjjh89zzf5dqcfaph753")) + (define rust-cmake-0.1.54 (crate-source "cmake" "0.1.54" "1w41ma28yzad9x757s9sfq1wigjs9j902hbzc0nbxpc9vvws7jp7")) @@ -3238,6 +3283,10 @@ (crate-source "colorchoice" "1.0.0" "1ix7w85kwvyybwi2jdkl3yva2r2bvdcc3ka2grjfzfgrapqimgxc")) +(define rust-colorchoice-1.0.2 + (crate-source "colorchoice" "1.0.2" + "1h18ph538y8yjmbpaf8li98l0ifms2xmh3rax9666c5qfjfi3zfk")) + (define rust-colorchoice-1.0.3 (crate-source "colorchoice" "1.0.3" "1439m3r3jy3xqck8aa13q658visn71ki76qa93cy55wkmalwlqsv")) @@ -5221,6 +5270,10 @@ (crate-source "env_filter" "0.1.0" "1spp4jx0fissi0bg00d8nn4vnjwf6y3hr7d0vmcq65gb214al2d0")) +(define rust-env-filter-0.1.2 + (crate-source "env_filter" "0.1.2" + "1avnnd60ig6q5ixxxbwicwkxpqjg8bl9x7qn8c7wbvkcvb794b2g")) + (define rust-env-filter-0.1.3 (crate-source "env_filter" "0.1.3" "1l4p6f845cylripc3zkxa0lklk8rn2q86fqm522p6l2cknjhavhq")) @@ -5237,6 +5290,10 @@ (crate-source "env_logger" "0.10.2" "1005v71kay9kbz1d5907l0y7vh9qn2fqsp2yfgb8bjvin6m0bm2c")) +(define rust-env-logger-0.11.5 + (crate-source "env_logger" "0.11.5" + "13812wq68kybv2vj6rpnhbl7ammlhggcb7vq68bkichzp4cscgz1")) + (define rust-env-logger-0.11.8 (crate-source "env_logger" "0.11.8" "17q6zbjam4wq75fa3m4gvvmv3rj3ch25abwbm84b28a0j3q67j0k")) @@ -5322,6 +5379,10 @@ (crate-source "errno" "0.3.2" "0kqg5zahxlyz1pzd8m7kgr7xcligr5n7dlkk2riz27lnlxlzcc3b")) +(define rust-errno-0.3.9 + (crate-source "errno" "0.3.9" + "1fi0m0493maq1jygcf1bya9cymz2pc1mqxj26bdv7yjd37v5qk2k")) + (define rust-errno-dragonfly-0.1.2 (crate-source "errno-dragonfly" "0.1.2" "1grrmcm6q8512hkq5yzch3yv8wafflc2apbmsaabiyk44yqz2s5a")) @@ -8684,6 +8745,10 @@ (crate-source "humantime" "1.3.0" "0krwgbf35pd46xvkqg14j070vircsndabahahlv3rwhflpy4q06z")) +(define rust-humantime-2.1.0 + (crate-source "humantime" "2.1.0" + "1r55pfkkf5v0ji1x6izrjwdq9v6sc7bv99xj6srywcar37xmnfls")) + (define rust-humantime-2.2.0 (crate-source "humantime" "2.2.0" "17rz8jhh1mcv4b03wnknhv1shwq2v9vhkhlfg884pprsig62l4cv")) @@ -10242,6 +10307,10 @@ (crate-source "libc" "0.2.148" "16rn9l8s5sj9n2jb2pw13ghqwa5nvjggkh9q3lp6vs1jfghp3p4w")) +(define rust-libc-0.2.155 + (crate-source "libc" "0.2.155" + "0z44c53z54znna8n322k5iwg80arxxpdzjj5260pxxzc9a58icwp")) + (define rust-libc-0.2.169 (crate-source "libc" "0.2.169" "02m253hs8gw0m1n8iyrsc4n15yzbqwhddi7w1l0ds7i92kdsiaxm")) @@ -10393,6 +10462,10 @@ "17wbccnjvhjd9ibh019xcd8kjvqws8lqgq86lqkpbgig7gyq0wxn" #:snippet '(delete-file-recursively "tests"))) +(define rust-libloading-0.8.5 + (crate-source "libloading" "0.8.5" + "194dvczq4sifwkzllfmw0qkgvilpha7m5xy90gd6i446vcpz4ya9")) + (define rust-libloading-0.8.6 (crate-source "libloading" "0.8.6" "0d2ccr88f8kv3x7va2ccjxalcjnhrci4j2kwxp7lfmbkpjs4wbzw" @@ -11567,6 +11640,10 @@ (crate-source "mio" "0.6.23" "1i2c1vl8lr45apkh8xbh9k56ihfsmqff5l7s2fya7whvp7sndzaa")) +(define rust-mio-1.0.1 + (crate-source "mio" "1.0.1" + "1r5g65s5acsx440m0a3pylclbrd0dqz93hg15k9crpllsdbf8sa5")) + (define rust-mio-1.0.2 (crate-source "mio" "1.0.2" "1v1cnnn44awxbcfm4zlavwgkvbyg7gp5zzjm8mqf1apkrwflvq40")) @@ -11587,6 +11664,10 @@ (crate-source "miow" "0.6.1" "023g6jamln6hmspcllgrm99ri38ypbm8w945jh36579hgb9zlssk")) +(define rust-mirai-annotations-1.12.0 + (crate-source "mirai-annotations" "1.12.0" + "1lfkgarmzd7mdr739s9yidh0xhc9d3g4jjiwh246mwmkq5i0ign9")) + (define rust-mockall-0.9.1 (crate-source "mockall" "0.9.1" "1m9kpv4523503v48ahyzk9g2rabvbjl70mlbkc8mkfzr4fni9mhq")) @@ -12857,6 +12938,10 @@ (crate-source "object" "0.35.0" "0pnv84mx3f3p847hfnsp4znivnwkc1x53maq459a92w42fw7mv5q")) +(define rust-object-0.36.3 + (crate-source "object" "0.36.3" + "1nggchwvjgilrxarwcmfcisa9fq1phg382y672aa6lb86ir4kdi7")) + (define rust-object-0.36.4 (crate-source "object" "0.36.4" "02h7k38dwi8rndc3y81n6yjxijbss99p2jm9c0b6ak5c45c1lkq8")) @@ -14156,6 +14241,10 @@ (crate-source "portable-atomic" "1.11.1" "10s4cx9y3jvw0idip09ar52s2kymq8rq9a668f793shn1ar6fhpq")) +(define rust-portable-atomic-1.7.0 + (crate-source "portable-atomic" "1.7.0" + "0rbjqv7lw120k6avb3fbsg58zg69m0wrmjg926lqglph33i4wm6s")) + (define rust-portable-atomic-1.9.0 (crate-source "portable-atomic" "1.9.0" "1cmd87qj90panwsi350djb8lsxdryqkkxmimjcz7a1nsysini76c")) @@ -14296,6 +14385,10 @@ (crate-source "prettyplease" "0.1.25" "11lskniv8pf8y8bn4dc3nmjapfhnibxbm5gamp2ad9qna3lld1kc")) +(define rust-prettyplease-0.2.20 + (crate-source "prettyplease" "0.2.20" + "0pk4vm9fir1p0bl11p9fkgl9r1x9vi4avv8l7flb1wx2i1a364jz")) + (define rust-prettyplease-0.2.32 (crate-source "prettyplease" "0.2.32" "1xmdmwhsvqc8l5ns029vzjida4k3lp5ynin0xra43qsiki0wakk6")) @@ -14752,6 +14845,10 @@ "0wm8z6jgg18z2cgr99wc34mbkffhcnb50igmq5d1ff6ghpyvyy3p" #:snippet '(delete-file-recursively "branding"))) +(define rust-pyo3-0.24.0 + (crate-source "pyo3" "0.24.0" + "11jyd625m0r2kjdq9vqxy1af82libzn1n9mj9pb6818jj4snq73z")) + (define rust-pyo3-0.24.1 (crate-source "pyo3" "0.24.1" "0abjav5868avfgb8fjfvz2dbpm916zmhm8xvxzfgns5hhq033nhp" @@ -14765,6 +14862,14 @@ (crate-source "pyo3" "0.25.1" "0ak85gkxs2ylrpbgyq1ksk24asvbsxgzqxh38gis6a06zs5afw49")) +(define rust-pyo3-async-runtimes-0.24.0 + (crate-source "pyo3-async-runtimes" "0.24.0" + "1gzq3mdd679mpy0jmzx3clxpd68cbzbdm041sd81zm7r8bf862yx")) + +(define rust-pyo3-async-runtimes-macros-0.24.0 + (crate-source "pyo3-async-runtimes-macros" "0.24.0" + "1k8b6gs64np4g1n4k85h5m5hgazv62c9pvfr4a01xfrg0sj3n46g")) + (define rust-pyo3-build-config-0.15.2 (crate-source "pyo3-build-config" "0.15.2" "0414biclhrxv6y0bjm6s9fq9z6yah393ffkd8748pqdq83y3k4kp")) @@ -14793,6 +14898,10 @@ (crate-source "pyo3-build-config" "0.23.5" "1yqhw1k466k65rqvy2d4xz2shl0hzkry1xlxinciigzkdvlcpxll")) +(define rust-pyo3-build-config-0.24.0 + (crate-source "pyo3-build-config" "0.24.0" + "0yhacb3yqnhz2rgy75a70xm8i1gbpbpil0676zm2f57p9jrw5dp9")) + (define rust-pyo3-build-config-0.24.1 (crate-source "pyo3-build-config" "0.24.1" "1hazmb2hm7qad5xcy9gajwj3231hqjnndfcb145014ypkf46awg2")) @@ -14829,6 +14938,10 @@ (crate-source "pyo3-ffi" "0.23.5" "13fxvxijl59vilv39akdzwqd1l7fb6c70f53n27irfy0672b9wg9")) +(define rust-pyo3-ffi-0.24.0 + (crate-source "pyo3-ffi" "0.24.0" + "171s5hfn4y5r8my19jbl2d7hdxhr0gfh5k82vb6k4r540qcna1sm")) + (define rust-pyo3-ffi-0.24.1 (crate-source "pyo3-ffi" "0.24.1" "1g5a5w7rsq2afb5zamz1jjx5834cnwlg4gig0qhb9xnvw4k0aa05")) @@ -14873,6 +14986,10 @@ (crate-source "pyo3-macros" "0.23.5" "1nm9i19aff7zn245v35qb0lbr3cxr19zdgcayq84fg7n509j1hpv")) +(define rust-pyo3-macros-0.24.0 + (crate-source "pyo3-macros" "0.24.0" + "0hkgzvpg5k1crmmxski93ngx7fmsmv90vfrnhga9g3gxnjsr9lxh")) + (define rust-pyo3-macros-0.24.1 (crate-source "pyo3-macros" "0.24.1" "0i2zrpazxwgfbpmzvrcqhdgg3j97l5i0q455b4rzdlx4d9lfag2w")) @@ -14913,6 +15030,10 @@ (crate-source "pyo3-macros-backend" "0.23.5" "0a10yxj41kvjhh9vywzd2zj3h6iwm4bg3mlkw2frrnpks1m759pw")) +(define rust-pyo3-macros-backend-0.24.0 + (crate-source "pyo3-macros-backend" "0.24.0" + "13kwma61zgm262m53pdsywypgqpp5r6h47v21w4b2hx9rw4xlwpx")) + (define rust-pyo3-macros-backend-0.24.1 (crate-source "pyo3-macros-backend" "0.24.1" "0m9q9zlwn5s0pa2819z3a13yn94pmq1q3swvx04fvc5z1jm6zkzl")) @@ -15129,6 +15250,10 @@ (crate-source "quote" "1.0.33" "1biw54hbbr12wdwjac55z1m2x2rylciw83qnjn564a3096jgqrsj")) +(define rust-quote-1.0.36 + (crate-source "quote" "1.0.36" + "19xcmh445bg6simirnnd4fvkmp6v2qiwxh5f6rw4a70h76pnm9qg")) + (define rust-quote-1.0.37 (crate-source "quote" "1.0.37" "1brklraw2g34bxy9y4q1nbrccn7bv36ylihv12c9vlcii55x7fdm")) @@ -15568,6 +15693,10 @@ (crate-source "regalloc2" "0.11.2" "16k30jbh1ag5vb4l6p43jik1dzq8pymjbiwblkj189hl32ryc1nw")) +(define rust-regex-1.10.6 + (crate-source "regex" "1.10.6" + "06cnlxwzyqfbw1za1i7ks89ns4i2kr0lpg5ykx56b8v7dd6df6a2")) + (define rust-regex-1.11.1 (crate-source "regex" "1.11.1" "148i41mzbx8bmq32hsj1q4karkzzx5m60qza6gdw4pdc9qdyyi5m" @@ -15605,6 +15734,10 @@ (crate-source "regex-automata" "0.3.8" "1587iyw9x0r33b23vwn4s7cgzavqkkp6dv7qaqxnj82jjps03x62")) +(define rust-regex-automata-0.4.7 + (crate-source "regex-automata" "0.4.7" + "1pwjdi4jckpbaivpl6x4v5g4crb37zr2wac93wlfsbzgqn6gbjiq")) + (define rust-regex-automata-0.4.8 (crate-source "regex-automata" "0.4.8" "18wd530ndrmygi6xnz3sp345qi0hy2kdbsa89182nwbl6br5i1rn" @@ -15647,6 +15780,10 @@ (crate-source "regex-syntax" "0.7.5" "1nhjmqdlakfi4yb8lh7vbbh71dsy90jjvrjvvnrih6larldgpdfv")) +(define rust-regex-syntax-0.8.4 + (crate-source "regex-syntax" "0.8.4" + "16r0kjy20vx33dr4mhasj5l1f87czas714x2fz6zl0f8wwxa0rks")) + (define rust-regex-syntax-0.8.5 (crate-source "regex-syntax" "0.8.5" "0p41p3hj9ww7blnbwbj9h7rwxzxg0c1hvrdycgys8rxyhqqw859b")) @@ -16284,6 +16421,10 @@ (string-append "//" all))) (copy-file "Cargo.toml.orig" "Cargo.toml")))) +(define rust-rustix-0.38.34 + (crate-source "rustix" "0.38.34" + "03vkqa2ism7q56rkifyy8mns0wwqrk70f4i4fd53r97p8b05xp3h")) + (define rust-rustix-0.38.42 (crate-source "rustix" "0.38.42" "11fvprv3p450ggyqacp7sdpjbbsgm5zvfjwnzy8bfbmbrf7c6ggr")) @@ -16417,6 +16558,10 @@ "1324n5bcns0rnw6vywr5agff3rwfvzphi7rmbyzwnv6glkhclx0w" #:snippet '(delete-file-recursively "tests"))) +(define rust-rustls-pemfile-2.1.3 + (crate-source "rustls-pemfile" "2.1.3" + "09bl873pkibmb2da49kkbm9jlagscjvzrv257q6k01p101my2vqr")) + (define rust-rustls-pemfile-2.2.0 (crate-source "rustls-pemfile" "2.2.0" "0l3f3mrfkgdjrava7ibwzgwc4h3dljw3pdkbsi9rkwz3zvji9qyw" @@ -16437,6 +16582,10 @@ "0yjzsnpv1sjbnfxbbmrnyimd23jip48nav6l9hr1rjd06vcjl64l" #:snippet '(delete-file-recursively "tests"))) +(define rust-rustls-pki-types-1.8.0 + (crate-source "rustls-pki-types" "1.8.0" + "1w6a1x8h61p5ddlnijfvj5fvs516h5xr5rw1pc0m8rgq8vk2q2pw")) + (define rust-rustls-platform-verifier-0.3.4 (crate-source "rustls-platform-verifier" "0.3.4" "145lhjn9w5khp0fn4lagaa8qqyjyhfqn2dg6llva6qyzvy5qgfxg" @@ -16911,10 +17060,22 @@ (crate-source "send_wrapper" "0.6.0" "0wrxzsh9fzgkkkms621ydnz8mj30ilyq299a8cf65jn1y72hw2yd")) +(define rust-serde-1.0.204 + (crate-source "serde" "1.0.204" + "04kwpwqz559xlhxkggmm8rjxqgywy5swam3kscwsicnbw1cgaxmw")) + (define rust-serde-bytes-0.11.19 (crate-source "serde_bytes" "0.11.19" "1a1y1v0r9akqyvprxnmpgc0i8wybqqpvgi01mi8qxn3rkrq41m55")) +(define rust-serde-derive-1.0.204 + (crate-source "serde_derive" "1.0.204" + "08p25262mbmhsr2cg0508d5b1wvljj956rvpg0v3qgg6gc8pxkg0")) + +(define rust-serde-json-1.0.122 + (crate-source "serde_json" "1.0.122" + "1nk8phyvwmhrmcbwdr8rbjd9bqp8np62dcbnhisgymqwjl1n4jvq")) + (define rust-serde-spanned-1.0.0 (crate-source "serde_spanned" "1.0.0" "10rv91337k8x8zmfir4h8aiwmwgkq07gdv7h0jxhcwwgk10lqws0")) @@ -18991,6 +19152,10 @@ (crate-source "test-case-macros" "3.3.1" "1yvgky3qax73bic6m368q04xc955p4a91mddd6b5fk7d04mfg2aw")) +(define rust-test-log-0.2.16 + (crate-source "test-log" "0.2.16" + "14xv5d7b3w072hh78xafsc795ygrg6s7ck8mg3i7np1b7kbcxzrx")) + (define rust-test-log-0.2.17 (crate-source "test-log" "0.2.17" "03ydax0mamyhn5n6x0l8d2kz76fly7jv3xmnwmk12611sa1n1x77")) @@ -18999,6 +19164,10 @@ (crate-source "test-log" "0.2.18" "0yxywma018rfr4mb409b1yz4ppg8ir9rg87bd08vx81fb25bjcqy")) +(define rust-test-log-macros-0.2.16 + (crate-source "test-log-macros" "0.2.16" + "1xd3490hvpa6fk5sqnmyzbz5xwndfpmmshjfpa8k221jm97f56ar")) + (define rust-test-log-macros-0.2.17 (crate-source "test-log-macros" "0.2.17" "0gsmmdsi8aqgxbr16n78sf1m6x5s29gfvlk0n7d0yg5mdly0r3c8")) @@ -19059,6 +19228,10 @@ (crate-source "thiserror" "1.0.49" "1m3yalbcx89bx397igc1ckypw8hiwq9jbzc56pgazrzdsz3fhxqi")) +(define rust-thiserror-1.0.63 + (crate-source "thiserror" "1.0.63" + "092p83mf4p1vkjb2j6h6z96dan4raq2simhirjv12slbndq26d60")) + (define rust-thiserror-1.0.69 (crate-source "thiserror" "1.0.69" "0lizjay08agcr5hs9yfzzj6axs53a2rgx070a1dsi3jpkcrzbamn")) @@ -19091,6 +19264,10 @@ (crate-source "thiserror-impl" "1.0.49" "1k643ga9sbqpcb873n299n3zjzc4srfakyv98xwqi4ly0412yw8h")) +(define rust-thiserror-impl-1.0.63 + (crate-source "thiserror-impl" "1.0.63" + "0qd21l2jjrkvnpr5da3l3b58v4wmrkn6aa0h1z5dg6kb8rc8nmd4")) + (define rust-thiserror-impl-1.0.69 (crate-source "thiserror-impl" "1.0.69" "1h84fmn2nai41cxbhk6pqf46bxqq1b344v8yz089w1chzi76rvjg")) @@ -19348,6 +19525,10 @@ (crate-source "tokenizers" "0.19.1" "1zg6ffpllygijb5bh227m9p4lrhf0pjkysky68kddwrsvp8zl075")) +(define rust-tokio-1.39.2 + (crate-source "tokio" "1.39.2" + "1cb7yhba7nnf00cylcywk7rai5kkdb8b4jzwrc26zgbqqwdzp96s")) + (define rust-tokio-1.44.1 (crate-source "tokio" "1.44.1" "06n90q5hh1yd844s6nf4j3fwbrkm2bnq533kp3a488l4bdhxm0pk")) @@ -19380,6 +19561,10 @@ (crate-source "tokio-graceful" "0.1.6" "1rqd6klnc4l4y3iih2k9hv6pxm3jbs4iqh030rs19knblkda8yv2")) +(define rust-tokio-macros-2.4.0 + (crate-source "tokio-macros" "2.4.0" + "0lnpg14h1v3fh2jvnc8cz7cjf0m7z1xgkwfpcyy632g829imjgb9")) + (define rust-tokio-macros-2.5.0 (crate-source "tokio-macros" "2.5.0" "1f6az2xbvqp7am417b78d1za8axbvjvxnmkakz9vr8s52czx81kf")) @@ -20806,6 +20991,10 @@ (crate-source "validator" "0.15.0" "1mgfpwry40fcsfabx7vziy0a7j9kxn6b49mvbv1hy770j09hlyzh")) +(define rust-valuable-0.1.0 + (crate-source "valuable" "0.1.0" + "0v9gp3nkjbl30z0fd56d8mx7w1csk86wwjhfjhr400wh9mfpw2w3")) + (define rust-valuable-0.1.1 (crate-source "valuable" "0.1.1" "0r9srp55v7g27s5bg7a2m095fzckrcdca5maih6dy9bay6fflwxs")) @@ -21792,6 +21981,10 @@ "1agpayg5zzf7m1a01q30jahlgmn5nwggbabdhq0in008pf5c66sj" #:snippet '(delete-file-recursively "tests"))) +(define rust-webpki-roots-0.26.6 + (crate-source "webpki-roots" "0.26.6" + "0n5985cgqrzm2a1si6rii5jrp3z7y3cfizgy9lfqywbpy6znf744")) + (define rust-webpki-roots-0.26.8 (crate-source "webpki-roots" "0.26.8" "1jf54brni9lk4ak5pkma2pn18hli22gr7i7wp9zn2lzayy8v4412" @@ -44326,6 +44519,179 @@ rust-target-lexicon-0.12.11 rust-unicode-ident-1.0.11 rust-version-check-0.9.4)) + (python-proton-vpn-local-agent => + (list + rust-addr2line-0.22.0 + rust-adler-1.0.2 + rust-aho-corasick-1.1.3 + rust-anstream-0.6.15 + rust-anstyle-1.0.8 + rust-anstyle-parse-0.2.5 + rust-anstyle-query-1.1.1 + rust-anstyle-wincon-3.0.4 + rust-asn1-rs-0.6.2 + rust-asn1-rs-derive-0.5.1 + rust-asn1-rs-impl-0.2.0 + rust-async-trait-0.1.81 + rust-autocfg-1.3.0 + rust-aws-lc-rs-1.8.1 + rust-aws-lc-sys-0.20.1 + rust-backtrace-0.3.73 + rust-base64-0.22.1 + rust-bincode-1.3.3 + rust-bindgen-0.69.4 + rust-bitflags-2.6.0 + rust-bytes-1.7.1 + rust-cc-1.1.8 + rust-cexpr-0.6.0 + rust-cfg-if-1.0.0 + rust-clang-sys-1.8.1 + rust-cmake-0.1.50 + rust-colorchoice-1.0.2 + rust-data-encoding-2.9.0 + rust-der-parser-9.0.0 + rust-deranged-0.5.3 + rust-displaydoc-0.2.5 + rust-dunce-1.0.5 + rust-either-1.13.0 + rust-env-filter-0.1.2 + rust-env-logger-0.11.5 + rust-errno-0.3.9 + rust-fs-extra-1.3.0 + rust-futures-0.3.31 + rust-futures-channel-0.3.31 + rust-futures-core-0.3.31 + rust-futures-executor-0.3.31 + rust-futures-io-0.3.31 + rust-futures-macro-0.3.31 + rust-futures-sink-0.3.31 + rust-futures-task-0.3.31 + rust-futures-util-0.3.31 + rust-getrandom-0.2.15 + rust-gimli-0.29.0 + rust-glob-0.3.1 + rust-heck-0.5.0 + rust-hermit-abi-0.3.9 + rust-home-0.5.9 + rust-humantime-2.1.0 + rust-indoc-2.0.5 + rust-is-terminal-polyfill-1.70.1 + rust-itertools-0.12.1 + rust-itoa-1.0.11 + rust-jobserver-0.1.32 + rust-lazy-static-1.5.0 + rust-lazycell-1.3.0 + rust-libc-0.2.155 + rust-libloading-0.8.5 + rust-linux-raw-sys-0.4.14 + rust-lock-api-0.4.12 + rust-log-0.4.22 + rust-matchers-0.1.0 + rust-memchr-2.7.4 + rust-memoffset-0.9.1 + rust-minimal-lexical-0.2.1 + rust-miniz-oxide-0.7.4 + rust-mio-1.0.1 + rust-mirai-annotations-1.12.0 + rust-nom-7.1.3 + rust-nu-ansi-term-0.46.0 + rust-num-bigint-0.4.6 + rust-num-conv-0.1.0 + rust-num-integer-0.1.46 + rust-num-traits-0.2.19 + rust-object-0.36.3 + rust-oid-registry-0.7.1 + rust-once-cell-1.19.0 + rust-overload-0.1.1 + rust-parking-lot-0.12.3 + rust-parking-lot-core-0.9.10 + rust-paste-1.0.15 + rust-pin-project-lite-0.2.14 + rust-pin-utils-0.1.0 + rust-portable-atomic-1.7.0 + rust-powerfmt-0.2.0 + rust-prettyplease-0.2.20 + rust-proc-macro2-1.0.94 + rust-pyo3-0.24.0 + rust-pyo3-async-runtimes-0.24.0 + rust-pyo3-async-runtimes-macros-0.24.0 + rust-pyo3-build-config-0.24.0 + rust-pyo3-ffi-0.24.0 + rust-pyo3-macros-0.24.0 + rust-pyo3-macros-backend-0.24.0 + rust-quote-1.0.36 + rust-redox-syscall-0.5.3 + rust-regex-1.10.6 + rust-regex-automata-0.1.10 + rust-regex-automata-0.4.7 + rust-regex-syntax-0.6.29 + rust-regex-syntax-0.8.4 + rust-ring-0.17.8 + rust-rustc-demangle-0.1.24 + rust-rustc-hash-1.1.0 + rust-rusticata-macros-4.1.0 + rust-rustix-0.38.34 + rust-rustls-0.23.12 + rust-rustls-pemfile-2.1.3 + rust-rustls-pki-types-1.8.0 + rust-rustls-webpki-0.102.6 + rust-ryu-1.0.18 + rust-scopeguard-1.2.0 + rust-serde-1.0.204 + rust-serde-derive-1.0.204 + rust-serde-json-1.0.122 + rust-sharded-slab-0.1.7 + rust-shlex-1.3.0 + rust-signal-hook-registry-1.4.2 + rust-slab-0.4.9 + rust-smallvec-1.13.2 + rust-socket2-0.5.7 + rust-spin-0.9.8 + rust-static-assertions-1.1.0 + rust-subtle-2.6.1 + rust-syn-2.0.100 + rust-synstructure-0.13.2 + rust-target-lexicon-0.13.2 + rust-test-log-0.2.16 + rust-test-log-macros-0.2.16 + rust-thiserror-1.0.63 + rust-thiserror-impl-1.0.63 + rust-thread-local-1.1.8 + rust-time-0.3.43 + rust-time-core-0.1.6 + rust-time-macros-0.2.24 + rust-tokio-1.39.2 + rust-tokio-macros-2.4.0 + rust-tokio-rustls-0.26.0 + rust-tracing-0.1.41 + rust-tracing-core-0.1.33 + rust-tracing-log-0.2.0 + rust-tracing-subscriber-0.3.19 + rust-unicode-ident-1.0.12 + rust-unindent-0.2.3 + rust-untrusted-0.9.0 + rust-utf8parse-0.2.2 + rust-valuable-0.1.0 + rust-wasi-0.11.0+wasi-snapshot-preview1 + rust-webpki-0.22.4 + rust-webpki-roots-0.26.6 + rust-which-4.4.2 + rust-winapi-0.3.9 + rust-winapi-i686-pc-windows-gnu-0.4.0 + rust-winapi-x86-64-pc-windows-gnu-0.4.0 + rust-windows-sys-0.52.0 + rust-windows-targets-0.52.6 + rust-windows-aarch64-gnullvm-0.52.6 + rust-windows-aarch64-msvc-0.52.6 + rust-windows-i686-gnu-0.52.6 + rust-windows-i686-gnullvm-0.52.6 + rust-windows-i686-msvc-0.52.6 + rust-windows-x86-64-gnu-0.52.6 + rust-windows-x86-64-gnullvm-0.52.6 + rust-windows-x86-64-msvc-0.52.6 + rust-x509-parser-0.16.0 + rust-zeroize-1.8.1 + rust-zeroize-derive-1.4.2)) (python-pydantic-core => (list rust-ahash-0.8.11 rust-aho-corasick-1.1.3 diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index a16b8fb8b68..51b5f0f9e64 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -47,6 +47,7 @@ #:use-module (guix download) #:use-module (guix gexp) #:use-module (guix git-download) + #:use-module (guix build-system cargo) #:use-module (guix build-system cmake) #:use-module (guix build-system copy) #:use-module (guix build-system gnu) @@ -77,6 +78,8 @@ #:use-module (gnu packages golang-crypto) #:use-module (gnu packages golang-web) #:use-module (gnu packages golang-xyz) + #:use-module (gnu packages groff) + #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) @@ -976,6 +979,127 @@ packages.") "This package provides a keyring plugin for Proton technologies.") (license license:gpl3+))) +(define-public python-proton-vpn-local-agent + (let* ((name "python-proton-vpn-local-agent") + (version "1.6.0") + (local-agent-version "0.10.1") + (home-page "https://github.com/ProtonVPN/local-agent-rs") + (base-origin + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "13ym2hhb5ndiffc8z551bb2hk2rdkld2r8cwhyq3nl5lma5z0kdf"))))) + (package + (name name) + (version version) + (home-page home-page) + (source base-origin) + (build-system cargo-build-system) + (arguments + (list + #:install-source? #false + #:imported-modules `(,@%cargo-build-system-modules + ,@%pyproject-build-system-modules) + #:modules '((guix build cargo-build-system) + ((guix build pyproject-build-system) #:prefix py:) + (guix build utils)) + #:phases + (with-extensions (list (pyproject-guile-json)) + #~(modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "python-proton-vpn-local-agent"))) + ;; XXX: Inject the local_agent_rs crate as a vendored dependency + ;; instead of using path=. Otherwise the 'package phase is broken. + (add-after 'chdir 'patch-local-agent-rs-version + (lambda _ + (substitute* "Cargo.toml" + (("\\{ (path = \"\\.\\./local_agent_rs\") \\}") + (format #f "{ version = ~s }" #$local-agent-version))))) + ;; XXX: There is currently no proper way to install a wheel. + (add-after 'install 'prepare-python-module-with-flit + (lambda _ + (define (touch file) + (call-with-output-file file (const #t))) + (mkdir-p "python/proton/vpn/") + (for-each touch '("python/proton/__init__.py" + "python/proton/vpn/__init__.py")) + (copy-file "target/release/libpython_proton_vpn_local_agent.so" + ;; XXX: Install as .py or flit fails to do so. + "python/proton/vpn/local_agent.py") + (call-with-output-file "python/pyproject.toml" + (lambda (port) + (format port "\ +[build-system] +requires = [\"flit_core\"] +build-backend = \"flit_core.buildapi\" + +[project] +name = ~s +version = ~s +description = ~s + +[tool.flit.module] +name = ~s~%" + "proton_vpn_local_agent" + #$version + #$(package-description this-package) + "proton.vpn.local_agent"))) + (chdir "python"))) + (add-after 'prepare-python-module-with-flit 'build-python-module + (assoc-ref py:%standard-phases 'build)) + (add-after 'build-python-module 'install-python-module + (assoc-ref py:%standard-phases 'install)) + (add-after 'install-python-module 'fix-python-installation + (lambda* (#:key inputs outputs #:allow-other-keys) + (with-directory-excursion (py:site-packages inputs outputs) + (rename-file "proton/vpn/local_agent.py" + "proton/vpn/local_agent.so") + (substitute* (find-files "." "RECORD") + (("proton/vpn/local_agent\\.py") + "proton/vpn/local_agent.so"))))) + (add-after 'fix-python-installation 'add-install-to-pythonpath + (assoc-ref py:%standard-phases 'add-install-to-pythonpath)) + (add-after 'add-install-to-pythonpath 'python-check + (lambda args + (chdir "..") + (apply (assoc-ref py:%standard-phases 'check) + (cons* #:test-flags (list) args)))))))) + (native-inputs + (list python-flit-core + python-pytest + python-pytest-asyncio)) + (inputs + (cons* + (origin + (inherit base-origin) + (file-name (git-file-name "local_agent_rs" local-agent-version)) + (modules '((guix build utils) + (ice-9 ftw))) + (snippet + #~(begin + ;; Delete everything except for local_agent_rs itself: + (for-each (lambda (file) + (unless (member file '("." ".." "local_agent_rs")) + (delete-file-recursively file))) + (scandir ".")) + (for-each + (lambda (file) + (unless (member file '("." "..")) + (rename-file (string-append "local_agent_rs/" file) file))) + (scandir "local_agent_rs"))))) + python-wrapper + (cargo-inputs 'python-proton-vpn-local-agent))) + (synopsis "Communicate with a Proton LocalAgent") + (description + "This package contains a rust crate for communicating with a Proton +LocalAgent, server, and python-bindings for that crate.") + (license license:gpl3+)))) + (define-public tinc (package (name "tinc")