Commit graph

5635 commits

Author SHA1 Message Date
jlam
833691e2fe Overhaul fetch module:
* All the smarts is now encapsulated in the "fetch" script.  The fetch
  script understands how to use the distinfo file (if specified) to
  look up the size and checksums of the file to fetch and will use
  that information to verify checksums of the fetched files or resume
  transfers of interrupted fetches.

* Move the default settings for FETCH_RESUME_ARGS and FETCH_OUTPUT_ARGS
  for "ftp" from mk/defaults/mk.conf into mk/fetch/fetch.mk.  We rewrite
  it to avoid needing conditional statements.

* Avoid spawning a new make(1) process just to mirror a distfile.

* Split out fetch-list targets into a separate file fetch-list.mk.
  These targets should probably be moved into a standalone script.

* Fix distclean target to properly remove partial downloads.
2006-07-18 22:41:06 +00:00
jlam
3c73469517 Add a flag "-s suffix" for allowing the specified files to have a suffix
that will be removed before looking up the checksum in the distinfo file.
2006-07-18 21:39:39 +00:00
gdt
cd807f496b During 'make replace', use pkg_admin to set the unsafe_depends
variable to YES for each pacakge that depends on the replaced package.

Discussed on tech-pkg with generally positive comments.
2006-07-17 18:18:42 +00:00
wiz
ad211bc06f Remove stale comment, noted by bad@ in PR 33871. 2006-07-17 18:07:06 +00:00
jlam
e65b7c1371 First cut at a fetch script to replace the humungous fetch "macros" in
fetch.mk.  This script currently completely replaces the functionality
in _FETCH_FILE.  I will eventually add the ability to resume a file
transfer to this script.
2006-07-17 15:34:22 +00:00
jlam
ecea1ccbaa Don't say "ERROR:" or "WARNING:"... be a more typical shell script by
just noting the error or warning to standard error.
2006-07-17 14:32:26 +00:00
rillig
ebb2a82ae6 Added LOCALBASE, PKGINFODIR and PKGMANDIR to _BUILD_DEFS, since they
influence the way the package is installed. Also, they are so commonly
used that it would be a nuisance to add it to every package Makefile.
2006-07-17 13:35:11 +00:00
schmonz
0a53ed9007 Remove duplicate files from ${ALLFILES}. This doesn't affect the
"fetch" target, but it does affect the "checksum" target's shell
script, which errors out on the second occurrence of a file. The
shell script should perhaps also be fixed, but it seems sensible
regardless for ${ALLFILES} not to contain duplicate filenames. As
a side effect, the file list is sorted.

Regression found by building mail/qmail with the "qmail-netqmail"
option, which adds to PATCHFILES a file that's already in ${DISTFILES}.
Arguably this is gross, but it worked before, and now works again.

Tested on my usual pkg_comp(8) build of 200+ packages, with an
initially empty ${DISTDIR} and ${PACKAGES}. Thanks seb@ for the
more idiomatic make(1) construction.
2006-07-17 02:13:11 +00:00
rillig
2221827892 Split the variable BUILD_DEFS into those that are defined by packages
and those that are defined by the infrastructure (_BUILD_DEFS). This
allows the build-defs-message target to be moved to the end of
bsd.pkg.mk. Now it prints the correct result even in unprivileged
builds, which had been wrong due to the order in which the files have
been included. For example, ${UNPRIVILEGED_USER} was displayed as (not
defined) although its value was defined, which could be checked with
"bmake show-var".

Tested with one package that _does_ define BUILD_DEFS and with one that
doesn't. The behavior stays the same.
2006-07-15 23:58:52 +00:00
rillig
8db27f7fe7 Converted the header comment to the canonical form. Changed the
definitions of CHOWN and CHGRP so that they still include the command
that is skipped, which is useful when viewing the build logs.
2006-07-15 20:47:43 +00:00
rillig
5c048c44f3 Fixed dead links in the automatically generated README.html files. From
OKANO Takayoshi in PR 34006.
2006-07-15 20:08:33 +00:00
rillig
69811464e9 Added some common script interpreters (awk, bash, sh) that can be
replaced automatically by defining REPLACE_AWK, REPLACE_BASH or
REPLACE_SH and an appropriate addition to USE_TOOLS.

