When will we announce transition to Weblate

2021-01-18 Thread Peng Mei Yu
Hi Julien,

Julien Lepiller writes:

> Yes, translations should now go through weblate, at 
> https://translate.fedoraproject.org/projects/guix/website/
>
> We also manage the cookbook, manual, guix and packages there, though I still 
> need to announce it :)

When will this be officially announced?  I should tell this news to my
friends at zh_CN team.

I am trying my best to recruit new volunteers to join zh_CN translation
team.  There are already enthusiasts who agree to join.  Personally, I
prefer modifying PO files in Emacs with po-mode, but I guess Weblate
will be better for teamwork.

The translation progress of zh_CN lags behind my previous schedule.
This is not a problem at the moment since there are only a few active
Guix user in China and most of them are OK with en_US locale.  But the
sooner we finish zh_CN translation the better.


--
Peng Mei Yu



Re: Make guix-publish's URL identical to cache file name

2021-01-10 Thread Peng Mei Yu
Hi,

Ludovic Courtès writes:

> Peng Mei Yu  skribis:
>
>> Ludovic Courtès writes:
>>
>>> Ricardo Wurmus  skribis:
>>>
>>>> We need to make sure that *all* the files produced by “guix publish”
>>>> have correct permissions; IIRC some of the files are not readable at all
>>>> by users other than the owner of the files.
>>>
>>> Oops, I had forgotten, my bad.  I’ll push the attached patch later
>>> today.
>>>
>>> Next we’ll need to update the ‘guix’ package, restart ‘guix publish’ on
>>> berlin, and chmod a+r -R /var/cache/guix/publish.
>
> These two issues are now fixed.
>
>> Ping.  What's the status of rsync?
>
> It’s not running yet.  Ricardo, do you have a diff against berlin.scm to
> run it?

Ping again.


--
Peng Mei Yu



Apply for commit access

2020-12-27 Thread Peng Mei Yu
Hi,

Can I apply for commit access to guix-artwork.git?  I may make changes
to the Chinese translation and fix small bugs like this one:
https://issues.guix.gnu.org/45416.  Additional access to guix.git will
also be great.  I won't make frequent commits.

My login name on Savannah is pmy.  A PGP key has been uploaded there.
The PGP key ID is: "C3DE DC9B DD65 6937 D320 2818 B7F7 78DB 66D7 6565".
I usually sign messages with the subkey: "9445 CC98 52DE 6A0D E5DA C02E
0125 A7C5 B59C EF92".  This email is signed with the PGP subkey to prove
that I do hold the key.

--
Peng Mei Yu


signature.asc
Description: PGP signature


Re: SJTUG's Guix mirror is online now

2020-12-22 Thread Peng Mei Yu
Hi,

Ludovic Courtès writes:

> Peng Mei Yu  skribis:
>
>> After extensive cooperation with SJTUG's maintainers, we are happy to
>> announce that SJTUG's Guix mirror is online now.
>>
>> The substitute URL is: https://mirrors.sjtug.sjtu.edu.cn/guix
>
> This is great news!
>
>> Asia residents, especially China residents, will greatly benefit from
>> this mirror.  Average download speed is about 3MB/s within China, which
>> is a 100 times increase compared to ci.guix.gnu.org.
>>
>> SJTUG's Guix mirror is maintained by students of Shanghai Jiao Tong
>> University Linux User Group (SJTUG).  We will continue to cooperate with
>> them in the near future to ensure this mirror server is fast and stable.
>
> So you are rsync’ing from ci, right?  Is the mirror running ‘guix
> publish’ to cope with the “weird” file layout in
> /var/cache/guix/publish?

No.  To deal with software repositories that are not easy to have a full
sync, maintainers of SJTUG wrote a cache program.  When an HTTP request
comes, the program tries to find the requested resource from an S3-like
storage server.  If the resource is found on the storage server, return
an HTTP 302 redirection to storage server.  Otherwise, return an HTTP
302 redirection to upstream server and fetch the resource from upstream
and store it into the storage server.  As I said earlier, this does not
work well for Guix because Guix client does not handle HTTP 302
redirection correctly.  So we tweaked the program a little bit to offer
transparent proxy to Guix client.  The program is here:
https://github.com/sjtug/mirror-intel

By the way, I am still waiting for the rsync account of our CI server.
If rsync is offered, we may pull guix-publish' cache and write another
program to feed the mirror with a full sync.

> If you’re interested, you could write an article for the blog post (in
> English, but it’d be a good opportunity to start translating the web
> site into Chinese :-)) about your setup and the choices you made.

I don't think there are enough things to write in a blog post but I will
consider translating the web site.


--
Peng Mei Yu



SJTUG's Guix mirror is online now

2020-12-21 Thread Peng Mei Yu
Hello,

After extensive cooperation with SJTUG's maintainers, we are happy to
announce that SJTUG's Guix mirror is online now.

The substitute URL is: https://mirrors.sjtug.sjtu.edu.cn/guix

Asia residents, especially China residents, will greatly benefit from
this mirror.  Average download speed is about 3MB/s within China, which
is a 100 times increase compared to ci.guix.gnu.org.

SJTUG's Guix mirror is maintained by students of Shanghai Jiao Tong
University Linux User Group (SJTUG).  We will continue to cooperate with
them in the near future to ensure this mirror server is fast and stable.

Find the announcement and usage instructions here:
https://guix.org.cn/blog/sjtug-guix-mirror-is-online-now/
https://sjtug.org/post/mirror-news/2020-12-21-release-guix/
https://mirrors.sjtug.sjtu.edu.cn/docs/guix


--
Peng Mei Yu



Let guix client accept HTTP redirection

2020-12-09 Thread Peng Mei Yu
Hello,

I have a good news and a bad news.

Good news.  The maintainers of mirrors.sjtug.sjtu.edu.cn (an academic
free software mirror site) agreed to accept Guix into their support
list.

Bad news.  Their first implementation of a Guix mirror failed.  Their
server architecture is like this: A front-end program accepts HTTP
requests.  It looks up the requested resource from a storage server
similar to Amazon S3.  If the resource is found on storage server,
return an HTTP 302 redirection to the storage server.  If the resource
is not found, return an HTTP 302 redirection to ci.guix.gnu.org and
fetch the resource from ci.guix.gnu.org then store it in the storage
server.  So the next time the same resource is requested, it can be
served from the storage server.

During the test, we found that guix client does not accept HTTP 302
redirection.  So we are working on a different implementation.  In the
meantime, I think the problem should be reported here and let's find out
if something can be done from the Guix side.


--
Peng Mei Yu



Re: Make guix-publish's URL identical to cache file name

2020-12-09 Thread Peng Mei Yu
Hello,

Ludovic Courtès writes:

> Ricardo Wurmus  skribis:
>
>> We need to make sure that *all* the files produced by “guix publish”
>> have correct permissions; IIRC some of the files are not readable at all
>> by users other than the owner of the files.
>
> Oops, I had forgotten, my bad.  I’ll push the attached patch later
> today.
>
> Next we’ll need to update the ‘guix’ package, restart ‘guix publish’ on
> berlin, and chmod a+r -R /var/cache/guix/publish.
>
>> Once that’s done we just need to start the rsync daemon again,
>> preferably as a shepherd service.
>
> Yes.
>
> Sounds like we have a plan!
>
> Peng Mei Yu: make sure to ping us in the coming weeks if you don’t hear
> from us by then!

Ping.  What's the status of rsync?


--
Peng Mei Yu



Re: Make guix-publish's URL identical to cache file name

2020-11-09 Thread Peng Mei Yu
Hello,

Ludovic Courtès writes:

>> Then a mirror site can simply pull the directory
>> /var/cache/guix/publish/nar from the Berlin server and serve this
>> directory through a static HTTP server.  There will be cache misses.
>> But guix-daemon will safely fallback to the next server in
>> substitute-urls.
>
> The simplest solution for now (I think that’s what Ricardo & co. had in
> mind) would be for you to retrieve /var/cache/guix/publish on your
> server, as is, and then run ‘guix publish’ on your sever: it will know
> where to find files.  As I wrote to Jonathan, you can/should also run
> nginx on top of that as a proxy to your local ‘guix publish’.

I am afraid having to install Guix and run 'guix publish' will be a
major obstacle for most mirror sites, especially when their maintainers
have no previous experience with Guix and have no interest in learning a
new software and do not want to pollute their server with an unknown
software and do not want to increase maintenance burden. This is the
simplest solution on our side, but a complex solution on mirror site
maintainers' side.

I guess a complex Nginx URL rewrite rule might also convert the URL into
real filename in the cache.  Can anyone familiar with Nginx explain?


--
Peng Mei Yu



Re: Make guix-publish's URL identical to cache file name

2020-11-04 Thread Peng Mei Yu
Hi Jonathan,

Jonathan Brielmaier writes:

