A new interface for LibreTime.
Go to file
Bill Burton 3179651dec Installer auto-detects distro, portable system init
The theme of this commit is to make the install process more
resiliant to differences in distros by testing for specific
features or versions of executables rather than making as many
assumptions just on the distro and release.

* Distro and Release detection (install, Vagrantfile)
  - Added detection logic for distro and release based on
    /etc/os-release which is available on all potential supported
    distros. The --distribution and --release options can be used
    to override detection.
  - Added distro and release checks to ensure values specified are
    for a supported release.
  - Changed some distro checks to use booleans, e.g.
    if $is_centos_7; then ...
  - Added a simple check so if --distribution is specified, it will
    ensure it's at least sane, e.g. centos on debian or debian on
    centos will be caught.
  - In Vagrantfile, removed --distribution and --release options for
    all distro and release combinations.

* Portable Init System Detection and Management (install, centos.sh)
  - Added detection logic for init system type - systemd, Upstart or
    System V in the function systemInitDetect().
  - Added portable init system install in the function
    systemInitInstall() which depends on systemInitDetect(). After
    installing files, enables and starts service.
  - Added portable init system commands in the function
    systemInitCommand() for start, stop, reload, restart and status.
  - Python services don't support systemd but unconditionally install
    scripts for both Upstart and System V. Disabled by passing
    --no-init-script to setup.py for each service.
  - When upgrading, remove all old system init files in /etc/init,
    /etc/init.d, /etc/default and /etc/systemd/system.
  - In centos.sh, removed install of airtime systemd service files
    as it's now handled by install.
  - Created an Upstart .conf for airtime-celery
  - In systemd file for airtime-celery, changed absolute path to
    /usr/local/bin/celery and for centos, the install symlinks
    celery to /usr/local/bin.

* External Dependencies Install (install)
  - For external dependencies, only attempt to install for Debian-
    based distros with apt-get. For centos, a warning is displayed.
  - For systems with apt-get, detect version and if 1.1 or greater,
    use new force options, otherwise use --force-yes option.

* Configuring Apache (install)
  - For Apache, check for centos and use httpd for binary and
    service, otherwise use apache2ctl and apache2.
  - Detect Apache version 2 or better in a more reliable manner.
  - Detect Apache root folder and conf file name by running
    apache2ctl -V or httpd -V as appropriate.
  - Various checks for centos as it doesn't support the Debian
    Apache utilities a2ensite/a2dissite, a2enmod/a2dismod, etc.

* Installing Airtime Services (install)
  - Detect Python version. If less than 2.7.9, install OpenSSL
    support.
  - Prevent installing init files by passing --no-init-script to
    setup.py for each service.
  - Use systemInitInstall to install, enable and start each service
    after setup.py has run.
  - Removed filtering for WEB_USER for files in
    /etc/init/airtime*.template as that is handled in the
    systemInitInstall() function.

* Configuring PHP in Apache (install)
  - Detect PHP conf folder by checking a list of locations rather
    than making assumptions based on the distro and release.

* Configuring PostgreSQL (install)
  - Detects if the airtime user has already been created. If not,
    then creates the user.

* Installing Locales (install)
  - Minor changes to check for centos and prevent from running.
2017-04-28 11:00:50 -04:00
airtime_mvc Remove legacy upstream name from defaultdata 2017-04-16 00:14:54 +02:00
dev_tools Create release tarball using travis 2017-03-19 11:31:56 +01:00
docs Switch Vagrantfile to use bento boxes for Debian #170 2017-04-19 14:42:12 -04:00
installer Installer auto-detects distro, portable system init 2017-04-28 11:00:50 -04:00
python_apps Installer auto-detects distro, portable system init 2017-04-28 11:00:50 -04:00
tests Merge branch 'cc-5709-airtime-analyzer-cloud-storage' into cc-5709-airtime-analyzer-cloud-storage-saas 2015-01-07 14:17:02 -05:00
travis Create release tarball using travis 2017-03-19 11:31:56 +01:00
utils Check for liquidsoap on PATH 2017-04-09 11:46:49 +02:00
.gitattributes Create .gitattributes to ensure proper cloning with Windows Git 2017-04-09 14:41:52 -04:00
.gitignore Ignore .vagrant dir 2017-03-07 16:28:00 +01:00
.travis.yml Create release tarball using travis 2017-03-19 11:31:56 +01:00
.zfproject.xml CC-1665: Scheduled stream rebroadcasting and recording 2012-07-30 21:48:04 -04:00
CONTRIBUTING.md Create CONTRIBUTING.md 2017-02-14 22:51:31 +01:00
CREDITS Merge branch 'saas' into cc-5709-airtime-analyzer-cloud-storage-saas 2015-01-23 16:36:31 -05:00
LICENSE Switch from GPL to AGPL 2014-09-12 16:51:45 +02:00
LICENSE_3RD_PARTY Updated dependency versions 2013-06-20 15:48:47 +01:00
README Added note to README for users using non-bash CLIs 2015-03-12 09:58:30 -04:00
README.md fixing link to code of conduct 2017-03-24 08:57:55 -04:00
Vagrantfile Installer auto-detects distro, portable system init 2017-04-28 11:00:50 -04:00
build.sh Make git optional during build 2017-03-09 16:12:44 +01:00
changelog changelog updates 2013-10-08 14:24:56 -04:00
composer.json Re-implement version check 2017-03-20 20:36:46 +01:00
composer.lock Re-implement version check 2017-03-20 20:36:46 +01:00
install Installer auto-detects distro, portable system init 2017-04-28 11:00:50 -04:00
mkdocs.yml FreeIPA Auth Adaptor for LibreTime 2017-03-31 14:16:31 +02:00
uninstall Remove media-monitor from uninstaller; update composer.lock 2015-09-18 15:36:42 -04:00

README.md

LibreTime

Build Status

LibreTime makes it easy to run your own online or terrestrial radio station. It is a community managed fork of the AirTime project.

It is managed by a friendly inclusive community of stations from around the globe that use, document and improve LibreTime. Join us in fixing bugs and in defining how we manage the codebase going forward.

We are currently ramping up development on this repository.

Check out the documentation for more information and start broadcasting!

Please note that LibreTime is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Please submit enhancements, bugfixes or comments via GitHub.

Development Process

The LibreTime follows the standardized Collective Code Construction Contract (C4). Its abstract is provided here.

C4 provides a standard process for contributing, evaluating and discussing improvements on software projects. It defines specific technical requirements for projects like a style guide, unit tests, git and similar platforms. It also establishes different personas for projects, with clear and distinct duties. C4 specifies a process for documenting and discussing issues including seeking consensus and clear descriptions, use of "pull requests" and systematic reviews.

The full text of the contract is licensed under the GPL and available at the above link courtesy of the ZeroMQ community.

Releasing

The LibreTime maintainers release new versions of LibreTime at regular intervals. We follow the Semantic Versioning standards.

In a nutshell, given a version number MAJOR.MINOR.PATCH we increment the:

  1. MAJOR version when we make incompatible API changes,
  2. MINOR version when we add functionality in a backwards-compatible manner, and
  3. PATCH version when we make backwards-compatible bug fixes.

Given the history of the project we will be starting with version 3.0.0.

Stay tuned for early alphas and lots of betas as we get development up and running.

License

LibreTime is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, version 3 of the License.

Copyright (c) 2011-2017 Sourcefabric z.ú.

Copyright (c) 2017 LibreTime Community

Please refer to the original README, CREDITS and LICENSE_3RD_PARTY for more information.