这是indexloc提供的服务,不要输入任何密码
Skip to content

Build totally broken on my new Linux system #47

@sobjornstad

Description

@sobjornstad

First off, thanks for vitunes! I'm still using it daily and it's great. I notice the configure script is still missing from the tarball on the website even though there has been development since I submitted that bug report in 2015, but I guess it's not the end of the world when I can download the source from github.

However, the build didn't work at all out of the box this time. I'm not sure if the issue is my configuration in my clean install or the code, but there were two issues which to my recollection didn't happen last time I installed:

  • In src/compat/compat.c, there are several #includes behind #ifdefs that contain compat/whateverfile.c, but the compat/ shouldn't be there, as this file is already in the compat/ directory. I assume the structure was changed around a little bit and this was overlooked because those conditional branches were never hit on the development systems.
  • In src/Makefile, the vitunes target is incorrect. It reads $(CC) -o $@ $(LDFLAGS) $(LIBS) $(OBJS) $(ODEPS), but it needs to be $(CC) -o $@ $(LDFLAGS) $(OBJS) $(ODEPS) $(LIBS) (with $(LIBS) at the end). If you try to link ncurses before the objects that use ncurses are specified, the compiler doesn't see any ncurses functions that actually need to be accessible, so it doesn't link in the code and the build fails (see here). I'm using the standard gcc in Linux Mint 18.3:
$ cc --version
cc (Ubuntu 5.4.0-6ubuntu1~16.04.6) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Once I made these edits, the build completed normally and vitunes runs fine.

In case you need it to figure out the conditions under which these issues occurred, here's my config.mk:

# This file was generated by the 'configure.sh' script on 2018-02-17 at 19:57:03.
# Its contents should probably not be modified directly (if they should,
# please contact the vitunes developers and let them know why).
#
# Generated on: 2018-02-17 at 19:57:03
# Run on OS: Linux Emily 4.10.0-38-generic #42~16.04.1-Ubuntu SMP Tue Oct 10 16:32:20 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

# Install Locations
PREFIX?=/usr
BINDIR?=/usr/bin
MANDIR?=/usr/man/man1

# TagLib - These MUST be filled in for vitunes to compile!

# taglib-config found.  Using to determine CFLAGS and LDFLAGS
TAGLIB_CFLAGS=`taglib-config --cflags`
TAGLIB_LIBS=`taglib-config --libs` -ltag_c


# gstreamer - Fill these in only if you want gstreamer support


# configure.sh output ending

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions