Debian Planet








Welcome to Debian Planet

Search

Apt-get into it.
Main Menu

  • Home

  • Topics

  • Web Links

  • Your Account

  • Submit News

  • Stats

  • Top 10

  • Debian

    These are important Debian sites one should not be without!

  • Official Debian site

  • Package search

  • Mailing list archives

  • Bug reports

  • Debian on CD

  • Unofficial woody CD ISOs

  • Unofficial APT sources

  • Developers’ Corner

    Other great Debian news sources:

  • Debian Weekly News

  • Kernel Cousin Debian

    (Debian mailing lists digested)
  • Community Groups

    Need help? You’re not alone on this planet.

  • debianHELP

    (User support site)

  • Debian International

  • DebianWorld

    (Français)

  • DebianForum.de

    (Deutsch)

  • EsDebian

    (Español)

  • Debian-BR

    (Português)

  • DebianUsers

    (Korean)

  • IRC

    The place to get help on a Debian problem (after reading docs) or to just chat and chill is #debian on irc.debian.org.

    Many of the Debian Planet staff live there so pop by and say hello.

    Wanna write?

    Got that latest or greatest scoop? Perhaps you have some important news for the Debian community? Submit a news item!

    Or perhaps you’ve written a rather ground breaking insight into some aspect of Debian and you feel compelled to share it with others? Knock up a longer editorial article and send it to the editors.

    Sponsorship

    DP is sponsored by uklinux.net and CheepLinux.

    Debian Planet runs on hardware donated by Xinit systems and is using kieser.net‘s bandwidth.

    Who’s Online

    There are currently, 70 guest(s) and 5 member(s) that are online.

    You are Anonymous user. You can register for free by clicking here.

      

    only need 45kB to check for updates (long) (Score: 1)
    by Anonymous on Tuesday, October 30 @ 12:35:59 GMT

    The previous 2 days i was working towards the following idea, but i spend so much time switching between projects.. i put it on the backburner.. i NEED to finish busybox apt-get…. anyway, the idea as follows.

    All that is needed to check if new packages are out is a list of all package names and versions. Specifically we dont need to download descriptions of the packages just to see if its new.

    So firstly we need only concern ourselves with 3 pieces of information about each package, here are some stats for sid

    number of unique package names, 8233

    number of unique versions, 2150

    number of unique revisions, 111

    i.e. each package has a unique name, but not each package has a unique version or revision, in fact there is a lot of duplicate versions and revisions.

    So.. to store information about a current release we need to 4 tables/files

    A file with just unique package names, for woody this is

    94074 Bytes uncompressed

    35644 Bytes compressed with bzip2 -9

    41332 Bytes compressed with gzip -9

    A second file with unique versions, this is

    16390 Bytes uncompressed

    6460 Bytes compressed with bzip2 -9

    7052 Bytes compressed with gzip -9

    A third file with unique revisions, this is

    564 Bytes uncompressed

    357 Bytes compressed with bzip2 -9

    362 Bytes compressed with gzip -9

    These tables wont be changing all the time, the names table will change everytime a NEW package is added or an existing package is removed, but not when a package is updated.

    The version and revision table would change less often.

    To pull all this information together we need a forth table which has three entries for each package, the entry number in the name table for the package name, the entry number from the version table for the version table and the entry number from the revision table for the revision number.

    I havent generated this file yet, but it will need exactly 5 Bytes for each package entry, 2 bytes for the name number, 2 for the version number and 1 for revision number.

    So we need a min of 5 x (aprox) 8000 == 45kB to represent the package status of sid.

    On top of that we could do a binary diff using xdelta (its a package) to represent changes between the tables.

    I planned on storing the md5sum of each of the three dependent tables in the packag table to prevent them getting out of sync.

    So to update you would have to sync your 4 files and rebuild the full package names as strings and compare them to your available file. Youy could then be presented witha list fo packages that have been updated, if any interest you then you could do a traditional apt-get update etc.

    It could be extended to hand out individual package descritpions and rebuild the available file to keep than in sync as well, but thats looking a bit far into it at this stage.

    I only spent a couple of days on it, but have the code that generates the files about (but the package file is buggy).

    I need to finish busybox apt-get first, its been dragging on too long, so i wont doing anything more on this idea for a while, if anyone wants the code i have started let me know.

    Much of the code is derived from busybox dpkg which seperates and stores the above data in hashtables… hmm… the version on my hardrive does anyway 🙂 (it still needs work as well)

    bug1@optushome.com.au


    Your Name: Anonymous [ New User ]

    Subject

    Comment

    Allowed HTML:
    <p> <b> <i> <a> <em> <br> <strong> <blockquote> <tt> <li> <ol> <ul>