NetBSD Problem Report #52747

From www@NetBSD.org  Tue Nov 21 21:51:48 2017
Return-Path: <www@NetBSD.org>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id 87F117A1A0
	for <gnats-bugs@gnats.NetBSD.org>; Tue, 21 Nov 2017 21:51:48 +0000 (UTC)
Message-Id: <20171121215147.5A9797A1F0@mollari.NetBSD.org>
Date: Tue, 21 Nov 2017 21:51:47 +0000 (UTC)
From: william@welliver.org
Reply-To: william@welliver.org
To: gnats-bugs@NetBSD.org
Subject: new package submission for influxdb 1.4.2
X-Send-Pr-Version: www-1.0

>Number:         52747
>Category:       pkg
>Synopsis:       new package submission for influxdb 1.4.2
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Nov 21 21:55:00 +0000 2017
>Closed-Date:    Sun Aug 18 06:49:07 +0000 2019
>Last-Modified:  Sun Aug 18 06:49:07 +0000 2019
>Originator:     William Welliver
>Release:        trunk
>Organization:
N/A
>Environment:
NetBSD netbsd-7-1-2017q3-pkgbuild-1711171149 7.1 NetBSD 7.1 (GENERIC.201703111743Z) amd64
>Description:
Attached is a package for databases/influxdb, version 1.4.2. This package has a good pkglint result and has been tested on NetBSD 7.1 and illumos. It includes rc.conf and SMF support. Influxdb is written in go, and uses a build approach similar to www/grafana. 
>How-To-Repeat:

