Package Details: st 0.8.5-1

Git Clone URL: (read-only, click to copy)
Package Base: st
Description: A simple virtual terminal emulator for X.
Upstream URL:
Licenses: MIT
Submitter: Foxboron
Maintainer: jose1711 (waschtl)
Last Packager: jose1711
Votes: 76
Popularity: 0.32
First Submitted: 2017-11-20 15:32 (UTC)
Last Updated: 2022-01-07 17:29 (UTC)

Latest Comments

ang commented on 2022-05-01 07:33 (UTC) (edited on 2022-05-01 07:34 (UTC) by ang)

Hello, since packages are now compressed with zstandard by default, can you please add that pattern to .gitignore:

diff --git a/.gitignore b/.gitignore
index 2d32340..2d7d03c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@

Thank you.

maandree commented on 2022-02-18 09:25 (UTC)

Please consider using the patch(1) options -d and -p instead of --directory and --strip, so that GNU patch is not required.

thiagowfx commented on 2021-06-29 18:34 (UTC)

Do not use makepkg subroutines (e.g. error, msg, msg2, plain, warning) as they might change at any time. To print data, use printf or echo.

This package is needlessly using warning.

Libgxps commented on 2020-12-01 09:47 (UTC)

Please add the aarch64 architecture. It builds quite nicely. Thank you for your support.

maandree commented on 2020-08-29 16:29 (UTC)

My patch(1) does not support long options. Please change patch --directory="$_sourcedir" --strip=0 < terminfo.patch to the portable patch -d "$_sourcedir" -p 0 < terminfo.patch.

ilf0 commented on 2020-06-20 12:39 (UTC) (edited on 2020-06-20 12:40 (UTC) by ilf0)

Are README.terminfo.rst and terminfo.patch still needed with 0.8.4? README.terminfo.rst sais " As of st-0.8.2 they have errors in them. This has been fixed and will roll out in the next release, though."

E5ten commented on 2020-06-02 16:37 (UTC)

Can you change the installopts to be '-m 0644 -D -t' so that install implementations aside from coreutils work, because those shortopt equivalents to the long options currently used are more widely supported, whereas the long options are pretty much only supported by GNU coreutils.

kolo commented on 2020-04-17 22:03 (UTC) (edited on 2020-04-17 22:04 (UTC) by kolo)

Attempting to add the font2 patch creates error: "error: ‘frccap’ undeclared". Some reddit threads suggest this has been a problem for over 9 months now. The following relevant patches from the official st repos will fix this:

2019-03-03 10:29 simplify (greedy) font caching allocating a bit Hiltjo Posthuma 1 +2 -7

2019-02-28 01:56 fix use after free in font caching algorithm magras 1 +9 -6

milouse commented on 2020-01-27 08:34 (UTC)

AUR helpers are not supported. Please contact pikaur author to get help with it. st works like any other aur package: after having cloned it, you can makepkg it and you'll find the sources in the src folder.

etognoni commented on 2020-01-26 17:42 (UTC)

First time , for me, after install i cant find sources, is that normal? using pikaur i cant find build folder.

Tetrapyle commented on 2019-11-11 18:07 (UTC)

Ooups, I suppose I messed with something :)

waschtl commented on 2019-11-11 14:37 (UTC)

It looks like you have your own config.h. The error message is pointing at line 180 in that file.

If you didn't intend to compile with customizations, just remove your config.h, and the defaults from config.def.h will be used. If you did intend to compile with customizations, you probably need to adjust your config.h.

Tetrapyle commented on 2019-11-11 09:24 (UTC) (edited on 2019-11-11 09:24 (UTC) by Tetrapyle)

Hi, It doesn't compile on my system:

$ LC_MESSAGES=en_US.UTF-8 makepkg -si
==> Making package: st 0.8.2-10 (lun. 11 nov. 2019 10:16:42 CET)


==> Starting build()...


st build options:
CFLAGS  = -I/usr/include/X11  -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  -DVERSION="0.8.2" -D_XOPEN_SOURCE=600 -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt
LDFLAGS = -L/usr/lib/X11 -lm -lrt -lX11 -lutil -lXft  -lfontconfig -lfreetype   -lfreetype  -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now
CC      = c99
c99 -I/usr/include/X11  `pkg-config --cflags fontconfig`  `pkg-config --cflags freetype2` -DVERSION=\"0.8.2\" -D_XOPEN_SOURCE=600 -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -c st.c
lkc99 -I/usr/include/X11  `pkg-config --cflags fontconfig`  `pkg-config --cflags freetype2` -DVERSION=\"0.8.2\" -D_XOPEN_SOURCE=600 -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -c x.c
In file included from x.c:61:
config.h:180:42: error: ‘iso14755’ undeclared here (not in a function)
  180 |  { TERMMOD,              XK_I,           iso14755,       {.i =  0} },
      |                                          ^~~~~~~~
