Thread: Soc Gdt
View Single Post
Old 11-01-2011, 11:28 PM
HelpDeskHustler's Avatar
HelpDeskHustler HelpDeskHustler is offline
Join Date: Mar 2007
Posts: 2,699
Default Re: Soc Gdt

Definitely should. I used to have a big bias against RPM in favor of DEB packages -- but I think the issue was really with the fragmented repositories. Debian was one repository (for all distros and branches using apt/dpkg). RPM seems to have grown a lot. I'm not sure which I like "best" any more. I'd like to see a better protocol in repository management in the future though.

As far as the Portage/YUM/HG mashup went, it all came from the sillyness of each distribution's package management process.

* It's silly for Portage to download the entire source for a new version of an old package. Revision control should be used to locate 1 time diffs and just pull those. Mercurial would be good for that (also written in Python).
* It's silly that Portage ENCOURAGES always compiling. I understand the benefits of the Ebuild system, but for somebody who just wants a run-of-the-mill package all the time, and occasionally wants to tweak for performance, it carries an "all or nothing" burden of compilation. YUM integration for handling binaries might be nice.

* It's actually incredibly stupid that revision control systems have issues with binary executables. I do understand the occasional data file taking up an inordinate amount of diff space, especially ones that are algorithmically designed to be very different (md5 encrypted files, I'm looking at you) but executables aren't as different as vcs systems handle them. Murcurial needs a patch to understand assembly. It's going to be messy, but I think if it can translate opcodes to instructions, it can manage binary executables better. This will play into other modifications.

* Needs a better "build from source" option. I'm looking at ebuilds.
* Needs to stop downloading a new executable every time, and should manage versions and rollbacks better, I'm looking at mercurial here.

The idea is internally broken down to this (sorry for the crazy flow):

user -requests software update-> VCS (mercurial) -sends current version data, opens signed ssh-> tracker repository -notifies of request and provides signature to respond, sends package checksums-> seed repositories, user pc -bitorrent-like reponse begins by locating a difference from the package version-> seed repo -xz response and sign with tracker-provided key-> seed repo -respond over ssh to user pc with signed xz sections-> user pc -verify signature, un-xz package-> user pc -assemble package with modified mercurial-> user pc -check checksum of package against tracker repo->YUM/Portage hybrid-handle package extraction and meta-data entry - if binary -nothing; else -build with included ebuild->user pc

This would bring principles of decentralization, trust-who-you-want security, package signing, swarm downloading/p2p and efficient network traffic to a package management system. It's actually a decent bit more complex, but I think it does have it's merits (aside from unifying two camps of distros -- the sourcers and the blob men)

Specking of decentralized: I got my diaspora beta invite finally (about a year too late for them). It's interesting.... but it's just facebook without one centralized bad guy logging all of your data. Now it's lots of decentralized bad guys! G+ has some issues gaining steam and it's already ahead of Diaspora. I like what Diaspora is trying to do... they just did it 'wrong', and not fast enough. Even then, it's not really wrong... just unremarkable compared to what exists. Non-nerds definitely won't check it out as it's only a source of confusion and empty pages and lack of features.

It is 3:30 here and this post wouldn't be right without some awkward statement at the end of a long rant -- so here it is. I'm sorry for ever being a cynical ass or opinionated know-it-all, and I'm sorry for leaving the face of the earth. You guys really kick ass.


I do a lot of reconfiguring and reinstalling, so all of my engineering software is on a virtualbox. I love this "seemless mode". Black windows are host, blue windows (no aero theme) are virtual machine. It runs great, even with Altera and MATLAB that like to hog memory.

Last edited by HelpDeskHustler : 11-02-2011 at 01:38 AM.
Reply With Quote