[pacman-contrib] desc/.PKGINFO files: I need help to understand the values of some variables
Hi community, I'm developing the tool -- simple script relating to local pacman database. This tool, among other things, need to translate the desc file format (these files are located in a local pacman database) to the .PKGINFO file format (these files are located in a .tar package files). I have the list of all variables that are used in the first and second file formats -- I've tried them all to relate, and I got this: - %ARCH% --> arch - %BASE% --> pkgbase - %BUILDDATE% --> builddate - %CONFLICTS% --> conflict - %DEPENDS% --> depend - %DESC% --> pkgdesc - %GROUPS% --> group - %LICENSE% --> license - %NAME% --> pkgname - %OPTDEPENDS% --> optdepend - %PACKAGER% --> packager - %PROVIDES% --> provides - %REPLACES% --> replaces - %SIZE% --> size - %URL% --> url - %VERSION% --> pkgver - %INSTALLDATE% - %REASON% - %VALIDATION% - backup - checkdepend - makedepend - makepkgopt As you may saw, I wasn't able to correlate it all and I need some help. I know nothing about '%REASON%', 'checkdepend', 'makepkgopt' and why there's no 'makedepend' in desc files (or is there?). Would you give me some information about or manual to it all? It would be really great for me. Also I want to contribute to arch projects later, where can I get some information about? -- Anna Ivanova +7 (999) 105-20-48
On 21/01, Anna Ivanova wrote:
- %INSTALLDATE%
The install date is.. the date of installation. It by definition can't appear in the .PKGINFO
- %REASON%
The reason it was installed, so whether someone installed it directly, or if it was pulled in as dependency.
- %VALIDATION%
How the package file was validated before installing. In the case of Arch Linux all packages are PGP signed.
- backup - checkdepend - makedepend
All of these are documented in the PKGBUILD(5) manpage, and they don't have any use for pacman once installed, so they no reason to put them in the desc file.
- makepkgopt
Doesn't seem to currently be used, but would in a theoretical future be used to store the options makepkg were run with.
As you may saw, I wasn't able to correlate it all and I need some help. I know nothing about '%REASON%', 'checkdepend', 'makepkgopt' and why there's no 'makedepend' in desc files (or is there?).
Would you give me some information about or manual to it all? It would be really great for me.
Also I want to contribute to arch projects later, where can I get some information about?
Depends on the project. A lot of the work is done through arch-projects@, others have their own MLs. -- Sincerely, Johannes Löthberg PGP Key ID: 0x50FB9B273A9D0BB5 https://theos.kyriasis.com/~kyrias/
This tool, among other things, need to translate the desc file format (these files are located in a local pacman database) to the .PKGINFO file format (these files are located in a .tar package files).
So, if you want to regenerate the .PKGINFO file from pacman's local database, do be aware its going to be lossy, some information simply isn't preserved from installation (see below). And quickly, just in case it you're duplicating effort, are you aware of the "bacman" utility that ships with pacman?
As you may saw, I wasn't able to correlate it all and I need some help. I know nothing about '%REASON%', 'checkdepend', 'makepkgopt' and why there's no 'makedepend' in desc files (or is there?).
Something important to note is that there are two kinds of repositories, the local repositories which you seem to be familiar with enough, and the sync repositories, which are downloaded from the internet (or can generate yourself with repo-add). %REASON% and %VALIDATION% are two fields pacman keeps track of for its own book keeping. %REASON% is responsible for marking if a package was installed explicitly or was pulled in as a dependency of another package. %VALIDATION% tracks how a package was validated before installed. This should pretty much always be "pgp" because official packages are signed. Without a signature it should report "none". makedepend is there as %MAKEDEPENDS%, but only shows up in the sync database. checkdepend maps to %CHECKDEPENDS%, also only in the sync database, and it records the dependencies that where needed for the PKGBUILD's check() step, should it have one. makepkgopt records the OPTIONS array as it was set for a given PKGBUILD. See makepkg.conf for more details. Its useful for determining if a particular package, for example, contains debug symbols (you should see both "debug" and "!strip" set). This is not recorded in any database.
participants (3)
-
Anna Ivanova
-
Johannes Löthberg
-
Simon Gomizelj