make: *** [Makefile:22: x.o] Error 1
make: Leaving directory '/home/jean/abs/st/src/st-0.8.2'
==> ERROR: A failure occurred in build().

waschtl commented on 2019-11-03 19:54 (UTC)

Hi @milouse,

my conversation so far with Thomas Dickey from ncurses ( has revealed something that I didn't previously realize:

  • The terminfo entries from upstream st have two bad tmux extensions in them. While they don't cause any obvious errors while I'm using them, that may not be the case in general. I don't think that they should be distributed.
  • He regularly releases an updated terminfo database between ncurses versions that is intended to be included in distribution packages. ArchLinux is not doing this.
  • He believes his current st terminfo entry to be correct. I have not verified this yet.
  • There is a clear argument for distributing all terminfo entries with ncurses: When you ssh into a machine, that machine must know your terminal emulator. Most terminal emulators don't get installed on most machines (especially servers).

I have analyzed various terminfo entries for st from several ncurses versions, as well as from upstream st. I now understand what's wrong with the entries provided with st and am working on understanding his modifications to it.

My plan is as follows:

  1. Clear up any questions I have about the current st terminfo file provided by ncurses.
  2. Test entries that should be good.
  3. File a bug report and patch with st to fix the problems with their terminfo entry.
  4. File a bug report with the ArchLinux ncurses package hoping to move them to use officially released and updated terminfo databases between ncurses versions.

Thanks for your encouragement.

milouse commented on 2019-11-01 10:18 (UTC)

Hi @waschtl,

I just read with attention your README about the terminfo problem. I'm aware of it since a long time, but must admit I never take time to do anything forward. Thus I'm very insteresting to follow up your discussion with either ncurse team or Archlinux team. How do you think to proceed? A quick check in the archlinux bug tracker show me no bug related to that. I wonder if a quick fix won't be to ask there to remove st information from the archlinux ncurse package. As st is NOT provided in any official repository, I think it's not a big problem to remove responsibility of that.

Thank you for your involvment!

simona commented on 2019-10-31 10:11 (UTC)

Yes :-) Thanks.

waschtl commented on 2019-10-31 00:24 (UTC)

No problem. I think I will remove the error message. It's counterintuitive.

I did not know about BlackArch. Thanks for the pointer.

simona commented on 2019-10-31 00:03 (UTC) (edited on 2019-10-31 00:05 (UTC) by simona)

  1. yes, sorry. blackarch repos.

waschtl commented on 2019-10-31 00:00 (UTC) (edited on 2019-10-31 00:02 (UTC) by waschtl)

@simona, two questions:

  1. Where is yay finding the package paraxor-st? I can't find it in the AUR.

    yay -Si paraxor-st

  2. Does installing st work if you try again?

    The error message you are reporting is there so that you know that st can only be configured before compilation. If yay caches the package directory, a second attempt should no longer show the error.

simona commented on 2019-10-30 23:49 (UTC)

Yes. yay was installing paraxor-st. another pkg. But installing true st it give me:

patching file Makefile ==> ERRORE: This package can be configured in config.h. Copy config.def.h just placed into the package directory to config.h and modify it to change the configuration. Or just leave it alone to use default values. Then restart the build process. ==> ERRORE: Si è verificato un errore in prepare(). L'operazione sta per essere interrotta...

waschtl commented on 2019-10-30 23:46 (UTC)

@simona, you should be fine as it is. I may have expressed myself poorly. I meant to say that the package does not put any files in /usr/share/terminfo.

Are you getting an error message?

simona commented on 2019-10-30 23:22 (UTC) (edited on 2019-10-30 23:41 (UTC) by simona)

@waschtl can I change where to install? I use yay.

waschtl commented on 2019-10-30 23:12 (UTC)

Hi simona, greetings to Italy.

If I understand you correctly, you are telling me that the following two files in this package conflict with ncurses:

  • /usr/share/terminfo/s/st
  • /usr/share/terminfo/s/st-256color

I couldn't figure out what you meant by "paraxor-st" though.

And I completely agree. ncurses is making it difficult for me to package st well. Precisely for that reason, I did not install those files to the locations you mentioned. Instead they are being installed to

  • /usr/share/st/terminfo/s/st
  • /usr/share/st/terminfo/s/st-256color

Notice the extra st after /usr/share.

simona commented on 2019-10-30 22:48 (UTC)

paraxor-st: /usr/share/terminfo/s/st è già presente nel filesystem (appartiene a ncurses) paraxor-st: /usr/share/terminfo/s/st-256color è già presente nel filesystem (appartiene a ncurses)

milouse commented on 2019-10-16 13:29 (UTC)

Thanks @waschtl for your clear explanations! I must admit I don't read the doc since a long time, shame on me.

waschtl commented on 2019-10-16 12:28 (UTC)

@milouse, thank you for your suggestions. I had completely missed the fact that the URLs were not using HTTPS.

I incorporated several of your changes, but not all of them. I don't want to seem like I'm ignoring your suggestions, though, so I would like to explain my decisions:

  • Using variables in the source array is preferred over static definitions according to man pkgbuild. See "OPTIONS AND DIRECTIVES"->source.
  • Using $srcdir is not necessary because all PKGBUILD functions are executed within that directory. See man pkgbuild->"PACKAGING FUNCTIONS"->srcdir.
  • I have a personal preference not to use cd in favor of --directory options to make and co. Therefore, I have removed what cd statements were still around.

milouse commented on 2019-10-16 09:19 (UTC)


I would like to suggest the following changes:

  • Use https URL to download st
  • Remove unnecessary variable resolution
  • Fix sed line to remove terminfo files (no more @ prefix in the current release).
diff --git a/PKGBUILD b/PKGBUILD
index 8a0056e..31c5ac1 100644
@@ -12,11 +12,14 @@ license=('MIT')
 makedepends=(libxext ncurses)

 prepare() {
-  sed '/@tic/d' -i $pkgname-$pkgver/Makefile
+  cd $srcdir/$pkgname-$pkgver
+  # skip terminfo which conflicts with ncurses
+  sed '/tic /d' -i Makefile
+  sed -i '/@echo .* terminfo/d' Makefile

   # This package provides a mechanism to provide a custom config.h. Multiple
   # configuration states are determined by the presence of two files in
@@ -39,7 +42,7 @@ prepare() {
   if [ -e "$BUILDDIR/config.h" ]
-    cp "$BUILDDIR/config.h" "$pkgname-$pkgver"
+    cp "$BUILDDIR/config.h" "$srcdir/$pkgname-$pkgver"
   elif [ ! -e "$BUILDDIR/config.def.h" ]
@@ -49,7 +52,7 @@ prepare() {
     msg+='values. Then restart the build process.'
     error "$msg"
-  cp "$pkgname-$pkgver/config.def.h" "$BUILDDIR"
+  cp config.def.h "$BUILDDIR"
   test -z "$abort"

waschtl commented on 2019-10-16 08:19 (UTC)

@simona: The purpose of this is to alert the user to the unusual situation that configuration happens at build time. Build is successful on the second run, thereby giving you the chance to look at the configuration file if you want to.

I will change "Then rerun makepkg." to "Then restart the build process." to account for builds by AUR helpers.

simona commented on 2019-10-16 07:39 (UTC)

==> ERRORE: This package can be configured in config.h. Copy provided config.def.h to config.h and modify to change configuration. Leave config.def.h as it is to use default values. Then rerun makepkg. ==> ERRORE: Si è verificato un errore in prepare().

waschtl commented on 2019-10-15 22:09 (UTC)

Thanks @famar for the pointer. I have replaced it with $BUILDDIR, which is not mentioned in that document, but seems appropriate.

famar commented on 2019-10-15 21:20 (UTC)

Hi, according to PKGBUILD manual, the use of the packaging variable startdir "is deprecated and strongly discouraged".

Can you please update?

waschtl commented on 2019-09-18 12:32 (UTC)

The line

# remove to avoid conflict with ncurses
rm "${pkgdir}/usr/share/terminfo/s/st" "${pkgdir}/usr/share/terminfo/s/st-256color"

doesn't quite do the trick. The two files


still get installed. And they do not play well with the terminfo files from ncurses. It would be safer to disable terminfo generation in prepare() as follows (taken from st-git):

sed '/@tic/d' -i Makefile

jose1711 commented on 2019-04-08 20:41 (UTC)

adopted and finally updated

OliK commented on 2019-03-08 17:11 (UTC)

Mon, 4 Mar 2019, I wrote an email to Foxboron ( asking if he still maintain this AUR package. But I don't get an answer.

Roshless commented on 2018-09-07 23:53 (UTC)

@bobsaintcool no, since it's part of base-devel group.

bobsaintcool commented on 2018-08-17 22:10 (UTC)

Hi @Foxboron, I believe pkgconf should be added to makedepends isn't it?

BurhanDanger commented on 2018-04-23 16:27 (UTC)

st needs a way to install terminfo, the ones that come with ncurses(for 0.7 maybe) have problems with current version.

For now I have ~/.terminfo/ with correct terminfo for st. Hope this resolves.

Foxboron commented on 2018-01-30 18:58 (UTC)

This is only ment as a template. Modify the PKGBUILD.

weetchilo commented on 2018-01-30 18:45 (UTC)

the config.h file is useless if it is gonna be checksumed afterward