Commit graph

26 commits

Author SHA1 Message Date
nikita
24852d9fda Add USE_GITLAB, based on github.mk, to make gitlab MASTER_SITE
handling less repetitive.

 To use, set in Makefile:
 DISTNAME=     exampleproject-1.2
 MASTER_SITES= ${MASTER_SITE_GITLAB:=accountname/}

 The following variables alter gitlab.mk behavior:

 GITLAB_PROJECT        defaults to PKGBASE
 GITLAB_TAG            defaults to PKGVERSION_NOREV
                       sometimes you want to override with v${PKGVERSION_NOREV}
                       SHA-1 commit ids are also acceptable
 GITLAB_RELEASE        defaults to not defined, set this to ${DISTNAME}
                       when packaging a release not based on a git tag.
 GITLAB_SUBMODULES     manually set submodule information:
                       values should be:
                       GitLab_user GitLab_project tag_or_hash submodule_path
 GITLAB_TYPE           overrides the autodetected MASTER_SITE URL scheme:
2022-05-23 21:45:45 +00:00
ryoon
e8aa763230 mk: Introduce GITHUB_SUBMODULES to get and place Git submodules for GitHub 2021-03-30 16:47:03 +00:00
rillig
276bc87b64 mk/fetch: add SITES.* to the variables for the show-all-fetch target 2019-11-22 19:30:23 +00:00
rillig
858c6cfd69 mk/misc: make configuration for show-all targets more configurable
Up to now, there was a central list of variable name patterns that
defined whether a variable was printed as a sorted list, as a list or as
a single value.

Now each variable group decides on its own which of the variables are
printed in which way, using the usual glob patterns. This is more
flexible since different files sometimes differ in their naming
conventions.

Two variable groups are added: license (for everything related to
LICENSE) and go (for lang/go).
2018-11-30 18:38:19 +00:00
joerg
7612f47233 Introduce IGNORE_INTERACTIVE_FETCH to allow trying to fetch files from
the override site, even for INTERACTIVE_STATE=stage or FETCH_MESSAGE.
Ignore all backup sites as they won't have the distfile anyway, the
fetch wouldn't be interactive in first place otherwise.
2015-09-13 15:03:57 +00:00
joerg
d047710b53 Make the post-fetch hook a bit more useful by also handing down the URL
the file was obtained from. This makes it easier to skip any local
mirrors.
2015-09-08 12:37:56 +00:00
joerg
0cf087a0ae Add a hook for running an action after a successful fetch.
This is intended for keeping distfile archives synchronised between
different machines without requiring NFS mounts or the like.
2015-09-08 11:13:12 +00:00
tnn
976b7a048b Use SITES.${_GITHUB_DEFAULT_DISTFILES} instead of ugly := assignment
to MASTER_SITES which could conceivably break some use cases.
Also add comment in bsd.fetch-vars.mk.
2015-03-09 15:50:18 +00:00
tnn
c9632aa0f3 Address issues raised by agc@ to make the github master site handling
more pkgsrcesque.

1) turn _USE_GITHUB into an internal infrastructure variable
2) put back MASTER_SITES in packages' Makefiles.
3) encode the account in the master site URL, remove GH_ACCOUNT
4) rename GH_PROJECT to GITHUB_PROJECT
5) rename GH_TAGNAME to GITHUB_TAG and allow it to accept commit hash
   as well as tag. GH_COMMIT is gone.
6) turn on this functionality when MASTER_SITES matches a predefined github
   pattern instead of via explicit USE_GITHUB setting.
2015-03-07 21:14:32 +00:00
tnn
a5c5eb95d9 Adopt USE_GITHUB from FreeBSD ports to make github MASTER_SITE
handling less painful.
See: https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/makefile-distfiles.html#makefile-master_sites-github

To use, set in Makefile:

DISTNAME=	exampleproject-1.2
USE_GITHUB=	YES

The following variables alter USE_GITHUB behavior:

GH_ACCOUNT	defaults to PKGBASE
GH_PROJECT	defaults to PKGBASE
GH_TAGNAME	defaults to PKGVERSION_NOREV
		(sometimes you want to override with v${PKGVERSION_NOREV})
GH_COMMIT	explicit commit hash if no tag is available
GH_RELEASE	default empty, may be set to ${DISTNAME} for example
GH_TYPE		overrides the autodetected MASTER_SITE URL scheme
2015-03-07 14:17:51 +00:00
obache
b2f380436c loose mandantory DISTNAME. 2014-03-02 08:54:41 +00:00
obache
62d4cd4284 tell wget as a tool. 2014-02-14 07:43:46 +00:00
jperkin
a5307e4d55 Make curl a tool. Add support for /usr/bin/curl, if available, on Solaris.
SmartOS and OmniOS users can now set FETCH_USING=curl and no longer require
pkgsrc dependencies for downloading distfiles.
2012-07-27 10:48:36 +00:00
joerg
490760d2f4 Only add dependency on the fetch program, if there is something to
fetch.
2009-03-20 16:23:48 +00:00
joerg
d02ad103b8 Change the way the fetch process is organised as proposed on tech-pkg:
- Introduce FETCH_USING, which specifies the mechanism to use; possible
  values are ftp, fetch, curl, wget, manual and custom.
- Depend on the correct tool/program if not using manual or custom.
- For manual, just use /usr/bin/false to bail out if a distfile is
  missing.
- For custom, FETCH_CMD and related variables are used as before.
- Default value is ftp.
2009-02-10 18:55:54 +00:00
joerg
4a202fc0c8 Add ftp as tool. On NetBSD and DragonFly, this will use the system
version of tnftp, otherwise it will use net/tnftp. Require ftp as
bootstrap dependency when the package has files to fetch.

The dependency is currently unconditional and FETCH_CMD is set to
TOOLS_PATH.ftp by default.
2008-05-22 20:11:55 +00:00
joerg
65244e1c32 Move digest dependency into checksum and fetch part.
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-05-22 16:27:22 +00:00
rillig
67974dcb6a Added some variables for "bmake show-all-fetch". 2007-11-02 09:02:57 +00:00
rillig
fca91bf3c4 Added a variable DEFAULT_DISTFILES that can be used when adding
distfiles to DISTFILES.
2007-08-16 07:42:53 +00:00
joerg
ced3f13079 Don't depend on digest if FAILOVER_FETCH and NO_CHECKSUM are set
together.
2007-07-27 14:24:53 +00:00
rillig
ac35deefb7 Documented DIST_PATH and fixed two typos (${TARGET} is not ${.TARGET}). 2006-07-27 07:41:40 +00:00
jlam
c88a32be7d Make "mirror-distfiles" less verbose by not printing out anything if no
bootstrap dependencies need to be built and installed.
2006-07-19 16:01:40 +00:00
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
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
jlam
3058ace76f Move some variable definitions out of bsd.prefs.mk and back into
bsd.pkg.mk.  They didn't actually need to be defined in bsd.prefs.mk,
just somewhere before the "main" bsd.<phase>.mk files were included.
This moves some conditional (?=) definitions back into bsd.pkg.mk so
they won't conflict with any conditional definitions in package
Makefiles.

This should fix the "checksum" problems in lang/php-gd as noted here:

    http://mail-index.netbsd.org/pkgsrc-users/2006/06/05/0012.html

where EXTRACT_SUFX had the wrong value due to the order in while *.mk
files were included.
2006-06-06 15:28:51 +00:00
jlam
c78510391e Refactor "fetch" and "extract" code into correspondingly named
subdirectories of pkgsrc/mk.  Move the following files around for
locality:

	pkgsrc/mk/scripts/extract  -> pkgsrc/mk/extract/extract
	pkgsrc/mk/bsd.sites.mk     -> pkgsrc/mk/fetch/sites.mk

Also get rid of the recursive make for the "fetch" and "extract"
targets.  This basically merges the "fetch" and "extract" phases into
the "patch" phase.

There is still much more work to do to simplify the fetch code, but
this is a good start.
2006-06-06 03:05:48 +00:00