Deploy germinal #15

Merged
jmcbray merged 1 commit from tobias/germinal:bundle into master 2020-06-14 21:02:39 -04:00
Contributor

I am expermenting with running germinal as systemd service. The libosicat.so is installed with quicklisp under ~/quicklisp where the deployed binary won't have access rights (running as nobody and further systemd sandboxing).
I tried replacing osicat and thus not using a .so. uiop provides most needed functions, but it is not possible to check wherter a file is world readable (It could be done with the sbcl specific sb-posix:stat).
Using deploy is maybe the easiest way to provide the required libraries.
What do you think?

I am expermenting with running germinal as systemd service. The libosicat.so is installed with quicklisp under ~/quicklisp where the deployed binary won't have access rights (running as nobody and further systemd sandboxing). I tried replacing osicat and thus not using a .so. uiop provides most needed functions, but it is not possible to check wherter a file is world readable (It could be done with the sbcl specific sb-posix:stat). Using [deploy](https://shinmera.github.io/deploy/) is maybe the easiest way to provide the required libraries. What do you think?
Owner

If you can get it working using `deploy', then that's probably the best way to do it. I'm actually running germinal as a systemd service already, but I think I did local sysadmin stuff to overcome the libosicat.so issue.

If you can get it working using `deploy', then that's probably the best way to do it. I'm actually running germinal as a systemd service already, but I think I did local sysadmin stuff to overcome the libosicat.so issue.
Author
Contributor

Thanks for your thoughts. I will cleanup this and update it once it is ready

Thanks for your thoughts. I will cleanup this and update it once it is ready
tobias changed title from WIP: Deploy germinal to Deploy germinal 2020-06-14 04:25:05 -04:00
Author
Contributor

It is ready now. I have replaced the build.sh with a Makefile and updated the readme appropriately.

It is ready now. I have replaced the build.sh with a Makefile and updated the readme appropriately.
Owner

Thanks for this. It will take me just a little bit to figure out how to review it properly.

Thanks for this. It will take me just a little bit to figure out how to review it properly.
jmcbray closed this pull request 2020-06-14 21:02:39 -04:00
Owner

Oops. I get this:

==> Gathering system information.
   -> Will load the following foreign libs on boot:
      (#<DEPLOY:LIBRARY LIBRT> #<DEPLOY:LIBRARY LIBOSICAT>
       #<DEPLOY:LIBRARY LIBSSL>)
 ==> Deploying files to /home/jmcbray/Documents/common-lisp/germinal/bin/
Unhandled SIMPLE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING
                                    {10005205B3}>:
  #<LIBRARY LIBOSICAT> does not have a known shared library file path.

Oops. I get this: ``` ==> Gathering system information. -> Will load the following foreign libs on boot: (#<DEPLOY:LIBRARY LIBRT> #<DEPLOY:LIBRARY LIBOSICAT> #<DEPLOY:LIBRARY LIBSSL>) ==> Deploying files to /home/jmcbray/Documents/common-lisp/germinal/bin/ Unhandled SIMPLE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING {10005205B3}>: #<LIBRARY LIBOSICAT> does not have a known shared library file path. ```
Author
Contributor

Sorry about that. I could not reproduce the error with a clean checkout for a new user (all libraries installed with quicklisp)

Sorry about that. I could not reproduce the error with a clean checkout for a new user (all libraries installed with quicklisp)
Owner

I will give it another try in aa clean checkout for a new user, but just clearing my quicklisp cache was not enough yo resolve it. I appreciate the work you've put in, and we'll get this working eventually.

I will give it another try in aa clean checkout for a new user, but just clearing my quicklisp cache was not enough yo resolve it. I appreciate the work you've put in, and we'll get this working eventually.
Owner

I thought it was my old SBCL version; Fedora 31 had 1.4.something. After my update to Fedora 32, which has SBCL 2.0.1-1.fc32, I gave it a shot with a freshly added user.

Same error, I'm afraid.

 ==> Running load hooks.
 ==> Gathering system information.
   -> Will load the following foreign libs on boot:
      (#<DEPLOY:LIBRARY LIBRT> #<DEPLOY:LIBRARY LIBOSICAT>
       #<DEPLOY:LIBRARY LIBSSL>)
 ==> Deploying files to /home/gemini-test/germinal/bin/
   -> Copying library #<LIBRARY LIBZ>
Unhandled SIMPLE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING
                                    {1000510083}>:
  #<LIBRARY LIBOSICAT> does not have a known shared library file path.

Are you running deploy from quicklisp? Or do you have a more recent version that's not in quicklisp installed?

I thought it was my old SBCL version; Fedora 31 had 1.4.something. After my update to Fedora 32, which has SBCL 2.0.1-1.fc32, I gave it a shot with a freshly added user. Same error, I'm afraid. ``` ==> Running load hooks. ==> Gathering system information. -> Will load the following foreign libs on boot: (#<DEPLOY:LIBRARY LIBRT> #<DEPLOY:LIBRARY LIBOSICAT> #<DEPLOY:LIBRARY LIBSSL>) ==> Deploying files to /home/gemini-test/germinal/bin/ -> Copying library #<LIBRARY LIBZ> Unhandled SIMPLE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING {1000510083}>: #<LIBRARY LIBOSICAT> does not have a known shared library file path. ``` Are you running deploy from quicklisp? Or do you have a more recent version that's not in quicklisp installed?
Author
Contributor

I am using the deploy as provided by quicklisp; sbcl is 2.0.5.debian (debian testing)

While I tried to reproduce it in a VM, i got the error once. Unfortunately it went way while debugging and I was unable to reproduce it.
Building it with drone.io CI (see .drone.yml) works for me with a fedora 32 docker image as well as with 31.

Thus I have no idea what is causing the error

.drone.yml:

---
kind: pipeline
type: docker
name: default

steps:
- name: build
  image: fedora
  commands:
    - dnf -y install sbcl make gcc git redhat-rpm-config zlib-devel
    - curl -O https://beta.quicklisp.org/quicklisp.lisp
    - sbcl --load quicklisp.lisp --non-interactive --eval '(quicklisp-quickstart:install)'
    - echo '(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp" (user-homedir-pathname)))) (when (probe-file quicklisp-init) (load quicklisp-init)))' > ~/.sbclrc
    - make
I am using the deploy as provided by quicklisp; sbcl is 2.0.5.debian (debian testing) While I tried to reproduce it in a VM, i got the error once. Unfortunately it went way while debugging and I was unable to reproduce it. Building it with drone.io CI (see .drone.yml) works for me with a fedora 32 docker image as well as with 31. Thus I have no idea what is causing the error .drone.yml: ``` --- kind: pipeline type: docker name: default steps: - name: build image: fedora commands: - dnf -y install sbcl make gcc git redhat-rpm-config zlib-devel - curl -O https://beta.quicklisp.org/quicklisp.lisp - sbcl --load quicklisp.lisp --non-interactive --eval '(quicklisp-quickstart:install)' - echo '(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp" (user-homedir-pathname)))) (when (probe-file quicklisp-init) (load quicklisp-init)))' > ~/.sbclrc - make ```
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
jmcbray/germinal!15
No description provided.