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

Complete the CompileCommands.md #32

Open
theofficialgman opened this issue May 31, 2022 · 18 comments
Open

Complete the CompileCommands.md #32

theofficialgman opened this issue May 31, 2022 · 18 comments

Comments

@theofficialgman
Copy link
Contributor

this doesn't need to be verbatim exactly how to build each app or look pretty, but it would be nice to at least semi-document all apps here and how to go about reproducing their binarires, debs, or tarfiles (whatever is relavent).

for example, I'm looking at alacricity terminal and would like to make a deb myself but don't know if this was done with some automated method or if it was manually done.

@Botspot
Copy link
Contributor

Botspot commented May 31, 2022

I am interested in seeing this happen too.
Compile commands are both useful and reduce the bus factor in the event that a maintainer disappears for good.

@Botspot
Copy link
Contributor

Botspot commented May 31, 2022

The remaining undocumented apps are:

  • Amiberry
  • Lightpad

@theofficialgman
Copy link
Contributor Author

github desktop is also undocumented but I will add that myself if I am given push access to this repo.

@Botspot
Copy link
Contributor

Botspot commented May 31, 2022

github desktop is also undocumented but I will add that myself if I am given push access to this repo.

I thought you already had push access, as you are a member of Pi-Apps-Coders.

@theofficialgman
Copy link
Contributor Author

theofficialgman commented May 31, 2022

I thought you already had push access, as you are a member of Pi-Apps-Coders.

I'm a member, but that didn't give me any other privileges besides seeing who the other members are

You’re making changes in a project you don’t have write access to. Submitting a change will write it to a new branch in your fork theofficialgman/files, so you can send a pull request.

@ryanfortner
Copy link
Contributor

Here is what I know. I can make a pr in a bit.

  • For Alacritty, I used @jmcerrejon's piKiss script (the compile function), located here, then I packaged a deb manually.
  • Amiberry: I grabbed the precompiled zip from the latest release and manually packaged it.
  • AntiMicroX was packaged withdpkg-buildpackage using my debianization files here
  • balenaEtcher uses the instructions from here
  • I believe fsnotifier-pycharm-rpi.zip comes from this blog post
  • LightPad: I think the debs are taken from the latest release but I cannot confirm that for sure, if they are then I suggest we remove them from thisrepo since they are not needed
  • Remarkable's original package had several dependency issues that haven't yet been fixed in the main repo, so it has been repackaged using these instructions.

@theofficialgman
Copy link
Contributor Author

theofficialgman commented May 31, 2022

regarding pycharm, the issues with the upstream build have been fixed (I downloaded it and tested and they include arm and aarch64 binaries for libpty.so). terminal/python consoles work with no additional changes necessary to libpty.so

aarch64/libpty.so:  ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=f9761a3f0e1e4b3f69b6c2e6797fc7bbd5191732, not stripped
arm/libpty.so:      ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=e9d7e26de8ef2429898f3a4f2ae1ff6c542ad773, not stripped
mips64el/libpty.so: ELF 64-bit LSB shared object, MIPS, MIPS64 rel2 version 1 (SYSV), dynamically linked, BuildID[sha1]=94eac3e4a21dfe2d38a444ea56b9bfac51004647, not stripped
ppc64le/libpty.so:  ELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, BuildID[sha1]=e473921fb837d2e4f02b9dbacbebf10627582e13, not stripped
x86-64/libpty.so:   ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=bfbb116cab9088d82f543462880a1e844530af8e, not stripped
x86/libpty.so:      ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=4e1e95efdaab0446ef2a0470eeadd75a212f6024, not stripped

image

so we can simplify the pi-apps script and remove the zip from here
(no need for these lines now)
https://github.com/Botspot/pi-apps/blob/6bceed6e6b403888253621ade53df7a94647fb3a/apps/Pycharm%20CE/install#L16-L22

@theofficialgman
Copy link
Contributor Author

oh actually the fsnotifier zip is what comes from this repo... well it doesn't matter. I'll be removing libpty compilation from pi-apps

@Botspot
Copy link
Contributor