>Fix:
begin 644 databases-influxdb.tar.gz
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
0E%!""2\%_P7^)]W8`%```%!"
`
end

>Release-Note:

>Audit-Trail:
From: coypu@sdf.org
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: pkg/52747: new package submission for influxdb 1.4.2
Date: Tue, 12 Dec 2017 20:12:23 +0000

 --y0ulUmNC+osPPQO6
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline

 Hi,

 do-build:
         cd ${WRKSRC} && ${SETENV} ${PKGSRC_MAKE_ENV}  ${PREFIX}/bin/go get github.com/sparrc/gdm

 We don't allow fetching of external things except during fetch
 (This has a lot of advantages: we have a distfile mirror, and if
 upstream changes their sources because a server was compromised, we will
 notice it, as they are checked against a checksum at the time of the
 commit)

 These will have to be their own packages.

 I've amended the Makefile a bit while appeasing 'pkglint -Wall -Call'
 which is more noisy. It is attached.

 --y0ulUmNC+osPPQO6
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: attachment; filename=Makefile

 # $NetBSD: Makefile,v 1.3 2017/07/23 07:20:42 wiz Exp $

 DISTNAME=	influxdb-1.4.2
 CATEGORIES=	databases
 MASTER_SITES=	${MASTER_SITE_GITHUB:=influxdata/}

 MAINTAINER=	william@welliver.org
 HOMEPAGE=	https://www.influxdata.com/
 COMMENT=	Time-series Database
 LICENSE=	mit

 GITHUB_PROJECT=	influxdb
 GITHUB_TAG=	v${PKGVERSION_NOREV}

 # pkglint thinks this is redundant, but if we don't have it, file extraction fails
 EXTRACT_SUFX=	.tar.gz

 IFDB_DISTNAME=			${DISTNAME}${EXTRACT_SUFX}
 DISTFILES=			${IFDB_DISTNAME}
 EXTRACT_ONLY=			${IFDB_DISTNAME}
 EXTRACT_DIR.${IFDB_DISTNAME}=	${WRKDIR}/src/github.com/influxdata
 WRKSRC=				${WRKDIR}/src/github.com/influxdata/influxdb
 USE_TOOLS+=			gmake

 BUILD_DEPENDS+=			go-1\.[8-9]*:../../lang/go
 BUILD_DEPENDS+=			asciidoc-[0-9]*:../../textproc/asciidoc
 BUILD_DEPENDS+=			xmlto-[0-9]*:../../textproc/xmlto

 PKGSRC_MAKE_ENV+=		GOPATH=${WRKDIR}

 PKG_SYSCONFSUBDIR=	influxdb

 DATADIR=	${VARBASE}/lib/influxdb
 LOGDIR=		${VARBASE}/log/influxdb

 SUBST_CLASSES+=		fix-cfg
 SUBST_STAGE.fix-cfg=	pre-configure
 SUBST_MESSAGE.fix-cfg=	Disabling phone-home in sample config
 SUBST_FILES.fix-cfg=	etc/config.sample.toml
 SUBST_SED.fix-cfg=	-e 's/^\# reporting-disabled = false/reporting-disabled = true/'

 BUILD_DEFS+=		INFLUXDB_USER INFLUXDB_GROUP VARBASE
 FILES_SUBST+=		INFLUXDB_USER=${INFLUXDB_USER:Q}
 FILES_SUBST+=		INFLUXDB_GROUP=${INFLUXDB_GROUP:Q}
 FILES_SUBST+=		DATADIR=${DATADIR:Q}
 FILES_SUBST+=		LOGDIR=${LOGDIR:Q}

 .include "../../mk/bsd.prefs.mk"

 INFLUXDB_USER?=		influxdb
 INFLUXDB_GROUP?=	influxdb
 OWN_DIRS_PERMS+=	${DATADIR} ${INFLUXDB_USER} ${INFLUXDB_GROUP} 0700
 OWN_DIRS_PERMS+=	${LOGDIR} ${INFLUXDB_USER} ${INFLUXDB_GROUP} 0700
 PKG_USERS_VARS=		INFLUXDB_USER
 PKG_GROUPS_VARS=	INFLUXDB_GROUP
 PKG_GROUPS=		${INFLUXDB_GROUP}
 PKG_USERS=		${INFLUXDB_USER}:${INFLUXDB_GROUP}
 RCD_SCRIPTS=		influxdb

 INSTALLATION_DIRS=	bin ${PKGMANDIR}/man1 etc/influxdb share/doc/influxdb share/influxdb

 DOC_FILES+=	LICENSE LICENSE_OF_DEPENDENCIES.md QUERIES.md README.md CHANGELOG.md
 BIN_FILES+=	influx influx_inspect influx_stress influx_tsm influxd stress_test_server test_client
 CONF_FILES+=	 ${PREFIX}/share/influxdb/config.sample.toml ${PKG_SYSCONFDIR}/config.toml

 post-extract:
 	${MV} ${WRKDIR}/src/github.com/influxdata/${DISTNAME}	\
 	  ${WRKDIR}/src/github.com/influxdata/influxdb
 #	${CP} files/mmap_solaris.go ${WRKSRC}/pkg/mmap

 do-build:
 	cd ${WRKSRC} && ${SETENV} ${PKGSRC_MAKE_ENV}  ${PREFIX}/bin/go get github.com/sparrc/gdm
 	cd ${WRKSRC} && ${SETENV} ${PKGSRC_MAKE_ENV}  ${PREFIX}/bin/go install github.com/sparrc/gdm
 	cd ${WRKSRC} && ${SETENV} ${PKGSRC_MAKE_ENV}  ${WRKDIR}/bin/gdm restore
 	cd ${WRKSRC} && ${SETENV} ${PKGSRC_MAKE_ENV}  ${PREFIX}/bin/go get -ldflags "-X main.version=${PKGVERSION_NOREV} -X main.commit=${GITHUB_TAG} -X main.buildstamp=pkgsrc" ./...
 	cd ${WRKSRC} && ${SETENV} ${PKGSRC_MAKE_ENV}  ${PREFIX}/bin/go install ./...

 do-install:
 	cd ${WRKSRC}/man && ${SETENV} ${PKGSRC_MAKE_ENV} ${MAKE_PROGRAM}
 #.for idir in ${INSTALLATION_DIRS}
 #	${MKDIR}  ${DESTDIR}${PREFIX}/${idir}
 #.endfor
 	for manpage in ${WRKSRC}/man/*.1 ; do \
 		${INSTALL_MAN} $$manpage ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1 ; \
 	done
 .for x in ${BIN_FILES}
 	${INSTALL_PROGRAM} ${WRKDIR}/bin/${x}	\
 	  ${DESTDIR}${PREFIX}/bin/${x}
 .endfor
 .for x in ${DOC_FILES}
 	${INSTALL_MAN} ${WRKSRC}/${x} \
 	  ${DESTDIR}${PREFIX}/share/doc/influxdb/${x}
 .endfor
 	${INSTALL_DATA} ${WRKSRC}/etc/config.sample.toml  ${DESTDIR}${PREFIX}/share/influxdb/

 .include "../../mk/bsd.pkg.mk"

 --y0ulUmNC+osPPQO6--

From: "H. William Welliver III" <william@welliver.org>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: pkg/52747: new package submission for influxdb 1.4.2
Date: Sat, 6 Jan 2018 13:55:53 -0500

 Hi,

 Thanks for the feedback. The restriction on fetching outside of the =
 fetch action makes complete sense.  I=E2=80=99m not opposed to creating =
 a package for the gdm dependency manager=E2=80=A6 it seems reasonable to =
 make the tool available as a package.=20

 However, after doing more research, I think that go software building =
 seems determined to operate in opposition to that concept: influxdb, for =
 example, has 20 or more dependencies, some of which are only available =
 as git checkouts (which is what the gdm tool is being used to fetch and =
 manage). Since each of those dependencies are based on a particular =
 commit id, I=E2=80=99m not sure that it would be feasible to create =
 packages for each dependency.=20

 Would an acceptable alternative be to create a distribution file that =
 contained the particular go files required by a particular version of =
 influxdb and make that available on, say, GitHub? That way, a canonical =
 set of source would be available for download by pkgsrc and the build =
 could proceed without any additional network access?=

From: Benny Siegert <bsiegert@gmail.com>
To: gnats-bugs@netbsd.org
Cc: pkg-manager@netbsd.org, gnats-admin@netbsd.org, pkgsrc-bugs@netbsd.org, 
	william@welliver.org
Subject: Re: pkg/52747: new package submission for influxdb 1.4.2
Date: Tue, 9 Jan 2018 21:49:26 +0100

 >  However, after doing more research, I think that go software building =
 >  seems determined to operate in opposition to that concept: influxdb, for =
 >  example, has 20 or more dependencies, some of which are only available =
 >  as git checkouts (which is what the gdm tool is being used to fetch and =
 >  manage). Since each of those dependencies are based on a particular =
 >  commit id, I=E2=80=99m not sure that it would be feasible to create =
 >  packages for each dependency.=20

 This has been done before, even though it is arguably quite tedious.
 Look at the go-hugo package for inspiration.

 I am working on https://github.com/bsiegert/gourl2pkg, which is not
 quite finished but will at least tell you what the dependencies are.

 >  Would an acceptable alternative be to create a distribution file that =
 >  contained the particular go files required by a particular version of =
 >  influxdb and make that available on, say, GitHub? That way, a canonical =
 >  set of source would be available for download by pkgsrc and the build =
 >  could proceed without any additional network access?=

 This would be somewhat questionable if not done by a developer.

 You might try to get your upstream to vendor all dependencies, i.e.
 put them in a vendor subdirectory. This is what Caddy has done, and it
 has made packaging it trivial :)

 -- 
 Benny

State-Changed-From-To: open->closed
State-Changed-By: maya@NetBSD.org
State-Changed-When: Sun, 18 Aug 2019 06:49:07 +0000
State-Changed-Why:
Someone did eventually work out the go dependencies issue: there's now an influxdb in pkgsrc with a go-deps.mk file fetching the files.
Thanks for the patch!


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.43 2018/01/16 07:36:43 maya Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2017 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.