# \[WIP\] Implementing Gentoo's Package Manager Specification formats in Racket

**URL:** <https://racket.discourse.group/t/wip-implementing-gentoos-package-manager-specification-formats-in-racket/1408>\
**Category:** Show & Tell\
**Tags:** gentoo\
**Created:** [October 20, 2022, 10:30pm UTC](https://racket.discourse.group/t/wip-implementing-gentoos-package-manager-specification-formats-in-racket/1408 "2022-10-20T22:30:55Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![xgqt](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/xgqt/32/592_2.png) [@xgqt](https://racket.discourse.group/u/xgqt)\
**Post date:** [October 20, 2022, 10:30pm UTC](https://racket.discourse.group/t/wip-implementing-gentoos-package-manager-specification-formats-in-racket/1408/1 "2022-10-20T22:30:55Z")

</div>

Package Manager Specification is a set of rules that a package manager compatible with Gentoo package managers (Portage, Pkgcore, Paludis, ...) should follow, it describes how to parse, create and install ebuilds - which are recipes describing how a package source code should be downloaded, compiled and installed.  
The PMS document is available here: [Package Manager Specification](https://dev.gentoo.org/~ulm/pms/head/pms.html)

I have just completed a parser and interpreter for Package Manager Specification (PMS) dependency format.

Shown below are tests ran on real ebuilds (package recipes) available in the Gentoo packages repository.

![image](https://global.discourse-cdn.com/free1/uploads/racket/original/1X/44dbe4c915d465d8fc7a9135c6f7756046532064.png)

This is how a PMS dependency specification looks when interpreted as Racket structures:

 ![2022.10.21_00:27:13](https://global.discourse-cdn.com/free1/uploads/racket/original/1X/6771c2d0cbcb2e5d27f7086520e7cbf6103142d6.png)

Source repository: [Gentoo Racket / Racket-PMSF · GitLab](https://gitlab.com/gentoo-racket/racket-pmsf)

---

<div class="post-metadata">

**Author:** ![xgqt](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/xgqt/32/592_2.png) [@xgqt](https://racket.discourse.group/u/xgqt)\
**Post date:** [October 29, 2022, 1:15am UTC](https://racket.discourse.group/t/wip-implementing-gentoos-package-manager-specification-formats-in-racket/1408/2 "2022-10-29T01:15:43Z")

</div>

Version 1.0.0 released

> **[New Racket-PMSF release - version 1.0.0](https://gentoo-racket.gitlab.io/2022/10/new-racket-pmsf-release-version-1-0-0.html)**
>
> New Racket-PMSF release is available: 1.0.0. Documentation is available via GitLab pages at gentoo-racket.gitlab.io/racket-pmsf. Racket-PMSF 1.0.0. is now able to parse all special syntax structures from ebuilds: \`DEPEND\` \`(string-\>pdepend...
