Xavier wrote:
How are you going to reimplement pacman without looking at its code, or at the files it uses, like the structure of the database ? :) Anyway, I was curious, so I looked more in depth at how it worked. First, the database (for example, the current one) is stored there on the filesystem : /var/lib/pacman/current it contains nearly the same information as in .PKGINFO, but it's split in two files, and not in the same format, just look at it.
This database is just contained in one archive on the mirrors, for example : ftp://ftp.archlinux.org/current/os/i686/current.db.tar.gz
Now for refreshing, pacman apparently doesn't try to do it very efficiently. It just stores the date of the last db there : /var/lib/pacman/current/.lastupdate then it compares it to the date of the db there : ftp://ftp.archlinux.org/current/os/i686/current.db.tar.gz if it's newer, it downloads the db, and extract the whole thing again.
Edit : I saw your second message too late, after finishing to write this one, so I send it anyway..
_______________________________________________ pacman-dev mailing list pacman-dev@archlinux.org http://archlinux.org/mailman/listinfo/pacman-dev
Thanks for the response. I need not look into the source at all. I only need knowledge of the structure of the files .PKGINFO, .FILELIST and a couple of others like them. My C# version will do an import of the local pacman DB in a RDBMS - something very lite of course - like sqlite(currently I use another DB for dev purpose) but it will backward compatibility with pacman. It may never reach pacman's maturity but I want to proof my thesis that C# is very capable for Linux development and can handle any project without sacrificing neither speed nor power.