taviso / 123elf

A native port of Lotus 1-2-3 to Linux.
1.17k stars 59 forks source link

adds install target #20

Closed Ds886 closed 2 years ago

Ds886 commented 2 years ago

adds install target to be system wide Limitation observed:

  1. lotus try to access some file when launching in the shared folder, it seems to only make the welcome screen stuck but haven't tested further (it also try to change the ownership of those files)
  2. lotus have it's own terminfo library I've changed the launcher shim to overwrite the TERM to xterm since I was using st and lotus didn't have it.
taviso commented 2 years ago

Thank you! I'll test this out - I've been meaning to make a nice clean installation target.

I'm torn whether to keep the simple Makefile or to switch to autotools.

Ds886 commented 2 years ago

I was a bit unsure regarding the prefix handling in terms of autobuild system myself Hope the above method will help regarding the shim for a vim fashion regardless

Just checked and it writes temp file to the shared directory seeing in the installed temp folder it seems it originally meant to be run on a centralized server based on the setup123 manpage provided with the floppies- installed on /lotus and users will ssh into it(presumably with full access to the lotus folder)

I dont have access to the full manual but the configs in these lines might be of interest

There are two configuration files that affect the environment of 1-2-3. The file $HOME/.l123set contains a set of preferences for UNIX-specific functionality. The file $HOME/.l123cnf contains a user's set of preferences for global variables modified in the /Worksheet Global menus.

Today it is rather unfriendly I would guess Ill add installation of the manpage for the main executable.

taviso commented 2 years ago

Thanks, I've fixed how it finds the runtime files, now it should look where the binary is - I think that means the wrapper script isn't needed anymore.

I think I also need to make a default 123cnf, because that configures where /tmp is. Hmm, I'll figure out how to do that, then I'll merge this.

taviso commented 2 years ago

I haven't forgotten about this PR, but I'm still changing how the paths work so I'm worried about merging it and then needing to break old installations later!

Ds886 commented 2 years ago

That ok, best thing i hoped it would be pushimg forawrd some idea on what the state of systemwide install compared to today Also pathing is really hard to nail and i guess env mangement in the 90s was a lot less considerate in terms of internal tooling so completly understsndable :)

btw what is the source you use for documentation of how the env conf and license parameters are handled?

On Fri, 27 May 2022, 17:16 Tavis Ormandy, @.***> wrote:

I haven't forgotten about this PR, but I'm still changing how the paths work so I'm worried about merging it and then needing to break old installations later!

— Reply to this email directly, view it on GitHub https://github.com/taviso/123elf/pull/20#issuecomment-1139661990, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAQ5PCBWAPFJTUC6EAPVB2DVMDKLZANCNFSM5WW7MRGQ . You are receiving this because you authored the thread.Message ID: @.***>

Ds886 commented 2 years ago

I wasnt sure about this part , will the changes done be easy to use?(DESTDIR + prefix) Ill check integration later on t2sde auto build system as well if it being handled

On Mon, 30 May 2022, 07:20 audunmg, @.***> wrote:

@.**** commented on this pull request.

In Makefile https://github.com/taviso/123elf/pull/20#discussion_r884406911:

+prefix ?= / +bindir = ${prefix}usr/local/bin +sharedir = ${prefix}usr/local/share/lotus +profiledir = ${prefix}etc/profile.d

I'd really appreciate if you set prefix to /usr/local and set bindir and sharedir to ${prefix}/bin and ${prefix}/share

That way package maintainers can make prefix=$packageroot/usr/ install or similar

— Reply to this email directly, view it on GitHub https://github.com/taviso/123elf/pull/20#pullrequestreview-988764058, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAQ5PCBME2PQJOUF3KMLQ2LVMQ6XJANCNFSM5WW7MRGQ . You are receiving this because you authored the thread.Message ID: @.***>

vrza commented 2 years ago

The architecture-specific 123 binary should probably not live under /usr/share or /usr/local/share, as (per Linux Filesystem Hierarchy Standard) this is for architecture-independent data.

I did some exploratory coding in https://github.com/taviso/123elf/pull/68 to make the 123 binary attempt to find runtime data in ../share.

Another approach often used in such situations is to install runtime data, binary and default config file under /opt/lotus, this is in line with the FHS and would make the directory hierarchy predictable to the 123 binary, and could also make developer installation use-case and end-user installation use case very similar from the prespective of the 123 binary.

Also, we should try to avoid individual users having to modify their environment in order to run the program (and we have enough control to be able to avoid it).

taviso commented 2 years ago

Thank you for the PR, we ended up merging this as part of #72