[pacman-dev] My thoughts for development

Dan McGee dpmcgee at gmail.com
Wed Dec 20 14:08:50 EST 2006

Since I've been spending quite a bit of time looking at the code
lately, I've been making a TODO list of things worth looking into. I
thought I'd put it up on the list for input.

makepkg issues:
1. We went through and added some of the undocumented options to the
makepkg.conf file, but I haven't done a whole lot of testing on this
to see if it works correctly. I also don't know if all the checking is
correct, and I see Aaron put some x's in front of these checks. Has
anyone else? They also aren't documented in the man page if anyone
wants to step up to the plate...
2. Remove use of multiple `` or $() calls to the same function. I have
a local update of calling $(id -u) once and storing it to a variable
for later use, I can publish a patch sometime.
3. I posted a patch for #5223 (source cache) and it has been patched.
However, it is now a triple conditional with three different possible
locations for package source (current dir, $SRCDEST, and
/var/cache/pacman/src). Is the last one necessary since it is highly
recommended to not build as root? Should we deprecate this path?
Looking even further ahead, should we make fakeroot a requirement for
running makepkg?
4. Aaron, you brought up that `` is the older standard and $() should
be used. It is a pretty simple find that will allow you to change
these for consistency, I've done it on my working copy.
5. Already mentioned, but a modeline in makepkg.
6. Overabundance of options in makepkg- I was trying to find a new
letter for a '--repackage' option and we are pretty much out of
lowercase letters. At the moment we have two basic types of options:
things that can be done in the pkgbuild options line, and things that
directly affect the way makepkg works (geninteg, skip integs, location
of PKGBUILD). Are the first type truly necessary? It would make
makepkg a bit more streamlined if the only options were those that
can't be done somewhere else. So i propose the '--nostrip',
'--keepdocs', and any other option like this be removed.
7. Integrity checking- currently generating integrity checks will only
generate those from the first one in the INTEGRITY_CHECK array. This
seems to make sense as long as the array in makepkg.conf is ordered
the way we want it to be. When checking, we do get warning messages
for other types that may be in the array but are not in the PKGBUILD.
I just wanted to confirm this is the behavior you are looking for.

Other issues:
1. Move the PKGBUILD man page to section 5
2. How are you guys doing side-by-side builds with the old pacman? At
least for me, the current build system seems horribly complicated with
shell scripts, configure, automaking and such. Is there a good reason
for this?
3. Everyone talks about pacman slowness (even though it isn't really
that bad), and looking though the mailing list archives I believe
Aaron implemented a form of lazy caching (not loading the descriptions
when unnecessary). Anything else on this front? I thought of something
and I may be way off track, but what if when generating a repository
we make (in addition to the flat file format) a single file with lines
consisting of pkgname-pkgver:description? This file could be loaded
and searched a lot quicker than flat files, and I think the operation
people complain about being slow the most is a search.

Wow, long list, but maybe it will provoke other great ideas. Feel free
to respond to any or all of it.


More information about the pacman-dev mailing list