# Crafting 3 Guile Scheme Programs in 2 Hours - System Crafters Live!

**URL:** <https://forum.systemcrafters.net/t/crafting-3-guile-scheme-programs-in-2-hours-system-crafters-live/785>\
**Category:** General\
**Created:** [June 14, 2024, 12:53pm UTC](https://forum.systemcrafters.net/t/crafting-3-guile-scheme-programs-in-2-hours-system-crafters-live/785 "2024-06-14T12:53:38Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![ashraz](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.systemcrafters.net/ashraz/32/509_2.png) [@ashraz](https://forum.systemcrafters.net/u/ashraz)\
**Post date:** [June 14, 2024, 12:53pm UTC](https://forum.systemcrafters.net/t/crafting-3-guile-scheme-programs-in-2-hours-system-crafters-live/785/1 "2024-06-14T12:53:38Z")

</div>

[![](https://canada1.discourse-cdn.com/flex029/uploads/systemcrafters/original/1X/0b9e708e27cb91e13edf93b733f977f0af4d9e2a.jpeg "Crafting 3 Guile Scheme Programs in 2 Hours - System Crafters Live!") ](https://www.youtube.com/watch?v=qCvqZPf3smI)

2024-06-14T15:00:00Z→2024-06-14T17:00:00Z

---

<div class="post-metadata">

**Author:** ![cow\_2001](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.systemcrafters.net/cow_2001/32/598_2.png) [@cow\_2001](https://forum.systemcrafters.net/u/cow_2001)\
**Post date:** [June 14, 2024, 5:44pm UTC](https://forum.systemcrafters.net/t/crafting-3-guile-scheme-programs-in-2-hours-system-crafters-live/785/2 "2024-06-14T17:44:50Z")

</div>

Found this:

> **[GitHub - KikyTokamuro/guile-pstk: PS/TK version...](https://github.com/KikyTokamuro/guile-pstk)**
>
> PS/TK version (https://wiki.tcl-lang.org/page/PS%2FTk) fixed to work fine on modern GNU Guile - KikyTokamuro/guile-pstk

It needs a Guix package.

---

<div class="post-metadata">

**Author:** ![cow\_2001](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.systemcrafters.net/cow_2001/32/598_2.png) [@cow\_2001](https://forum.systemcrafters.net/u/cow_2001)\
**Post date:** [June 15, 2024, 12:38am UTC](https://forum.systemcrafters.net/t/crafting-3-guile-scheme-programs-in-2-hours-system-crafters-live/785/3 "2024-06-15T00:38:22Z")

</div>

Started a thread for it:

> [@Working on guile-pstk, a GUI for Guile using Tcl/Tk](https://forum.systemcrafters.net/t/working-on-guile-pstk-a-gui-for-guile-using-tcl-tk/790):
>
> Following [this Friday stream](https://www.youtube.com/watch?v=qCvqZPf3smI) ([thread](https://forum.systemcrafters.net/t/crafting-3-guile-scheme-programs-in-2-hours-system-crafters-live/785)) I cloned guile-pstk into [kakafarm/guile-pstk - Codeberg.org](https://codeberg.org/kakafarm/guile-pstk) from [GitHub - KikyTokamuro/guile-pstk: PS/TK version (https://wiki.tcl-lang.org/page/PS%2FTk) fixed to work fine on modern GNU Guile](https://github.com/KikyTokamuro/guile-pstk) As per usual - I don’t know what I am doing, but I’ve done some cleaning up and continue cleaning it up. Next, [Zipheir](https://sigwinch.xyz) had suggested we should separate the bits of the code generating the Tcl code strings from the bits of the code that do the actual running.

---

<div class="post-metadata">

**Author:** ![altomcat](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.systemcrafters.net/altomcat/32/583_2.png) [@altomcat](https://forum.systemcrafters.net/u/altomcat)\
**Post date:** [June 16, 2024, 4:31pm UTC](https://forum.systemcrafters.net/t/crafting-3-guile-scheme-programs-in-2-hours-system-crafters-live/785/4 "2024-06-16T16:31:21Z")

</div>

If you are interested I made a simple Guix package [here](https://github.com/altomcat/my-guix-pkgs/blob/master/my-packages/guile-pstk.scm)  
I’m not an expert on the subject and something I don’t understand yet is that I need to add the `tcl` and `tk` packages after a `guix shell guile guile-pstk tcl tk` although the packages have been defined as inputs in the definition file.

---

<div class="post-metadata">

**Author:** ![cow\_2001](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.systemcrafters.net/cow_2001/32/598_2.png) [@cow\_2001](https://forum.systemcrafters.net/u/cow_2001)\
**Post date:** [June 16, 2024, 9:40pm UTC](https://forum.systemcrafters.net/t/crafting-3-guile-scheme-programs-in-2-hours-system-crafters-live/785/5 "2024-06-16T21:40:02Z")

</div>

There is guide for package definition on the Guix site:

> **[Contributing (GNU Guix Reference Manual)](https://guix.gnu.org/manual/devel/en/html_node/Contributing.html)**
>
> Contributing (GNU Guix Reference Manual)

linked from (under “Packages”):

> **[Contribute — GNU Guix](https://guix.gnu.org/en/contribute/)**
>
> Check all the ways you can contribute to make GNU Guix
> better, and join the world-wide community of volunteers.

You add it to the `./gnu/packages/guile-xyz.scm` file in the Guix repository, commit the change, make a patch file using `git format-patch HEAD~`, and send the file to [guix-devel@gnu.org](mailto:guix-devel@gnu.org)

---

<div class="post-metadata">

**Author:** ![altomcat](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.systemcrafters.net/altomcat/32/583_2.png) [@altomcat](https://forum.systemcrafters.net/u/altomcat)\
**Post date:** [June 17, 2024, 7:23am UTC](https://forum.systemcrafters.net/t/crafting-3-guile-scheme-programs-in-2-hours-system-crafters-live/785/6 "2024-06-17T07:23:40Z")

</div>

> [@cow\_2001](#):
>
> There is guide for package definition on the Guix site

I know the whole process already 😉. But before releasing this definition package I need to answer the following questions:

- Why I need to install this package with tcl and tk althoug they are already defined in the package definition.  
According to the documentation :

> `propagated-inputs` is similar to `inputs` , but the specified packages will be automatically installed to profiles

So I suppose I should try propagetd-inputs.

- What is the proper license to use. It looks like a BSD. I can ask the owner 🙂
- The versioning doesn’t exist yet so how to manage it ?

---

<div class="post-metadata">

**Author:** ![daviwil](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.systemcrafters.net/daviwil/32/1_2.png) [@daviwil](https://forum.systemcrafters.net/u/daviwil)\
**Post date:** [June 17, 2024, 7:43am UTC](https://forum.systemcrafters.net/t/crafting-3-guile-scheme-programs-in-2-hours-system-crafters-live/785/7 "2024-06-17T07:43:56Z")

</div>

Yep, `propagated-inputs` is the way to make those dependencies come across to the user’s profile automatically.

Some packages in the Guix repo don’t have versions attached, just a version of `0.0.0` including a commit hash. For example:

[https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/guile-xyz.scm#n352](https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/guile-xyz.scm#n352)

It’s definitely better to encourage the creator to add versioned tags to their repo, though. Perhaps if @cow_2001’s fork takes over, that repo can be tagged instead?

---

<div class="post-metadata">

**Author:** ![ashraz](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.systemcrafters.net/ashraz/32/509_2.png) [@ashraz](https://forum.systemcrafters.net/u/ashraz)\
**Post date:** [June 17, 2024, 8:44am UTC](https://forum.systemcrafters.net/t/crafting-3-guile-scheme-programs-in-2-hours-system-crafters-live/785/8 "2024-06-17T08:44:41Z")

</div>

Just a quick OT note here: it’s strange that @cow_2001 explicitly creates a [new thread about the package](https://forum.systemcrafters.net/t/working-on-guile-pstk-a-gui-for-guile-using-tcl-tk/790), yet the discussion happens here 😅