The replace-interpreter.mk file is included unconditionally because the
number of variables that would trigger the inclusion of this file is
quite large.
2006-07-15 09:52:00 +00:00
adrianp
b6cc1e2e00 +freeradius-simul-use 2006-07-14 22:02:32 +00:00
jlam
01df22aa06 Add a "bootstrap-register" target used specially by the bootstrap script
to register packages that were installed by the bootstrap script.
2006-07-14 17:37:03 +00:00
jlam
6fd7abf147 Avoid using # and % to strip prefix/suffix from variable values -- not
enough agreement on how that should work amongst Bourne shell variants.
2006-07-14 16:17:08 +00:00
heinz
37b9df590f Fixed default path wildcards for CHECK_INTERPRETER_SKIP. Now they
actually apply to the whole subtree.
2006-07-13 19:07:54 +00:00
jlam
a29e44f51b Check whether the "checksum" target is defined beforehand to prevent
"duplicate script" collisions with the one defined by bsd.pkg.mk if
PKG_*_REASON is set.
2006-07-13 18:42:45 +00:00
jlam
a76b31a4d6 Check whether the checksum target is defined before defining one.
This fixes problems where a package sets PKG_*_REASON, which causes
bsd.pkg.mk to define its own "checksum" replacement, which causes a
"duplicate script" make error to occur.
2006-07-13 18:40:33 +00:00
jlam
8d03d36b6a * Fix bug when more than one file needed to be checksummed.
* Avoid shell differences between /bin/sh and Korn shell by using:

	while read line; do list; done < FILE

  instead of

	cat FILE | while read line; do list; done
2006-07-13 16:44:14 +00:00
jlam
7ef83e7139 Try to avoid possible differences in processing "$@". 2006-07-13 16:23:14 +00:00
jlam
34b72a488d Backslash escape the parentheses so the shell doesn't think it should
do shell expansion.  Fixes a bug picked up by /bin/ksh and by /bin/sh
in -current.
2006-07-13 16:11:39 +00:00
jlam
0aa9d5c11c Fix some quoting errors and a harmless copy-and-paste error. 2006-07-13 16:02:09 +00:00
jlam
fdd93c3336 Add a few more double-quotes around eval'ed variables. 2006-07-13 15:48:07 +00:00
jlam
022676204b Add DIGEST to the variables defined by default. 2006-07-13 15:27:57 +00:00
jlam
b532d92d10 DIGEST is no longer defined, so use TOOLS_DIGEST instead. 2006-07-13 15:23:18 +00:00
jlam
80b97861bf Remove line noting that "this file was derived from bsd.ports.mk".
The contents of this file are no longer remotedly related to bsd.ports.mk,
and pkgsrc's heritage from ports is documented elsewhere.
2006-07-13 14:04:41 +00:00
jlam
7a2c97d53f * Add a new stage "bootstrap-depends" that happens before all other
stages, and that installs dependencies listed in BOOTSTRAP_DEPENDS.
  The bootstrap-depends step works just like the normal depends step
  and honors the value of DEPENDS_TARGET.  It's now possible to add
  dependencies solely to facilitate fetching the distfiles, e.g.

	BOOTSTRAP_DEPENDS+=	curl-[0-9]*:../../www/curl

* Teach the tools framework about ":bootstrap" as a tools modifier
  which indicates the tool should be added as a dependency via
  BOOTSTRAP_DEPENDS.

* Add "digest" to the tools framework.

* Use USE_TOOLS+=digest:bootstrap to force pkgsrc to install digest
  before anything else.  Get rid of unused "uptodate-digest" target
  and related digest version-checking code.

* Finish the refactoring work: split checksum-related code out of
  bsd.pkg.mk and into pkgsrc/mk/checksum and replace the "checksum"
  target command list with a script that does all the real work.

* Make DIGEST_ALGORITHMS and PATCH_DIGEST_ALGORITHM into private
  variables by prepending them with an underscore.  Also, rename
  _PATCH_DIGEST_ALGORITHM to _PATCH_DIGEST_ALGORITHMS and adjust the
  makepatchsum target to allow that variable to contain a list of
  algorithms, all of which are used when creating the patch checksums
  for ${DISTINFO_FILE}.
2006-07-13 14:02:34 +00:00
adrianp
f76cdb5a1d Add cgi which is used by the PHP package 2006-07-13 09:45:15 +00:00
wiz
675ffa69c0 Add bn_IN locale for atk-1.12.1. 2006-07-12 13:46:34 +00:00
rillig
1dd9c5c90e Removed the leading "-" of a shell command. The unexpected error message
that it had produced had confused me.
2006-07-12 12:34:13 +00:00
wiz
7288c31942 Fix grammar in messages. From David A. Holland in PR 33975. 2006-07-11 13:28:32 +00:00
jlam
06be53fba4 Completely nuke the concept of PKG_PHASE from pkgsrc except for the
purposes of caching MAKEVARS within bsd.pkg.mk and bsd.makevars.mk.
2006-07-10 22:59:26 +00:00
jlam
eb27d05acd Back out revision 1.172 of mk/tools/replace.mk -- we never want to
allow IMAKE to be set by anything other than the tools framework.
Modify the IRIX files so that the native imake is listed as a built-in
tool in the case where X11_TYPE is "native".  Also, move the include
of tools/default.mk a bit lower in bsd.prefs.mk so that tools.${OPSYS}.mk
files can use the value of X11_TYPE.  This should properly set and
point IMAKE to the right binary on IRIX without destroying the
configuration for platforms where IMAKE was not explicitly set, i.e.
every non-IRIX platform.
2006-07-10 22:17:58 +00:00
wiz
83035f3393 Remove reference to buildlink2. 2006-07-10 17:11:32 +00:00
wiz
41f2051ba0 Fix typo in comment. 2006-07-10 17:10:18 +00:00
jlam
d25e37d084 Always add dependencies for packages pulled in indirectly buildlink3 that
are build dependencies.  This should fix PR pkg/33940.  Thanks to Joerg
for the debugging hint.
2006-07-10 17:06:26 +00:00
jlam
4c4ffd71da Fix reversed test... noted by deiter roelants on tech-pkg. 2006-07-10 16:12:20 +00:00
rillig
b78b306826 The wrapper for perl silently failed, giving no hint that
USE_TOOLS+=perl was necessary. Therefore, added a new class of tools,
TOOLS_FAIL, which records the call in a .warnings file, which is later
printed to the user. At least when the tool is first called in the
"configure" phase; I didn't test other phases.
2006-07-10 08:13:37 +00:00
jlam
c16221a4db Change the format of BUILDLINK_ORDER to contain depth information as well,
and add a new helper target and script, "show-buildlink3", that outputs
a listing of the buildlink3.mk files included as well as the depth at
which they are included.

For example, "make show-buildlink3" in fonts/Xft2 displays:

	zlib
	fontconfig
	    iconv
	    zlib
	    freetype2
	    expat
	freetype2
	Xrender
	    renderproto
2006-07-08 23:10:35 +00:00
schwarz
c25fbde9c9 make sure the IMAKE definition, if set, is used in case X11_TYPE is native 2006-07-08 23:08:59 +00:00
jlam
9430e49307 Track information in a new variable BUILDLINK_ORDER that informs us
of the order in which buildlink3.mk files are (recursively) included
by a package Makefile.
2006-07-08 22:38:58 +00:00
dsainty
e75ebdbfa2 Document dar-int32 and dar-int64 options.
Dar is built by default with an arbitrary-size-integer library for managing
all file length/timestamp details.  If 32-bit or 64-bit integers (with
overflow protection) are sufficient for requirements, the dar-int32 and
dar-int64 options can significantly reduce the run-time memory and CPU
overheads of Dar.
2006-07-08 07:14:15 +00:00
jlam
15d3920cf7 Update the comments to reflect the current default workflow. 2006-07-08 02:16:33 +00:00
jlam
356f5e8af5 Rename <phase>_COOKIE variables to _COOKIE.<phase>. These are private
variables so there are no user-visible changes.  This change just makes
it a little easier to write for loops.
2006-07-07 21:24:27 +00:00
jlam
32e6a1fcf8 Remove the commands that tried to make the ${X11BASE} directory if it
didn't exist.  Those commands were never run anyway, but moving the
.MAIN target exposed these commands as unassociated.
2006-07-07 15:59:06 +00:00
jlam
fb353ac0e3 LIBTOOL_OVERRIDE and SHLIBTOOL_OVERRIDE have slightly different
semantics in pkgsrc.  Because libtool-override is run by default
whenever USE_LIBTOOL is specified, LIBTOOL_OVERRIDE never needs to be
defined, and some packages set it to nothing to avoid running
libtool-override.  However, shlibtool-override is only run if
SHLIBTOOL_OVERRIDE is defined and non-empty.

Split the code for libtool-override and shlibtool-override to reflect
these differing semantics.  This should make the PHP packages build
again by not overriding libtool.
2006-07-07 15:25:05 +00:00
jlam
355e1f1020 No need to define LIBTOOL_OVERRIDE explicitly since libtool-override.mk
will search for libtool scripts up to ${OVERRIDE_DIRDEPTH} below
${WRKSRC} already.
2006-07-07 14:29:41 +00:00
jlam
96e7846323 Move the STEP_MSG outside of the .if.endif block so it's always printed. 2006-07-07 14:25:54 +00:00
jlam
1cd6b0743c Add missing "rm" statement that was causing the libtool wrapper to be
overwritten in the case where LTCONFIG_OVERRIDE was defined.

As a side note, after analyzing the way that the original code in
bsd.pkg.mk worked, I think we can nuke LTCONFIG_OVERRIDE completely,
but we'll need a bulk build to verify this.  The original code always
replaced the libtool scripts because LIBTOOL_OVERRIDE is always defined
in bsd.pkg.use.mk, so LTCONFIG_OVERRIDE essentially had no effect.
2006-07-07 14:06:57 +00:00
jlam
bf9607f39e Make configure, install, and package barrier-aware even if NO_CONFIGURE,
NO_INSTALL, or NO_PACKAGE are defined.
2006-07-07 13:39:52 +00:00