gnu: Add tup.
* gnu/packages/build-tools.scm (tup): New variable. * gnu/packages/patches/tup-unbundle-dependencies.patch: New file. * gnu/local.mk (dist_patch_DATA): Register new file.
This commit is contained in:
parent
065cb27abb
commit
2c1d1b7599
3 changed files with 146 additions and 0 deletions
|
@ -1541,6 +1541,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/ttf2eot-cstddef.patch \
|
%D%/packages/patches/ttf2eot-cstddef.patch \
|
||||||
%D%/packages/patches/ttfautohint-source-date-epoch.patch \
|
%D%/packages/patches/ttfautohint-source-date-epoch.patch \
|
||||||
%D%/packages/patches/tomb-fix-errors-on-open.patch \
|
%D%/packages/patches/tomb-fix-errors-on-open.patch \
|
||||||
|
%D%/packages/patches/tup-unbundle-dependencies.patch \
|
||||||
%D%/packages/patches/tuxpaint-stamps-path.patch \
|
%D%/packages/patches/tuxpaint-stamps-path.patch \
|
||||||
%D%/packages/patches/twinkle-bcg729.patch \
|
%D%/packages/patches/twinkle-bcg729.patch \
|
||||||
%D%/packages/patches/u-boot-riscv64-fix-extlinux.patch \
|
%D%/packages/patches/u-boot-riscv64-fix-extlinux.patch \
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||||
;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
|
;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
|
||||||
;;; Copyright © 2020 Yuval Kogman <nothingmuch@woobling.org>
|
;;; Copyright © 2020 Yuval Kogman <nothingmuch@woobling.org>
|
||||||
|
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -36,12 +37,16 @@ (define-module (gnu packages build-tools)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (gnu packages check)
|
#:use-module (gnu packages check)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
|
#:use-module (gnu packages linux)
|
||||||
#:use-module (gnu packages lua)
|
#:use-module (gnu packages lua)
|
||||||
#:use-module (gnu packages package-management)
|
#:use-module (gnu packages package-management)
|
||||||
|
#:use-module (gnu packages pcre)
|
||||||
|
#:use-module (gnu packages pkg-config)
|
||||||
#:use-module (gnu packages python)
|
#:use-module (gnu packages python)
|
||||||
#:use-module (gnu packages python-crypto)
|
#:use-module (gnu packages python-crypto)
|
||||||
#:use-module (gnu packages python-web)
|
#:use-module (gnu packages python-web)
|
||||||
#:use-module (gnu packages python-xyz)
|
#:use-module (gnu packages python-xyz)
|
||||||
|
#:use-module (gnu packages sqlite)
|
||||||
#:use-module (gnu packages ninja)
|
#:use-module (gnu packages ninja)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (guix build-system python))
|
#:use-module (guix build-system python))
|
||||||
|
@ -276,6 +281,80 @@ (define-public premake5
|
||||||
scripted definition of a software project and outputs @file{Makefile}s or
|
scripted definition of a software project and outputs @file{Makefile}s or
|
||||||
other lower-level build files.")))
|
other lower-level build files.")))
|
||||||
|
|
||||||
|
(define-public tup
|
||||||
|
(package
|
||||||
|
(name "tup")
|
||||||
|
(version "0.7.8")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "http://gittup.org/tup/releases/tup-v"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1z8d5mmddiw3ckdvy88bi48aa5bm0hrid6g9c9hp2ynmpzywmp2h"))
|
||||||
|
(patches (search-patches "tup-unbundle-dependencies.patch"))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
(snippet
|
||||||
|
'(begin
|
||||||
|
;; NOTE: Tup uses a slightly modified Lua, so it cannot be
|
||||||
|
;; unbundled. See: src/lula/tup-lua.patch
|
||||||
|
(delete-file-recursively "src/pcre")
|
||||||
|
(delete-file-recursively "src/sqlite3")
|
||||||
|
#t))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
;; There is a bootstrap script, but it doesn't do what you think - it
|
||||||
|
;; builds tup.
|
||||||
|
(delete 'bootstrap)
|
||||||
|
(replace 'configure
|
||||||
|
(lambda _
|
||||||
|
(substitute* "src/tup/link.sh"
|
||||||
|
(("`git describe`") ,version))
|
||||||
|
(with-output-to-file "tup.config"
|
||||||
|
(lambda _
|
||||||
|
(format #t "CONFIG_TUP_USE_SYSTEM_SQLITE=y~%")))
|
||||||
|
#t))
|
||||||
|
(delete 'check)
|
||||||
|
(replace 'build
|
||||||
|
(lambda _
|
||||||
|
;; Based on bootstrap-nofuse.sh, but with a detour to patch-shebang.
|
||||||
|
(invoke "./build.sh")
|
||||||
|
(invoke "./build/tup" "init")
|
||||||
|
(invoke "./build/tup" "generate" "--verbose" "build-nofuse.sh")
|
||||||
|
(patch-shebang "build-nofuse.sh")
|
||||||
|
(invoke "./build-nofuse.sh")))
|
||||||
|
(replace 'install
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let* ((outdir (assoc-ref outputs "out"))
|
||||||
|
(ftdetect (string-append outdir
|
||||||
|
"/share/vim/vimfiles/ftdetect")))
|
||||||
|
(install-file "tup" (string-append outdir "/bin"))
|
||||||
|
(install-file "tup.1" (string-append outdir "/share/man/man1"))
|
||||||
|
(install-file "contrib/syntax/tup.vim"
|
||||||
|
(string-append outdir "/share/vim/vimfiles/syntax"))
|
||||||
|
(mkdir-p ftdetect)
|
||||||
|
(with-output-to-file (string-append ftdetect "/tup.vim")
|
||||||
|
(lambda _
|
||||||
|
(display "au BufNewFile,BufRead Tupfile,*.tup setf tup")))
|
||||||
|
#t))))))
|
||||||
|
(inputs
|
||||||
|
`(("fuse" ,fuse)
|
||||||
|
("pcre" ,pcre)
|
||||||
|
("pcre" ,pcre "bin") ; pcre-config
|
||||||
|
("sqlite" ,sqlite)))
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)))
|
||||||
|
(home-page "http://gittup.org/tup/")
|
||||||
|
(synopsis "Fast build system that's hard to get wrong")
|
||||||
|
(description "Tup is a generic build system based on a directed acyclic
|
||||||
|
graphs of commands to be executed. Tup instruments your build to detect the
|
||||||
|
exact dependencies of the commands, allowing you to take advantage of ideal
|
||||||
|
parallelism during incremental builds, and detecting any situations where
|
||||||
|
a build worked by accident.")
|
||||||
|
(license license:gpl2)))
|
||||||
|
|
||||||
(define-public osc
|
(define-public osc
|
||||||
(package
|
(package
|
||||||
(name "osc")
|
(name "osc")
|
||||||
|
|
66
gnu/packages/patches/tup-unbundle-dependencies.patch
Normal file
66
gnu/packages/patches/tup-unbundle-dependencies.patch
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
Allow building tup after removing some bundled sources from the source
|
||||||
|
tree.
|
||||||
|
|
||||||
|
diff --git a/build.sh b/build.sh
|
||||||
|
index 2937116d..eab650f7 100755
|
||||||
|
--- a/build.sh
|
||||||
|
+++ b/build.sh
|
||||||
|
@@ -16,7 +16,7 @@ else
|
||||||
|
echo "Error: invalid TUP_SERVER \"$server\"" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
-LDFLAGS="$LDFLAGS -lm"
|
||||||
|
+LDFLAGS="$LDFLAGS -lm -lsqlite3 `pcre-config --libs`"
|
||||||
|
: ${CC:=gcc}
|
||||||
|
case "$os" in
|
||||||
|
Linux)
|
||||||
|
@@ -65,17 +65,15 @@ mkdir luabuiltin
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS -DTUP_SERVER=\"$server\""
|
||||||
|
CFLAGS="$CFLAGS -DHAVE_CONFIG_H"
|
||||||
|
+CFLAGS="$CFLAGS `pcre-config --cflags`"
|
||||||
|
|
||||||
|
-for i in ../src/tup/*.c ../src/tup/tup/main.c ../src/tup/monitor/null.c ../src/tup/flock/fcntl.c ../src/inih/ini.c ../src/pcre/*.c $plat_files; do
|
||||||
|
+for i in ../src/tup/*.c ../src/tup/tup/main.c ../src/tup/monitor/null.c ../src/tup/flock/fcntl.c ../src/inih/ini.c $plat_files; do
|
||||||
|
echo " bootstrap CC $CFLAGS $i"
|
||||||
|
# Put -I. first so we find our new luabuiltin.h file, not one built
|
||||||
|
# by a previous 'tup upd'.
|
||||||
|
- $CC $CFLAGS -c $i -I. -I../src -I../src/pcre $plat_cflags
|
||||||
|
+ $CC $CFLAGS -c $i -I. -I../src $plat_cflags
|
||||||
|
done
|
||||||
|
|
||||||
|
-echo " bootstrap CC $CFLAGS ../src/sqlite3/sqlite3.c"
|
||||||
|
-$CC $CFLAGS -c ../src/sqlite3/sqlite3.c -DSQLITE_TEMP_STORE=2 -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION $plat_cflags
|
||||||
|
-
|
||||||
|
echo " bootstrap LD tup $LDFLAGS"
|
||||||
|
echo "const char *tup_version(void) {return \"$label\";}" | $CC -x c -c - -o tup_version.o
|
||||||
|
$CC *.o -o tup -lpthread $plat_ldflags $LDFLAGS
|
||||||
|
diff --git a/src/tup/db.c b/src/tup/db.c
|
||||||
|
index 55ee3edd..9bdf7a80 100644
|
||||||
|
--- a/src/tup/db.c
|
||||||
|
+++ b/src/tup/db.c
|
||||||
|
@@ -46,7 +46,7 @@
|
||||||
|
#include <errno.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
-#include "sqlite3/sqlite3.h"
|
||||||
|
+#include <sqlite3.h>
|
||||||
|
|
||||||
|
#define DB_VERSION 17
|
||||||
|
#define PARSER_VERSION 12
|
||||||
|
diff --git a/src/tup/tupid.h b/src/tup/tupid.h
|
||||||
|
index 7b36ae46..19aed438 100644
|
||||||
|
--- a/src/tup/tupid.h
|
||||||
|
+++ b/src/tup/tupid.h
|
||||||
|
@@ -21,7 +21,7 @@
|
||||||
|
#ifndef tup_tupid_h
|
||||||
|
#define tup_tupid_h
|
||||||
|
|
||||||
|
-#include "sqlite3/sqlite3.h"
|
||||||
|
+#include <sqlite3.h>
|
||||||
|
|
||||||
|
typedef sqlite3_int64 tupid_t;
|
||||||
|
|
||||||
|
--
|
||||||
|
2.26.2
|
||||||
|
|
Loading…
Reference in a new issue