[pacman-dev] Schematic system for pacman-lib question and discussion
Hey again. Sorry i'm a little bit busy and lacks the patches from me :) But, not for this while i'm writing. We talked about Judd on IRC (freenode) about an idea, to made pacman-lib (call pacman3 for in this mail) to support more distros and other things. As i see there are out some distro which using pacman as package manager. (4-5 maybe ?) Especially at frugalware we got many changes in makepkg, gensync, updatesync, etc. Those are frugalware specific changes. But go for other distros. Other distros got changes too. Example the PACKAGE_EXTENSION (which is .tar.gz in arch and .fpm in frugalware) the file locations, cache locations, etc.. And makepkg gensync and other scripts can be different on different distributions. Since we are using autoconf/automake we got the power to put things to config.h and use it globally in the .c code (now such values are hardcoded in the sources). As we talked about Judd, i got an idea. With autoconf/automake i can make a schema system for those things which i wrote it in here before. Something like this: ./configure --with-distro=archlinux (or frugalware or anythingelse) And we can solve many problems in config.h and we got schemas. Example if x$distro$ was archlinux ; then ... PACKAGE_EXT=tar.gz ... if frugalware ; then ... PACKAGE_EXT=fpm ... and other many usable thing. With the current conception it is a problem for distros, because other distros need patch and hack and sed pacman source and scripts to customize for their needs. The schematic version will be solve this too. And maybe pacman will be greater and simpler to use in any distro which want to use pacman as package manager. This was the good part :) Now see the bad part (not very bad :) ) First. 1. At source files, we can do everything from config.h and we can use #ifdefs where we need them in the source. (Specially archlinux got some function which will give back a package version and release, but in frugalware we got an extra variable named $arch (which is for the architecture) there need some #ifdef.) 2. The problem. At scripts (gensync, updatesync, makepkg, etc) this was (config.h) isn't a very walkable way, because it is more complex. We can use there some global vars too (packageextension, etc...) but example in frugalware there is many many improvements and differences. So that isn't configurable via config.h or configure. My idea for that. We need something like this: scripts/makepkg.archlinux.in scripts/makepkg.frugalware.in scripts/makepkg.someotherdistro.in This way is good, because we are in sync and distros can not """broke""" other distros scripts, but we got the sync between those scripts. Because if somebody found a bug in makepkg.archlinux then it is "backportable" for otherdistros script too. (Of course by the distribution manager) Think on it please and i'm waiting for opinions and ideas or improvements and comments and critics :) and money ! :)) (was a joke :P ) Sorry for long mail. :) Regards Christian Hamar alias krix Hungary Frugalware Developer Team
2. The problem. At scripts (gensync, updatesync, makepkg, etc) this was (config.h) isn't a very walkable way, because it is more complex. We can ^^^^^^^^^^^^^^^
oops, sorry :) That is strange: "This was isn't a very" :)) Sorry for my english at there :) So, s/was// :) Regards -krix-
participants (1)
-
Christian Hamar