Bug 248270 - audio/lmms bash completion script stages in PREFIX not STAGEDIR
Summary: audio/lmms bash completion script stages in PREFIX not STAGEDIR
Status: New
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Rodrigo Osorio
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-07-25 22:43 UTC by alt2600
Modified: 2020-07-25 22:43 UTC (History)
0 users

See Also:
bugzilla: maintainer-feedback? (rodrigo)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description alt2600 2020-07-25 22:43:14 UTC
problem seems new after the July 12 portbump, but doesn't appear to come from anything done in that portbump. I know since then at least bash moved to /usr/local prefix but not sure its related. I have version 1.2.1,2 installed in lmms, but it will not longer update due to missing staged files with bash_completion


-- Installing: /usr/ports/audio/lmms/work/stage/usr/local/share/lmms/themes/classic/style.css
-- Installing: /usr/ports/audio/lmms/work/stage/usr/local/share/lmms/themes/default/style.css
-- Installing: /usr/ports/audio/lmms/work/stage/usr/local/share/lmms/wavetables/moog.bin
-- Installing: /usr/ports/audio/lmms/work/stage/usr/local/share/lmms/wavetables/saw.bin
-- Installing: /usr/ports/audio/lmms/work/stage/usr/local/share/lmms/wavetables/sqr.bin
-- Installing: /usr/ports/audio/lmms/work/stage/usr/local/share/lmms/wavetables/tri.bin

Installing bash completion...

Bash completion for lmms has been installed to /usr/local/share/bash-completion/completions/lmms


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

/usr/ports/audio/lmms|$} ls -l /usr/local/share/bash-completion/completions/lmms 
-rw-r--r--  1 root  wheel  9751 Jul 25 15:43 /usr/local/share/bash-completion/completions/lmms


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


make install or prefix fails as it is missing the lmms bash_completion script which is already installed into prefix

line 30-51 of /usr/ports/audio/lmms/work/lmms-1.2.1/cmake/modules seems to be the culprit of either falling back to hardcoded path or finding the correct path from pkg-config but that breaks staging as it totally ignores the staging prefix, but not sure why it would have seemingly worked before but not now. 

ELSE()
	INCLUDE(FindUnixCommands)
	# Honor manual override if provided
	IF(NOT BASHCOMP_PKG_PATH)
		# First, use pkg-config, which is the most reliable
		FIND_PACKAGE(PkgConfig QUIET)
		IF(PKGCONFIG_FOUND)
			PKG_CHECK_MODULES(BASH_COMPLETION bash-completion)
			PKG_GET_VARIABLE(BASHCOMP_PKG_PATH bash-completion completionsdir)
		ELSE()
			# Second, use cmake (preferred but less common)
			FIND_PACKAGE(bash-completion QUIET)
			IF(BASH_COMPLETION_FOUND)
				SET(BASHCOMP_PKG_PATH "${BASH_COMPLETION_COMPLETIONSDIR}")
			ENDIF()
		ENDIF()

		# Third, use a hard-coded fallback value
		IF("${BASHCOMP_PKG_PATH}" STREQUAL "")
			SET(BASHCOMP_PKG_PATH "/usr/share/bash-completion/completions")
		ENDIF()
	ENDIF()

Not sure if I'm the only one having these issues, I'm pretty sure I could update the patch to this file by adding deletions to this code to hardcode the install to staging by forcing the BASHCOMP_PKG_PATH. Although I would likely hard code it to a code of somesort and run a REPLACE_CMD post patch so it would dynamically replace with the correct STAGEDIR during make if the source updates to later versions and doesn't change these cmake modules it would still work. Not sure how else to fix this. I've tried editing the port Makefile giving the  BASHCOMP_PKG_PATH as a CONFIGURE_ENV which breaks the build and setting CMAKE_ARGS to include setting this variable to the stagedir, but that didn't seem to work either.