Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Definitive Build Process? #111

Open
DeepFriedTwinkie opened this issue Dec 13, 2013 · 8 comments
Open

Definitive Build Process? #111

DeepFriedTwinkie opened this issue Dec 13, 2013 · 8 comments

Comments

@DeepFriedTwinkie
Copy link

Hello,

I'm looking for decent instructions on how to build forked-daapd. I've done a few updates and have been able to build by ripping apart the DEB package and then using dpkg-buildpackage. (From here: http://www.mmacleod.ca/blog/2012/05/patching-forked-daapd-so-it-actually-works/)

But I'd rather use an approach that allows me to build properly. I'm guessing the original INSTALL file (https://github.com/ejurgensen/forked-daapd/blob/master/INSTALL) is not up-to-date.

@ejurgensen you seem to be the most active contributor. I would have added this issue on your branch, but you have issues disabled. Hoping you see this and can help!

Thanks!!!

@ejurgensen
Copy link

I wasn't aware I had issues disabled, thank you for notifying me. I've enabled them now.

You're right that the INSTALL file is not up-to-date. Here's a short version of how I suggest building (in Ubuntu), but I wouldn't call it a definitive guide, I may well have forgotten something:

  1. Go to http://gyfgafguf.dk/raspbian/source/ where some of the source files are
  2. Install all the packages listed in "Build-Depends" (in the newest .dsc file)
  3. Download source - either from my GitHub fork (if you want the newest) or from the above location
  4. Unpack
  5. Run autoreconf -vi
  6. Run ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-flac --enable-itunes
  7. Run make and then sudo make install

You mentioned dpkg-buildpackage, so I'm not sure if you were actually looking for instructions for making a .deb?

@DeepFriedTwinkie
Copy link
Author

Thanks @ejurgensen! This is just what I was looking for. I'll try it sometime this week and update this issue with my results.

I mentioned dpkg-buildpackage only because my previous process was to build from an existing .deb (as if it were a patch as mentioned in the link above.) But it never felt complete to me. These feel like a more standard process.

One question: If I do a standard pull from git, what is the purpose of the step 1? Are these the dependencies?

@ejurgensen
Copy link

Yes, if you pull from git then step 1 is just so you can find the .dsc file with the dependency list. Btw, remember to use libevent 1 (and remove libevent 2).

@DeepFriedTwinkie
Copy link
Author

Hi @ejurgensen ,

I finally got around to trying your steps above. I ran into a couple problems that you might be able to help with:

  1. I get a permission denied when I call ./configure... - I did a chown on the directory that my source is in and a chmod, but it didn't seem to matter. Is there anything specific you know of in configure that might be causing this?
  2. Since I got a permission denied, I then tried the same call with sudo. It seems to work OK, and files seemed to get updated. (I think.)
  3. Running make files, because there is no makefile. There is a Makefile.am and a Makefile.in, but that's it. Running make using either of the files yields a "Nothing to be done for `Makefile.am'." error.

I'm guessing the lack of a makefile is related to the first issue, but I'm at a bit of a loss on how to debug it. I'm hoping some of what I've said jogs your memory from when you last did it.

Thanks!

@ejurgensen
Copy link

I've gone through these steps many times, the last time was just a fews days ago, and I've never encountered permission problems. I always use normal user privileges, you should not be required to use sudo for configure. The makefile error is clearly because configure is not working as it should. I don’t have any idea as to why that may be. How did you get the source – was it with git clone https://github.com/ejurgensen/forked-daapd.git? On what platform are you doing the build?

@DeepFriedTwinkie
Copy link
Author

I forked your repository into my own, then did a git clone of my fork (git@github.com:DeepFriedTwinkie/forked-daapd.git). But, it's the same codebase, as I haven't committed anything back to it.

I'm running Ubuntu 12.04 Server on an 64-bit AMD based machine.

I can't seem to SSH into my machine right now, so I can't get more information. I'll play with it a bit more tonight and see if I can get the permissions squared away. I'll look through the configure file to see if there is anything odd in there that could be causing the issue.

Thanks for responding!

@DeepFriedTwinkie
Copy link
Author

One thought: From what dir should steps 5-7 be run? From the root of the repo, or from src? autoreconf is recursive (I think) but not sure if the parent matters.

@ejurgensen
Copy link

This is what I do:

git clone https://github.com/ejurgensen/forked-daapd.git
cd forked-daapd
autoreconf -vi
./configure --prefix=/usr .........
make
sudo make install

I use Ubuntu 12.04 too, but not the server edition. Maybe the server edition is more locked down, so ordinary users don't have access to the stuff in /usr, which configure is checking?

BTW the configure script is hard to read because it is generated by autoreconf. If you want to see what is being done you can start with configure.in.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants