Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Need help with selecting mirrors (particularly for Go)
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
pizza-rat
Tux's lil' helper
Tux's lil' helper


Joined: 23 Dec 2022
Posts: 81

PostPosted: Wed Mar 13, 2024 5:40 am    Post subject: Need help with selecting mirrors (particularly for Go) Reply with quote

First, what's the general best process to follow when picking mirrors? I've heard to pick mirrors within or close to your region, but how many? What types (ie http, https, ftp, rsync)?

Second, does anybody know any good mirrors for Go related packages? Anytime I've tried to emerge anything depending on them (opensnitch, gomuks) it's been an utter crapshoot finding mirrors that have what I need and don't just regurgitate 404s over and over.
Back to top
View user's profile Send private message
pizza-rat
Tux's lil' helper
Tux's lil' helper


Joined: 23 Dec 2022
Posts: 81

PostPosted: Wed Mar 13, 2024 6:28 am    Post subject: Reply with quote

Also, for what it's worth, I tried the 'mirrorselect -s3 -b10 -D' from the mirrorselect wiki page, and it only got me 1 mirror out of 240-something. That can't be right.
Back to top
View user's profile Send private message
Banana
Moderator
Moderator


Joined: 21 May 2004
Posts: 1725
Location: Germany

PostPosted: Wed Mar 13, 2024 6:38 am    Post subject: Reply with quote

Since you have already used mirrorselect https://wiki.gentoo.org/wiki/Mirrorselect I would suggest have a look at https://www.gentoo.org/downloads/mirrors/ and pick 1-3 near to your location and known to be "big". Like, if you know it is a big company or public entity, you are good to go.
One mirror is used at a time, so give it a try.

As for go modules, do you talk about provided by portage or installing it with go get/install URL?
_________________
Forum Guidelines

PFL - Portage file list - find which package a file or command belongs to.
My delta-labs.org snippets do expire
Back to top
View user's profile Send private message
pizza-rat
Tux's lil' helper
Tux's lil' helper


Joined: 23 Dec 2022
Posts: 81

PostPosted: Wed Mar 13, 2024 6:47 am    Post subject: Reply with quote

Banana wrote:

As for go modules, do you talk about provided by portage or installing it with go get/install URL?

With portage. I'm a noob so I don't understand exactly what's going on, but I assume portage is pulling in some go stuff for building the package that aren't 'dependencies'? ie. when I went to emerge gomuks (from guru:: if that's important), gomuks was the only package to be emerged (as in no dependencies) and yet there were a bunch of go related things needing to be downloaded by portage, according to emerge.log. Are these something different from dependencies? Part of the source code, maybe? Forgive my ignorance.

Also, FYI for anybody who stumbles onto this thread looking for mirrors with these modules(?), I managed to emerge both opensnitch and gomuks with the following mirror:
Code:
GENTOO_MIRRORS="http://tux.rainside.sk/gentoo/ \
    ftp://tux.rainside.sk/gentoo/"

This also happened to be the one mirror pulled in by the mirrorselect command above.
Back to top
View user's profile Send private message
CaptainBlood
Advocate
Advocate


Joined: 24 Jan 2010
Posts: 3855

PostPosted: Wed Mar 13, 2024 8:06 am    Post subject: Reply with quote

pizza-rat wrote:
Also, for what it's worth, I tried the 'mirrorselect -s3 -b10 -D' from the mirrorselect wiki page, and it only got me 1 mirror out of 240-something. That can't be right.

Maybe Bug, unfixed yet.

Thks 4 ur attention, interest & support.
_________________
USE="-* ..." in /etc/portage/make.conf here, i.e. a countermeasure to portage implicit braces, belt & diaper paradigm
LT: "I've been doing a passable imitation of the Fontana di Trevi, except my medium is mucus. Sooo much mucus. "
Back to top
View user's profile Send private message
pizza-rat
Tux's lil' helper
Tux's lil' helper


Joined: 23 Dec 2022
Posts: 81

PostPosted: Wed Mar 13, 2024 9:36 am    Post subject: Reply with quote

Hmm, I see. For the time being it seems I'm best to manually pick my mirrors with the help of https://mirrorstats.gentoo.org
Grabbed a few of the bigger, healthier ones and managed to get everything I needed!
Back to top
View user's profile Send private message
Banana
Moderator
Moderator


Joined: 21 May 2004
Posts: 1725
Location: Germany

PostPosted: Wed Mar 13, 2024 1:20 pm    Post subject: Reply with quote

Quote:
With portage. I'm a noob so I don't understand exactly what's going on, but I assume portage is pulling in some go stuff for building the package that aren't 'dependencies'? ie. when I went to emerge gomuks (from guru:: if that's important), gomuks was the only package to be emerged (as in no dependencies) and yet there were a bunch of go related things needing to be downloaded by portage, according to emerge.log. Are these something different from dependencies? Part of the source code, maybe? Forgive my ignorance.

portage does use ebuilds https://wiki.gentoo.org/wiki/Ebuild to describe what needs to be done for a software package. It does download all the resources needed befor any compilation or installation.

The gomuks https://github.com/gentoo/guru/blob/master/net-im/gomuks/gomuks-0.3.0.ebuild ebuild does list additional go dependencies which the package itself needs and downloads them with the go "package manager". The syntax for those additional go modules is a URL where the sources will be downloaded from.

So a ebuild will be downladed from gentoo mirrors and all the needed dependencies are downloaded elsewhere.
_________________
Forum Guidelines

PFL - Portage file list - find which package a file or command belongs to.
My delta-labs.org snippets do expire
Back to top
View user's profile Send private message
pizza-rat
Tux's lil' helper
Tux's lil' helper


Joined: 23 Dec 2022
Posts: 81

PostPosted: Wed Mar 13, 2024 7:56 pm    Post subject: Reply with quote

Ah, I see. So they are dependencies, but just handled differently (ie. I assume they just sit in distfiles with the source and aren't "installed" like a library emerged through portage would). Thanks for clearing that up.
Back to top
View user's profile Send private message
zerdox
n00b
n00b


Joined: 11 Sep 2023
Posts: 3

PostPosted: Fri Nov 08, 2024 10:51 am    Post subject: Re: Need help with selecting mirrors (particularly for Go) Reply with quote

pizza-rat wrote:
Second, does anybody know any good mirrors for Go related packages? Anytime I've tried to emerge anything depending on them (opensnitch, gomuks) it's been an utter crapshoot finding mirrors that have what I need and don't just regurgitate 404s over and over.


The only solution I found if go deps can't be find in most mirrors is to comment GENTOO_MIRRORS in make.conf. Removing mirrors speeds up downloading because it connects to goproxy.io which has all needed files. Any ideas how to make portage download go mods from goproxy.io first?
_________________
0x396D2C5E84820BD6
Back to top
View user's profile Send private message
Banana
Moderator
Moderator


Joined: 21 May 2004
Posts: 1725
Location: Germany

PostPosted: Fri Nov 08, 2024 12:12 pm    Post subject: Reply with quote

Correcting false description about GENTOO_MIRRORS. Sorry about that. See the following post from Hu for the correct one.

Taken from https://tobyokewole.medium.com/what-happens-when-you-go-get-a-closer-look-at-the-internals-of-go-modules-347780643292
Quote:
Generally speaking, when you run a go get command, Go downloads the package to your computer if it is not present in your local cache. The source from which the go command downloads external modules from depends on the value of the GOPROXY environment variable. By default, the value of the GOPROXY variable is set to https://proxy.golang.org, direct. The above value specifies that the go command should attempt to download the specified external module from https://proxy.golang.org and fall back to the direct URL provided if it is unable to.


So, GOPROXY as an ENV should do the trick.
_________________
Forum Guidelines

PFL - Portage file list - find which package a file or command belongs to.
My delta-labs.org snippets do expire


Last edited by Banana on Fri Nov 08, 2024 2:45 pm; edited 1 time in total
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 22640

PostPosted: Fri Nov 08, 2024 2:39 pm    Post subject: Reply with quote

My understanding differs. GENTOO_MIRRORS lets Portage find Gentoo-operated mirrors that host copies of the distfiles required by ebuilds. Disabling GENTOO_MIRRORS forces Portage to go straight to upstream, putting a greater load on the upstream SRC_URI servers. This is discouraged, since the mirrors should have distfiles for all in-tree ebuilds.
Back to top
View user's profile Send private message
Banana
Moderator
Moderator


Joined: 21 May 2004
Posts: 1725
Location: Germany

PostPosted: Fri Nov 08, 2024 2:50 pm    Post subject: Reply with quote

Hu wrote:
My understanding differs. GENTOO_MIRRORS lets Portage find Gentoo-operated mirrors that host copies of the distfiles required by ebuilds. Disabling GENTOO_MIRRORS forces Portage to go straight to upstream, putting a greater load on the upstream SRC_URI servers. This is discouraged, since the mirrors should have distfiles for all in-tree ebuilds.

Sorry, my bad. :( Corrected my post.

https://wiki.gentoo.org/wiki/Project:Infrastructure/Mirrors/Source
Quote:
Source (or "distfile") mirrors distribute the source archives for the software included in Gentoo as well as stages and tree snapshots for installation.


But go dependencies are not available in the distfile mirror. At least at the last time I've checked.
Go dependencies (not the gentoo package install dependencies) are described in the code itself and than installed / resolved with the https://pkg.go.dev/cmd/go#hdr-Add_dependencies_to_current_module_and_install_them command. This command is run while building the go application.
_________________
Forum Guidelines

PFL - Portage file list - find which package a file or command belongs to.
My delta-labs.org snippets do expire
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 22640

PostPosted: Fri Nov 08, 2024 3:24 pm    Post subject: Reply with quote

If the dependency is listed in SRC_URI, then I would expect it to be on the mirrors. If the dependency is not listed in SRC_URI, then it should be a supporting package and brought in via DEPEND / RDEPEND. In no case should the ebuild use go get nor allow the build system to go get anything, since that undermines reproducibility by trusting that the network is always available and always serves the same content.
Back to top
View user's profile Send private message
Banana
Moderator
Moderator


Joined: 21 May 2004
Posts: 1725
Location: Germany

PostPosted: Fri Nov 08, 2024 6:49 pm    Post subject: Reply with quote

Banana wrote:
But go dependencies are not available in the distfile mirror. At least at the last time I've checked.
Go dependencies (not the gentoo package install dependencies) are described in the code itself and than installed / resolved with the https://pkg.go.dev/cmd/go#hdr-Add_dependencies_to_current_module_and_install_them command. This command is run while building the go application.

Well this is the default behavior of a go application. Looks like there are already strategies in place https://wiki.gentoo.org/wiki/Application_level_package_management to make correct go packages https://wiki.gentoo.org/wiki/Writing_go_Ebuilds.

Never stop learning.
_________________
Forum Guidelines

PFL - Portage file list - find which package a file or command belongs to.
My delta-labs.org snippets do expire
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum