Remove build and installation of whisper.cpp, and installation of ffmpeg.
Rename build_llama_and_whisper.sh to build_llama.sh.
Update Containerfiles to reference new script name.
Consolidate management of cmake args in build_llama.sh.
Remove references to whisper-server in various locations.
Signed-off-by: Mike Bonnet <mikeb@redhat.com>
Fixes #812
This commit adds a mechanism to create self-contained macOS installer
packages (.pkg) that bundle Python and all dependencies, eliminating
the need for users to install Python separately.
**New Features:**
1. **PyInstaller Spec File** (ramalama.spec)
- Configures PyInstaller to create standalone executable
- Bundles all ramalama modules and dependencies
- Includes configuration files, man pages, and shell completions
- Creates macOS app bundle structure
2. **Build Script** (scripts/build_macos_pkg.sh)
- Automated build process for macOS .pkg installer
- Uses PyInstaller to create standalone binary
- Packages everything into macOS installer format
- Includes post-install script for PATH configuration
- Generates installer with welcome/readme/conclusion screens
3. **GitHub Actions Workflow** (.github/workflows/build-macos-installer.yml)
- Automatically builds macOS installer on release
- Runs on macOS runners with proper dependencies
- Uploads installer as release asset
- Generates SHA256 checksums for verification
- Can be triggered manually for testing
4. **Documentation** (docs/MACOS_INSTALL.md)
- Comprehensive installation guide for macOS users
- Multiple installation methods documented
- Troubleshooting section
- Prerequisites and system requirements
- Uninstallation instructions
5. **README Update**
- Added macOS installer as primary installation method
- Links to detailed installation guide
**Benefits:**
- No Python installation required for end users
- Single-click installation experience
- Includes all dependencies in one package
- Follows macOS packaging best practices
- Automatic PATH configuration
- Professional installer UI with instructions
**Installation:**
Users can now download RamaLama-VERSION-macOS-Installer.pkg from
GitHub Releases and install with a simple double-click or:
sudo installer -pkg RamaLama-*-macOS-Installer.pkg -target /
The installer places files in /usr/local/ following macOS conventions.
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Enable RamaLama to run on Windows with Docker/Podman in a VM by fixing
platform-specific compatibility issues throughout the codebase.
Key changes:
Path handling:
- Add path_utils.py module for cross-platform path conversion
- Implement normalize_host_path_for_container() to convert Windows paths
(C:\Users\...) to container-friendly format (/c/Users/...)
- Update RAG and transport modules to use path conversion for volume mounts
- Fix Ollama cache detection to use os.path.expanduser() for HOME
Configuration:
- Add Windows-specific config paths (APPDATA, LOCALAPPDATA)
- Make DEFAULT_CONFIG_DIRS platform-aware (Unix vs Windows)
- Add Windows OS classifier to pyproject.toml
- Update shortnames.py to use Windows-specific paths
Unix-only APIs:
- Make os.geteuid() calls conditional (not available on Windows)
- Update get_default_store() and add_user() to check for geteuid
- Add conditional checks before calling Unix-specific functions
Signal handling:
- Make SIGKILL, SIGALRM conditional (Windows only supports SIGINT/SIGTERM)
- Add threading.Timer fallback for daemon idle checks on Windows
- Implement conditional signal.alarm() checks in chat and daemon
- Add graceful fallback in process cleanup for missing SIGKILL
File locking:
- Replace fcntl (Unix-only) with platform-specific locking
- Use msvcrt.locking() on Windows for file locking
- Maintain fcntl.flock() for Unix/Linux systems
- Add proper exception handling for both platforms
Model store (symlinks):
- Add create_file_link() for cross-platform file linking
- Try hardlink first (works on Windows without admin, space-efficient)
- Fall back to symlink (Unix/Mac and Windows with developer mode)
- Final fallback to copy (always works but uses more space)
- Update all transport modules to use create_file_link()
- Replace os.symlink() calls in model store, ollama, huggingface, modelscope
This allows Windows users to run RamaLama with containerized models using
Docker Desktop or Podman Desktop, with proper path translation between the
Windows host and Linux containers, and without requiring admin privileges
or developer mode for the model store.
Cursor-AI-Generated
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
The rpm name changed from python3-ramalama to ramalama in
https://github.com/containers/ramalama/pull/1693.
The rpm name in README.md was updated at that time but the change seems to have
been lost in a subsequent commit.
Signed-off-by: Oliver Walsh <owalsh@redhat.com>
Based on that announcment
https://huggingface.co/blog/hf-cli?utm_source=chatgpt.com
This change is a straightforward rename that affects documentation (README.md, man pages, docsite),
Python implementation (huggingface.py transport and base class), and test infrastructure to align with Hugging Face's current CLI tooling.
Signed-off-by: Yariv Rachmani <yrachman@redhat.com>
Simplify ramalama's top-level description. Remove the duplicate
statements.
Also make sure all references to PyPI are spelled this way.
Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* Start adding rpm/ramalama.spec for Fedora
Add a ramalama.spec to sit next to python-ramalama.spec while we get
this reviewed. Change various configs so they are aware of
ramalama.spec
Signed-off-by: Stephen Smoogen <ssmoogen@redhat.com>
* Add needed obsoletes/provides in base rpm to start process.
Signed-off-by: Stephen Smoogen <ssmoogen@redhat.com>
* Try to fix CI problems with initial mr
The initial MR puts two spec files in the same directory which was
causing problems with the CI. This splits them off into different
directories which should allow for the tooling to work.
Signed-off-by: Stephen Smoogen <ssmoogen@redhat.com>
* Finish move of Fedora rpm package to new name.
Put changes into various files needed to allow for new RPM package
`ramalama` to build in Fedora infrastructure versus python3-ramalama.
Signed-off-by: Stephen Smoogen <ssmoogen@redhat.com>
* Fix problem with path names lsm5 caught
Signed-off-by: Stephen Smoogen <ssmoogen@redhat.com>
---------
Signed-off-by: Stephen Smoogen <ssmoogen@redhat.com>
Co-authored-by: Stephen Smoogen <ssmoogen@redhat.com>
- Corrected the model name under the Benchmark section; previous name was not available in Ollama's registry.
- Added instructions to switch between CPU-only mode and using all available GPUs via CUDA_VISIBLE_DEVICES.
Signed-off-by: Mario Antonio Bortoli Filho <mario@bortoli.dev>
mlx_lm.server is the only one in my path at least on my system.
Also, printing output like this which doesn't make sense:
Downloading huggingface://RedHatAI/Llama-3.2-1B-Instruct-FP8-dynamic/model.safetensors:latest ...
Trying to pull huggingface://RedHatAI/Llama-3.2-1B-Instruct-FP8-dynamic/model.safetensors:latest ...
Also remove recommendation to install via `brew install ramalama`, skips installing Apple specific
dependancies.
Signed-off-by: Eric Curtin <ecurtin@redhat.com>
For now we will just add the chat command, next PR will remove the
external chat command and just use this internal one.
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
This does nothing on systems with no GPUs, but on Vulkan-capable
systems, this would automatically offload the model to capable
accelerators.
Take this moment to claim Vulkan support in README also.
Signed-off-by: Leorize <leorize+oss@disroot.org>