rpmohn / a4

dynamic terminal manager and multiplexer
https://a4term.com
MIT License
33 stars 4 forks source link

Help on compilation and requirements #5

Closed littlewing7 closed 1 year ago

littlewing7 commented 1 year ago

Hi Ross,

regarding information present on README, this links seems have empty directory : http://bazaar.leonerd.org.uk/c/libtickit/ http://bazaar.leonerd.org.uk/c/libvterm/

BTW

I'm trying to compile from source but I receive this errors:

`#$ make cc -std=c99 -DNDEBUG -DSYSCONFDIR=\"/usr/share\" -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 -D_XOPEN_SOURCE_EXTENDED -DVERSION=\"752eec5-dirty\" a4.c lib/ini.c -lutil -ltickit -lvterm -o a4 In file included from a4.c:310:

vt.c: In function ‘vts_settermprop’: vt.c:76:32: error: request for member ‘initial’ in something not a structure or union 76 | if (val->string.initial) ^ vt.c:80:51: error: request for member ‘str’ in something not a structure or union 80 | strncat(tframe->title, val->string.str, MIN(val->string.len, remaining)); ^ In file included from a4.c:41: vt.c:80:72: error: request for member ‘len’ in something not a structure or union 80 | strncat(tframe->title, val->string.str, MIN(val->string.len, remaining)); | ^ utilities.c:5:23: note: in definition of macro ‘MIN’ 5 | #define MIN(x, y) ((x) < (y) ? (x) : (y)) | ^ vt.c:80:72: error: request for member ‘len’ in something not a structure or union 80 | strncat(tframe->title, val->string.str, MIN(val->string.len, remaining)); | ^ utilities.c:5:35: note: in definition of macro ‘MIN’ 5 | #define MIN(x, y) ((x) < (y) ? (x) : (y)) | ^ vt.c:82:32: error: request for member ‘final’ in something not a structure or union 82 | if (val->string.final) { | ^ vt.c: In function ‘applycolorrules’: vt.c:237:9: warning: implicit declaration of function ‘vterm_screen_set_default_colors’; did you mean ‘vterm_state_set_default_colors’? [-Wimplicit-function-declaration] 237 | vterm_screen_set_default_colors(tframe->vts, &tframe->cs->fg, &tframe->cs->bg); | ^~~~~~~ | vterm_state_set_default_colors vt.c: In function ‘get_vterm’: vt.c:386:9: warning: implicit declaration of function ‘vterm_screen_enable_reflow’; did you mean ‘vterm_screen_enable_altscreen’? [-Wimplicit-function-declaration] 386 | vterm_screen_enable_reflow(tframe->vts, true); | ^~~~~~ | vterm_screen_enable_altscreen make: *** [Makefile:24: a4] Error 1`

image

Can you point me in the right direction?

Many thanks for your work I hope to be able to compile successfully, if yes I try to ask guys on VoidLinux to add it in repository.

Many thanks

Max

littlewing7 commented 1 year ago

Hi Ross,

I'm updating libtickit and livterm on VoidLinux to the latest release.

in my lab now I'm able to compile successfully and a4 is working:

image

can you please help me to create a VoidLinux template to use for automatic build and ask for a PR including your beautifull terminal to VoidLinux distribution?

many thanks

Max

rpmohn commented 1 year ago

Hi Max, sorry I missed this the other day! I'll be able to respond this evening. -Ross

rpmohn commented 1 year ago

OK, I've somewhat simplified the prerequisites installation instructions with version (not revision) numbers and links to the source code tarballs that should work fine. How can I help with a VoidLinux template?

littlewing7 commented 1 year ago

Hi Ross, many thanks for your reply.

I'm moving the first steps on this, I start from this templates updates to be able to successful compile a4 from github.

this is the template I modify on void-packages for examples:

https://github.com/littlewing7/void-packages/blob/libtickit_maintenance/srcpkgs/libtickit/template and https://github.com/littlewing7/void-packages/blob/libtickit_maintenance/srcpkgs/libvterm/template

simply changing the version form 0.4.1 to 0.4.3 for libtickit and from 0.3 to 0.3.1 for libvterm.

in your case the problem is that there isn't a tar file to use like for the example above.

I know there are the possibility to use a git clone template, but I'm not expert I can ask to void-linux guys how I can achieve this task, but if you have some idea I'm glad to hear your point.

for your reference this are two examples of templates using git clone to build the binary package:

https://github.com/littlewing7/void-packages/blob/libtickit_maintenance/srcpkgs/rdis-git/template https://github.com/littlewing7/void-packages/blob/libtickit_maintenance/srcpkgs/darch/template

If you can help me to point the right direction I try to build a new void-linux binary package for your great a4 terminal.

P.S. I work with linux from a lot of years but i'm not a developer. P.P.S. take a look at void-linux dist... from my point of view is the best dist I found in the last 25 years.

cheers Max

onemoresuza commented 1 year ago

Would a nix flake be of any interest?

I was hacking around with a fork of the project and made a flake to test it without worrying about the dependencies on my system.

Even though it does not solve the problem of packaging, it allows one to have:

  1. an environment in which to hack and (manually) compile the program (nix develop);
  2. a way to test if the program is building correctly (nix build); and
  3. a way to easily run the program in its current state (nix run).
littlewing7 commented 1 year ago

I happy to tell you I have complete the template for building the a4 package inside Void Linux.

Your A4 Dynamic Terminal Multiplexer is now an official package of Void Linux Distribution. (https://voidlinux.org/packages/?arch=x86_64&q=a4)

so this issue might be closed.

Max