Skip to content

Commit

Permalink
Sync with master to pick up working rockspecs among others.
Browse files Browse the repository at this point in the history
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
  • Loading branch information
gvvaughan committed Jan 16, 2014
1 parent ef980f1 commit 90fe864
Show file tree
Hide file tree
Showing 21 changed files with 1,195 additions and 199 deletions.
49 changes: 27 additions & 22 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,56 +8,61 @@ env:
- LUAROCKS_CONFIG=build-aux/luarocks-config.lua
- LUAROCKS_BASE=luarocks-2.1.1
- LUAROCKS="$LUA $HOME/bin/luarocks"
- GENDOC=luarocks/bin/
- SPECL=bin/specl
matrix:
- LUA=lua5.1 LUA_INCDIR=/usr/include/lua5.1 LUA_SUFFIX=5.1
- LUA=lua5.2 LUA_INCDIR=/usr/include/lua5.2 LUA_SUFFIX=5.2
- LUA=luajit-2.0.0-beta9 LUA_INCDIR=/usr/include/luajit-2.0 LUA_SUFFIX=5.1

# Tool setup.
install:
# Put back the links for libyaml, which are missing on recent Travis VMs
- test -f /usr/lib/libyaml.so ||
sudo find /usr/lib -name 'libyaml*' -exec ln -s {} /usr/lib \;

- sudo apt-get install help2man
- sudo apt-get install luajit
- sudo apt-get install libluajit-5.1-dev
- sudo apt-get install lua5.1
- sudo apt-get install liblua5.1-dev
- sudo apt-get install lua5.2
- sudo apt-get install liblua5.2-dev
# Put back the links for libyaml, which missing on recent Travis VMs
- test -f /usr/lib/libyaml.so ||
sudo find /usr/lib -name 'libyaml*' -exec ln -s {} /usr/lib \;
# Luadoc and Ldoc work best on Travis with Lua 5.1.
# sudo apt-get install luarocks
# sudo luarocks install
# mkdir -p luarocks/bin
# sed 's|^exec "[^"]*"|exec lua5.1|' `which ` > $GENDOC
# chmod a+rx $GENDOC
# Install a recent luarocks release locally for everything else.
- wget http://luarocks.org/releases/$LUAROCKS_BASE.tar.gz
- tar zxvpf $LUAROCKS_BASE.tar.gz
- cd $LUAROCKS_BASE
- ./configure
--prefix=$HOME --lua-version=$LUA_SUFFIX --lua-suffix=$LUA_SUFFIX
--with-lua-include=$LUA_INCDIR
- make all install
- cd ..
- ( cd $LUAROCKS_BASE;
./configure
--prefix=$HOME --lua-version=$LUA_SUFFIX --lua-suffix=$LUA_SUFFIX
--with-lua-include=$LUA_INCDIR;
make all install; )

# Configure and build.
script:
- ./bootstrap
# Initial bootstrap to build luarocks-config.lua, before we've
# installed our rocks.
- ./bootstrap --skip-rock-checks
- ./configure LUA="$LUA"
- make $LUAROCKS_CONFIG
LUA="$LUA" LUA_INCDIR="$LUA_INCDIR" V=1
|| cat $LUAROCKS_CONFIG config.log

# Set Lua and Shell paths up for local luarocks tree.
# this package depends on will be installed.
- eval `$LUAROCKS path`
- export PATH=`pwd`/luarocks/bin:$PATH

# Install extra rocks into $LUAROCKS_CONFIG rocks tree.
- $LUAROCKS install lyaml; $LUAROCKS install specl;

# Make git rockspec for this slingshot
- make rockspecs LUAROCKS="$LUAROCKS" V=1
|| { $LUAROCKS path; cat $ROCKSPEC; }
# LuaRocks make will fail if dependencies are missing.

# The git rockspec will rerun bootstrap, and check any rock versions
# in bootstrap.conf:buildreq this time.
- $LUAROCKS make $ROCKSPEC LUA="$LUA"
# Use bin/specl if we built it, or else the specl rock we just installed.
- test -f "$SPECL" || SPECL=luarocks/bin/specl;
LUA_PATH=`pwd`'/lib/?.lua;'"${LUA_PATH-;}" make check SPECL="$SPECL" V=1

# Run self-tests in the `luarocks make` build tree.
- LUA_PATH=`pwd`'/lib/?.lua;'"${LUA_PATH-;}"
LUA_CPATH=`pwd`'/ext/?.so;'"${LUA_CPATH-;}"
LUA_INIT= LUA_INIT_5_2=
make check V=1
179 changes: 179 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,5 +1,184 @@
2014-01-16 Gary V. Vaughan <gary@gnu.org>

configury: bump version to 7.
* configure.ac (AC_INIT): Bump version to 7.
* build-aux/merge-sections: Regenerate.

2014-01-16 Gary V. Vaughan <gary@gnu.org>

Revert "mkrockspecs: slingshot doesn't need slingshot submodule git magic!" and others...
This reverts commits 039367682f360cec97324e3fdb58bc3443938468,
d963b9832cd68fb938bc50ff423b9c6231e00abc and most of
0613d6e152f698bc4f570f00aed14103e8ed6683.

The whole issue was a red-herring, better solved by a tiny one-line
fix to bootstrap $GIT detection.

2014-01-15 Gary V. Vaughan <gary@gnu.org>

bootstrap: sync with upstream.
* build-aux/bootstrap.in: Sync with upstream.
* bootstrap: Regenerate.

mkrockspecs: add missing semi-colon.
* src/mkrockspecs.in (build): Add missing semicolon.

mkrockspecs: slingshot doesn't need slingshot submodule git magic!
* src/mkrockspecs.in (build): Only add the git magic if the
name of the current package is not "slingshot".

mkrockspecs: dont turn an existing git repo into a sparse checkout!
* src/mkrockspecs.in (build): Only run the git magic if slingshot
is missing.

configury: bump git revision to 1.7.0 for sparse checkout support.
* bootstrap.conf (buildreq): Bump minimum git revision to 1.7.0,
the first to support the sparse checkout features used in git/scm
rockspecs.

mkrockspecs: git magic to reenable slingshot submodule in PKG-git-1.rockspec.
Without this changeset, it was not possible to run bootstrap
inside a non-release revision checked out by luarocks install.
* mkrockspecs.in (prog): New --branch/-b option.
(build): Ugly git magic to fetch the missing slingshot submodule
from `luarocks install http://raw.github.com/owner/package.git`.
* NEWS: Update.

travis: let specl take care of itself.
* travis.yml.in (SPECL): Remove all references.
* .travis.yml: Regenerate.

2014-01-13 Gary V. Vaughan <gary@gnu.org>

travis: cosmetic improvements to travis.yml.in.
* travis.yml.in: Cosmetic improvements.
* .travis.yml: Regenerate.

configury: make sure make launched rebootstraps don't fall over.
* GNUmakefile (%::): Pass --skip-rock-checks to bootstrap.

travis: use if statements instead of && short circuiting.
* travis.yml.in (script): Travis treats a short circuit fail as
a script failure, so use full blown if statement.
* .travis.yml: Regenerate.

travis: fix SPECL environment setting.
* travis.yml.in (SPECL): Set it properly.
* .travis.yml: Regenerate.

travis: don't export SPECL until required.
* travis.yml.in (global): Remove SPECL.
(script): Set SPECL just prior to running it.
* .travis.yml: Regenerate.

slingshot: use buildreq to check specl version, not custom configury.
* bootstrap.conf (buildreq): Add specl requirement.
* m4/slingshot.m4 (SPECL_MIN): Remove.
* build-aux/specl.mk (specl-check-local): Simplify.

travis: use a single luarocks tree.
Now that LDoc and LuaDoc work correctly on Lua 5.2, no need to
jump through hoops to keep a separate 5.1 rockstree for them.
* m4/slingshot.m4 (GENDOC, GENDOC_FALSE): Remove.
* travis.yml.in: Some extra comments and spacing for better
readability.
(global): Remove GENDOC export.
(install): Remove @GENDOC_FALSE@ section.
(script): Use new --skip-rock-checks when building a Makefile
for luarocks-config.lua generation.
* .travis.yml: Regenerate.

bootstrap: add --skip-rock-checks option.
* build-aux/bootstrap.slingshot (slingshot_options_prep): Add
default value and usage text for --skip-rock-checks option.
(slingshot_parse_options): Parse --skip-rock-checks option.
(slingshot_check_rockspecs): Early return if --skip-rock-checks
was passed.
* bootstrap: Regenerate.

2014-01-08 Gary V. Vaughan <gary@gnu.org>

bootstrap: allow pre-emptive APPVAR to skip rockspec version checks.
Avoid a catch-22 where you can't run bootstrap because
prerequisite rocks are missing, but you can't install the rocks
until you have the configured Makefiles necessary to generate
luarocks-config.lua.
* build-aux/bootstrap.slingshot (slingshot_check_rockspecs): If
APPVARs (e.g. LDOC, SPECL) are already set in the environment,
but the paths they point to don't yet exist, skip the version
check, but show a warning that configure and/or make will be
needing them to work properly.
* bootstrap: Regenerate.
* NEWS: Update.

2014-01-07 Gary V. Vaughan <gary@gnu.org>

travis: be explicit about which LuaRocks tree is being used.
Older LDoc, and all Luadoc release only work with Lua 5.1, so on
Travis we have a system luarocks configured with Lua 5.1 to hold
those, but a separate LuaRocks tree managed by the latest LuaRocks
release for rock dependencies.
* travis.yml.in: Specify the system luarocks tree for bootstrap,
so that it will find LuaDoc correctly.

bootstrap: sync with upstream.
* build-aux/bootstrap.in: Sync with upstream, for --version fix.
* bootstrap: Regenerate.

bootstrap: support rockspecs in $buildreq, and --luarocks-tree.
* build-aux/bootstrap.slingshot (require_rockspecs_req)
(slingshot_rockspec_error, slingshot_split_buildreq)
(slingshot_check_rockspecs): New functions. Add support for
checking versions of rockspecs listed in $buildreq.
(slingshot_check_rockstree_path): New function. Warn if a
custom rockstree is passed, but not added to PATH.
(slingshot_options_prep, slingshot_parse_options)
(slingshot_option_validation): New functions. Add support for
--luarocks-tree=DIR.
* bootstrap: Regenerate.
* NEWS: Update.

bootstrap: sync with upstream.
* build-aux/bootstrap.in: sync with upstream.
* bootstrap: Regenerate.

2014-01-05 Gary V. Vaughan <gary@gnu.org>

bootstrap: sync with upstream.
* build-aux/bootstrap.in: Sync with upstream bootstrap.
* bootstrap: Regenerate.

mkrockspecs: reset LUA_INIT and LUA_INIT_5_2 before re-exec.
* src/merge-sections.in, src/mkrockspecs.in: Add 'Bourne compat'
boilerplate, and ensure LUA_INIT and LUA_INIT_5_2 are reset in
the environment before re-execing with $LUA.
* build-aux/merge-sections: Regenerate.

2014-01-04 Gary V. Vaughan <gary@gnu.org>

bootstrap: check in the merge-sections script.
We need build-aux/merge-sections available at bootstrap time so
that bootstrap can rebuild itself to check for updates.
* bootstrap.conf (require_bootstrap_uptodate): Improve failure
message.
* .gitignore: Remove build-aux/merge-sections.
* build-aux/merge-sections: Check in.

bootstrap: call func_ensure_changelog manually.
* bootstrap.conf: Call func_ensure_changelog manually.

bootstrap: ensure slingshot_copy function is merged in.
* src/merg-sections.in: Add support for `--verbose` flag.
* build-aux/bootstrap.in: Sync with upstream, now that section
header comment typos are fixed.
* bootstrap: Regenerate.
* NEWS: Update.

maint: post-release administrivia.
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* ./local.mk (old_NEWS_hash): Auto-update.

Release version 6
* NEWS: Record release date.

Expand Down
5 changes: 4 additions & 1 deletion GNUmakefile
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,12 @@ dont-forget-to-bootstrap = $(wildcard Makefile.in)

ifeq ($(dont-forget-to-bootstrap),)

## Don't redo any pedantic rock version checks, incase they derail
## a subdirectory bootstrap of slingshot.

%::
@echo '$(ME): rebootstrap'
@test -f Makefile.in || ./bootstrap
@test -f Makefile.in || ./bootstrap --skip-rock-checks
@test -f Makefile || ./configure
$(MAKE) $@

Expand Down
18 changes: 3 additions & 15 deletions Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@
# terms of the MIT license reproduced below.

# ==================================================================== #
# Copyright (C) 2013-2014 Gary V. Vaughan #
# Copyright (C) 2013-2014 Gary V. Vaughan #
# #
# Permission is hereby granted, free of charge, to any person #
# obtaining a copy of this software and associated documentation #
Expand Down Expand Up @@ -324,8 +324,6 @@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXTRA_ROCKS = @EXTRA_ROCKS@
GENDOC = @GENDOC@
GENDOC_FALSE = @GENDOC_FALSE@
GREP = @GREP@
HELP2MAN = @HELP2MAN@
INSTALL = @INSTALL@
Expand Down Expand Up @@ -356,7 +354,6 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SPECL = @SPECL@
SPECL_MIN = @SPECL_MIN@
STRIP = @STRIP@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
Expand Down Expand Up @@ -423,7 +420,7 @@ install_exec_hooks =
lib_LTLIBRARIES =
man_MANS = docs/mkrockspecs.1
save_release_files = $(scm_rockspec)
old_NEWS_hash = b7f5ee3470e07fef2c1a882767f9b99b
old_NEWS_hash = 4a4a721668a1516c046d865c7b425586
update_copyright_env = \
UPDATE_COPYRIGHT_HOLDER='(Free Software Foundation, Inc.|Gary V. Vaughan|Reuben Thomas)' \
UPDATE_COPYRIGHT_USE_INTERVALS=1 \
Expand Down Expand Up @@ -1012,16 +1009,7 @@ docs/mkrockspecs.1: build-aux/mkrockspecs Makefile
build-aux/mkrockspecs; \
fi
specl-check-local: $(specl_SPECS)
@v=`$(SPECL) --version | sed -e 's|^.* ||' -e 1q`; \
if test "$$v" -lt "$(SPECL_MIN)"; then \
printf "%s%s\n%s\n" \
"ERROR: Specl version $$v is too old," \
" please upgrade to at least version $(SPECL_MIN)," \
"ERROR: and rerun \`make check\`"; \
exit 1; \
else \
$(SPECL_ENV) $(SPECL) $(SPECL_OPTS) $(specl_SPECS); \
fi
$(SPECL_ENV) $(SPECL) $(SPECL_OPTS) $(specl_SPECS)

$(luarocks_config): Makefile.am
@test -d build-aux || mkdir build-aux
Expand Down
29 changes: 29 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,5 +1,34 @@
Slingshot NEWS - User visible changes.

* Noteworthy changes in release ?.?.? (????-??-??)

** New Features:

- `mkrockspecs` accepts a new `--branch` option for generating a
git/scm rockspec that pulls that branch instead of master.

- Slingshot bootstrap will check rockspecs listed in $buildreq,
according to the URL part of a specification-triple ending in
`.rockspec`. So that we don't have to install, say, LDoc twice
for Travis (once in the system rocks tree so that bootstrap
won't bomb out with a missing rockspec error, and then again
in the project rocks tree after luarocks-config.ld has been
built by make), the rockspec version checks can be short-
circuited by setting an APPVAR in bootstrap's environment, e.g:

LDOC=`pwd`/luarocks/bin/ldoc ./bootstrap

- Slingshot bootstrap accepts a new `--luarocks-tree` option to
check a particular tree for prerequisite rocks.

- `build-aux/merge-sections` has a new `--verbose` flag that reports
progress to stderr in real time.

** Bugs fixed:

- `bootstrap` now has `slingshot_copy` merged in correctly.


* Noteworthy changes in release 6 (2014-01-04) [stable]

** New Features:
Expand Down
Loading

0 comments on commit 90fe864

Please sign in to comment.