> I'm running myself a smaller cuirass+publish server and I have
> configured the caching on the nginx side and not with `guix publish`.
>
> So my cache resides in:
> /var/cache/nginx/nar/
>
> For me it has a dramatic speed up on my German server reaching from
> Germany. So 2-3MB/s on a cold cache hit versus a hot cache with 15MB/s
> and even more.
>
> Maybe you can give that a try. I'm not sure if it does help as you said
> you are a bit limited by the bandwidth...

I am perfectly fine with any method to setup a mirror site.  But the
academic mirror sites I am talking about only want a simple approach.
They want to pull files with rsync, rclone, or FTP and serve files with
static HTTP server.  If we make Guix's mirror as simple as that, I am
confident I can persuade more mirror sites to support Guix.


> On 04.11.20 09:46, Peng Mei Yu wrote:
>> I have to decide next year's server specs and budget for
>> mirror.guix.org.cn before the Chinese shopping festival ends on November
>> 11.  If the proposal above is doable, I will keep mirror.guix.org.cn
>> running for half a year and help academic mirror sites add support for
>> Guix in the meantime.  Otherwise I prefer to buy a prepaid three years
>> VPS with a 90% discount during the shopping festival.  The discount is
>> huge.  I don't want to miss it.
>
> I think we should discuss if Guix can support your effort money wise.
> AFAIK we have decent fundings available.

That would be great.  Although I still think letting academic mirror
sites do the job and saving the money would be better.  As I said, the
ISP cost in China is expensive and academic mirror sites have plenty of
bandwidth and storage resources available.


--
Peng Mei Yu



Make guix-publish's URL identical to cache file name

2020-11-04 Thread Peng Mei Yu
---cut here---end--->8---

When a client tries to download
/gnu/store/87kif0bpf0anwbsaw0jvg8fyciw4sz67-bash-5.0.16, it sends a
request to http://example.com/87kif0bpf0anwbsaw0jvg8fyciw4sz67.narinfo
and gets the content of
/var/cache/guix/publish/gzip/87kif0bpf0anwbsaw0jvg8fyciw4sz67-bash-5.0.16.narinfo:

--8<---cut here---start->8---
StorePath: /gnu/store/87kif0bpf0anwbsaw0jvg8fyciw4sz67-bash-5.0.16
URL: nar/gzip/87kif0bpf0anwbsaw0jvg8fyciw4sz67-bash-5.0.16
Compression: gzip
FileSize: 2284657
URL: nar/lzip/87kif0bpf0anwbsaw0jvg8fyciw4sz67-bash-5.0.16
Compression: lzip
FileSize: 1256260
NarHash: sha256:1ap2s3xz3bbp5n78v826gxagy7pic1wpgzz3ka72jdyk6qpmw3qr
NarSize: 6597040
References: ...
System: x86_64-linux
Deriver: cccyyn4xq59aimybmhlrfl2bi8kslhlm-bash-5.0.16.drv
Signature: ...
--8<---cut here---end--->8---

Client then sends a request to the URL as written in the URL field:
http://example.com/nar/lzip/87kif0bpf0anwbsaw0jvg8fyciw4sz67-bash-5.0.16.
This URL returns the file
/var/cache/guix/publish/lzip/87kif0bpf0anwbsaw0jvg8fyciw4sz67-bash-5.0.16.nar.

I propose we make the URL field in narinfo the same as nar file name on
disk.  We can change the directory structure to:

--8<---cut here---start->8---
/var/cache/guix/publish/nar
├── 87kif0bpf0anwbsaw0jvg8fyciw4sz67.narinfo
├── 87kif0bpf0anwbsaw0jvg8fyciw4sz67-bash-5.0.16.nar.gz
└── 87kif0bpf0anwbsaw0jvg8fyciw4sz67-bash-5.0.16.nar.lz
--8<---cut here---end--->8---

And change the URL field in narinfo to

--8<---cut here---start->8---
URL: 87kif0bpf0anwbsaw0jvg8fyciw4sz67-bash-5.0.16.nar.lz
--8<---cut here---end--->8---

Then a mirror site can simply pull the directory
/var/cache/guix/publish/nar from the Berlin server and serve this
directory through a static HTTP server.  There will be cache misses.
But guix-daemon will safely fallback to the next server in
substitute-urls.

What's your opinion?

I have to decide next year's server specs and budget for
mirror.guix.org.cn before the Chinese shopping festival ends on November
11.  If the proposal above is doable, I will keep mirror.guix.org.cn
running for half a year and help academic mirror sites add support for
Guix in the meantime.  Otherwise I prefer to buy a prepaid three years
VPS with a 90% discount during the shopping festival.  The discount is
huge.  I don't want to miss it.


--
Peng Mei Yu