Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ctx: 0.pre+date=2021-10-09 -> unstable-2023-06-05 #237058

Merged
merged 1 commit into from
Jun 10, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
From 5c41e49b79ef85e7e23748fbeeaf65df8b769263 Mon Sep 17 00:00:00 2001
From: Tobias Mayer <tobim@fastmail.fm>
Date: Sat, 10 Jun 2023 14:17:16 +0200
Subject: [PATCH] Make arch detection optional and fix targets

---
Makefile | 6 +++---
configure.sh | 22 +++++++++++++---------
2 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/Makefile b/Makefile
index d21c53bf..fe982b24 100644
--- a/Makefile
+++ b/Makefile
@@ -205,8 +205,8 @@ stuff/%.o: stuff/%.c ctx.h stuff/*.h stuff/*.inc Makefile build.conf
libctx.a: itk.o deps.o $(CTX_OBJS) build.conf Makefile
$(AR) rcs $@ $(CTX_OBJS) deps.o itk.o
libctx.so: $(CTX_OBJS) deps.o itk.o build.conf Makefile
- $(LD) -shared $(LIBS) $(CTX_OBJS) deps.o itk.o $(CTX_LIBS) -o $@
- #$(LD) --retain-symbols-file=symbols -shared $(LIBS) $? $(CTX_LIBS) -o $@
+ $(CCC) -shared $(LIBS) $(CTX_OBJS) deps.o itk.o $(CTX_LIBS) -o $@
+ #$(CCC) --retain-symbols-file=symbols -shared $(LIBS) $? $(CTX_LIBS) -o $@

ctx: main.c ctx.h build.conf Makefile $(TERMINAL_OBJS) $(MEDIA_HANDLERS_OBJS) libctx.a
$(CCC) main.c $(TERMINAL_OBJS) $(MEDIA_HANDLERS_OBJS) -o $@ $(CFLAGS) libctx.a $(LIBS) $(CTX_CFLAGS) $(OFLAGS_LIGHT) -lpthread $(CTX_LIBS)
@@ -276,5 +276,5 @@ itk/w3c-constants.h: itk/css.h Makefile squoze/squoze
for a in `cat itk/css.h | tr ';' ' ' | tr ',' ' ' | tr ')' ' '|tr ':' ' ' | tr '{' ' ' | tr ' ' '\n' | grep 'SQZ_[a-z][0-9a-zA-Z_]*'| sort | uniq`;do b=`echo $$a|tail -c+5|tr '_' '-'`;echo "#define $$a `./squoze/squoze -33 $$b`u // \"$$b\"";done \
>> $@
echo '#endif' >> $@
-static.inc: static/* static/*/* tools/gen_fs.sh
+static.inc: static/* tools/gen_fs.sh
./tools/gen_fs.sh static > $@
diff --git a/configure.sh b/configure.sh
index ad388a5d..fd9d3b96 100755
--- a/configure.sh
+++ b/configure.sh
@@ -43,16 +43,20 @@ ENABLE_FAST_FILL_RECT=1
ENABLE_SWITCH_DISPATCH=1

pkg-config sdl2 && HAVE_SDL=1
-pkg-config babl && HAVE_BABL=1
-pkg-config cairo && HAVE_CAIRO=1
-pkg-config libcurl && HAVE_LIBCURL=1
-pkg-config alsa && HAVE_ALSA=1
-pkg-config libdrm && HAVE_KMS=1
+# https://github.com/GNOME/gimp/blob/828a8a7fe7ecd1825387f37a42922bc50fa32be9/meson.build#L349
+pkg-config babl-0.1 && { HAVE_BABL=1; BABL_NAME=babl-0.1; }
+if [ $HAVE_BABL != 1 ];then
+ pkg-config babl && { HAVE_BABL=1; BABL_NAME=babl; }
+fi
+pkg-config cairo && HAVE_CAIRO=1
+pkg-config libcurl && HAVE_LIBCURL=1
+pkg-config alsa && HAVE_ALSA=1
+pkg-config libdrm && HAVE_KMS=1
#pkg-config harfbuzz && HAVE_HARFBUZZ=1



-ARCH=`uname -m`
+: "${ARCH:="$(uname -m)"}"

case "$ARCH" in
"x86_64") HAVE_SIMD=1 ;;
@@ -229,8 +233,8 @@ echo >> build.conf
if [ $HAVE_BABL = 1 ];then
echo "#define CTX_BABL 1 " >> local.conf
echo "#define CTX_ENABLE_CM 1 " >> local.conf
- echo "CTX_CFLAGS+= `pkg-config babl --cflags`" >> build.conf
- echo "CTX_LIBS+= `pkg-config babl --libs` " >> build.conf
+ echo "CTX_CFLAGS+= `pkg-config "$BABL_NAME" --cflags`" >> build.conf
+ echo "CTX_LIBS+= `pkg-config "$BABL_NAME" --libs` " >> build.conf
else
echo "#define CTX_BABL 0 " >> local.conf
echo "#define CTX_ENABLE_CM 0 " >> local.conf
@@ -348,7 +352,7 @@ echo "LIBS=$LIBS" >> build.conf
#echo "Generating build.deps"
#make build.deps 2>/dev/null

-echo -n "configuration summary, architecture $(arch)"
+echo -n "configuration summary, architecture $ARCH"
[ $HAVE_SIMD = 1 ] && echo " SIMD multi-pass"
echo ""
echo "Backends:"
--
2.40.1

32 changes: 25 additions & 7 deletions pkgs/applications/terminal-emulators/ctx/default.nix
Original file line number Diff line number Diff line change
@@ -1,44 +1,62 @@
{ lib
, stdenv
, fetchgit
, pkg-config
, xxd
, SDL2
, alsa-lib
, babl
, bash
, cairo
, curl
, libdrm # Not documented
, pkg-config
, enableFb ? false
, nixosTests
}:

stdenv.mkDerivation rec {
stdenv.mkDerivation {
pname = "ctx";
version = "0.pre+date=2021-10-09";
version = "unstable-2023-06-05";

src = fetchgit {
name = "ctx-source"; # because of a dash starting the directory
url = "https://ctx.graphics/.git/";
rev = "d11d0d1a719a3c77712528e2feed8c0878e0ea64";
sha256 = "sha256-Az3POgdvDOVaaRtzLlISDODhAKbefpGx5KgwO3dttqs=";
rev = "2eb3886919d0a0b8c305e4f9e18428dad5e73ca0";
sha256 = "sha256-PLUyGArxLU742IKIgpzxdBdc94mWWSkHNFoXGW8L/Zo=";
};

patches = [
./0001-Make-arch-detection-optional-and-fix-targets.patch
];

postPatch = ''
patchShebangs ./tools/gen_fs.sh
'';

strictDeps = true;

env.ARCH = stdenv.hostPlatform.parsed.cpu.arch;

nativeBuildInputs = [
pkg-config
xxd
];

buildInputs = [
SDL2
alsa-lib
babl
bash # for ctx-audioplayer
cairo
curl
libdrm
];

configureScript = "./configure.sh";
configureFlags = lib.optional enableFb "--enable-fb";
configurePlatforms = [];
dontAddPrefix = true;

hardeningDisable = [ "format" ];
dontDisableStatic = true;

installFlags = [
"PREFIX=${placeholder "out"}"
Expand Down