Git Product home page Git Product logo

libretime-debian-packaging's Introduction

Build Status Financial Contributors on Open Collective

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.

Support

To get support for any questions or problems you might have using the software we have a forum at discourse.libretime.org. We are moving towards using the forum to provide community support and reserving the github issue queue for confirmed bugs and well-formed feature requests.

You can also contact us through our Mattermost instance where you can talk with other users and developers.

Contributors

Code Contributors

This project exists thanks to all the people who contribute.

Financial Contributors

Become a financial contributor and help us sustain our community on OpenCollective.

Individuals

Organizations

Support this project with your organization. Your logo will show up here with a link to your website.

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

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.

libretime-debian-packaging's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libretime-debian-packaging's Issues

Scripts Requiring Manpages

The following scripts require manpage entries, as they are installed in /usr/bin

  • airtime-liquidsoap
  • airtime-media-monitor
  • airtime-playout
  • airtime_analyzer
  • pyponotify

Please support apt archive for Debian

At time of LibreTime 3.0.0~alpha.8-1u3 , I've tried "add-apt-repository ppa:libretime/libretime" as indicated, but no success in Debian GNU/Linux 10 (buster - stable).

PPA has only repository for "xenial" and "bionic" versions of OS (Ubuntu-like), I've tried them anyway, but dependencies aren't satisfiable with Debian.

Please, create a "buster" repository in PPA, to make LibreTime installable in this essential distro.

Packages Required

The following javascript projects need packaging (separately from LT):

  • blockui
  • bootstrap-datetime (the package in Debian is not the same, can we migrate?)
  • colorpicker
  • contextmenu - This has changes made to it that need upstreaming or the project needs to be forked under a new name
  • fullcalendar - This has changes made to it that need upstreaming or the project needs to be forked under a new name
  • i18n
  • js-timezone-detect
  • dropzone
  • moment-timezone
  • stickypanel (No longer required)
  • serverbrowse - This has changes made to it that need upstreaming or the project needs to be forked under a new name
  • setup (it is homegrown, and so doesn't need separate packaging)
  • sprintf
  • tipsy - This has changes made to it that need upstreaming or the project needs to be forked under a new name (The pure upstream is available in Debian)
  • waveformplaylist (it is homegrown, and so doesn't need separate packaging)
  • [showinfo] (No longer needed)

The following PHP projects need packaging:

  • [php-soundcloud] (No longer needed)

The following Python projects need packaging:

The following HTML5/Flash projects need packaging:

Can I help with packaging?

Hi,

Thank you for this project! I help run a community radio in Vilnius and we use these .deb packages to provision Libretime. Not sure where to direct this, so opening an issue, let me know if there is a more appropriate channel.

Is there any way I could contribute / help with the Debian / Ubuntu packaging of Libretime?

I've tried using the .deb's provided, but they are all broken in subtle ways, e.g. assume a specific version of apache accross all distro versions (e.g. here) or use incorrect user names in systemd files (e.g. libretime-playout vs airtime-playout in postinst).

I think the majority of these issues could be eliminated by setting up a simple CI environment which attempts to build + install + start the services and do some basic checks (e.g. all airtime systemd services are running).

Not an expert in .deb packaging myself, but a Debian user for many years, so have some decent experience with the overall ecosystem.

Let me know what are your / the Libretime maintainers thoughts regarding the overall direction of .deb packaging.

P.S. I realize this is also related to the more general install / packaging questions of the Libretime project, but it is perhaps worthwhile to create good .deb based packaging and then propose to eliminate the manual installation scripts from the overall project?

ERROR: Distribution "Debian GNU/Linux 11 (bullseye)" is not supported with "debian-11"!

root@Server:# git clone https://github.com/LibreTime/libretime-debian-packagi ng.git
Клонирование в «libretime-debian-packaging»…
remote: Enumerating objects: 166375, done.
remote: Counting objects: 100% (727/727), done.
remote: Compressing objects: 100% (596/596), done.
remote: Total 166375 (delta 89), reused 505 (delta 65), pack-reused 165648
Получение объектов: 100% (166375/166375), 387.06 MiB | 209.00 KiB/s, готово.
Определение изменений: 100% (116435/116435), готово.
Updating files: 100% (5861/5861), готово.
root@Server-R:# cd
root@Server-R:# cd libretime-debian-packaging
root@Server-R:/libretime-debian-packaging# ./install

Detecting distribution and release ...
Detected distribution id: debian
Detected distribution release id: 11
Detected distribution description: Debian GNU/Linux 11 (bullseye)
ERROR: Distribution "Debian GNU/Linux 11 (bullseye)" is not supported with "debian-11"!

#################

Host Debian Bullseye 11. 1

????

LibreTime on Armbian (ubuntu 18.04 on OragePi PC - 32bit)

Hi
I have successfully installed LibreTime on a small OrangePi PC under Armbian (based on ubuntu 18.04). (OrangePi PC is like a RaspberryPi2)
I have used libretime-debian-packaging fron github, convinced that I would have prepared a .deb to install it in another machine, but I don't understand how the packagin system works.

After launching the ./build.sh script and resolving all the dependencies, I searched for a .deb and did not find it .... so I launched the ./install.sh script and I have installed libretime on the machine test.
It wasn't what I wanted, but anyway libretime works very well it seems to me.

So I can confirm that libretime can be installed under ARM processors with Armbian bionic.

Now some questions:

  1. I would like to install libretime under a control panel such as ISPConfig, and have icecast on another server (this is why I want to use the version that I have compiled for me with SSL support)

  2. Is it possible to use MySQL / MariaDB instead of PostgreSQL?

  3. Ideally, a Wordpress-style installer should be inserted and then the icecast mount point can be indicated on another server.

Regards
MaX

Error installing on Ubuntu Xenial

Error installing on Xenial as well.

apt:

$ sudo apt install ./libretime_3.0.0~alpha.8-1ubuntu2_amd64.deb
Reading package lists... Done
E: Unsupported file ./libretime_3.0.0~alpha.8-1ubuntu2_amd64.deb given on commandline

dpkg:

$ sudo dpkg -i libretime_3.0.0.alpha.8-1ubuntu2_amd64.deb
(Reading database ... 94811 files and directories currently installed.)
Preparing to unpack libretime_3.0.0.alpha.8-1ubuntu2_amd64.deb ...postinst called with unknown argument `install' 
dpkg: error processing archive libretime_3.0.0.alpha.8-1ubuntu2_amd64.deb (--install): subprocess new pre-installation script returned error exit status 1
Errors were encountered while processing: libretime_3.0.0.alpha.8-1ubuntu2_amd64.deb

Originally posted by @alternativesurfer in #9 (comment)

FLAC format is not playing

Hello,

FLAC format is not playing (preview and stream) with latest git of libretime-debian-packaging with
https://github.com/LibreTime/libretime/compare/master...radiorabe:feature/liquidsoap-1.3-for-3.0.0-alpha.7.patch implemented.

While scheduled FLAC file is played, ON AIR is not lit and stream is silent.

All I see in logs is :
2020/02/24 12:50:36 [decoder:3] Unable to decode 2020/02/24 12:50:36 [decoder:3] Unable to decode "/var/tmp/airtime/pypo/cache/scheduler/15None" as {audio=1+;video=0;midi=0}!

I tried to raise the debug level to 5 for liquidsoap by changing the liquidsoap.cfg file, but the verbosity remained the same.

liquidsoap -r file.flac shows that liquidsoap is recognizing the format.

Do we really want to get into the Debian archive?

There was a long discussion on Debian Devel around how to package large complex applications like LibreTime for Debian. Currently the issue is that Debian packaging policies are difficult to adhere with and an update to any one dependency could break the entire app. For example, GitLab took a year to package and is very brittle, which makes supporting it for the duration of Stretch difficult. Even Salsa (the Debian GitLab instance) does not run this package, rather manually using upstream's install and upgrade methods.

Perhaps we need to look at a 3rd party deb as our packaging method (so host a Debian archive that users can add to apt and install from) or package as a snap/flatpack and distribute that through the repos provided by either project.

The custom archive approach is appealing as we already have the basis for it. We could just roll back some of the library packing commits here and it should just require some tweaking before it is usable. Obviously we would have to include some other packages such as the Zend 1 framework which is only available in unstable currently. The disadvantage is that we would need to maintain a custom apt archive.

A containerised snap (or flatpack I guess, though I am less familiar with flatpack) can be uploaded to the snap store where users can easily download it. It is automatically updated and can be automatically built from GitHub releases. The issue with this approach is that we would have to start from scratch and learn how to create a snap (apparently just a yaml file).

Split libretime package into smaller packages

For maintenance purpose, more granular/advanced setup, simplicity, we could split the huge libretime package into multiple packages.

  • libretime-playout (playout + liquidsoap)
  • libretime-analyzer (analyzer)
  • libretime-api (legacy + api + worker (celery))
  • libretime (depends on all the packages above)

Maybe we want something even more fine grained ?

It does require more packaging steps for the initial creation, but maintenance will probably be easier.

We could also create packages such as:

  • libretime-apache-conf
  • libretime-nginx-conf

To provide either a nginx installation or a Apache installation.

Zendframework issue

I have some error

PHP Fatal error: Declaration of Zend_Rest_Route::assemble($data = Array, $reset = false, $encode = true) must be compatible with Zend_Controller_Router_Route_Module::assemble($data = Array, $reset = false, $encode = true, $partial = false) in /srv/airtime/vendor/zendframework/zendframework1/library/Zend/Rest/Route.php on line 52

cannot avoid this error.
can you help?

Debian install fails on Ubuntu Bionic - asking for php7.0 but Bionic is 7.2

Fresh Bionic install. Clue at the bottom.

`
Using apt:
apt install icecast2 ./libretime_3.0.0.alpha.8-1ubuntu2_amd64.deb
Reading package lists... Done
E: Unsupported file ./libretime_3.0.0~alpha.8-1ubuntu2_amd64.deb given on commandline

Using dpkg:
dpkg -i libretime_3.0.0.alpha.8-1ubuntu2_amd64.deb
Selecting previously unselected package libretime.
(Reading database ... 87072 files and directories currently installed.)
Preparing to unpack libretime_3.0.0.alpha.8-1ubuntu2_amd64.deb ...
postinst called with unknown argument `install'
dpkg: error processing archive libretime_3.0.0.alpha.8-1ubuntu2_amd64.deb (--install):
new libretime package pre-installation script subprocess returned error exit status 1
Errors were encountered while processing:
libretime_3.0.0.alpha.8-1ubuntu2_amd64.deb

Using GDebi:
gdebi libretime_3.0.0.alpha.8-1ubuntu2_amd64.deb
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading state information... Done
This package is uninstallable
Dependency is not satisfiable: libapache2-mod-php7.0

`

Packaging is currenlty on hold

LibreTime packaging is now on hold.

LibreTime is going through a big transformation, and we attempt to catch up with the latest dependencies. This put a lot of maintenance work on the packaging which is not the top priority.

Packaging LibreTime will be reconsidered once the project stabilize itself again.

Original discussion libretime/libretime#1892 (comment)

Installing LibreTime via. PPA returns error

Describe the bug
Installing LibreTime via. PPA returns error:

Errors were encountered while processing:
 /tmp/apt-dpkg-install-Kun8Kc/30-libretime_3.0.0~alpha.8-1ubuntu3_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

To Reproduce

sudo add-apt-repository ppa:libretime/libretime
sudo apt-get update
sudo apt-get install libretime icecast2

LibreTime version:
Latest version, 3.0.8 alpha.

Additional context
Was trying to install in cloud VM at the time, if that's worth anything.

Did not complete

I told it to keep my airtime and LS config and got this: Note missing URL and interrupted message.
The Backend says it is running alpha 5

-----------------------------------------------------
                * Basic Setup DONE! *                
                                                     
 To get started with Airtime, visit             
 or, if you've set up your own web configuration,    
 the Airtime webroot on your webserver               
-----------------------------------------------------
W: Operation was interrupted before it could finish

Securing passwords etc during deb based install

So I recently installed the Airtime 2.5.1 debian file and I noticed that it had a number of security features that we still don't currently have in LibreTime such as promtping the user to set the icecast password to something other than hackme and setting up SSL.

It also didn't have a install screen after you set it up. I'm thinking it would be easy to avoid this screen if we just wrote the /etc/airtime.conf during install. We could also set the rabbitmq password to something other than default.

I'm wondering if we could do something similar with our debian packages.

Also another question for future security etc would be the idea of setting up a repo on libretime.org so that people could install libretime that way and have it automatically updated to the newest version via apt-get upgrade - how much work is that ?

I would like to help with these things but I don't know whether the ramp up time to learn how to do the debian related package building tasks would be helpful compared with working on other code related tasks I'm already familiar with.

Ubuntu Bionic Deb file ?

Hey @paddatrapper I saw we have Debian Stretch and Ubuntu Xenial debian packages for the latest alpha.7 release and I was just curious if you were planning one for 18.04 - since it is LTS for 10 years it might be the best option.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.