Dev Help w/ Docs Contribution (on MacOS)

Hi, hi, your friendly designer here. Trying to get the website running on my local machine, using Git. Which in my world, is akin to most people rebuilding an engine. So, I’m creating this topic to get myself some community support for questions that I will have, that I suspect may be some of the easiest questions for folks in this forum to respond to.

First-up: I’m on Step 4 of the Readme and my CLI is not happy. :confused:

Helps? :slight_smile:

1 Like

Try with

xcode-select --install

if it’s not work

xcode-select --reset
xcode-select -s /Library/Developer/CommandLineTools
2 Likes

Hi @ninavizz, what @51lieal said. It looks like XCode needs updating on your machine. That sometimes happens after MacOS upgrades, it’s probably not anything you did wrong. :slightly_smiling_face: (Relevant StackOverflow answer.)

2 Likes

Thank you both so much!! Right, I always forget about Stack Overflow. :slight_smile:

Ok, so I did do the above… but then immediately hit the below. :confused:

@ninavizz, do you happen to have a Qubes machine where you could do this in a Fedora 33 qube? I can confirm the instructions work there, so that might be the easiest path forward for you.

I would love to have instructions that work across all platforms, but that would require more people helping to figure out working instructions on all the other platforms and then contributing those instructions to this doc. I think you might be the first person ever to try this on a Mac.

1 Like

The podman guide only tells you how to install podman. Not podman-compose. Perhaps you didn’t install that? I’m not sure if it’s a good resource but maybe this guide helps: Podman - Daemon- and rootless Containers - nine Support

It’s weird how they don’t mention podman-compose on the official website.

Or podman-compose was installed but it’s not in your PATH. Can you let us know if you installed it?

1 Like

I mean, I did what the docs said to do? :frowning:

I have no idea what “Podman Compose” is, as a distinct thing from what I installed. I looked at the page above and ran the first suggested command (cut-and-paste, woo!), but have no idea how to do the second one—partly because I have no idea what it’s referencing, and partly because… well, I have no idea what it’s referencing.

I’d be happy to submit a PR with instructions for how to successfully get this up and running on my Mac, once I get this figured out.

@adw I could totally try to do this on my Qubes laptop (a very, very old Lenovo ThinkPad), but a) It always has to be plugged-in as the battery sucks, b) It doesn’t have a backlit keyboard, c) I can’t use it with my big monitor, and d) It’s keyboard is so different from my Mac’s (big/clunky) that I struggle to type on it… so between A&B, I don’t ever use it outside of my office, and between C&D I struggle to use it even when I’m in my office. These are literally the only reasons I don’t often use Qubes, and much of why I’m pushing to find another, more modern ThinkPad or other machine, to use as a non-SecureDrop-customized Qubes laptop (and one I can run test builds on).

Are you sure?

The first step of the instructions is:

  1. Install podman and podman-compose.

It sounds like you might have installed podman but missed podman-compose.

I didn’t see your terminal output from installing podman and/or podman-compose in this thread anywhere.

Suggestion: Providing the text version of your terminal output rather than an image would allow it to be searchable. It would also allow mailing list users who can’t see images to help.

2 Likes

Per my comment to Deeplow, I don’t know how to do the second line on the podman-compose install. I’ve done a bunch of stack-overflow-ing, and this is where I’m at with the podman-compose attempt at an installation:

Last login: Sun Jul 11 14:33:54 on ttys004
nina@Nymeria ~ % touch .bash_profile
nina@Nymeria ~ % open -e .bash_profile
nina@Nymeria ~ % echo ~
/Users/ninaa
nina@Nymeria ~ % echo "export PATH=/usr/local/lib:$PATH" >> ~/.bashrc
nina@Nymeria ~ % tail ~/.bashrc
export PATH=/usr/local/lib:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/MacGPG2/bin
nina@Nymeria ~ %
nina@Nymeria ~ % cd qubesos.github.io/
nina@Nymeria qubesos.github.io % sudo make
Password:
podman-compose up
make: podman-compose: No such file or directory
make: *** [all] Error 1
nina@Nymeria qubesos.github.io % 
1 Like

Don’t give up! (The code block is great! A lot more readable than the screenshots!) A few distinct things:

  1. MacOS doesn’t load the ~/.bashrc file when your start a Terminal, it loads ~/.bash_profile instead. (It’s an arbitrary convention that happens to be different in different operating systems.)
    There are a few different ways to deal with those different conventions, one if them is to apply to ~/.bash_profile whatever instructions you find for ~/.bashrc.

  2. In both cases, those are executed/loaded automatically when the terminal starts, so you need to restart your terminal after any modification. Or you can reload them yourself by executing the command: source ~/.bash_profile (sometimes seen as . ~/.bash_profile – yes, it is a single dot, that’s why I prefer using source :stuck_out_tongue:)

  3. If podman-compose is not installed on you machine yet, the ~/.bashrc/~/.bash_profile additions are premature.
    I’m not very familiar with podman, but I’ve found this GitHub repository that I believe is maintained be the same people.
    If someone could confirm that podman-compose is installed using DNF on Fedora, then maybe you could give a try to installing it with pip3 on MacOS. Wait until that confirmation though, I’d rather you don’t install the wrong program :wink:
    Note: I’m pretty sure MacOS includes pip3 out of the box, but I might be wrong.

1 Like

Screenshots are my everything—it is most helpful when folks like you and @adw do the kind “ahem, code block?” nudge. :slight_smile:

Thank you for the above! I do think it’s a PIP problem, as I’m over a dozen versions of PIP behind—but cannot seem to update my PIP. Unfortunately I need to tend to my garden right now, but am really looking forward to diving into the above once I get back (which I’m not even bothering to read right now, because I see it and it all just kind of warps into this foreign language to me that I need to really focus on to ever understand, lol).

Community is everything, and only ever possible by good people in it. Thank you so much for the above—more, later! :heavy_heart_exclamation:

2 Likes

Took a gardening break. Tried again. Current Terminal outputs, below. :confused: :pray:

nina@Nymeria ~ % ~/.bash_profile
zsh: permission denied: /Users/ninaa/.bash_profile
nina@Nymeria ~ % sudo ~/.bash_profile
Password:
sudo: /Users/ninaa/.bash_profile: command not found
nina@Nymeria ~ % $ python -m pip --version
zsh: command not found: $
nina@Nymeria ~ %  python -m pip --version 
pip 9.0.1 from /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (python 2.7)
nina@Nymeria ~ % sudo systemctl start podman
Password:
sudo: systemctl: command not found
nina@Nymeria ~ %  python -m pip --version   
pip 9.0.1 from /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (python 2.7)
nina@Nymeria ~ %  python3 -m pip --version
pip 21.1.3 from /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pip (python 3.9)
nina@Nymeria ~ % sudo launchctl start podman
Password:
nina@Nymeria ~ % ls    
Agent					xxxxxx			git-workshop
Applications				KeyBase_YouSureDialog.mp4		xxxxx
AppsLaunch.mpeg				Library					xxxxx
BrandIMG_GitHub.png			xxxxx		index.html
Creative Cloud Files			Movies					ixdastuff
Creative Cloud Files (archived) (1)	Music					qubesos.github.io
Creative Cloud Files (archived) (2)	Pictures				securedrop
Desktop					xxxxx			securedrop-client
Documents				basicstyles.css				securedrop-workstation-docs
Downloads				bin					workyness
Dropbox					code					xxxx
Google Drive				get-pip.py
nina@Nymeria ~ % cd qubes.os.github.io
cd: no such file or directory: qubes.os.github.io
nina@Nymeria ~ % cd qubesos.github.io
nina@Nymeria qubesos.github.io % sudo make
podman-compose up
make: podman-compose: No such file or directory
make: *** [all] Error 1
nina@Nymeria qubesos.github.io % start podman-compose
zsh: command not found: start
nina@Nymeria qubesos.github.io % ~
zsh: permission denied: /Users/ninaa
nina@Nymeria qubesos.github.io % sudo ~ 
sudo: /Users/ninaa: command not found
nina@Nymeria qubesos.github.io % cd ~
nina@Nymeria ~ % start podman_compose
zsh: command not found: start
nina@Nymeria ~ % podman_compose
zsh: command not found: podman_compose
nina@Nymeria ~ % sudo launchctl start podman-compose
nina@Nymeria ~ % cd qubesos.github.io
nina@Nymeria qubesos.github.io % sudo make
podman-compose up
make: podman-compose: No such file or directory
make: *** [all] Error 1
nina@Nymeria qubesos.github.io % podman_compose up                  
zsh: command not found: podman_compose
nina@Nymeria qubesos.github.io % 

and

Last login: Sun Jul 11 18:57:55 on ttys001
nina@Nymeria ~ % source ~/.bash_profile
nina@Nymeria ~ % 

and

Last login: Sun Jul 11 16:36:58 on ttys000
nina@Nymeria ~ % /Users/ninaa/Library/Python/3.6/bin/podman-compose ; exit;
usage: podman-compose [-h] [-f FILE] [-p PROJECT_NAME]
                      [--podman-path PODMAN_PATH] [--no-ansi] [--no-cleanup]
                      [--dry-run]
                      [-t {1pod,1podfw,hostnet,cntnet,publishall,identity}]
                      {pull,push,build,up,down,run,start,stop,restart} ...

optional arguments:
  -h, --help            show this help message and exit
  -f FILE, --file FILE  Specify an alternate compose file (default: docker-
                        compose.yml)
  -p PROJECT_NAME, --project-name PROJECT_NAME
                        Specify an alternate project name (default: directory
                        name)
  --podman-path PODMAN_PATH
                        Specify an alternate path to podman (default: use
                        location in $PATH variable)
  --no-ansi             Do not print ANSI control characters
  --no-cleanup          Do not stop and remove existing pod & containers
  --dry-run             No action; perform a simulation of commands
  -t {1pod,1podfw,hostnet,cntnet,publishall,identity}, --transform_policy {1pod,1podfw,hostnet,cntnet,publishall,identity}
                        how to translate docker compose to podman
                        [1pod|hostnet|accurate]

command:
  {pull,push,build,up,down,run,start,stop,restart}
    pull                pull stack images
    push                push stack images
    build               build stack images
    up                  Create and start the entire stack or some of its
                        services
    down                tear down entire stack
    run                 create a container similar to a service to run a one-
                        off command
    start               start specific services
    stop                stop specific services
    restart             restart specific services

[Process completed]

AFAIK you cannot run podman directly on MacOS, to quote from this page:

The core Podman runtime environment can only run on Linux operating systems. But other operating systems can use the “remote client” to manage their containers to a Linux backend. This remote client is nearly identical to the standard Podman program. Certain functions that do not make sense for remote clients have been removed. For example, the “–latest” switch for container commands has been removed.

1 Like

Yes, I installed it with sudo dnf podman-compose on Fedora 33.

Well, crap. Thank you!!

If anyone sees this who has gotten the Qubes website up in a dev environment on a Mac, I would love to learn how—and would gladly open a PR to update the instructions, to document in the repo’s readme. I’ll also poke some other Qubes/Mac folks I work with.

Just tried this “hack,” too, based on another repo’s local git guidance. No dice… but my Mac seems to believe I have podman-compose running. I don’t know if it can run on a Mac, but “the core runtime environment” cannot (or, tbh, what that means). Ok, going to bed. I’ll give my brain a break and try tackling world peace, tomorrow. Thx to all the rad folks giving their time and brainwaves to lend an aspiring Git user a hand. :slight_smile:

nina@Nymeria ~ % python3 -m venv .venv
nina@Nymeria ~ % source .venv/bin/activate
(.venv) nina@Nymeria ~ % cd qubesos.github.io/
(.venv) nina@Nymeria qubesos.github.io % sudo make
Password:
podman-compose up
make: podman-compose: No such file or directory
make: *** [all] Error 1
(.venv) nina@Nymeria qubesos.github.io %

As @adw pointed out above, the instructions are written for Fedora based system. The tool podman does not work on Mac yet.

Also on your Mac please double check before doing any command with sudo. Any wrong command/package can destroy your system settings as it will have the superuser power.

In this case the instruction is for a Fedora 33 AppVM, that is why sudo has been mentioned.

2 Likes

Kushal!! Ugh, thank you for that very important cautionary note wrt using sudo on my Mac. That is quite a “duh” I had not thought about. Thank you, also, for your assertions wrt Podman.

I will give into tending to my immediate needs from my Qubes machine, but would also love to be able to do this on my daily-driver (Mac)… and to extend the README to enable others tethered to the fancy apples, to do the same. shakes fist at too many makers of design software, for refusing to make Linux clients

1 Like

How about using docker and docker-compose instead of podman and podman-compose? That’s what I used to use and what the instructions used to say. Can’t remember why I changed them (docker probably stopped working on Fedora), but it might still work for you. IIRC, it required some slight whitespace changes to the docker-compose.yml file. Check the git log for details.

2 Likes

Or the other old instructions using bundler and jekyll? Those also work,
and will work on a MAC : Jekyll on macOS | Jekyll • Simple, blog-aware, static sites

1 Like