summaryrefslogtreecommitdiff
path: root/mk/checksum
AgeCommit message (Collapse)AuthorFilesLines
2020-10-07checksum.awk: Avoid warnings with newer gawk.jperkin1-3/+3
Reported by Jörn Clausen in PR#55581.
2020-08-27mk: Remove an unwanted NetBSD RCS tag.jperkin1-2/+2
2020-08-27mk: Rewrite the checksum script in awk.jperkin3-196/+313
The previous shell script version's runtime was quadratic against the number of distfiles to verify. Historically this has not been an issue, with usually only a handful of files per package. However, with the introduction of Go modules the number of distfiles used by a single package can be very high. For example, in an upcoming update of www/grafana to version 7.1.5, the number of GO_MODULE_FILES is 821. Running 'bmake checksum' takes: real 18m20.743s user 17m27.975s sys 0m49.239s With the awk code, this is reduced to a far more sensible: real 0m4.330s user 0m3.241s sys 0m0.875s The script has been written to emulate the previous version precisely, preserving the same output and error messages and supporting all of its behaviour, with the one exception that previous exit values of 128 have been changed to 3, in order to avoid any potential signed 8-bit issues. The one change in the pkgsrc infrastructure is that the mk/fetch/fetch script no longer sets a working default value for ${CHECKSUM}. This is not a problem in a pkgsrc environment as all of the required variables are set correctly, but if there happen to be any users who are using this script in a standalone environment, they will need to set it accordingly. This was probably required in many situations previously anyway, as none of the script's environment variables were set, and trying to support this would be fragile at best.
2018-08-22Remove clauses 3,4 from TNF-only copyright blocks.maya2-17/+3
This is based on the decision The NetBSD Foundation made in 2008 to do so, which was already applied to src. This change has been applied to code which is likely not in other repositories. ok board@, reviewed by riastradh@
2018-01-07Improved documentation for "make help".rillig2-2/+4
The check for target(help) prevents a warning when "make help" is run from a category directory.
2016-01-06Use :tA to make DISTINFO_FILE absolute when passing it to the fetchdholland1-2/+2
and checksum scripts. Fixes the problem where DISTINFO_FILE=../../foo/bar/distinfo doesn't work without having an extraneous and ugly ${.CURDIR} stuffed into it by hand.
2015-10-12Now that it looks like SHA1 is getting closer to its end of life, addagc1-2/+2
the SHA512 digest to the mix of digests we keep for each distfile. All part of providing stronger digests for pkgsrc, as discussed on tech-pkg recently, with unanimous agreement. There will be further changes in this area in the near future, as we transit away from reliance on SHA1 and RMD160. New distinfo files will gain a SHA512 digest entry. Existing verification of distinfo files will just use the SHA1 and RMD160 digests which exist right now.
2013-11-16Ensure failure on failure of depends-fetch and depends-checksum targets.jakllsch1-2/+2
2013-06-14Remove work-arounds for Mac OS X Mountain Lion's broken "awk" as we aretron2-6/+3
no longer using it.
2013-05-16Use TOOLS_CMDLINE_SED instead of TOOLS_SED, to pass special arguments,obache1-2/+2
right now, `-b' option for Cygwin.
2013-01-28Also fix the "patch" target for patch files with broken UTF-8 sequencestron1-1/+4
in them under Mac OS X Mountain Lion. The previous change only fixed the "makedistinfo" target.
2013-01-24Force using the C locale while checking or generating patch file checksums.tron1-2/+2
Mac OS X Mountain Lion's "sed" will otherwise reject some patch files (e.g. "pkgsrc/devel/libcfg+/patches/patch-ab") because of broken UTF-8 encoding. It would probably be better not to use the bundled "sed" under Mac OS X Mountain Lion at all. But it seems that this is not supported by "pkgsrc" at the moment.
2012-10-13Speed up the algorithm to determine the files left to check.jmmv1-12/+7
This change modifies the algorithm used to keep track of the files that have not yet been checksummed to use a simple loop instead of shell pattern matching. For packages with few distinfo entries, either way yields the same result as the list of files to check is very short. But for those packages with hundreds of distinfo entries (vim, I'm looking at you), the difference is huge. In my old macppc machine, the checksum of vim used to take around 40 minutes and now it takes ~35 seconds. The difference is also clearly visible in my faster amd64 machine (although I haven't bothered to time it).
2011-09-08Introduce PKGSRC_SETENV, defaulting to SETENV. Can be set to ${SETENV} -iabs1-3/+3
to santise environment
2009-07-15Add depends-fetch and depends-checksum. They work likejoerg2-2/+15
show-depends-options, e.g. recurse. make fetch-list does not provide the same functionality as it doesn't deal well with broken mirror.
2008-05-22If _CKSUMFILES is empty, also skip checksum logic. Unbreaks metajoerg1-2/+2
packages.
2008-05-22Move digest dependency into checksum and fetch part.joerg3-11/+17
Make _ALL_FILES and in turn _CKSUMFILES available earlier. Use it to only depend on digest if _CKSUMFILES is non-empty. NO_CHECKSUM will now only skip the checksum and checksum-phase targets. FAILOVER_FETCH will independently check the sums on distfiles and depend on digest, fixing the remaining issues originally raised in PR 34914.
2008-01-04Made the .include directives simpler, since the directory of therillig1-2/+2
including file is always the first in the search path.
2007-10-09Remove trailing spaces.martti1-2/+2
2007-08-31Introduce a new target "checksum-phase" which is used as a dependencyjlam2-15/+22
target by pkgsrc. This new target computes checksums only up until the extract phase is complete. The "checksum" target is now a target that can always be run by the user at any time, regardless of the presence of the work directory. These changes were proposed in PR pkg/36603 by Robert Elz.
2007-08-24When verifying checksums of distfiles, simply verify every checksumjlam1-5/+2
provided in the distinfo file for those distfiles, rather than checking specifically for the ones listed in _DIGEST_ALGORITHMS. If a distinfo file actually provides checksums for other algorithms, e.g. TIGER, then go ahead and verify them too.
2007-08-24Fix accidental :dw in previous commit.jlam1-2/+2
2007-08-24Restore the tradition behaviour of the "checksum" target. It can bejlam1-14/+21
run now at any time up until the "extract" phase completes, and the "checksum" target no longer keeps a state (cookie) file. From the checksum.mk file comments: We do not actually wish to create a cookie file for the completion of the checksum phase because we want to be able to detect if any of the files have changed right up until the distfiles are extracted. Therefore, we use the presence of the cookie file from the "extract" phase to determine whether we need to continue to verify checksums. This addresses PR pkg/36262 and PR pkg/36603.
2007-08-16Allow for emulation-specific patches for binary-only packages. Thejlam2-4/+5
patches are named emul-${EMUL_PLATFORM}-patch-* and are located in ${PATCHDIR}.
2007-08-15Use a flag to the checksum script to tell it whether we're checkingjlam2-18/+18
a distfile or a pkgsrc patch. It's simple, cleaner, less magic, etc. (duh!). While here, I notice that _CHECKSUM_CMD was already being defined in mk/checksum/checksum.mk (as it should be), so update the definition from mk/patch/patch.mk and remove it from patch.mk.
2007-08-14Teach the pkgsrc/mk/checksum/checksum script how to verify patches byjlam1-35/+52
first stripping them of NetBSD RCS ID tags. Use the checksum script in the patch module to verify patch checksums instead of hand-coding a miniature version of the checksum script in the do-pkgsrc-patches target.
2007-08-14Strip out *all* of the lines containing NetBSD RCS ID tags that mayjlam1-12/+5
be lurking in patches before computing their checksum.
2007-08-14Protect the template NetBSD RCS ID tag from being expanded.jlam1-4/+4
2007-08-14Move the code that generates distinfo to a standalone AWK script.jlam3-58/+410
2007-03-07Removed many redundant comments and restructured the code, so that itrillig2-61/+41
becomes a little shorter.
2007-02-20For all but a very few developers, it is sufficient to check therillig1-3/+13
distfiles' checksums once and only once, between fetching and extracting them. The DO_CHECKSUMS_REPEATEDLY variable can be set to "yes" by those who need the checksums checked more than once.
2006-12-15Remove trailing tabs.martti1-2/+2
2006-09-19Even if NO_CHECKSUM is set, the "checksum" target still needs to dependrillig1-2/+2
on "fetch". Otherwise the distfiles are never fetched.
2006-07-19The "makedistinfo" target should actually be named "distinfo" to matchjlam1-7/+9
the old bsd.pkg.mk behavior (noted by adrianp in private email). Keep "makedistinfo" as an alias for "distinfo". While here, sprinkle some .PHONY declarations for correctness.
2006-07-18Add a flag "-s suffix" for allowing the specified files to have a suffixjlam1-6/+15
that will be removed before looking up the checksum in the distinfo file.
2006-07-17Don't say "ERROR:" or "WARNING:"... be a more typical shell script byjlam1-4/+4
just noting the error or warning to standard error.
2006-07-14Avoid using # and % to strip prefix/suffix from variable values -- notjlam1-3/+2
enough agreement on how that should work amongst Bourne shell variants.
2006-07-13Check whether the "checksum" target is defined beforehand to preventjlam1-2/+6
"duplicate script" collisions with the one defined by bsd.pkg.mk if PKG_*_REASON is set.
2006-07-13Check whether the checksum target is defined before defining one.jlam1-3/+5
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* Fix bug when more than one file needed to be checksummed.jlam1-4/+3
* 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-13Try to avoid possible differences in processing "$@".jlam1-4/+5
2006-07-13Backslash escape the parentheses so the shell doesn't think it shouldjlam1-2/+2
do shell expansion. Fixes a bug picked up by /bin/ksh and by /bin/sh in -current.
2006-07-13Fix some quoting errors and a harmless copy-and-paste error.jlam1-4/+4
2006-07-13Add a few more double-quotes around eval'ed variables.jlam1-5/+5
2006-07-13* Add a new stage "bootstrap-depends" that happens before all otherjlam4-0/+348
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}.