Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,5 @@ debian/rclone-browser*
/release
/bs0.cmd
/src/*.autosave
*.appimage
Dockerfile.appimage
32 changes: 32 additions & 0 deletions ACKNOWLEDGMENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Acknowledgments

This project is a front end for [rclone](https://rclone.org/), which has had a profound effect on educational and research communities by allowing financially constrained students and researchers to utilize cloud storage while working across multiple computational servers and institutions. We are grateful to the rclone developers and community for creating such a powerful and accessible tool that enables this work.

This project also uses the following external tools and libraries during development and packaging. We acknowledge and thank their creators and maintainers:

## Build and Packaging Tools

- **[Inno Setup](https://github.com/jrsoftware/issrc)** - Windows installer creation tool by Jordan Russell and Martijn Laan
- **[node-appdmg](https://github.com/LinusU/node-appdmg)** - macOS DMG creation tool by Linus Unnebäck
- **[qcron](https://github.com/Mankalas/qcron)** - C++ cron-like library by Mankalas (used in earlier versions)
- **[linuxdeploy](https://github.com/linuxdeploy/linuxdeploy)** - Linux AppImage deployment tool
- **[linuxdeploy-plugin-qt](https://github.com/linuxdeploy/linuxdeploy-plugin-qt)** - Qt plugin for linuxdeploy
- **[linuxdeploy-plugin-appimage](https://github.com/linuxdeploy/linuxdeploy-plugin-appimage)** - AppImage creation plugin
- **[AppImageKit](https://github.com/AppImage/AppImageKit)** - AppImage format and tools

## Development and Testing Tools

- **[Docker](https://www.docker.com/)** - Containerization platform used for isolated build environments
- **[Vagrant](https://www.vagrantup.com/)** - Virtual machine management tool (optional, used for testing VM environments)

## Runtime Dependencies

- **[Qt5](https://www.qt.io/)** - Cross-platform application framework (Core, Gui, Widgets, Network modules)
- **[rclone](https://rclone.org/)** - Command-line program to manage files on cloud storage

## Other Resources

- Screenshots and images may reference or use resources from the original Rclone Browser project by Martins Mozeiko

These tools are used as external dependencies and are not distributed as part of this software. Please refer to their respective licenses and documentation.

18 changes: 9 additions & 9 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,15 +125,15 @@
- Mount and unmount folders on macOS and GNU/Linux
- Optionally minimizes to tray, with notifications when upload/download finishes

[1.8.0]: https://github.com/kapitainsky/RcloneBrowser/releases/tag/1.8.0
[1.7.0]: https://github.com/kapitainsky/RcloneBrowser/releases/tag/1.7.0
[1.6.0]: https://github.com/kapitainsky/RcloneBrowser/releases/tag/1.6.0
[1.5.3]: https://github.com/kapitainsky/RcloneBrowser/releases/tag/1.5.3
[1.5.2]: https://github.com/kapitainsky/RcloneBrowser/releases/tag/1.5.2
[1.5.1]: https://github.com/kapitainsky/RcloneBrowser/releases/tag/1.5.1
[1.5]: https://github.com/kapitainsky/RcloneBrowser/releases/tag/1.5
[1.4.1]: https://github.com/kapitainsky/RcloneBrowser/releases/tag/1.4.1
[1.4]: https://github.com/kapitainsky/RcloneBrowser/releases/tag/1.4
[1.8.0]: https://github.com/zaphodbeeblebrox3rd/RcloneBrowser/releases/tag/1.8.0
[1.7.0]: https://github.com/zaphodbeeblebrox3rd/RcloneBrowser/releases/tag/1.7.0
[1.6.0]: https://github.com/zaphodbeeblebrox3rd/RcloneBrowser/releases/tag/1.6.0
[1.5.3]: https://github.com/zaphodbeeblebrox3rd/RcloneBrowser/releases/tag/1.5.3
[1.5.2]: https://github.com/zaphodbeeblebrox3rd/RcloneBrowser/releases/tag/1.5.2
[1.5.1]: https://github.com/zaphodbeeblebrox3rd/RcloneBrowser/releases/tag/1.5.1
[1.5]: https://github.com/zaphodbeeblebrox3rd/RcloneBrowser/releases/tag/1.5
[1.4.1]: https://github.com/zaphodbeeblebrox3rd/RcloneBrowser/releases/tag/1.4.1
[1.4]: https://github.com/zaphodbeeblebrox3rd/RcloneBrowser/releases/tag/1.4
[1.2]: https://github.com/mmozeiko/RcloneBrowser/releases/tag/1.2
[1.1]: https://github.com/mmozeiko/RcloneBrowser/releases/tag/1.1
[1.0.0]: https://github.com/mmozeiko/RcloneBrowser/releases/tag/1.0.0
29 changes: 27 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,31 @@
project(rclone-browser)
# CMake 3.5 is required for compatibility with modern CMake versions (4.0+)
# which removed support for projects requiring < 3.5. CMake 3.5 was released
# in 2016 and should be available on all supported platforms via package
# managers (Homebrew, etc.) or direct download.
# Note: This does NOT affect the minimum macOS version the app can run on
# (controlled by CMAKE_OSX_DEPLOYMENT_TARGET in src/CMakeLists.txt).

# Check CMake version and provide helpful error message if too old
if(CMAKE_VERSION VERSION_LESS "3.5")
message(FATAL_ERROR "\n"
"CMake 3.5 or higher is required to build this project.\n"
"Your current CMake version is: ${CMAKE_VERSION}\n\n"
"To install CMake 3.5+ on your system:\n"
" macOS (Homebrew): brew install cmake\n"
" macOS (MacPorts): sudo port install cmake\n"
" Linux (Ubuntu/Debian): sudo apt-get install cmake\n"
" Linux (Fedora/RHEL): sudo dnf install cmake\n"
" Linux (Arch): sudo pacman -S cmake\n"
" Windows: Download from https://cmake.org/download/\n"
" Or build from source: https://cmake.org/download/\n\n"
"After installing, make sure the new CMake is in your PATH.\n"
"You can verify with: cmake --version\n"
)
endif()

cmake_minimum_required(VERSION 2.8)
cmake_minimum_required(VERSION 3.5)

project(rclone-browser)

if(WIN32)
# link automatically to qtmain.lib on Windows
Expand Down
68 changes: 68 additions & 0 deletions DEVELOPER_README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Developer Guide

## Building AppImage with Docker

If you're building on Ubuntu 18.04+ but want to create an AppImage compatible with CentOS 7+ and Ubuntu 16.04+ (glibc 2.17+), you can use Docker to build in a CentOS 7 environment:

1. Install Docker: `sudo apt install docker.io` (or use your distribution's package manager)
2. Build the AppImage using Docker:
```bash
./scripts/build_AppImage_docker.sh
```
3. The AppImage will be created in the `release/` directory with glibc 2.17 compatibility

This method allows you to build on modern systems (Ubuntu 20.04+, etc.) while ensuring the resulting AppImage works on older systems (CentOS 7+, Ubuntu 16.04+). The Docker container provides an isolated CentOS 7 build environment with glibc 2.17.

**Note:** The regular build script (`scripts/release_AppImage.sh`) will warn you if you're building on a system with glibc > 2.17 and suggest using Docker for better compatibility.

### Supported Distributions

The AppImage built using this Docker method is compatible with:
- CentOS 7+ (glibc 2.17+)
- RHEL 7+ (glibc 2.17+)
- Ubuntu 16.04+ (glibc 2.23+)
- Debian Stretch+ (glibc 2.24+)
- Most modern Linux distributions released after 2014

### Troubleshooting

If you encounter issues building the Docker image:
- Ensure Docker is running: `sudo systemctl start docker` (or equivalent)
- Check Docker permissions: You may need to add your user to the `docker` group or use `sudo`
- Verify the Dockerfile is in the repository root: `Dockerfile.appimage`
- Check available disk space: Docker images and builds can require several GB

If the AppImage build fails inside the container:
- Check that all source files are present in the repository
- Verify that the build script has execute permissions: `chmod +x scripts/release_AppImage.sh`
- Review the build output for specific error messages

## Testing AppImage on CentOS 7

After building the AppImage, you can test it on CentOS 7 to verify it works correctly. The `tests/` directory contains a script to run the AppImage in a CentOS 7 container with GUI support.

### Quick Start

1. **Build the AppImage** (if you haven't already):
```bash
./scripts/build_AppImage_docker.sh
```

2. **Run the AppImage in CentOS 7 container with VNC** (recommended):
```bash
./tests/run_test_container.sh --vnc
```
Then connect to the VNC server at `localhost:5901` (password: `password`) to see the GUI.

3. **Or use X11 forwarding** (Linux hosts only):
```bash
./tests/run_test_container.sh --x11
```
The AppImage GUI will appear in your X server window.

The script spins up a CentOS 7 container, mounts your AppImage, and launches it automatically so you can verify it works correctly.

### Detailed Documentation

For complete instructions, troubleshooting, and optional VM-based testing with Vagrant, see [tests/README.md](tests/README.md).

4 changes: 0 additions & 4 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,6 @@ MIT License

Copyright (c) 2019-2020 kapitainsky (Rclone Browser)
Copyright (c) 2017 Martins Mozeiko (Rclone Browser)
Copyright (c) 2015 Mankalas (qcron)
Copyright (c) 2013 Linus Unnebäck (node-appdmg)
Copyright (c) 1997-2020 Jordan Russell (Inno Setup - Windows Installer)
Portions Copyright (c) 2000-2020 Martijn (Inno Setup - Windows Installer)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
Loading