Closed samip5 closed 1 year ago
Similarly to https://github.com/phusion/passenger-docker/issues/286, not having arm support for APT has an "interesting" consequence. If you use Vagrant on a Mac M1, through for instance Parallels (see https://github.com/chef/bento/issues/1344#issuecomment-1087158889), and your Ansible (or similar) setup includes Passenger, then Passenger becomes (in my case) a blocking point, making it impossible to prepare my dev-ops work on Mac M1.
Is ARM support considered at this point? Thanks!
One complication is the lack of ARM-based CI services or cloud servers. That doesn't make it easy to release ARM packages.
One complication is the lack of ARM-based CI services or cloud servers. That doesn't make it easy to release ARM packages.
Not entirely true, ARM64 instances can be requested from Fosshost (non-commercial use), and one can use Oracle's Cloud offering that includes those.
One complication is the lack of ARM-based CI services or cloud servers. That doesn't make it easy to release ARM packages.
You can make use of Graviton instances from AWS; t4g.micro instance which is free tier. Let me know if you need help with it.
Thanks for maintaining this. Much appreciated.
Any update on this?
Any update on this?
Any update on this?
I am also waiting for updates...
+1 looking for this as well
I'm doing a bit of a beta test of the arm64 packages here: https://github.com/phusion/passenger-docker/issues/286 the packages I made for this test are here:
libapache2-mod-passenger_6.0.15-1~focal1_arm64.deb.zip libnginx-mod-http-passenger_6.0.15-1~focal1_arm64.deb.zip passenger_6.0.15-1~focal1_arm64.deb.zip passenger-dbg_6.0.15-1~focal1_arm64.deb.zip passenger-dev_6.0.15-1~focal1_arm64.deb.zip passenger-doc_6.0.15-1~focal1_all.deb.zip
There are only focal packages because that's what our docker image is based on, and i had to create these manually in an emulated vm so it was very slow. If the test goes well then i'll add this to the CI so that arm images get built as part of the release for all of our supported debian/ubuntu versions.
@CamJN in order to provide you a bit of feedback, I took the plunge and tried to use the test arm64 packages you provided to solve my issue (https://github.com/phusion/passenger_apt_automation/issues/39#issuecomment-1098051125).
It apparently worked out fine! I'm able to run simple tests on my app.
To install them, roughly I've used this Ansible setup below.
I will be able to test also once the packages are officially published via the apt repo, if that's doable!
Thanks for your work on this, appreciated.
# https://github.com/phusion/passenger_apt_automation/issues/39#issuecomment-1272615588
beta_passenger_arm_packages:
- https://github.com/phusion/passenger_apt_automation/files/9742436/passenger_6.0.15-1.focal1_arm64.deb.zip
# - https://github.com/phusion/passenger_apt_automation/files/9742434/libapache2-mod-passenger_6.0.15-1.focal1_arm64.deb.zip
- https://github.com/phusion/passenger_apt_automation/files/9742435/libnginx-mod-http-passenger_6.0.15-1.focal1_arm64.deb.zip
- name: Evaluate architecture
shell: dpkg --print-architecture
register: detected_architecture
changed_when: false
- name: "Download beta deb packages"
ansible.builtin.get_url:
url: "{{ item }}"
dest: /tmp
mode: '0440'
with_items: "{{ beta_passenger_arm_packages }}"
when: detected_architecture.stdout == 'arm64'
- name: "Install unzip"
ansible.builtin.apt:
name: unzip
state: present
when: detected_architecture.stdout == 'arm64'
- name: "Unzip deb packages"
ansible.builtin.unarchive:
src: "/tmp/{{ item | basename }}"
dest: /tmp
remote_src: yes
with_items: "{{ beta_passenger_arm_packages }}"
when: detected_architecture.stdout == 'arm64'
- name: "Install Passenger packages"
# NOTE: use "force: yes" if you need to downgrade (see https://github.com/ansible/ansible/issues/29451)
apt:
name: "{{ distribution_passenger_packages }}"
state: present
ignore_errors: "{{ ansible_check_mode }}"
when: detected_architecture.stdout != 'arm64'
- name: "Install Passenger packages"
apt:
deb: "/tmp/{{ item | basename | replace('.zip', '') | replace('.focal1', '~focal1') }}"
with_items: "{{ beta_passenger_arm_packages }}"
when: detected_architecture.stdout == 'arm64'
@thbar You can try out arm packages quite easily atm using our testing repo.
Just put deb https://oss-binaries.phusionpassenger.com/apt/passenger-testing DISTRO_CODENAME_HERE main
in the passenger apt sources list file.
For example for focal: sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger-testing focal main > /etc/apt/sources.list.d/passenger.list'
bionic, focal, jammy, kinetic, stretch, buster, and bullseye should work.
@CamJN thanks, I have tried that and it worked out fine. Will the ARM package be published in the main repo directly for 6.0.16 later?
The plan is for 6.0.16 to have the arm packages published in the main repo. I've been testing the CI to try and make this as smooth as possible and I think I've got all the kinks worked out.
6.0.16 is out now.
Related to: https://github.com/phusion/passenger-docker/issues/286#issuecomment-623208333