

i see it the same way but bittorrent and regular downloads don't exclude mutually. the gentoo mirrors could set up bittorrent nodes to.nevynxxx wrote:I would have thought that getting individual projects to bittorrentify their downloads, then adding support for that as an alternative was a better way to go about it. It really is not up to us to decide how the source get's distributed. Remember there is non-freely distributable stuff in there.
i don't think the distribution of the portage tree uses so much bandwith that bittorrent would be worth a thought for it. the huge bandwith amout comes from the distfiles i'd say. in theory everyone could be able to share his distfiles over the bittorrent network (if wanted).Bittorrenting the portage tree would be a nice idea. Pretty damned impossible at a guess as it changes so much, and you never want to download it all, just the changes, but a nice idea.
FishB8 wrote:Ah... Found some people who are thinking the same way I am.![]()
I would guess not too hard at all, there are already options in /etc/make.conf for using things other than wget to download files, we would simply be adding another of these.FishB8 wrote: How hard would this be to implement? Portage would have to be modified, but would bittorrent need any modifications?
Easy, it means adding the word "bittorrent" to a single line in a single ebuild file. Once you have the portage system set up to be able to use bittorrent the use flag is a triviality.FishB8 wrote: Would it be possible to set a USE flag that allows for bittorrent to be installed as part of portage when emerging portage?
I'm not "too up on bittorrent" either. From what I understand though, all you would have to do is tell bittorrent to get file x.tar.bz and it goes and finds it for you. It might be more simple that usng wget or ftp because you don't have to worry about addresses. The only problem I could think of is bittorrent fetching a file that matches the name but is still the incorrect file. It's not a problem after downloading because portage checks with an MD5 checksum, but if bittorrent kept delivering the wrong file, you would have to have portage fall back on the standard way of fetching files.The question would be more, where does portage find the .torrent files? (i think that is correct, I'm not too up on bittorrent). Possibly an addition to portage that allows the link to the torrent to be included in the ebuild.

why not putting the torrent file into portage? at least this makes sense for large packages but might be overkill for smaller files (<1 MB).nevynxxx wrote:The question would be more, where does portage find the .torrent files? (i think that is correct, I'm not too up on bittorrent). Possibly an addition to portage that allows the link to the torrent to be included in the ebuild.
the torrent file makes shure it looks for the right file. it checks the checksum *before* downloading.FishB8 wrote:I'm not "too up on bittorrent" either. From what I understand though, all you would have to do is tell bittorrent to get file x.tar.bz and it goes and finds it for you. It might be more simple that usng wget or ftp because you don't have to worry about addresses. The only problem I could think of is bittorrent fetching a file that matches the name but is still the incorrect file. It's not a problem after downloading because portage checks with an MD5 checksum, but if bittorrent kept delivering the wrong file, you would have to have portage fall back on the standard way of fetching files.
Oh I figured BitTorrent has some sort of checking for files, but that's not the problem I was eluding to. Imagine if you ask BitTorrent for a file, and it finds it. It finds the file out on the net by the same name in several locations. It looks at the checksums of those packages, all of them turn out to be "x". Great, they are all the same files, so it proceeds to pull those files all at once from the various locations. Then it hands off the package to portage. However, lets say that when the ebuild was made for the package, the tar ball that it was made in reference to was the same except for something trivial. Say for instance a file was exactly the same but had a different creation date on it, resulting in a different checksum. So now the ebuild file is expecting a tarball with a checksum "y". Oops. Checksum mismatch even though the contents of the tarballs are for all purposes exactly the same; portage refuses to build the file because of differing checksums.the torrent file makes shure it looks for the right file. it checks the checksum *before* downloading.

Everyone would try it and go back to rsync because the number of seeders would be too small and the download rate would stink is my guess.Pythagoras1 wrote:what do you think about implementing 'bittorrent' support into portage as alternative to downlading files from mirrors using 'wget'?
Heres something we can all do to relieve the gentoo mirrors starting right now, today:i think it would relieve the gentoo mirrors and might also be a speed advantage for broadband users. the torrents could also be shipped inside ebuilds.
Not if the http/ftp servers for the distfiles were also turned into bittorrent sources as well. At worst the rate would probably be pretty much the same. The positive side to this would be if you could get enough momentum built to get it started, more people would probably be interested in participating and offering the contents of their distfile directory on bittorrent.Everyone would try it and go back to rsync because the number of seeders would be too small and the download rate would stink is my guess.
So I've noticed. We need to find some people good at python (i.e. not me) with an interest in both bittorrent and portage.That and the fact that this has been suggested many times and nobody has written any code to do it

no, i meant only the distfiles not the portage tree.Pythonhead wrote: Everyone would try it and go back to rsync because the number of seeders would be too small and the download rate would stink is my guess.
The threads about "why does emerge sync take so long?" and "why so many files in portage" even if you decide only 10% of cases are deserving of torrent files, thats another 9000 files going into portage at this moment in time.Pythagoras1 wrote: why not putting the torrent file into portage? at least this makes sense for large packages but might be overkill for smaller files (<1 MB).
We are talking about the download mirrors, not the sync mirrors. In most cases they are different.Pythonhead wrote: Heres something we can all do to relieve the gentoo mirrors starting right now, today:
Only emerge sync when you need to. Take that emerge sync out of your crontab.

You're right, I meant to say they'd go back to the normal mirrors.Pythagoras1 wrote:no, i meant only the distfiles not the portage tree.Pythonhead wrote: Everyone would try it and go back to rsync because the number of seeders would be too small and the download rate would stink is my guess.


This shows how little I understand BitTorrent. First, I figure that the mirrors wouldn't have much of a problem if the master site that all the mirrors work from took care of the .torrent file creation. Second, do you really have to kill the tracker for it to update changes? That sux.Running an http or ftp server to mirror that rsyncs against a main mirror is one thing, but running trackers for all the files in distfiles isn't the same.
Since the mirror gets updated every two hours or whatever, how are these mirrors going to handle that? Kill the existing tracker and restart it with all the changes to the mirror?
I assume if they were set up to run as a daemon in the background it wouldn't be too much of a problem. You would need a tracker and a stripped down minimalistic web server. (I think that's all isn't it?) The people who don't want to enable such daemons are probably the same people who wouldn't use it anyway.How many people would actually turn on this feature? You do an update world and download 10 files. You start a bit torrent process for each one of these 10 files. How many people are going to keep these 10 programs running after the downloads finish?
Another good point.bittorent also brings up open port and firewall issues especially for college students behind university firewalls, and business or corporate users who must abide by established policies.

You can startup a new copy of the program as files are added to distfiles, but I imagine that would be pretty crazy if you have a lot of files. I think the way most people who seed many files use btlaunchmanycurses.py to do them all in one shot.FishB8 wrote: First, I figure that the mirrors wouldn't have much of a problem if the master site that all the mirrors work from took care of the .torrent file creation. Second, do you really have to kill the tracker for it to update changes? That sux.
If you're talking about users, they wouldn't need all that. They'd use btdownloadcurses.py instead of wget, but they'd have one running for each program they download. Normally portage waits until wget exits after a download is complete, but with btdownloadcurses.py portage would have to be modified to watch for the file to be done downloading because the torrent client won't exit.I assume if they were set up to run as a daemon in the background it wouldn't be too much of a problem. You would need a tracker and a stripped down minimalistic web server. (I think that's all isn't it?) The people who don't want to enable such daemons are probably the same people who wouldn't use it anyway.
Well put it this way. I have a scrypt that syncs every night ( it also runs GLSA-Check -p new, and syncs all the BMG rsyncs ) on this machine the portage sync alone takes 15-20 minutes (part of the script times it for me, I get all the results in an email).teknomage1 wrote:On a side note, though it is faddish to emerge sync every day, what is the benefit? You still have to wait for the package to compile and gentoo-portage.com provides a convenient way to find the latest version of packag. Why not just sync before you install something?
Pythagoras1 wrote:what do you think about implementing 'bittorrent' support into portage as alternative to downlading files from mirrors using 'wget'?
i think it would relieve the gentoo mirrors and might also be a speed advantage for broadband users. the torrents could also be shipped inside ebuilds.
