https://github.com/bearsampp/module-apache
📦 Apache module for Bearsampp
https://github.com/bearsampp/module-apache
apache hacktoberfest httpd-server
Last synced: 17 days ago
JSON representation
📦 Apache module for Bearsampp
- Host: GitHub
- URL: https://github.com/bearsampp/module-apache
- Owner: Bearsampp
- License: gpl-3.0
- Created: 2021-10-29T00:49:49.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-12-22T03:49:16.000Z (3 months ago)
- Last Synced: 2025-12-23T14:55:16.231Z (3 months ago)
- Topics: apache, hacktoberfest, httpd-server
- Homepage: https://bearsampp.com/module/apache
- Size: 21.6 MB
- Stars: 0
- Watchers: 5
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Support: .github/SUPPORT.md
Awesome Lists containing this project
README
[](https://github.com/bearsampp/module-apache/releases/latest)

# Bearsampp Module - Apache
This is a module of [Bearsampp project](https://github.com/bearsampp/bearsampp) involving Apache HTTP Server.
## Build System
This module uses **Gradle** as its build system. The Gradle build provides:
- ✅ Pure Gradle build (no Ant dependencies)
- ✅ Automatic Apache binary download and extraction
- ✅ Remote version discovery from modules-untouched repository
- ✅ Interactive and non-interactive build modes
- ✅ Support for archived versions
- ✅ Configurable build paths
- ✅ Hash file generation (MD5, SHA1, SHA256, SHA512)
- ✅ 7-Zip and ZIP archive formats
## Quick Start
### Prerequisites
- Java 8 or higher
- Gradle (or use the included wrapper)
- 7-Zip (for .7z format archives)
### Build Commands
```bash
# Display build information
gradle info
# List available versions
gradle listVersions
# Build a specific version
gradle release -PbundleVersion=2.4.62
# Build all versions
gradle releaseAll
# Verify build environment
gradle verify
# Clean build artifacts
gradle clean
```
## Documentation
**For detailed build instructions and documentation, see [.gradle-docs/README.md](.gradle-docs/README.md)**
Additional documentation:
| Document | Description |
|-------------------------------------------------------------------|------------------------------------------------|
| [README.md](.gradle-docs/README.md) | Complete build documentation and guide |
| [GRADLE_UPDATES.md](.gradle-docs/GRADLE_UPDATES.md) | Detailed build system updates |
| [CHANGES_SUMMARY.md](.gradle-docs/CHANGES_SUMMARY.md) | Summary of all changes |
| [GRADLE_TMP_PATHS.md](.gradle-docs/GRADLE_TMP_PATHS.md) | Build path structure details |
| [CHANGES_TMP_PATHS.md](.gradle-docs/CHANGES_TMP_PATHS.md) | Temporary paths configuration |
| [REMOTE_PROPERTIES_SUPPORT.md](.gradle-docs/REMOTE_PROPERTIES_SUPPORT.md) | Remote version discovery |
| [MODULES_UNTOUCHED_INTEGRATION.md](.gradle-docs/MODULES_UNTOUCHED_INTEGRATION.md) | Integration guide |
| [CHANGELOG.md](.gradle-docs/CHANGELOG.md) | Complete changelog |
## Configuration
### build.properties
Configure the module build settings:
```properties
bundle.name = apache
bundle.release = 2025.8.15
bundle.type = bins
bundle.format = 7z
```
| Property | Description | Example Value |
|-------------------|--------------------------------------|----------------|
| `bundle.name` | Name of the bundle | `apache` |
| `bundle.release` | Release version | `2025.8.15` |
| `bundle.type` | Type of bundle | `bins` |
| `bundle.format` | Archive format (7z or zip) | `7z` |
### Build Path Configuration
You can configure the build output path in three ways (priority order):
1. **In build.properties:**
```properties
build.path = C:/Bearsampp-build
```
2. **Environment variable:**
```bash
set BEARSAMPP_BUILD_PATH=C:/Bearsampp-build
```
3. **Default:** Uses `../bearsampp-build` relative to project root
## Version Management
### Available Versions
Versions are detected from:
- `bin/` - Current/active versions
- `bin/archived/` - Archived/older versions
- `modules-untouched` - Remote repository (automatic discovery)
### Version Resolution Strategy
When building, the system checks for Apache binaries in this order:
1. **Local `bin/` directory** - Check for version folder
2. **Local `bin/archived/` directory** - Check archived versions
3. **Remote `apache.properties`** - Fetch from modules-untouched repository
4. **Direct repository download** - Download from modules-untouched GitHub
This multi-tier fallback strategy ensures maximum flexibility and automatic version discovery without manual configuration.
**Example:**
```bash
# List local versions
gradle listVersions
# List remote versions
gradle listReleases
# Check integration
gradle checkModulesUntouched
```
## Output Structure
Build artifacts are created in the `bearsampp-build` directory:
```
bearsampp-build/
├── bins/apache/{release}/ # Final packaged archives
│ ├── bearsampp-apache-{version}-{release}.7z
│ ├── bearsampp-apache-{version}-{release}.7z.md5
│ ├── bearsampp-apache-{version}-{release}.7z.sha1
│ ├── bearsampp-apache-{version}-{release}.7z.sha256
│ └── bearsampp-apache-{version}-{release}.7z.sha512
└── tmp/ # Temporary build files
├── bundles_prep/bins/apache/ # Prepared bundles
├── bundles_build/bins/apache/ # Build staging
├── bundles_src/ # Source bundles
├── downloads/apache/ # Downloaded dependencies
└── extract/apache/ # Extracted archives
```
**Archive Structure:**
Each archive contains the Apache version folder at the root:
```
bearsampp-apache-2.4.62-2025.8.15.7z
└── apache2.4.62/ ← Version folder at root
├── bin/
├── conf/
├── modules/
└── ...
```
## Features
### Interactive Mode
Run `gradle release` without parameters for interactive version selection:
```bash
gradle release
```
The system will display all available versions with location tags `[bin]` or `[bin/archived]` and prompt you to select one.
### Batch Building
Build all available versions at once:
```bash
gradle releaseAll
```
This will iterate through all versions in `bin/` and `bin/archived/` directories and build each one.
### Remote Version Discovery
The build system automatically discovers new Apache versions from the modules-untouched repository:
- Fetches version information from `apache.properties`
- Downloads binaries automatically when not found locally
- No manual configuration required for new versions
- Fallback to direct repository access if needed
**Check integration:**
```bash
gradle checkModulesUntouched
```
## Downloads
Official module downloads are available at:
**https://bearsampp.com/module/apache**
## Issues
Issues must be reported on [Bearsampp repository](https://github.com/bearsampp/bearsampp/issues).
## Contributing
Contributions are welcome! Please see the [Bearsampp contribution guidelines](https://bearsampp.com/contribute).
## Statistics

## License
This project is licensed under the GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for details.