Date: Tue, 1 May 2018 19:29:05 -0700 From: Craig Leres <leres@freebsd.org> To: =?UTF-8?Q?Le_Baron_d=e2=80=99Merde?= <lebarondemerde@privacychain.ch>, Gleb Popov <6yearold@gmail.com>, freebsd-hackers@freebsd.org Subject: Re: Porting questions Message-ID: <9d9f4709-99c4-74fb-0ff7-f0381172fd20@freebsd.org> In-Reply-To: <20180501180402.e4kigr4f5qh44m6d@privacychain.ch> References: <fe5ac958-441b-054f-3a6b-1146bcad6a41@freebsd.org> <20180501180402.e4kigr4f5qh44m6d@privacychain.ch>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --] On 05/01/18 11:04, Le Baron d’Merde wrote: > When upstream does not provide a version (or a separated commit will be used > like HEAD), the version format to be used for GitHub is: gYYYYMMDD > > See 5.13: https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/makefile-distfiles.html#makefile-master_sites-github-description I missed that; it's perfect, thanks! >> (4) How to handle downloads that shouldn't be extracted: The toolchain uses >> specific versions of a bunch of things: >> >> TARBALLS= \ >> binutils-2.25.1.tar.bz2 \ >> expat-2.1.0.tar.gz \ >> gcc-5.2.0.tar.bz2 \ >> gdb-7.10.tar.xz \ >> gmp-6.0.0a.tar.xz \ >> isl-0.14.tar.xz \ >> mpc-1.0.3.tar.gz \ >> mpfr-3.1.3.tar.xz \ >> ncurses-6.0.tar.gz \ >> newlib-2.2.0.tar.gz >> >> Normally the build process downloads these which doesn't work well with >> poudriere; you don't want to download these every time you build port. I put >> copies in my /usr/ports/distfiles and add symlinks to the work tree in >> post-extract and later the build script correctly skips downloading them >> when it finds them already there. I'd like to add these to DISTFILES for >> auto-download and checksums but I don't want them extracted by do-extract. >> Is my best option to override the do-extract target? > > I guess those are git submodules. GH_TUPLE are used for them. You can see a > working example on x11/polybar Actually they're not, they're just the specific versions of things that are built to deal with the cross compile objects. In the end I added them to DISTFILES with the appropriate MASTER_SITES entries and discovered EXTRACT_ONLY and set that to the github tarball. On 05/01/18 12:21, Gleb Popov wrote: > (3) USES=gcc doesn't provide a binary named gcc: crosstool-NG has > the string "gcc" firmly baked into it. When I have USES=gcc (today) > I get gcc6 but without patching a ton of files I need gcc to exist > when poudriere is building. I solved this by also adding: > > BUILD_DEPENDS+= gcc:lang/gcc > > but it seems wrong to me that USES=gcc doesn't provide a binary > named gcc. > > > You can add > BINARY_ALIAS= gcc=gcc6 > line to work around this. It'd be sweet if this worked but it doesn't. I think the problem is that create-binary-alias happens slightly before do-configure which is the first place I need gcc to exist. Thanks guys! Craig [-- Attachment #2 --] # Created by: Craig Leres <leres@freebsd.org> # $FreeBSD$ PORTNAME= xtensa-esp32-elf DISTVERSION= 1.22.0.g20171219 CATEGORIES= devel MASTER_SITES= GNU/binutils:source1 \ https://sourceforge.net/projects/expat/files/expat/2.1.0/:source2 \ GNU/gcc/gcc-5.2.0/:source3 \ GNU/gdb:source4 \ GNU/gmp:source5 \ http://isl.gforge.inria.fr/:source6 \ GNU/mpc:source7 \ http://www.mpfr.org/mpfr-3.1.3/:source8 \ GNU/ncurses:source9 \ https://sourceforge.net/projects/devkitpro/files/sources/newlib/:source10 DISTFILES= binutils-2.25.1.tar.bz2:source1 \ expat-2.1.0.tar.gz:source2 \ gcc-5.2.0.tar.bz2:source3 \ gdb-7.10.tar.xz:source4 \ gmp-6.0.0a.tar.xz:source5 \ isl-0.14.tar.xz:source6 \ mpc-1.0.3.tar.gz:source7 \ mpfr-3.1.3.tar.xz:source8 \ ncurses-6.0.tar.gz:source9 \ newlib-2.2.0.tar.gz:source10 EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} MAINTAINER= leres@freebsd.org COMMENT= Toolchain for xtensa-esp32-elf LICENSE= GPLv2 LGPL21 LICENSE_COMB= multi BUILD_DEPENDS+= bash:shells/bash \ gawk:lang/gawk \ gcc:lang/gcc \ git:devel/git \ gpatch:devel/patch \ ${LOCALBASE}/bin/grep:textproc/gnugrep \ gperf:devel/gperf \ gsed:textproc/gsed \ help2man:misc/help2man \ makeinfo:print/texinfo \ python:lang/python \ wget:ftp/wget USES= autoreconf:build bison gmake libtool python:build USE_GCC= yes USE_GITHUB= yes USE_LDCONFIG= ${PREFIX}/${PORTNAME}/libexec/gcc/xtensa-esp32-elf/5.2.0 SUBDIR= crosstool-NG TAGNAME= 1.22.0-80-g6c4433a5 GH_TUPLE= espressif:${SUBDIR}:${TAGNAME} post-extract: ${MKDIR} ${BUILD_WRKSRC}/.build/tarballs .for F in $(DISTFILES:N$(EXTRACT_ONLY)) ${LN} -s ${DISTDIR}/${F:C/:source[0-9]+$//} ${BUILD_WRKSRC}/.build/tarballs .endfor pre-configure: cd ${BUILD_WRKSRC} && ./bootstrap ${PRINTF} "#!/bin/sh\necho '${SUBDIR:tl}-${TAGNAME}'\n" > \ ${BUILD_WRKSRC}/version.sh ${CHMOD} -w+x ${BUILD_WRKSRC}/version.sh do-configure: cd ${BUILD_WRKSRC} && \ ./configure --enable-local --with-grep=${LOCALBASE}/bin/grep pre-build: cd ${BUILD_WRKSRC} && \ ${SETENV} -uMAKELEVEL -uMAKEFLAGS -u.MAKE.LEVEL.ENV \ ${MAKE_CMD} install && ./ct-ng xtensa-esp32-elf do-build: cd ${BUILD_WRKSRC} && CT_ALLOW_BUILD_AS_ROOT_SURE=1 ./ct-ng build post-build: cd ${BUILD_WRKSRC}/builds/${PORTNAME} && \ ${RM} build.log.bz2 lib/charset.alias do-install: cd ${BUILD_WRKSRC}/builds && \ ${COPYTREE_SHARE} ${PORTNAME} ${STAGEDIR}${PREFIX} .include <bsd.port.mk>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9d9f4709-99c4-74fb-0ff7-f0381172fd20>
