-
-
Notifications
You must be signed in to change notification settings - Fork 45
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
Issues on FreeBSD #1199
Comments
The INSTALL script should check for wget 🤔 or you mean that you got the
unshare is a linux kernel only feature as far as I know, which we use to check for access to usernamespaces which a lot of appimages and electron apps depend on, ubuntu recently decided to disable that so that check was put in place. I guess we will only run that check if |
And what about the parsing issue? If I'm not wrong, you're trying to parse https://portable-linux-apps.github.io/apps. Is that right? In this case, why not to autogenerate a simple text file filled with only app names and app descriptions, something like this:
That's is. It's much straightforward, easier to parse, faster, and more portable. |
That's something for @ivan-hc |
@leo-arch since you are using https://github.com/ivan-hc/AM/blob/dev/INSTALL before running it, there is a variable Changes are now on the "dev" branch of this repo https://github.com/ivan-hc/AM/tree/dev |
Installed using the suggested script, made requested change, and still nothing. While the installation was sweat, the database is still a problem. |
this is really strange |
What's the module taking care of |
install.am |
Ok. I guess |
yes, _install_normally take care of the scripts in the database, _install_local_scripts does what you asked today about scripts downloaded via |
Great. Let's start debugging. |
Located! There's something wrong with INSTALL:423. The |
that line tests if the script exists in the online database |
what version of |
Well, here is it: curl is trying to access a non-existent file:
As you can see, the FreeBSD path component is the culprit. It should be |
what do you get when you run |
amd64 |
and what about |
FreeBSD |
Ok. Where is the APPSDB variable generated. At this point it seems clear that the issue is there. EDIT: I think APP-MANAGER:20 is our guy. It reads:
|
Yeah it was that. I forgot we used HOSTTYPE instead of uname originally but still even |
just merged the PR by @Samueru-sama in APP-MANAGER, replace
with
|
Also, you can keep changes from "deb" by entering the Developer Mode
to exit the developer mode
|
Gone through the install process successfully. However, the binary won't run: it's Linux only. But this is a different issue. |
what program have you installed? |
clifm |
I'll try with something else. Tried with These binaries were compiled in Linux, and won't run on BSD. |
Can you see what happens if you try to run that's an appimage that I have that bundles everything so it even works on musl libc systems, I want to know if it works on FreeBSD. |
You can pipe uname directly Also I don't know if we can just set the |
Just finished to finalize all left fixes and added some improvements to some options. Also, thanks to @Samueru-sama 's suggestions, even more improvement have been done not to hardcode symlinking. Last release is 9.3-10, in "dev". I have read some documentation and it seems that ways to run Linux apps nativelly on freeBSD already exist https://docs.freebsd.org/en/books/handbook/linuxemu/ @leo-arch as you said, this must be tested on other BSD-based systems. The function that does the check is the following, in APP-MANAGER
One think left that I would like to add is bash-completion support to FISH, this is the functio that take care of this support in BASH and ZSH
and here I don't know how to move on. |
@leo-arch version 9.3-11 in "dev", thanks to the hard work of @Samueru-sama also the Now AM checks if Now AM works n BSD like it was on GNU/Linux. The only difference is that installed programs will not work. We can solve it by running an installation script that will configure everything as it should... but we are not BSD experts. I wait your Pull Request for this. If you want join or you want to suggest others to get involved, you are wellcome. About FISH/DASH completion... we don't know anything. For me, AM is ready to be released as 9.4 stable. We will keep test it normally on our systems as well. If you can team up with others by spreading this program, we would improve it fastrer and better. |
@leo-arch if you have Discord you can join our community https://discord.gg/djJUs48Zbu |
@leo-arch There are some important things you need to know:
Miscellaneous will be listed on the 9.4 release page when it's ready, and on a README page for BSD systems if I have the time and expertise to provide more information. I can't do more than this. Starting next week I'll be busy with some important commitments that will surely keep me away from github for a long time. However, I hope to solve this problem as soon as possible and to release this release full of new features as soon as possible. |
Version 9.3-12, Thanks @Samueru-sama |
Really good to know.
This one is bad.
Maybe you should automate this so that the user's binaries are not at risk (which, again, is really bad). Btw, I don't use Discord. |
Note this is an FHS violation by ghostbsd. Archlinux is also notorious on this issue by putting packages in |
I have solved the issue of symlinks in $PATH here a7ef8e9 |
As a matter of fact, most Linux distros silently break this rule by installing most package binaries in |
I have never seen a distro that installs from its official repos to /usr/local, only under /usr directly. /usr/local and /opt are for third party programs. For what I know, Arch uses these paths only for AUR |
This is exactly what BSDs do most of the time (not sure about MacOS, but it probably follows the same pattern). |
How third party programs are installed not to conflift with PKG? |
Well, as far as I know, Maybe, and just maybe, AM should refuse to install packages already installed (like |
this is how AM installs programs
the issue was only with /usr/local/bin, but as I said before...
|
Now, what is left
Apart this, we, on the AM side, have finished. For me the release can come out this evening (for me in Italy its 9:15 am). Me and @Samueru-sama have only finalized thwe last fixes fr the release. All its left are tests in normal usage. No more issues for now, so the release is basically ready. |
dash is not an interactive shell, it doesn't have completion. Not even tab completion for file paths or commands. (not only does it not have any interactive features, it is way slower than busybox's |
That would be
user binaries would be more like
Most aur packages use |
Yes, according to the standard. But implementations differ:
Let's suppose you install the For more info consult hier(7) on both Linux and BSD. Summarizing, it is quite safe to copy your binaries into
Not on Debian either (at least not by default). Haven't seen this on BSD either (though FreeBSD does have |
Cross-reference: Trying to run AppImages on *BSD based systems, using "AM" package manager in /r/freebsd |
I'll start by saying that I'm a total ignoramus on the subject, but here's what an unlikely installation script named "linux4bsd" for a Linux app compatibility layout on freeBSD might contain (based on what I understand from this guide https://docs.freebsd.org/en/books/handbook/linuxemu/ )
and that's all. All of this would be installed with one of the following two commands
...and would be removed with one of the following three commands
If the installation fails, the first script created, called "remove" will be run to reverse what has been done so far. NOTE! I have only written an example of what a script might look like. The commands I have listed are just an example. Do not take what I have written literally. THIS IS JUST A PROOF OF CONCEPT! |
IMO its better to do: Why? Because if the user has |
I think it's time to release the version. Even if the apps don't work (most of them, I haven't found any "working" ones yet), at least we've laid the groundwork for a way to support them on *BSD. What do you think @leo-arch ? Does this solve the issue? |
In the meantime I finally managed to run AppImages on GhostBSD using this guide https://unixdigest.com/tutorials/how-to-install-signal-desktop-on-freebsd-using-the-linux-binary-compatibility.html You can see some screenshots here #1209 (comment) |
Provided AM itself works as expected, installing, listing, uninstalling, and so on (haven't tested the latest modifications though), that's enough for a release (maybe adding something like "Initial BSD support" to the release notes would be fine). As I said before, it's not AM's business to provide BSD compatible binaries. In this sense this issue can be considered solved: as a user, I wouldn't blame AM for not providing BSD binaries. Even the linux emulation workaround should be considered an add-on, not a core feature. |
A few issues when attempting to install and use AM on FreeBSD:
When installing
am
(git method), wget(1) isn't found (and thereby nothing was actually installed), but I still get this message:"AM" successfully installed
.I installed wget(1). After
am
installation (git method), I get this message:The thing is that
/usr/local/bin/am
was actually generated and properly points to/opt/am/APP-MANAGER
.am -i clifm
command. Here's the output:https://github.com/ivan-hc/AM#ubuntu-mess redirects to the main AM github page: no
ubuntu-mess
section.The namespaces messages is triggered by APP-MANAGER:258: There's no unshare(1) command in FreeBSD. I've modified APP-MANAGER to only run unshare(1) if it exists:
Still get the above error screen, but without the namespaces warning
Ok. Let's see what
am -l
has for us:Oops!
Let's run
am -l --all
. I only see a bunch of numbers, like these:And the thing goes on. It seems to be parsing an HTML file, and failing.
Summarizing
The text was updated successfully, but these errors were encountered: