[med-svn] r20634 - in trunk/packages/genometools/trunk/debian: . patches strip-nondeterminism tests

Sascha Steinbiss sascha-guest at moszumanska.debian.org
Fri Dec 4 22:47:44 UTC 2015


Author: sascha-guest
Date: 2015-12-04 22:47:42 +0000 (Fri, 04 Dec 2015)
New Revision: 20634

Added:
   trunk/packages/genometools/trunk/debian/patches/sort-inputs
   trunk/packages/genometools/trunk/debian/patches/use-mx32
   trunk/packages/genometools/trunk/debian/tests/
   trunk/packages/genometools/trunk/debian/tests/build-lib
   trunk/packages/genometools/trunk/debian/tests/control
   trunk/packages/genometools/trunk/debian/tests/eden.gff3
   trunk/packages/genometools/trunk/debian/tests/gff3validator.c
   trunk/packages/genometools/trunk/debian/tests/python-lib
Modified:
   trunk/packages/genometools/trunk/debian/changelog
   trunk/packages/genometools/trunk/debian/patches/series
   trunk/packages/genometools/trunk/debian/rules
   trunk/packages/genometools/trunk/debian/strip-nondeterminism/a2x
   trunk/packages/genometools/trunk/debian/strip-nondeterminism/pdflatex
Log:
fix builds, work on reproducibility, add tests



Modified: trunk/packages/genometools/trunk/debian/changelog
===================================================================
--- trunk/packages/genometools/trunk/debian/changelog	2015-12-04 18:16:43 UTC (rev 20633)
+++ trunk/packages/genometools/trunk/debian/changelog	2015-12-04 22:47:42 UTC (rev 20634)
@@ -1,3 +1,14 @@
+genometools (1.5.7-4) unstable; urgency=medium
+
+  * Fix builds on less popular platforms
+    - Check if faketime works
+    - Do no use -m32/-m64 on x32
+  * Improve reproducibility
+    - sort files to compile by name
+  * Add autopkgtests
+
+ -- Sascha Steinbiss <sascha at steinbiss.name>  Fri, 04 Dec 2015 22:18:11 +0000
+
 genometools (1.5.7-3) unstable; urgency=low
 
   * d/control: remove obsolete dependency on libncurses5

Modified: trunk/packages/genometools/trunk/debian/patches/series
===================================================================
--- trunk/packages/genometools/trunk/debian/patches/series	2015-12-04 18:16:43 UTC (rev 20633)
+++ trunk/packages/genometools/trunk/debian/patches/series	2015-12-04 22:47:42 UTC (rev 20634)
@@ -3,3 +3,5 @@
 remove-gitignores
 fix-exports
 split-manuals
+use-mx32
+sort-inputs