Botspot commented May 31, 2022

I thought you already had push access, as you are a member of Pi-Apps-Coders.

I'm a member, but that didn't give me any other privileges besides seeing who the other members are

Try it again. I've enabled write permissions for all members of this organization. (I thought this was already turned on, sorry about that)

@theofficialgman
Copy link
Contributor Author

Try it again. I've enabled write permissions for all members of this organization. (I thought this was already turned on, sorry about that)

I have access now, thanks

@theofficialgman
Copy link
Contributor Author

theofficialgman commented Jun 11, 2022

alacritty/alacritty#5902

given that upstream now has GLES2 support, we should build debs on upstream alacritty master (the latest release it too old to include it)

in the meantime, I corrected the current deb for arm64 to have libc 2.18 in the control file instead of 2.28, since I did an objdump -T alacritty | grep -i "glibc_" and found nothing higher to be required

@theofficialgman
Copy link
Contributor Author

  • LightPad: I think the debs are taken from the latest release but I cannot confirm that for sure, if they are then I suggest we remove them from thisrepo since they are not needed

I diffed the debs, they are named differently and have binary differences

@Itai-Nelken what did you change for lightpad from the official release if you remember? 7e87815

@theofficialgman
Copy link
Contributor Author

oh I see.. maybe it came from Botspot/pi-apps@c6ce659

@scamdotnet can you elaborate what you changed?

@scamdotnet
Copy link

I'm honestly not sure as I can't download the deb file anymore. I might have a copy of it on one of my Pi's, but I would have to set them up. I'll keep you updated if I can find the new deb file though!

@scamdotnet
Copy link

@scamdotnet
Copy link

Okay so from comparing the one from the original URL before I made my commit (Botspot/pi-apps@c6ce659), with the one from this repo, it appears that the Debian control file was changed from requiring libc6 (>= 2.29), to requiring libc6 (>= 2.17), as well as fixing a spelling mistake in the control file (Writen in the Original, Written in the one in this repo). Looking at the md5sums, the binary file was modified, not sure how, and so was the changelog. Comparing the changelogs, it looks like the modified one is actually a slightly earlier version, as it is rev1, while the one in the official repo is rev2. The only difference in the changelog besides the header for the version is a note saying that rev2 is a rebuild for groovy.

TLDR: the only real change that I believe I made was reducing the requirement for libc6 from >= 2.29, to >= 2.17. I think this was because this caused some kind of conflict in the raspbian repositories, although I can't be sure.

@theofficialgman
Copy link
Contributor Author

TLDR: the only real change that I believe I made was reducing the requirement for libc6 from >= 2.29, to >= 2.17. I think this was because this caused some kind of conflict in the raspbian repositories, although I can't be sure.

I see.. it looks like the official release has a reupload for the arm64 file (I assume thats what you were looking at). that would explain the control file differences and binary differences. regardless, the official builds will not work due to being built on groovy so this is good information, we will keep the debs hosted here then.

you can see the official release deb upload dates before where the arm64 version was reuploaded later

[lightpad_0.0.8.rev1_amd64.deb](https://github.com/libredeb/lightpad/releases/download/v0.0.8/lightpad_0.0.8.rev1_amd64.deb)
30.9 KB
Jul 22, 2020
[lightpad_0.0.8.rev1_arm64.deb](https://github.com/libredeb/lightpad/releases/download/v0.0.8/lightpad_0.0.8.rev1_arm64.deb)
29.5 KB
Jan 06, 2021
[lightpad_0.0.8.rev1_armhf.deb](https://github.com/libredeb/lightpad/releases/download/v0.0.8/lightpad_0.0.8.rev1_armhf.deb)
27.6 KB
Jul 22, 2020
[lightpad_0.0.8.rev1_i386.deb](https://github.com/libredeb/lightpad/releases/download/v0.0.8/lightpad_0.0.8.rev1_i386.deb)
34.1 KB
Jul 22, 2020

@scamdotnet
Copy link

Glad I could help! If there is anything else you think I could help out with, feel free to at me on github.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants