Skip to content
This repository has been archived by the owner on Feb 24, 2020. It is now read-only.

Commit

Permalink
build: add default stage1 name and version
Browse files Browse the repository at this point in the history
We add new configure options for the default name and version of the
stage1 aci. These are passed to rkt so it knows under which name and
version to search for stage1 in the store.

By default they are "coreos.com/rkt/stage1" and the rkt version number.
If packagers want to use a custom stage1 they should set these options
to the right values.
  • Loading branch information
krnowak authored and iaguis committed Aug 6, 2015
1 parent a711d13 commit 0d51cc2
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 8 deletions.
54 changes: 49 additions & 5 deletions configure.ac
Expand Up @@ -56,6 +56,47 @@ AS_CASE([${RKT_STAGE1_USR_FROM}],

AC_SUBST(RKT_STAGE1_USR_FROM)

m4_define(DEFAULT_STAGE1_NAME,coreos.com/rkt/stage1)
m4_define(DEFAULT_STAGE1_VERSION,AC_PACKAGE_VERSION)
AC_ARG_WITH(stage1-default-name,
AS_HELP_STRING([--with-stage1-default-name=stage1_name],
[default name of stage1, default: DEFAULT_STAGE1_NAME]),
[RKT_STAGE1_DEFAULT_NAME="${withval}"],
[RKT_STAGE1_DEFAULT_NAME=auto])

AC_ARG_WITH(stage1-default-version,
AS_HELP_STRING([--with-stage1-default-version=stage1_version],
[default version of stage1, default: DEFAULT_STAGE1_VERSION]),
[RKT_STAGE1_DEFAULT_VERSION="${withval}"],
[RKT_STAGE1_DEFAULT_VERSION=auto])

dnl warn if we specified above flags for other flavors than none
AS_VAR_IF([RKT_STAGE1_USR_FROM], [none],
dnl none flavor
[],
dnl not none flavor
[AS_VAR_IF([RKT_STAGE1_DEFAULT_NAME], [auto],
dnl default
[],
dnl not default
[AC_MSG_WARN([* --with-stage1-default-name is ignored by ${RKT_STAGE1_USR_FROM} stage1 flavor])
RKT_STAGE1_DEFAULT_NAME=auto])
AS_VAR_IF([RKT_STAGE1_DEFAULT_VERSION], [auto],
dnl default
[],
dnl not default
[AC_MSG_WARN([* --with-stage1-default-version is ignored by ${RKT_STAGE1_USR_FROM} stage1 flavor])
RKT_STAGE1_DEFAULT_VERSION=auto])])

AS_VAR_IF([RKT_STAGE1_DEFAULT_NAME], [auto],
[RKT_STAGE1_DEFAULT_NAME=DEFAULT_STAGE1_NAME])
AS_VAR_IF([RKT_STAGE1_DEFAULT_VERSION], [auto],
[RKT_STAGE1_DEFAULT_VERSION=DEFAULT_STAGE1_VERSION])

RKT_STAGE1_DEFAULT_ACI_LDFLAGS="-X main.defaultStage1Name '${RKT_STAGE1_DEFAULT_NAME}' -X main.defaultStage1Version '${RKT_STAGE1_DEFAULT_VERSION}'"

AC_SUBST(RKT_STAGE1_DEFAULT_ACI_LDFLAGS)

## STAGE1: Systemd git path for src flavor
m4_define([DEFAULT_STAGE1_SYSTEMD_SRC], [https://github.com/systemd/systemd.git])
AC_ARG_WITH(stage1-systemd-src,
Expand Down Expand Up @@ -117,13 +158,13 @@ AC_ARG_WITH(stage1-image-path,
[RKT_STAGE1_IMAGE="${withval}"],
[RKT_STAGE1_IMAGE=""])

RKT_STAGE1_IMAGE_FLAGS=
RKT_STAGE1_IMAGE_LDFLAGS=
# if stage1 image variable is set, add a linker flag to rkt defining the variable
AS_VAR_IF([RKT_STAGE1_IMAGE], [],
[],
[RKT_STAGE1_IMAGE_FLAGS="-ldflags \"-X main.defaultStage1Image '${RKT_STAGE1_IMAGE}'\""])
[RKT_STAGE1_IMAGE_LDFLAGS="-X main.defaultStage1Image '${RKT_STAGE1_IMAGE}'"])

AC_SUBST(RKT_STAGE1_IMAGE_FLAGS)
AC_SUBST(RKT_STAGE1_IMAGE_LDFLAGS)

AC_ARG_ENABLE([functional-tests],
AS_HELP_STRING([--enable-functional-tests],
Expand Down Expand Up @@ -194,12 +235,15 @@ AC_MSG_RESULT([
stage1 flavor: '${RKT_STAGE1_USR_FROM}'
stage1 image path: '${RKT_STAGE1_IMAGE}'
linker flags: '${RKT_STAGE1_IMAGE_FLAGS}'
functional tests: '${RKT_RUN_FUNCTIONAL_TESTS}'])

AS_CASE([${RKT_STAGE1_USR_FROM}],
[src],
[AC_MSG_RESULT([
systemd git repo: '${RKT_STAGE1_SYSTEMD_SRC}'
systemd version: '${RKT_STAGE1_SYSTEMD_VER}'])],
[])
[none],
[AC_MSG_RESULT([
stage1 name: '${RKT_STAGE1_DEFAULT_NAME}'
stage1 version: '${RKT_STAGE1_DEFAULT_VERSION}'])],
[])
4 changes: 3 additions & 1 deletion makelib/variables.mk.in
Expand Up @@ -45,9 +45,11 @@ RKT_STAGE1_SYSTEMD_SRC := @RKT_STAGE1_SYSTEMD_SRC@
# systemd build version
RKT_STAGE1_SYSTEMD_VER := @RKT_STAGE1_SYSTEMD_VER@
# stage1 image flags (the optional custom path linked into binary set by user)
RKT_STAGE1_IMAGE_FLAGS := @RKT_STAGE1_IMAGE_FLAGS@
RKT_STAGE1_IMAGE_LDFLAGS := @RKT_STAGE1_IMAGE_LDFLAGS@
# whether to run functional tests
RKT_RUN_FUNCTIONAL_TESTS := @RKT_RUN_FUNCTIONAL_TESTS@
# ld flags for default stage1 name and version
RKT_STAGE1_DEFAULT_ACI_LDFLAGS := @RKT_STAGE1_DEFAULT_ACI_LDFLAGS@

# build-related directories and binaries
BUILDDIR ?= $(MK_TOPLEVEL_ABS_SRCDIR)/build-$(distdir)
Expand Down
2 changes: 1 addition & 1 deletion rkt/rkt.mk
Expand Up @@ -7,7 +7,7 @@ RKT_BINARY := $(BINDIR)/$(LOCAL_NAME)
# variables for makelib/build_go_bin.mk
BGB_BINARY := $(RKT_BINARY)
BGB_PKG_IN_REPO := $(subst $(MK_TOPLEVEL_SRCDIR)/,,$(MK_SRCDIR))
BGB_GO_FLAGS := $(strip $(RKT_STAGE1_IMAGE_FLAGS) $(RKT_TAGS))
BGB_GO_FLAGS := $(strip -ldflags "$(RKT_STAGE1_DEFAULT_ACI_LDFLAGS) $(RKT_STAGE1_IMAGE_LDFLAGS)" $(RKT_TAGS))

CLEAN_FILES += $(BGB_BINARY)
TOPLEVEL_STAMPS += $(RKT_STAMP)
Expand Down
4 changes: 3 additions & 1 deletion rkt/run.go
Expand Up @@ -34,7 +34,9 @@ import (
)

var (
defaultStage1Image string // either set by linker, or guessed in init()
defaultStage1Image string // either set by linker, or guessed in init()
defaultStage1Name string // set by linker
defaultStage1Version string // set by linker

cmdRun = &cobra.Command{
Use: "run [--volume=name,kind=host,...] IMAGE [-- image-args...[---]]...",
Expand Down

0 comments on commit 0d51cc2

Please sign in to comment.