# myrelease
==================

myRelease is a Linux script that quickly packages Lazarus(.lpi) project files into deb and rpm packages in batch. It supports multiple CPU architectures and multiple OS platforms (in development). Main features include:
* Automatically generates rpm and deb packages, filling in required information
* Includes i18n translation files
* Includes necessary .icon and .desktop files
* Supports multiple CPU architectures
* Supports multiple OS platforms (in development)

### Compilation
This is a script, no compilation is required.

### Installation
Make sure myrelease.sh has executable permission.
Enter the terminal and run ./myrelease.sh -i
Enter your password when prompted. If not installed, you must include the full path to the script each time you use it.

### Runtime Environment
myrelease requires the following packages/commands:
xmlstarlet, dpkg-deb, rpmbuild, zip, fakeroot
The script will check at runtime and show an error if any are missing.

### Usage
* By default, it packages all projects contained in .lpi files in the current directory, generating rpm and deb packages in the ./dist/ directory. All information is set to default.
  ~$ cd /your_lazarus_project_dir/
  ~$ myrelease

* Package a specific .lpi project file, generating rpm and deb packages in ./dist/. All information is set to default.
  ~$ myrelease -f /your_lazarus_project_dir/project.lpi

* Other parameters:
  -o dir   Specify output directory (default ./dist/)
  -p       Format version number as XXXX-XX-XX
  -q       Quiet mode, minimal output
  -z       Compress output package files
  -k       Keep temporary files for debugging
  -i       Install myrelease to /usr/bin/
  -c       Clear config file
  -v       Show version number
  -h       Show help

* Modify current project/package information:
Edit your_lazarus_project_dir/myrelease.cfg with a text editor. Note: you must have run myrelease at least once in that directory.

* Modify myrelease default information (to avoid editing myrelease.cfg each time):
Edit ~/.config/myrelease/config with a text editor.

* Examples:
The archive includes two sample projects:
- testprjsingle: a default Lazarus blank project
- testprjmulti: a multi-CPU architecture Lazarus blank project, including linux_x86, linux_aarch64, and win_x86

### Known Issues
* Windows platform functionality is incomplete
* rpm group, Debian section, and desktop categories are untested and may cause issues
* Does not support additional programs/libraries

### License
MIT

### Contact
Eric Quan <gasensor@sina.com> / <gasensor@gmail.com>
www.gasensor.cn

