Support other build targets #65

Open
EugeneKay opened this Issue May 11, 2016 · 17 comments

Comments

Projects
None yet
7 participants
@EugeneKay
Member

EugeneKay commented May 11, 2016

Historically only the WAR target has been built, because that is what I maintain for myself. Other targets(Windows EXE, OS X PKG, Debian/Ubuntu Deb, RedHat/Fedora RPM, Standalone JAR booter) would be good to have, but there is a lot of work that is needed before they can become official:

  • Package names must be changed to avoid potential conflicts(#52 is a start)
  • Documentation needs to be created for building against each OS
  • Automated build environment
  • Spring Boot(#142)
  • Rework packaging info to take advantage of new changes
@fxthomas

This comment has been minimized.

Show comment
Hide comment
@fxthomas

fxthomas Oct 28, 2016

Contributor

Can I volunteer for this? I'd love to help setting up CI (Travis?), and I could even update the build process documentation in the meantime.

Contributor

fxthomas commented Oct 28, 2016

Can I volunteer for this? I'd love to help setting up CI (Travis?), and I could even update the build process documentation in the meantime.

@EugeneKay

This comment has been minimized.

Show comment
Hide comment
@EugeneKay

EugeneKay Oct 28, 2016

Member

Yes, please feel free. @zifnab06 had a Jenkins instance up at one point, but I don't know if that is current.

Member

EugeneKay commented Oct 28, 2016

Yes, please feel free. @zifnab06 had a Jenkins instance up at one point, but I don't know if that is current.

@fxthomas

This comment has been minimized.

Show comment
Hide comment
@fxthomas

fxthomas Oct 28, 2016

Contributor

Thanks! For now I'm setting up Travis on my own repo, I'll let you know once it's ready. I'm actually not familiar with Jenkins, but the build process should be easy to port once I get it up and running.

Contributor

fxthomas commented Oct 28, 2016

Thanks! For now I'm setting up Travis on my own repo, I'll let you know once it's ready. I'm actually not familiar with Jenkins, but the build process should be easy to port once I get it up and running.

@fxthomas

This comment has been minimized.

Show comment
Hide comment
@fxthomas

fxthomas Oct 29, 2016

Contributor

Got a working version here : https://travis-ci.org/fxthomas/libresonic (see this commit).

It's still weird for me that Maven can't pick up artifacts from inter-module dependencies automatically without installing, but other than that it appears to work for :

  • Debian packages
  • WAR package
  • Standalone archive
  • Source archive

Things that need progress :

  • I had to add dependencies to ignoredUnusedDeclaredDependencies, not sure why I need this yet but I will find out. The really weren't used, see PR.
  • RPM packages can't be generated on Travis because rpmlint is only available on Xenial. Fixed by cloning the source.
  • Debian packages don't build on Xenial at the moment because lintian is complaining a lot more than on Precise. They build on Jessie and on the maven:latest Docker image, for now this should be fine.
  • Mac packages need a Mac
  • Windows packages need Windows

For the first 3 points it's only a matter of time, but the last two are quite annoying to setup on a CI server.

Contributor

fxthomas commented Oct 29, 2016

Got a working version here : https://travis-ci.org/fxthomas/libresonic (see this commit).

It's still weird for me that Maven can't pick up artifacts from inter-module dependencies automatically without installing, but other than that it appears to work for :

  • Debian packages
  • WAR package
  • Standalone archive
  • Source archive

Things that need progress :

  • I had to add dependencies to ignoredUnusedDeclaredDependencies, not sure why I need this yet but I will find out. The really weren't used, see PR.
  • RPM packages can't be generated on Travis because rpmlint is only available on Xenial. Fixed by cloning the source.
  • Debian packages don't build on Xenial at the moment because lintian is complaining a lot more than on Precise. They build on Jessie and on the maven:latest Docker image, for now this should be fine.
  • Mac packages need a Mac
  • Windows packages need Windows

For the first 3 points it's only a matter of time, but the last two are quite annoying to setup on a CI server.

@fxthomas fxthomas referenced this issue Oct 29, 2016

Closed

Basic CI setup #133

7 of 7 tasks complete
@EugeneKay

This comment has been minimized.

Show comment
Hide comment
@EugeneKay

EugeneKay Nov 29, 2016

Member

I have decided to put this off until after 6.2, due to the Spring Boot migration. We'll revisit this around 6.3.

Member

EugeneKay commented Nov 29, 2016

I have decided to put this off until after 6.2, due to the Spring Boot migration. We'll revisit this around 6.3.

@trwnh

This comment has been minimized.

Show comment
Hide comment
@trwnh

trwnh Mar 11, 2017

For what it's worth, having the standalone JAR only would suffice, as it can be run with scripts on any platform. I have always used the JAR from Subsonic for this very reason, as it requires the least dependencies. That would be more useful/important than exe/pkg/deb/rpm.

trwnh commented Mar 11, 2017

For what it's worth, having the standalone JAR only would suffice, as it can be run with scripts on any platform. I have always used the JAR from Subsonic for this very reason, as it requires the least dependencies. That would be more useful/important than exe/pkg/deb/rpm.

@josh4trunks

This comment has been minimized.

Show comment
Hide comment
@josh4trunks

josh4trunks Apr 5, 2017

If we get a standalone jar for libresonic, I would gladly submit a port based on www/subsonic-standalone to the FreeBSD ports repository.

If we get a standalone jar for libresonic, I would gladly submit a port based on www/subsonic-standalone to the FreeBSD ports repository.

@muff1nman

This comment has been minimized.

Show comment
Hide comment
@muff1nman

muff1nman Apr 6, 2017

Contributor

@josh4trunks The current pre-release artifacts for 6.2 can be used standalone. Its a little counter intuitive because they are war files, but they are also standalone executables.

Contributor

muff1nman commented Apr 6, 2017

@josh4trunks The current pre-release artifacts for 6.2 can be used standalone. Its a little counter intuitive because they are war files, but they are also standalone executables.

@josh4trunks

This comment has been minimized.

Show comment
Hide comment
@josh4trunks

josh4trunks Apr 6, 2017

@muff1nman ohh, awesome. Are the startup flags documented somewhere. Sorry, I'm being lazy asking here.

@muff1nman ohh, awesome. Are the startup flags documented somewhere. Sorry, I'm being lazy asking here.

@muff1nman

This comment has been minimized.

Show comment
Hide comment
@muff1nman

muff1nman Apr 6, 2017

Contributor

https://github.com/Libresonic/libresonic/blob/develop/documentation/CONFIGURATION.md however that doc isnt really conclusive/complete yet. There are also the parameters to control the initial default music folder, playlist etc that would probably be helpful as a package maintainer. In addition there are some spring boot parameters that can be used as well.

Contributor

muff1nman commented Apr 6, 2017

https://github.com/Libresonic/libresonic/blob/develop/documentation/CONFIGURATION.md however that doc isnt really conclusive/complete yet. There are also the parameters to control the initial default music folder, playlist etc that would probably be helpful as a package maintainer. In addition there are some spring boot parameters that can be used as well.

@josh4trunks

This comment has been minimized.

Show comment
Hide comment
@josh4trunks

josh4trunks Apr 6, 2017

Ok, can I assume the parameters are the same as the subsonic standalone ones?

Here's what we set for FreeBSD for subsonic
https://github.com/freebsd/freebsd-ports/blob/master/www/subsonic-standalone/files/subsonic.in#L76-L85

josh4trunks commented Apr 6, 2017

Ok, can I assume the parameters are the same as the subsonic standalone ones?

Here's what we set for FreeBSD for subsonic
https://github.com/freebsd/freebsd-ports/blob/master/www/subsonic-standalone/files/subsonic.in#L76-L85

@muff1nman

This comment has been minimized.

Show comment
Hide comment
@muff1nman

muff1nman Apr 6, 2017

Contributor
	-Dsubsonic.defaultMusicFolder=${subsonic_home}/music \
	-Dsubsonic.defaultPodcastFolder=${subsonic_home}/Podcast \
	-Dsubsonic.defaultPlaylistFolder=${subsonic_home}/playlists \

Is still relevant, except its now libresonic.X

	-Dsubsonic.host=${subsonic_host} \
	-Dsubsonic.port=${subsonic_port} \

Are no longer controlled directly by libresonic, but can be done via spring boot config:

-Dserver.port=4040
-Dserver.address=127.0.0.1

Here is the full reference on all settings for spring boot. Not all of them will apply, but definitely take a look at the # EMBEDDED SERVER CONFIGURATION section:

https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#common-application-properties

Contributor

muff1nman commented Apr 6, 2017

	-Dsubsonic.defaultMusicFolder=${subsonic_home}/music \
	-Dsubsonic.defaultPodcastFolder=${subsonic_home}/Podcast \
	-Dsubsonic.defaultPlaylistFolder=${subsonic_home}/playlists \

Is still relevant, except its now libresonic.X

	-Dsubsonic.host=${subsonic_host} \
	-Dsubsonic.port=${subsonic_port} \

Are no longer controlled directly by libresonic, but can be done via spring boot config:

-Dserver.port=4040
-Dserver.address=127.0.0.1

Here is the full reference on all settings for spring boot. Not all of them will apply, but definitely take a look at the # EMBEDDED SERVER CONFIGURATION section:

https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#common-application-properties

@josh4trunks

This comment has been minimized.

Show comment
Hide comment
@josh4trunks

josh4trunks Apr 6, 2017

Awesome, that should give me everything I need. I'll try to get this in the FreeBSD ports tree once 6.2 is released.

Awesome, that should give me everything I need. I'll try to get this in the FreeBSD ports tree once 6.2 is released.

@EugeneKay

This comment has been minimized.

Show comment
Hide comment
@EugeneKay

EugeneKay May 2, 2017

Member

This is being considered as a Goal for v6.3 in #373.

Member

EugeneKay commented May 2, 2017

This is being considered as a Goal for v6.3 in #373.

@jooola

This comment has been minimized.

Show comment
Hide comment
@jooola

jooola May 18, 2017

Contributor

@fxthomas Any news on this issue ? Are you still working on this ?

Windows and macOs package are not mandatory right ?

Contributor

jooola commented May 18, 2017

@fxthomas Any news on this issue ? Are you still working on this ?

Windows and macOs package are not mandatory right ?

@fxthomas

This comment has been minimized.

Show comment
Hide comment
@fxthomas

fxthomas Jun 1, 2017

Contributor

I am not planning on working on this right now (not much time to contribute at the moment unfortunately), so feel free to pick it up! Thanks!

Contributor

fxthomas commented Jun 1, 2017

I am not planning on working on this right now (not much time to contribute at the moment unfortunately), so feel free to pick it up! Thanks!

@anarcat

This comment has been minimized.

Show comment
Hide comment
@anarcat

anarcat Jun 26, 2017

What's the status here? SpringBoot (#142) seems to be closed, should it be checked off? What's the current .war build infra? Automated?

Is travis hooked up in here?

anarcat commented Jun 26, 2017

What's the status here? SpringBoot (#142) seems to be closed, should it be checked off? What's the current .war build infra? Automated?

Is travis hooked up in here?

@issuemover631 issuemover631 referenced this issue in airsonic/airsonic Jul 4, 2017

Closed

Support other build targets #65

2 of 5 tasks complete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment