Bug 184296 - devel/kBuild won't install on DragonFlyBSD due to hardcoded values in Makefile
Summary: devel/kBuild won't install on DragonFlyBSD due to hardcoded values in Makefile
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Virtualbox Team (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-11-26 00:50 UTC by Daniel Lorch
Modified: 2014-01-17 15:40 UTC (History)
0 users

See Also:


Attachments
file.diff (1.26 KB, patch)
2013-11-26 00:50 UTC, Daniel Lorch
no flags Details | Diff
kbuild.diff.txt (425 bytes, text/plain; charset=windows-1252)
2014-01-15 17:28 UTC, freebsd.contact
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Daniel Lorch 2013-11-26 00:50:00 UTC
kBuild won't install on DragonFlyBSD due to hardcoded OS string "freebsd" in the port's Makefile. 

DragonFlyBSD is using `dports', which is a port of the FreeBSD ports system. I am reporting the problem here ("upstream"), because I believe this is the right place to fix it.

Note that `kBuild' builds perfectly fine on DragonFly BSD, but the `make install' will fail because it is looks for the wrong path names (namely "freebsd" instead of "dragonfly"). Additionally, the Makefile fails to recognize the `amd64' architecture.

Here is an extract from `make install':

===>  Installing for kBuild-0.1.9998
===>   Generating temporary packing list
===>  Checking if devel/kBuild already installed
install  -s -o root -g wheel -m 555 /wrkdirs/devel/kBuild/work/kBuild-0.1.9998/out/freebsd.x86_64/release/stage/usr/local/bin/kDepIDB /usr/local/bin
install: /wrkdirs/devel/kBuild/work/kBuild-0.1.9998/out/freebsd.x86_64/release/stage/usr/local/bin/kDepIDB: No such file or directory
*** Error code 71

Stop.
make: stopped in /usr/dports/devel/kBuild
===>  Cleaning for kBuild-0.1.9998
build of /usr/dports/devel/kBuild ended at Wed Aug 28 02:41:00 PDT 2013

The full log can be obtained here: http://leaf.dragonflybsd.org/~marino/boomlogs/kBuild-0.1.9998.log

Fix: I would like to suggest the patch attached to be applied to /usr/ports/devel/kBuild/Makefile and I am looking forward to your esteemed feedback.

Patch attached with submission follows:
How-To-Repeat: cd /usr/dports/devel/kBuild && make install
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2013-11-26 00:50:52 UTC
Responsible Changed
From-To: freebsd-ports-bugs->vbox

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 Bernhard Froehlich 2014-01-03 13:35:51 UTC
Your patch was applied to the virtualbox development repository and will be
committed to the FreeBSD portstree soon.

https://redports.org/changeset/21290/virtualbox

Thanks for the patch!

--=20
Bernhard Fr=F6hlich
http://www.bluelife.at/
Comment 3 freebsd.contact 2014-01-15 12:03:38 UTC
Hi Bernhard,
I've been waiting for this commit to hits the ports tree so that it will
trickle down to dports.  Do you have an ETA for it?  On 3 JAN 2014, you
said it would be "soon".

Regards,
John
Comment 4 dfilter service freebsd_committer freebsd_triage 2014-01-15 15:20:01 UTC
Author: decke
Date: Wed Jan 15 15:19:52 2014
New Revision: 339783
URL: http://svnweb.freebsd.org/changeset/ports/339783
QAT: https://qat.redports.org/buildarchive/r339783/

Log:
  - Replace hardcoded freebsd strings with KBUILD_TARGET in do-install
  
  PR:		ports/184296
  Submitted by:	Daniel Lorch <dlorch@gmail.com>

Modified:
  head/devel/kBuild/Makefile

Modified: head/devel/kBuild/Makefile
==============================================================================
--- head/devel/kBuild/Makefile	Wed Jan 15 15:16:24 2014	(r339782)
+++ head/devel/kBuild/Makefile	Wed Jan 15 15:19:52 2014	(r339783)
@@ -29,6 +29,7 @@ KBUILD_ENV=	ACLOCAL=${ACLOCAL} \
 		AUTORECONF=${AUTORECONF} \
 		AUTOPOINT=true
 USE_GCC=	any
+KBUILD_TARGET=	${OPSYS:tl}
 
 KBUILD_BINS=	kDepIDB kDepPre kObjCache kmk kmk_append kmk_ash kmk_cat \
 		kmk_chmod kmk_cmp kmk_cp kmk_echo kmk_expr kmk_gmake \
@@ -65,14 +66,14 @@ do-build:
 
 do-install:
 .for bin in ${KBUILD_BINS}
-	${INSTALL_PROGRAM} ${WRKSRC}/out/freebsd.${KBUILD_ARCH}/release/stage${PREFIX}/bin/${bin} ${PREFIX}/bin
+	${INSTALL_PROGRAM} ${WRKSRC}/out/${KBUILD_TARGET}.${KBUILD_ARCH}/release/stage${PREFIX}/bin/${bin} ${PREFIX}/bin
 .endfor
 	${MKDIR} ${DATADIR}
-	(cd ${WRKSRC}/out/freebsd.${KBUILD_ARCH}/release/stage${PREFIX}/share/kBuild && ${COPYTREE_SHARE} \* ${DATADIR})
+	(cd ${WRKSRC}/out/${KBUILD_TARGET}.${KBUILD_ARCH}/release/stage${PREFIX}/share/kBuild && ${COPYTREE_SHARE} \* ${DATADIR})
 .if !defined(NOPORTDOCS)
 	${MKDIR} ${DOCSDIR}
 .for doc in ${PORTDOCS}
-	${INSTALL_DATA} ${WRKSRC}/out/freebsd.${KBUILD_ARCH}/release/stage${PREFIX}/share/doc/${PORTNAME}-${KBUILD_VERSION}/${doc} ${DOCSDIR}
+	${INSTALL_DATA} ${WRKSRC}/out/${KBUILD_TARGET}.${KBUILD_ARCH}/release/stage${PREFIX}/share/doc/${PORTNAME}-${KBUILD_VERSION}/${doc} ${DOCSDIR}
 .endfor
 .endif
 
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Comment 5 Bernhard Froehlich freebsd_committer freebsd_triage 2014-01-15 15:20:34 UTC
State Changed
From-To: open->closed

Committed. Thanks!
Comment 6 freebsd.contact 2014-01-15 17:28:05 UTC
Hi, I see the ticket is closed, but actually there is one more change
that DragonFly needs.  It comes from the MACHINE_ARCH - the FreeBSD
"amd64" is known as "x86_64" on DragonFly.  These have be substituted in
order to get the plist to match.

Patch attached.

Thanks,
John
Comment 7 Daniel Lorch 2014-01-17 08:26:41 UTC
I believe this is DragonFly BSD specific and should be addressed in dports
directly (rather than FreeBSD ports), what do you think?


On Wed, Jan 15, 2014 at 6:28 PM, John Marino <freebsd.contact@marino.st>wrote:

> Hi, I see the ticket is closed, but actually there is one more change
> that DragonFly needs.  It comes from the MACHINE_ARCH - the FreeBSD
> "amd64" is known as "x86_64" on DragonFly.  These have be substituted in
> order to get the plist to match.
>
> Patch attached.
>
> Thanks,
> John
>
Comment 8 freebsd.contact 2014-01-17 09:08:22 UTC
I think it should handled in ports.
1) There are many ports that have similar code
2) FreeBSD understands DPorts exists and that DragonFly now uses ports,
and that ports benefits from having multiple platforms use it, as well
as the additional ports developers it brings.
3) Related to 2), especially when the changes are trivial, the ports are
being modified to support multiple platforms.

The case is the opposite; hundreds of patches and diffs in DPorts need
to be pushed to ports (in many case they solve problems on FreeBSD too,
not just DragonFly support), but there simply isn't the manpower to do
it all at once.

This is a trivial one-liner that has zero effect on FreeBSD and fixes
DragonFly, so yes it should be changed at ports level.

John
Comment 9 dfilter service freebsd_committer freebsd_triage 2014-01-17 15:37:41 UTC
Author: decke
Date: Fri Jan 17 15:37:33 2014
New Revision: 340056
URL: http://svnweb.freebsd.org/changeset/ports/340056
QAT: https://qat.redports.org/buildarchive/r340056/

Log:
  Add KBUILD_ARCH substitution for DPorts
  
  PR:		ports/184296
  Submitted by:	John Marino <jmarino@FreeBSD.org>

Modified:
  head/devel/kBuild/Makefile

Modified: head/devel/kBuild/Makefile
==============================================================================
--- head/devel/kBuild/Makefile	Fri Jan 17 15:21:15 2014	(r340055)
+++ head/devel/kBuild/Makefile	Fri Jan 17 15:37:33 2014	(r340056)
@@ -23,7 +23,7 @@ CONFLICTS_INSTALL=	kBuild-devel-[0-9]*
 WRKSRC=		${WRKDIR}/${PORTNAME}-${DISTVERSION}
 
 KBUILD_VERSION=	0.1.9998
-KBUILD_ARCH=	${MACHINE_ARCH:S/i386/x86/}
+KBUILD_ARCH=	${MACHINE_ARCH:S/i386/x86/:S/x86_64/amd64/}
 KBUILD_ENV=	ACLOCAL=${ACLOCAL} \
 		AUTOMAKE=${AUTOMAKE} \
 		AUTORECONF=${AUTORECONF} \
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"