Added: trunk/packages/genometools/trunk/debian/patches/sort-inputs
===================================================================
--- trunk/packages/genometools/trunk/debian/patches/sort-inputs	                        (rev 0)
+++ trunk/packages/genometools/trunk/debian/patches/sort-inputs	2015-12-04 22:47:42 UTC (rev 20634)
@@ -0,0 +1,40 @@
+--- a/Makefile
++++ b/Makefile
+@@ -115,7 +115,7 @@
+ EXAMPLES_SRC:=src/example.c
+ EXAMPLES_DEP:=$(EXAMPLES_SRC:%.c=obj/%.d)
+ 
+-TOOLS_SRC:=$(wildcard src/tools/*.c)
++TOOLS_SRC:=$(sort $(wildcard src/tools/*.c))
+ TOOLS_OBJ:=$(TOOLS_SRC:%.c=obj/%.o)
+ TOOLS_DEP:=$(TOOLS_SRC:%.c=obj/%.d)
+ 
+@@ -449,7 +449,7 @@
+ endif
+ 
+ # the GenomeTools library
+-LIBGENOMETOOLS_PRESRC:=$(foreach DIR,$(LIBGENOMETOOLS_DIRS),$(wildcard $(DIR)/*.c))
++LIBGENOMETOOLS_PRESRC:=$(foreach DIR,$(LIBGENOMETOOLS_DIRS),$(sort $(wildcard $(DIR)/*.c)))
+ # remove AnnotationSketch-only bindings
+ LIBGENOMETOOLS_PRESRC:=$(filter-out $(CAIRO_FILTER_OUT),\
+                          $(LIBGENOMETOOLS_PRESRC))
+@@ -664,7 +664,7 @@
+ 	@test -d $(@D) || mkdir -p $(@D)
+ 	@$(CC) $(EXP_LDFLAGS) $(GT_LDFLAGS) $^ -lm $(LUA_LDLIB) -o $@
+ 
+-API_HEADERS=$(foreach DIR,$(LIBGENOMETOOLS_DIRS),$(wildcard $(DIR)/*_api.h))
++API_HEADERS=$(foreach DIR,$(LIBGENOMETOOLS_DIRS),$(sort $(wildcard $(DIR)/*_api.h)))
+ 
+ obj/public_symbols.lst: $(API_HEADERS) $(LIBGENOMETOOLS_SRC)
+ 	@echo '[gathering public API symbols to $@]'
+@@ -995,8 +995,8 @@
+ ABTOOLS=${shell grep -l Blaufelder src/tools/*.c}
+ 
+ ALLSPLINT=${addprefix obj/,${notdir ${subst .c,.splint,\
+-             ${filter-out ${EISFILES},${wildcard ${CURDIR}/src/match/*.c}}\
+-             ${wildcard ${CURDIR}/src/ltr/*.c}\
++             ${filter-out ${EISFILES},${sort ${wildcard ${CURDIR}/src/match/*.c}}}\
++             ${sort ${wildcard ${CURDIR}/src/ltr/*.c}}\
+              ${SKTOOLS} ${SKCORE} ${SKEXT} \
+ 						 ${DWTOOLS} ${DWCORE} ${DWEXT} \
+              ${GGTOOLS} ${GGCORE} ${GGEXT} \

Added: trunk/packages/genometools/trunk/debian/patches/use-mx32
===================================================================
--- trunk/packages/genometools/trunk/debian/patches/use-mx32	                        (rev 0)
+++ trunk/packages/genometools/trunk/debian/patches/use-mx32	2015-12-04 22:47:42 UTC (rev 20634)
@@ -0,0 +1,32 @@
+--- a/Makefile
++++ b/Makefile
+@@ -327,17 +327,19 @@
+   endif
+ endif
+ 
+-ifeq ($(m32),yes)
+-  GT_CFLAGS += -m32
+-  GT_LDFLAGS += -m32
+-  SQLITE_CFLAGS += -m32
+-endif
++ifneq ($(x32),yes)
++  ifeq ($(m32),yes)
++    GT_CFLAGS += -m32
++    GT_LDFLAGS += -m32
++    SQLITE_CFLAGS += -m32
++  endif
+ 
+-ifeq ($(m64),yes)
+-  ifeq (,$(filter $(MACHINE),ia64 alpha mips64 mips64el aarch64))
+-    GT_CFLAGS += -m64
+-    GT_LDFLAGS += -m64
+-    SQLITE_CFLAGS += -m64
++  ifeq ($(m64),yes)
++    ifeq (,$(filter $(MACHINE),ia64 alpha mips64 mips64el aarch64))
++      GT_CFLAGS += -m64
++      GT_LDFLAGS += -m64
++      SQLITE_CFLAGS += -m64
++    endif
+   endif
+ endif
+ 

Modified: trunk/packages/genometools/trunk/debian/rules
===================================================================
--- trunk/packages/genometools/trunk/debian/rules	2015-12-04 18:16:43 UTC (rev 20633)
+++ trunk/packages/genometools/trunk/debian/rules	2015-12-04 22:47:42 UTC (rev 20634)
@@ -7,12 +7,21 @@
 export PATH := $(CURDIR)/debian/strip-nondeterminism:$(PATH)
 export SOURCE_DATE_EPOCH = $(shell date -d "$$(dpkg-parsechangelog -SDate)" +%s)
 
+DARCH:=$(shell dpkg-architecture | grep DEB_BUILD_ARCH | cut -f 2 -d'=')
 BITS:=$(shell dpkg-architecture | grep DEB_BUILD_ARCH_BITS | cut -f 2 -d'=')
+
+ifeq ($(DARCH),x32)
+  X32:=yes
+else
+  X32:=no
+endif
+
 ifeq ($(BITS),64)
   64BIT:=yes
 else
   64BIT:=no
 endif
+
 # check whether faketime can be used
 ifeq ($(shell faketime 'last friday' date > /dev/null 2> /dev/null; echo $$?),0)
   FAKETIME:=faketime -f "`TZ=UTC date -d @$(SOURCE_DATE_EPOCH) +'%Y-%m-%d %H:%M:%S'`"
@@ -43,7 +52,7 @@
 	rm -rf gtpython/build
 
 override_dh_auto_build:
-	$(FAKETIME) dh_auto_build -- useshared=yes 64bit=$(64BIT) errorcheck=no all docs manuals
+	$(FAKETIME) dh_auto_build -- useshared=yes x32=$(X32) 64bit=$(64BIT) errorcheck=no all docs manuals
 
 override_dh_auto_test:
 	bin/gt -test
@@ -51,7 +60,7 @@
 
 override_dh_auto_install:
 	dh_auto_install -- installmanpages useshared=yes \
-	  64bit=$(64BIT) errorcheck=no prefix=$(DESTDIR)/usr
+	  x32=$(X32) 64bit=$(64BIT) errorcheck=no prefix=$(DESTDIR)/usr
 	dh_auto_install --sourcedirectory=gtpython \
 	  --destdir=$(CURDIR)/debian/python-genometools
 

Modified: trunk/packages/genometools/trunk/debian/strip-nondeterminism/a2x
===================================================================
--- trunk/packages/genometools/trunk/debian/strip-nondeterminism/a2x	2015-12-04 18:16:43 UTC (rev 20633)
+++ trunk/packages/genometools/trunk/debian/strip-nondeterminism/a2x	2015-12-04 22:47:42 UTC (rev 20634)
@@ -1,5 +1,13 @@
 #!/usr/bin/env sh
 # Depends: faketime
 # Eventually the upstream tool should support SOURCE_DATE_EPOCH internally.
+
 test -n "$SOURCE_DATE_EPOCH" || { echo >&2 "$0: SOURCE_DATE_EPOCH not set"; exit 255; }
-exec faketime -f "$(TZ=UTC date -d "@$SOURCE_DATE_EPOCH" +'%Y-%m-%d %H:%M:%S')" /usr/bin/a2x "$@"
\ No newline at end of file
+
+if faketime 'last friday' date > /dev/null 2> /dev/null; then
+  exec faketime -f "`TZ=UTC date -d @$SOURCE_DATE_EPOCH +'%Y-%m-%d %H:%M:%S'`" \
+    /usr/bin/a2x "$@"
+else
+  exec /usr/bin/a2x "$@"
+fi
+

Modified: trunk/packages/genometools/trunk/debian/strip-nondeterminism/pdflatex
===================================================================
--- trunk/packages/genometools/trunk/debian/strip-nondeterminism/pdflatex	2015-12-04 18:16:43 UTC (rev 20633)
+++ trunk/packages/genometools/trunk/debian/strip-nondeterminism/pdflatex	2015-12-04 22:47:42 UTC (rev 20634)
@@ -1,5 +1,12 @@
 #!/usr/bin/env sh
 # Depends: faketime
 # Eventually the upstream tool should support SOURCE_DATE_EPOCH internally.
+
 test -n "$SOURCE_DATE_EPOCH" || { echo >&2 "$0: SOURCE_DATE_EPOCH not set"; exit 255; }
-exec faketime -f "$(TZ=UTC date -d "@$SOURCE_DATE_EPOCH" +'%Y-%m-%d %H:%M:%S')" /usr/bin/pdflatex "$@"
\ No newline at end of file
+
+if faketime 'last friday' date > /dev/null 2> /dev/null; then
+  exec faketime -f "`TZ=UTC date -d @$SOURCE_DATE_EPOCH +'%Y-%m-%d %H:%M:%S'`" \
+    /usr/bin/pdflatex "$@"
+else
+  exec /usr/bin/pdflatex "$@"
+fi
\ No newline at end of file

Added: trunk/packages/genometools/trunk/debian/tests/build-lib
===================================================================
--- trunk/packages/genometools/trunk/debian/tests/build-lib	                        (rev 0)
+++ trunk/packages/genometools/trunk/debian/tests/build-lib	2015-12-04 22:47:42 UTC (rev 20634)
@@ -0,0 +1,19 @@
+#!/bin/sh
+# autopkgtest check: Build and run a program against libgenometools
+# Author: Sascha Steinbiss <sascha at steinbiss.name>
+
+set -e
+
+SRC=$(pwd)/debian/tests/gff3validator.c
+DATA=$(pwd)/debian/tests/eden.gff3
+WORKDIR=$(mktemp -d)
+trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
+cd $WORKDIR
+
+gcc -O2 -DWITHOUT_CAIRO -I/usr/include/genometools -o gff3validator $SRC \
+  -lgenometools
+echo "build: OK"
+[ -x gff3validator ]
+./gff3validator $DATA > out
+[ -s out ]
+echo "run: OK"
\ No newline at end of file


Property changes on: trunk/packages/genometools/trunk/debian/tests/build-lib
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/packages/genometools/trunk/debian/tests/control
===================================================================
--- trunk/packages/genometools/trunk/debian/tests/control	                        (rev 0)
+++ trunk/packages/genometools/trunk/debian/tests/control	2015-12-04 22:47:42 UTC (rev 20634)
@@ -0,0 +1,5 @@
+Tests: build-lib
+Depends: @, libgenometools0-dev, libgenometools0, build-essential
+
+Tests: python-lib
+Depends: @, libgenometools0-dev, libgenometools0, python-genometools, python
\ No newline at end of file

Added: trunk/packages/genometools/trunk/debian/tests/eden.gff3
===================================================================
--- trunk/packages/genometools/trunk/debian/tests/eden.gff3	                        (rev 0)
+++ trunk/packages/genometools/trunk/debian/tests/eden.gff3	2015-12-04 22:47:42 UTC (rev 20634)
@@ -0,0 +1,25 @@
+##gff-version 3
+##sequence-region ctg123 1 1497228
+ctg123	.	gene	1000	9000	.	+	.	ID=gene00001;Name=EDEN
+ctg123	.	TF_binding_site	1000	1012	.	+	.	ID=tfbs00001;Parent=gene00001
+ctg123	.	mRNA	1050	9000	.	+	.	ID=mRNA00001;Parent=gene00001;Name=EDEN.1
+ctg123	.	mRNA	1050	9000	.	+	.	ID=mRNA00002;Parent=gene00001;Name=EDEN.2
+ctg123	.	mRNA	1300	9000	.	+	.	ID=mRNA00003;Parent=gene00001;Name=EDEN.3
+ctg123	.	exon	1300	1500	.	+	.	ID=exon00001;Parent=mRNA00003
+ctg123	.	exon	1050	1500	.	+	.	ID=exon00002;Parent=mRNA00001,mRNA00002
+ctg123	.	exon	3000	3902	.	+	.	ID=exon00003;Parent=mRNA00001,mRNA00003
+ctg123	.	exon	5000	5500	.	+	.	ID=exon00004;Parent=mRNA00001,mRNA00002,mRNA00003
+ctg123	.	exon	7000	9000	.	+	.	ID=exon00005;Parent=mRNA00001,mRNA00002,mRNA00003
+ctg123	.	CDS	1201	1500	.	+	0	ID=cds00001;Parent=mRNA00001;Name=edenprotein.1
+ctg123	.	CDS	3000	3902	.	+	0	ID=cds00001;Parent=mRNA00001;Name=edenprotein.1
+ctg123	.	CDS	5000	5500	.	+	0	ID=cds00001;Parent=mRNA00001;Name=edenprotein.1
+ctg123	.	CDS	7000	7600	.	+	0	ID=cds00001;Parent=mRNA00001;Name=edenprotein.1
+ctg123	.	CDS	1201	1500	.	+	0	ID=cds00002;Parent=mRNA00002;Name=edenprotein.2
+ctg123	.	CDS	5000	5500	.	+	0	ID=cds00002;Parent=mRNA00002;Name=edenprotein.2
+ctg123	.	CDS	7000	7600	.	+	0	ID=cds00002;Parent=mRNA00002;Name=edenprotein.2
+ctg123	.	CDS	3301	3902	.	+	0	ID=cds00003;Parent=mRNA00003;Name=edenprotein.3
+ctg123	.	CDS	5000	5500	.	+	1	ID=cds00003;Parent=mRNA00003;Name=edenprotein.3
+ctg123	.	CDS	7000	7600	.	+	1	ID=cds00003;Parent=mRNA00003;Name=edenprotein.3
+ctg123	.	CDS	3391	3902	.	+	0	ID=cds00004;Parent=mRNA00003;Name=edenprotein.4
+ctg123	.	CDS	5000	5500	.	+	1	ID=cds00004;Parent=mRNA00003;Name=edenprotein.4
+ctg123	.	CDS	7000	7600	.	+	1	ID=cds00004;Parent=mRNA00003;Name=edenprotein.4

Added: trunk/packages/genometools/trunk/debian/tests/gff3validator.c
===================================================================
--- trunk/packages/genometools/trunk/debian/tests/gff3validator.c	                        (rev 0)
+++ trunk/packages/genometools/trunk/debian/tests/gff3validator.c	2015-12-04 22:47:42 UTC (rev 20634)
@@ -0,0 +1,47 @@
+#include "genometools.h"
+
+/* A simple GFF3 validator which validates all given GFF3 files (without
+   checking types). */
+
+int main(int argc, const char *argv[])
+{
+  GtNodeStream *gff3_in_stream;
+  GtGenomeNode *gn;
+  GtError *err;
+  int had_err;
+
+  if (gt_version_check(GT_MAJOR_VERSION, GT_MINOR_VERSION, GT_MICRO_VERSION)) {
+    fprintf(stderr, "error: %s\n", gt_version_check(GT_MAJOR_VERSION,
+                                                    GT_MINOR_VERSION,
+                                                    GT_MICRO_VERSION));
+    return EXIT_FAILURE;
+  }
+
+  /* initialize */
+  gt_lib_init();
+
+  /* create error object */
+  err = gt_error_new();
+
+  /* create GFF3 input stream (with ID attribute checking) */
+  gff3_in_stream = gt_gff3_in_stream_new_unsorted(argc-1, argv+1);
+  gt_gff3_in_stream_check_id_attributes((GtGFF3InStream*) gff3_in_stream);
+
+  /* pull the features through the stream and free them afterwards */
+  while (!(had_err = gt_node_stream_next(gff3_in_stream, &gn, err)) && gn)
+    gt_genome_node_delete(gn);
+
+  /* handle error */
+  if (had_err)
+    fprintf(stderr, "%s: error: %s\n", argv[0], gt_error_get(err));
+  else
+    printf("input is valid GFF3\n");
+
+  /* free */
+  gt_node_stream_delete(gff3_in_stream);
+  gt_error_delete(err);
+
+  if (had_err)
+    return EXIT_FAILURE;
+  return EXIT_SUCCESS;
+}

Added: trunk/packages/genometools/trunk/debian/tests/python-lib
===================================================================
--- trunk/packages/genometools/trunk/debian/tests/python-lib	                        (rev 0)
+++ trunk/packages/genometools/trunk/debian/tests/python-lib	2015-12-04 22:47:42 UTC (rev 20634)
@@ -0,0 +1,5 @@
+#!/usr/bin/python
+# autopkgtest check: Check whether gt can be imported
+# Author: Sascha Steinbiss <sascha at steinbiss.name>
+
+import gt
\ No newline at end of file


Property changes on: trunk/packages/genometools/trunk/debian/tests/python-lib
___________________________________________________________________
Added: svn:executable
   + *




More information about the debian-med-commit mailing list