Verified Commit a72a8d1e authored by Simon Josefsson's avatar Simon Josefsson
Browse files

Modernize versioning and release infrastructure.


Signed-off-by: Simon Josefsson's avatarSimon Josefsson <simon@josefsson.org>
parent 231512f7
Pipeline #302474982 passed with stages
in 70 minutes and 54 seconds
----------------------------------------------------------------------
Copyright (C) 2002-2021 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
*~
aclocal.m4
aminclude_static.am
autom4te.cache/
build-aux/ar-lib
build-aux/compile
build-aux/config.guess
build-aux/config.sub
build-aux/depcomp
build-aux/install-sh
build-aux/ltmain.sh
build-aux/mdate-sh
build-aux/missing
build-aux/test-driver
build-aux/texinfo.tex
build-aux/ylwrap
ChangeLog
config.h
config.h.in
config.log
config.status
configure
.deps
doc/asn1Coding.1
doc/asn1Decoding.1
doc/asn1Parser.1
doc/coverage/
doc/cyclo/cyclo-libtasn1.html
doc/cyclo/Makefile
doc/cyclo/Makefile.in
doc/libtasn1.aux
doc/libtasn1.cp
doc/libtasn1.cps
doc/libtasn1.dvi
doc/libtasn1.fn
doc/libtasn1.fns
doc/libtasn1.html
doc/libtasn1.info
doc/libtasn1.ky
doc/libtasn1.log
doc/libtasn1.pdf
doc/libtasn1.pg
doc/libtasn1.ps
doc/libtasn1.t2d/
doc/libtasn1.t2p/
doc/libtasn1.toc
doc/libtasn1.tp
doc/libtasn1.vr
doc/Makefile
doc/Makefile.in
doc/man/
doc/reference/html/
doc/reference/html-build.stamp
doc/reference/html.stamp
doc/reference/libtasn1.args
doc/reference/libtasn1-decl-list.txt
doc/reference/libtasn1-decl.txt
doc/reference/libtasn1.hierarchy
doc/reference/libtasn1.interfaces
doc/reference/libtasn1-overrides.txt
doc/reference/libtasn1.pdf
doc/reference/libtasn1.prerequisites
doc/reference/libtasn1-sections.txt
doc/reference/libtasn1.signals
doc/reference/libtasn1.types
doc/reference/libtasn1-undeclared.txt
doc/reference/libtasn1-undocumented.txt
doc/reference/libtasn1-unused.txt
doc/reference/Makefile
doc/reference/Makefile.in
doc/reference/pdf-build.stamp
doc/reference/pdf.stamp
doc/reference/scan-build.stamp
doc/reference/setup-build.stamp
doc/reference/sgml-build.stamp
doc/reference/sgml.stamp
doc/reference/tmpl/
doc/reference/tmpl-build.stamp
doc/reference/tmpl.stamp
doc/reference/version.xml
doc/reference/xml/
doc/stamp_docs
doc/stamp-vti
doc/texi/
doc/version.texi
examples/CertificateExample
examples/CertificateExample.o
examples/CrlExample
examples/CrlExample.o
examples/.deps/
examples/.libs/
examples/Makefile
examples/Makefile.in
examples/pkix_asn1_tab.c
examples/pkix_asn1_tab.o
fuzz/*_fuzzer
fuzz/*.log
fuzz/*.new
fuzz/*.o
fuzz/*.trs
fuzz/corpus2array
!lib/gl/doc/gendocs_template.diff
!lib/gl/top/README-release.diff
*.gcda
*.gcno
*.gcov
.gitignore
gtk-doc.m4
INSTALL
lib/ASN1.c
lib/ASN1.lo
lib/ASN1.o
lib/ASN1.tab.c
lib/coding.lo
lib/coding.o
lib/decoding.lo
lib/decoding.o
lib/.deps/
lib/element.lo
lib/element.o
lib/errors.lo
lib/errors.o
lib/gl/
lib/gstr.lo
lib/gstr.o
lib/.libs/
lib/includes/libtasn1.h
lib/libtasn1.la
lib/libtasn1.pc
lib/Makefile
lib/Makefile.in
lib/parser_aux.lo
lib/parser_aux.o
lib/structure.lo
lib/structure.o
libtasn1-*.tar.gz
libtasn1-*.tar.gz.sig
libtool
lib/version.lo
lib/version.o
m4-gl/
m4/.gitignore
m4/libtool.m4
m4/lt~obsolete.m4
m4/ltoptions.m4
m4/ltsugar.m4
m4/ltversion.m4
Makefile
Makefile.in
README
scan.tmp
src/asn1Coding
src/asn1Coding.o
src/asn1Decoding
src/asn1Decoding.o
src/asn1Parser
src/asn1Parser.o
src/benchmark.o
src/.deps/
src/.libs/
src/Makefile
src/Makefile.in
stamp-h1
tags
tests/coding-decoding2
tests/coding-long-oid
tests/copynode
tests/CVE-2018-1000654
tests/CVE-2018-1000654-1_asn1_tab.h
tests/CVE-2018-1000654-2_asn1_tab.h
tests/.deps/
tests-gl/
tests/*.log
tests/Makefile
tests/Makefile.in
tests/*.o
tests/object-id-decoding
tests/ocsp-basic-response
tests/octet-string
tests/setof
tests/spc_pe_image_data
tests/strict-der
tests/Test_choice
tests/Test_choice.o
tests/Test_choice_ocsp
tests/Test_encdec
tests/Test_encoding
tests/Test_encoding.o
tests/Test_errors
tests/Test_errors.o
tests/Test_indefinite
tests/Test_indefinite.o
tests/Test_overflow
tests/Test_overflow.o
tests/Test_parser
tests/Test_parser_ERROR.asn
tests/Test_parser.o
tests/Test_simple
tests/Test_simple.o
tests/Test_strings
tests/Test_strings.o
tests/Test_tree
tests/Test_tree.o
tests/*.trs
windows/libtasn1-*-win??.zip
windows/tmp
tests/object-id-encoding
*~
/.deps
/.gitignore
/ChangeLog
/INSTALL
/Makefile
/Makefile.in
/README-release
/aclocal.m4
/aminclude_static.am
/autom4te.cache/
/build-aux
/build-aux/ar-lib
/build-aux/compile
/build-aux/config.guess
/build-aux/config.sub
/build-aux/depcomp
/build-aux/install-sh
/build-aux/ltmain.sh
/build-aux/mdate-sh
/build-aux/missing
/build-aux/test-driver
/build-aux/texinfo.tex
/build-aux/ylwrap
/config.h
/config.h.in
/config.log
/config.status
/configure
/doc/Makefile
/doc/Makefile.in
/doc/asn1Coding.1
/doc/asn1Decoding.1
/doc/asn1Parser.1
/doc/coverage/
/doc/cyclo/Makefile
/doc/cyclo/Makefile.in
/doc/cyclo/cyclo-libtasn1.html
/doc/gendocs_template
/doc/gendocs_template_min
/doc/libtasn1.aux
/doc/libtasn1.cp
/doc/libtasn1.cps
/doc/libtasn1.dvi
/doc/libtasn1.fn
/doc/libtasn1.fns
/doc/libtasn1.html
/doc/libtasn1.info
/doc/libtasn1.ky
/doc/libtasn1.log
/doc/libtasn1.pdf
/doc/libtasn1.pg
/doc/libtasn1.ps
/doc/libtasn1.t2d/
/doc/libtasn1.t2p/
/doc/libtasn1.toc
/doc/libtasn1.tp
/doc/libtasn1.vr
/doc/man/
/doc/reference/Makefile
/doc/reference/Makefile.in
/doc/reference/html-build.stamp
/doc/reference/html.stamp
/doc/reference/html/
/doc/reference/libtasn1-decl-list.txt
/doc/reference/libtasn1-decl.txt
/doc/reference/libtasn1-overrides.txt
/doc/reference/libtasn1-sections.txt
/doc/reference/libtasn1-undeclared.txt
/doc/reference/libtasn1-undocumented.txt
/doc/reference/libtasn1-unused.txt
/doc/reference/libtasn1.args
/doc/reference/libtasn1.hierarchy
/doc/reference/libtasn1.interfaces
/doc/reference/libtasn1.pdf
/doc/reference/libtasn1.prerequisites
/doc/reference/libtasn1.signals
/doc/reference/libtasn1.types
/doc/reference/pdf-build.stamp
/doc/reference/pdf.stamp
/doc/reference/scan-build.stamp
/doc/reference/setup-build.stamp
/doc/reference/sgml-build.stamp
/doc/reference/sgml.stamp
/doc/reference/tmpl-build.stamp
/doc/reference/tmpl.stamp
/doc/reference/tmpl/
/doc/reference/version.xml
/doc/reference/xml/
/doc/stamp-vti
/doc/stamp_docs
/doc/texi/
/doc/version.texi
/examples/.deps/
/examples/.libs/
/examples/CertificateExample
/examples/CertificateExample.o
/examples/CrlExample
/examples/CrlExample.o
/examples/Makefile
/examples/Makefile.in
/examples/pkix_asn1_tab.c
/examples/pkix_asn1_tab.o
/fuzz/*.log
/fuzz/*.new
/fuzz/*.o
/fuzz/*.trs
/fuzz/*_fuzzer
/fuzz/.deps/
/fuzz/Makefile
/fuzz/Makefile.in
/fuzz/corpus2array
/gtk-doc.m4
/gtk-doc.make
/lib/.deps/
/lib/.libs/
/lib/ASN1.c
/lib/ASN1.lo
/lib/ASN1.o
/lib/ASN1.tab.c
/lib/Makefile
/lib/Makefile.in
/lib/coding.lo
/lib/coding.o
/lib/decoding.lo
/lib/decoding.o
/lib/element.lo
/lib/element.o
/lib/errors.lo
/lib/errors.o
/lib/gl/
/lib/gstr.lo
/lib/gstr.o
/lib/includes/libtasn1.h
/lib/libtasn1.la
/lib/libtasn1.pc
/lib/parser_aux.lo
/lib/parser_aux.o
/lib/structure.lo
/lib/structure.o
/lib/version.lo
/lib/version.o
/libtasn1-*.tar.gz
/libtasn1-*.tar.gz.sig
/libtool
/m4/
/maint.mk
/scan.tmp
/src/.deps/
/src/.libs/
/src/Makefile
/src/Makefile.in
/src/asn1Coding
/src/asn1Coding.o
/src/asn1Decoding
/src/asn1Decoding.o
/src/asn1Parser
/src/asn1Parser.o
/src/benchmark.o
/stamp-h1
/tags
/tests-gl/
/tests/*.log
/tests/*.o
/tests/*.trs
/tests/.deps/
/tests/CVE-2018-1000654
/tests/CVE-2018-1000654-1_asn1_tab.h
/tests/CVE-2018-1000654-2_asn1_tab.h
/tests/Makefile
/tests/Makefile.in
/tests/Test_choice
/tests/Test_choice.o
/tests/Test_choice_ocsp
/tests/Test_encdec
/tests/Test_encoding
/tests/Test_encoding.o
/tests/Test_errors
/tests/Test_errors.o
/tests/Test_indefinite
/tests/Test_indefinite.o
/tests/Test_overflow
/tests/Test_overflow.o
/tests/Test_parser
/tests/Test_parser.o
/tests/Test_parser_ERROR.asn
/tests/Test_simple
/tests/Test_simple.o
/tests/Test_strings
/tests/Test_strings.o
/tests/Test_tree
/tests/Test_tree.o
/tests/coding-decoding2
/tests/coding-long-oid
/tests/copynode
/tests/object-id-decoding
/tests/object-id-encoding
/tests/ocsp-basic-response
/tests/octet-string
/tests/setof
/tests/spc_pe_image_data
/tests/strict-der
/windows/libtasn1-*-win??.zip
/windows/tmp
......@@ -12,6 +12,7 @@ x86-64:
- yum remove -y libtasn1-devel
- ./bootstrap
- ./configure --disable-doc && make -j$(nproc)
- make syntax-check
- make -j$(nproc) check
- make abi-check
- make distcheck
......
# Having a separate GNUmakefile lets me 'include' the dynamically
# generated rules created via cfg.mk (package-local configuration)
# as well as maint.mk (generic maintainer rules).
# This makefile is used only if you run GNU Make.
# It is necessary if you want to build targets usually of interest
# only to the maintainer.
# Copyright (C) 2001, 2003, 2006-2021 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# If the user runs GNU make but has not yet run ./configure,
# give them a diagnostic.
_gl-Makefile := $(wildcard [M]akefile)
ifneq ($(_gl-Makefile),)
# Make tar archive easier to reproduce.
export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner
# Allow the user to add to this in the Makefile.
ALL_RECURSIVE_TARGETS =
include Makefile
# Some projects override e.g., _autoreconf here.
-include $(srcdir)/cfg.mk
# Allow cfg.mk to override these.
_build-aux ?= build-aux
_autoreconf ?= autoreconf -v
include $(srcdir)/maint.mk
# Ensure that $(VERSION) is up to date for dist-related targets, but not
# for others: rerunning autoreconf and recompiling everything isn't cheap.
_have-git-version-gen := \
$(shell test -f $(srcdir)/$(_build-aux)/git-version-gen && echo yes)
ifeq ($(_have-git-version-gen)0,yes$(MAKELEVEL))
_is-dist-target ?= $(filter-out %clean, \
$(filter maintainer-% dist% alpha beta stable,$(MAKECMDGOALS)))
_is-install-target ?= $(filter-out %check, $(filter install%,$(MAKECMDGOALS)))
ifneq (,$(_is-dist-target)$(_is-install-target))
_curr-ver := $(shell cd $(srcdir) \
&& $(_build-aux)/git-version-gen \
.tarball-version \
$(git-version-gen-tag-sed-script))
ifneq ($(_curr-ver),$(VERSION))
ifeq ($(_curr-ver),UNKNOWN)
$(info WARNING: unable to verify if $(VERSION) is the correct version)
else
ifneq (,$(_is-install-target))
# GNU Coding Standards state that 'make install' should not cause
# recompilation after 'make all'. But as long as changing the version
# string alters config.h, the cost of having 'make all' always have an
# up-to-date version is prohibitive. So, as a compromise, we merely
# warn when installing a version string that is out of date; the user
# should run 'autoreconf' (or something like 'make distcheck') to
# fix the version, 'make all' to propagate it, then 'make install'.
$(info WARNING: version string $(VERSION) is out of date;)
$(info run '$(MAKE) _version' to fix it)
else
$(info INFO: running autoreconf for new version string: $(_curr-ver))
GNUmakefile: _version
touch GNUmakefile
endif
endif
endif
endif
endif
.PHONY: _version
_version:
cd $(srcdir) && rm -rf autom4te.cache .version && $(_autoreconf)
$(MAKE) $(AM_MAKEFLAGS) Makefile
else
.DEFAULT_GOAL := abort-due-to-no-makefile
srcdir = .
# The package can override .DEFAULT_GOAL to run actions like autoreconf.
-include ./cfg.mk
# Allow cfg.mk to override these.
_build-aux ?= build-aux
_autoreconf ?= autoreconf -v
include ./maint.mk
ifeq ($(.DEFAULT_GOAL),abort-due-to-no-makefile)
$(MAKECMDGOALS): abort-due-to-no-makefile
endif
abort-due-to-no-makefile:
@echo There seems to be no Makefile in this directory. 1>&2
@echo "You must run ./configure before running '$(MAKE)'." 1>&2
@exit 1
endif
# Tell version 3.79 and up of GNU make to not build goals in this
# directory in parallel, in case someone tries to build multiple
# targets, and one of them can cause a recursive target to be invoked.
# Only set this if Automake doesn't provide it.
AM_RECURSIVE_TARGETS ?= $(RECURSIVE_TARGETS:-recursive=) \
$(RECURSIVE_CLEAN_TARGETS:-recursive=) \
dist distcheck tags ctags
ALL_RECURSIVE_TARGETS += $(AM_RECURSIVE_TARGETS)
ifneq ($(word 2, $(MAKECMDGOALS)), )
ifneq ($(filter $(ALL_RECURSIVE_TARGETS), $(MAKECMDGOALS)), )
.NOTPARALLEL:
endif
endif
......@@ -24,9 +24,8 @@ EXTRA_DIST = windows/asn1-parser/asn1-parser.vcproj \
windows/gnulib/getopt.h windows/gnulib/gnulib.vcproj \
windows/libtasn1/libtasn1.vcproj \
windows/test-parser/test-parser.vcproj \
windows/test-tree/test-tree.vcproj windows/libtasn14win.mk \
CONTRIBUTING.md cfg.mk maint.mk AUTHORS NEWS ChangeLog \
THANKS LICENSE
windows/test-tree/test-tree.vcproj windows/libtasn14win.mk
EXTRA_DIST += cfg.mk maint.mk CONTRIBUTING.md README.md
SUBDIRS = lib src fuzz tests
......@@ -36,9 +35,7 @@ endif
include $(top_srcdir)/aminclude_static.am
ACLOCAL_AMFLAGS = -I m4 -I m4-gl
EXTRA_DIST += cfg.mk maint.mk .clcopying README.md
ACLOCAL_AMFLAGS = -I m4
ABIDW_COMMON = --no-show-locs --no-corpus-path
ABIGNORE_FILE = "$(top_srcdir)/devel/libtasn1.abignore"
......@@ -94,10 +91,25 @@ local-code-coverage-output: code-coverage-capture
clean-local: code-coverage-clean
distclean-local: code-coverage-dist-clean
dist-hook:
# git-version-gen
EXTRA_DIST += $(top_srcdir)/.version
BUILT_SOURCES = $(top_srcdir)/.version
$(top_srcdir)/.version:
echo $(VERSION) > $@-t && mv $@-t $@
dist-hook: gen-ChangeLog
echo $(VERSION) > $(distdir)/.tarball-version
if test -d "$(top_srcdir)/devel";then \
$(MAKE) -C $(top_srcdir) abi-check-latest; \
make -C doc/ compare-makefile; \
fi
.PHONY: gen-ChangeLog
gen-ChangeLog:
$(AM_V_GEN)if test -d .git; then \
$(top_srcdir)/build-aux/gitlog-to-changelog > \
$(distdir)/cl-t && \
{ rm -f $(distdir)/ChangeLog && \
mv $(distdir)/cl-t $(distdir)/ChangeLog; } \
fi
.PHONY: abi-check abi-dump-versioned abi-dump-latest
GNU Libtasn1 NEWS -*- outline -*-
* Noteworthy changes in release ?.? (????-??-??) [?]
- Print deprecation messages when deprecated macros are used.
- Fix bugs unvelieled by Static Analysis, reported by Simo Sorce.
- Print deprecation messages for deprecated macros, thanks to Tim Rühsen.
- Fix some clang issues due to illegal pointers, thanks to Stefan Weil.
- Restore handling of SIZE nodes, thanks to Dmitry Baryshkov.
- Fix memory leak caught by oss-fuzz, thanks to Dmitry Baryshkov.
- Gtk-doc fixes, thanks to Dmitry Baryshkov.
- Fix bugs unveiled by Static Analysis, reported by Simo Sorce.
- Update gnulib files and many build fixes.
* Noteworthy changes in release 4.16.0 (released 2020-02-01) [stable]
- asn1_decode_simple_ber: added support for constructed definite
......
README.md
\ No newline at end of file
|Branch|CI system|Status|
|:----:|:-------:|-----:|
|Master|Gitlab|[![build status](https://gitlab.com/gnutls/libtasn1/badges/master/pipeline.svg)](https://gitlab.com/gnutls/libtasn1/commits/master)[![coverage report](https://gitlab.com/gnutls/libtasn1/badges/master/coverage.svg)](https://gnutls.gitlab.io/libtasn1/coverage)|
# libtasn1
# Libtasn1 README -- Introduction information
This is GNU Libtasn1, a small ASN.1 library.
......
# Copyright (C) 2016-2021 Simon Josefsson
# Copyright (C) 2016,2018 Tim Rühsen
# Copyright (C) 2016-2017 Simon Josefsson
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......@@ -16,33 +16,36 @@
# gnulib library name
source_base=lib/gl
local_gl_dir=$source_base
tests_base=tests-gl
m4_base=m4-gl
gnulib_name=libgnu
gnulib_tool_option_extras="--lgpl=2 --without-tests --no-vc-files"
use_libtool=1