pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Issues with bootstraping for OpenServer 5 and pkgsrc-2019Q4



On 26.02.2020 23:05, Boyd Lynn Gerber wrote:
Hello All,

The 2019Q4.  There is no issue doing a bootstrap with 2015Q1.

Oops, sorry, my bad. I did not read that you had mentioned 2015Q1 as
successful.

cd /u/build/pkgsrc-blg/bootstrap/
./bootstrap --prefer-pkgsrc yes

To further investigate this problem yourself, you should run the command
again, this time with a bit more debug information:

I do not see a debug option with bootstrap.

PKG_DEBUG_LEVEL=2
export PKG_DEBUG_LEVEL
./bootstrap ...

Since bootstrap builds bmake internally and then uses the pkgsrc
infrastructure as soon as possible, the PKG_DEBUG_LEVEL environment
variable will show an effect when archivers/pax is built.

Oh, that file even says:

# /bin/diff under OpenServer 5.0.7/3.2 does not support -u option.
# TOOLS_PLATFORM.diff?=        /bin/diff

The system comes with diff in /usr/gnu/bin/diff

That's good.

In /u/build/pkgsrc-blg/mk/tools/tools.SCO_SV.mk, add the following lines
(the existing lines are in alphabetical order):

.if exists(/usr/gnu/bin/diff)
TOOLS_PLATFORM.diff?= /usr/gnu/bin/diff
.endif

Same for the other tools that are missing from this list:

[ autopoint awk basename bash bison bison-yacc bsdtar byacc \
bzcat bzip2 cat chgrp chmod chown cmp cp cpp csh ctfconvert \
ctfmerge curl cut date diff diff3 dirname echo egrep env expr \
false fetch fgrep file find flex ftp gawk gegrep gerep gettext \
gfgrep gfrep ggrep gm4 gmake grep groff gsed gsoelim gstrip \
gtar gunzip gzcat gzip head hostname id ident install \
install-info ksh ld ldconfig lex ln ls lzcat m4 mail makeinfo \
mkdir mktemp msgconv msgfmt msgmerge mtree mv nice nroff \
openssl patch pax paxctl perl pkg-config pod2man printf pwd \
readelf readlink realpath rm rmdir sdiff sed sh shlock sleep \
soelim sort strip tail tar tbl tclsh tee test texi2html touch \
tr true tsort uniq unzip wc wget wish xargs xgettext xz xzcat \
yacc zip zipcloak zipnote zipsplit

These are all the tools that are defined in the tools.${OPSYS}.mk files.
The point is that many parts of the pkgsrc infrastructure blindly assume
that all these tools exist and are set to reasonable paths. This
assumption fails on your system.

I've tried with both /bin/ksh, /bin/sh linked to /bin/ksh, and
/usr/bin/bash.

The SHELL and SH variables are ok. It's the ID and DIFF variables that
are not set.

The original command is "${DIFF} -u files-before files-after". And when
the ${DIFF} variable is unset or empty, this results in the "command":

    -u files-before files-after

This has nothing to do with the -u option of the shell or any other program.

To help you find the other missing tools, please apply the attached
patch to /u/build/pkgsrc-blg/mk/tools/default.mk. The patch makes the
missing tools fail with a helpful error message instead of leading to
undefined behavior.

This patch is not yet ready for the official pkgsrc since it would break
some existing packages, but for getting pkgsrc to run initially, it will
work.
--- mk/tools/defaults.mk	(revision e69b22f859b0c526942fe3eae0c924b3c52ed701)
+++ mk/tools/defaults.mk	(date 1582756265694)
@@ -40,6 +40,33 @@
 .  include "${_PKGSRC_TOPDIR}/mk/tools/tools.${OPSYS}.mk"
 .endif
 
+# To regenerate this list, make _generate_opsys_tools_names.
+_OPSYS_TOOLS_NAMES= \
+	[ autopoint awk basename bash bison bison-yacc bsdtar byacc \
+	bzcat bzip2 cat chgrp chmod chown cmp cp cpp csh ctfconvert \
+	ctfmerge curl cut date diff diff3 dirname echo egrep env expr \
+	false fetch fgrep file find flex ftp gawk gegrep gerep gettext \
+	gfgrep gfrep ggrep gm4 gmake grep groff gsed gsoelim gstrip \
+	gtar gunzip gzcat gzip head hostname id ident install \
+	install-info ksh ld ldconfig lex ln ls lzcat m4 mail makeinfo \
+	mkdir mktemp msgconv msgfmt msgmerge mtree mv nice nroff \
+	openssl patch pax paxctl perl pkg-config pod2man printf pwd \
+	readelf readlink realpath rm rmdir sdiff sed sh shlock sleep \
+	soelim sort strip tail tar tbl tclsh tee test texi2html touch \
+	tr true tsort uniq unzip wc wget wish xargs xgettext xz xzcat \
+	yacc zip zipcloak zipnote zipsplit \
+	# last updated: 2020-02-26
+.for tool in ${_OPSYS_TOOLS_NAMES}
+TOOLS_PLATFORM.${tool}?= \
+	${SH} ${_PKGSRC_TOPDIR}/mk/scripts/fail ${ECHO} \
+		"[mk/tools/defaults.mk] Missing platform tool "${tool:Q}"."
+.endfor
+
+_generate-OPSYS_TOOLS_NAMES: .PHONY
+	${RUN} cd ${_PKGSRC_TOPDIR}/mk/tools \
+	&& sed -n 's,^TOOLS_PLATFORM\.\([^[:space:]]*\)[?]=.*,\1,p' tools.*.mk \
+	| sort -u | tr '\n' ' ' | fold -w 64 -s | awk '{print $$0 " \\"}'
+
 ######################################################################
 
 # "TOOL" variable names associated with each of the tools


Home | Main Index | Thread Index | Old Index