Commit 6329ecae authored by Vivien Kraus's avatar Vivien Kraus
Browse files

First draft

parent c0ec382b
Pipeline #69758 passed with stages
in 4 minutes and 58 seconds
......@@ -3,9 +3,11 @@ image: debian:latest
stages:
- dist
- check
- package-src
- package
- manual
distribute:
dist:
stage: dist
image: tarotbis/build:latest
script: "./ci/dist.sh"
......@@ -16,25 +18,26 @@ distribute:
build:
stage: check
image: debian:latest
script: "./ci/build.sh"
artifacts:
paths:
- public
expire_in: 1 week
mingw32-build:
stage: check
image: fedora:latest
script: "./ci/mingw32.sh"
deb-src:
stage: package-src
image: debian:latest
script: "./ci/deb-src.sh"
artifacts:
paths:
- public
expire_in: 1 week
mingw64-build:
stage: check
image: fedora:latest
script: "./ci/mingw64.sh"
deb:
stage: package
image: debian:latest
script: "./ci/deb.sh"
artifacts:
paths:
- public
......
......@@ -43,8 +43,8 @@ dist_noinst_SCRIPTS = \
build-aux/git-version-gen \
ci/dist.sh \
ci/build.sh \
ci/mingw32.sh \
ci/mingw64.sh \
ci/deb-src.sh \
ci/deb.sh \
ci/pages.sh
nodist_noinst_DATA =
......@@ -91,6 +91,7 @@ AM_TAROT_LOG_FLAGS =
include doc/Makefile.am
include src/Makefile.am
include games/Makefile.am
include debian/Makefile.am
TESTS += $(check_PROGRAMS)
indent_verbose = $(indent_verbose_@AM_V@)
......
......@@ -55,19 +55,15 @@ http://gugurumbe.frama.io/tarot/share/doc/tarot/tarot.html/index.html
================
Tarot is hosted [on gitlab]. You can download the source distribution
from the latest commit [here], and the mingw builds [for `i686'] and
[for `x86_64']. However, you should still be able to build from the
git repo, provided you have the required programs like emacs...
from the latest commit [here]. However, you should still be able to
build from the git repo, provided you have the required programs like
emacs...
[on gitlab] https://framagit.org/gugurumbe/tarot
[here] http://gugurumbe.frama.io/tarot/tarot-devel.tar.gz
[for `i686'] http://gugurumbe.frama.io/tarot/tarot-devel-mingw32.zip
[for `x86_64'] http://gugurumbe.frama.io/tarot/tarot-devel-mingw64.zip
5 Compile this project
======================
......
#!/bin/sh
# Print a version string.
scriptversion=2018-08-20.16; # UTC
scriptversion=2018-08-20.21; # UTC
# Copyright (C) 2007-2017 Free Software Foundation, Inc.
#
......@@ -155,8 +155,8 @@ then
# directory, and "git describe" output looks sensible, use that to
# derive a version string.
elif test "`git log -1 --pretty=format:x . 2>&1`" = x \
&& v=`git describe --abbrev=4 --match="$prefix*" HEAD 2>/dev/null \
|| git describe --abbrev=4 HEAD 2>/dev/null` \
&& v=`git describe --tags --abbrev=4 --match="$prefix*" HEAD 2>/dev/null \
|| git describe --tags --abbrev=4 HEAD 2>/dev/null` \
&& v=`printf '%s\n' "$v" | sed "$tag_sed_script"` \
&& case $v in
$prefix[0-9]*) ;;
......
......@@ -4,7 +4,7 @@ VERSION=$(cat public/.version)
apt-get update
apt-get upgrade -y
apt-get install -y --no-install-recommends build-essential libreadline-dev libunistring-dev check valgrind
apt-get install -y --no-install-recommends build-essential libreadline-dev libunistring-dev gettext check valgrind
cp public/tarot-$VERSION.tar.gz . || exit 1
tar xf tarot-$VERSION.tar.gz || exit 1
mkdir prefix || exit 1
......
#!/bin/sh
VERSION=$(cat public/.version)
VERSION_SHORT=$(echo "$VERSION" | sed -E 's/([0-9]*)\.([0-9]*).*/\1.\2/g')
apt-get update
apt-get upgrade -y
apt-get install -y --no-install-recommends build-essential libreadline-dev libunistring-dev gettext dh-make dpkg-dev
cp public/tarot-$VERSION.tar.gz tarot_$VERSION_SHORT.orig.tar.gz || exit 1
tar xf tarot_$VERSION_SHORT.orig.tar.gz || exit 1
cd tarot-$VERSION || exit 1
dpkg-buildpackage -us -uc || exit 1
cd .. || exit 1
mkdir public/debian || exit 1
cp tarot_*.*-*.debian.tar.xz public/debian || exit 1
cp tarot-dbgsym_*.*-*_*.deb public/debian || exit 1
cp tarot_*.*-*.dsc public/debian || exit 1
cp tarot_*.*-*_*.buildinfo public/debian || exit 1
cp tarot_*.*-*_*.changes public/debian || exit 1
cp tarot_*.*-*_*.deb public/debian || exit 1
cp tarot_$VERSION_SHORT.orig.tar.gz public/debian || exit 1
#!/bin/sh
VERSION=$(cat public/.version)
apt-get update
apt-get upgrade -y
apt-get install -y --no-install-recommends build-essential libreadline-dev libunistring-dev
cp public/tarot-$VERSION.tar.gz . || exit 1
#!/bin/sh
VERSION=$(cat public/.version)
yum install -y mingw32-gcc mingw32-readline make zip
cp public/tarot-$VERSION.tar.gz . || exit 1
tar xf tarot-$VERSION.tar.gz || exit 1
mkdir tarot-$VERSION-mingw32 || exit 1
mkdir build || exit 1
cd build/
../tarot-$VERSION/configure CFLAGS="-Wall -Wextra -g" \
CPPFLAGS="-I/usr/i686-w64-mingw32/sys-root/mingw/include" \
LDFLAGS="-L/usr/i686-w64-mingw32/sys-root/mingw/lib" \
YFLAGS="--report=all" \
--host=i686-w64-mingw32 \
--prefix="/usr" \
--enable-silent-rules=yes \
|| (cat config.log; exit 1)
make -j 16 DESTDIR="$PWD/../tarot-$VERSION-mingw32" install || exit 1
cd ..
mkdir -p tarot-$VERSION-mingw32/usr/bin || exit 1
cp /usr/i686-w64-mingw32/sys-root/mingw/bin/*.dll tarot-$VERSION-mingw32/usr/bin || exit 1
zip -r tarot-$VERSION-mingw32.zip tarot-$VERSION-mingw32 || exit 1
mv tarot-$VERSION-mingw32.zip public/ || exit 1
#!/bin/sh
VERSION=$(cat public/.version)
yum install -y mingw64-gcc mingw64-readline make zip
cp public/tarot-$VERSION.tar.gz . || exit 1
tar xf tarot-$VERSION.tar.gz || exit 1
mkdir tarot-$VERSION-mingw64 || exit 1
mkdir build || exit 1
cd build/
../tarot-$VERSION/configure CFLAGS="-Wall -Wextra -g" \
CPPFLAGS="-I/usr/x86_64-w64-mingw32/sys-root/mingw/include" \
LDFLAGS="-L/usr/x86_64-w64-mingw32/sys-root/mingw/lib" \
YFLAGS="--report=all" \
--host=x86_64-w64-mingw32 \
--prefix="/usr" \
--enable-silent-rules=yes \
|| (cat config.log; exit 1)
make -j 16 DESTDIR="$PWD/../tarot-$VERSION-mingw64" install || exit 1
cd ..
mkdir -p tarot-$VERSION-mingw64/usr/bin || exit 1
cp /usr/x86_64-w64-mingw32/sys-root/mingw/bin/*.dll tarot-$VERSION-mingw64/usr/bin || exit 1
zip -r tarot-$VERSION-mingw64.zip tarot-$VERSION-mingw64 || exit 1
mv tarot-$VERSION-mingw64.zip public/ || exit 1
# Makefile.am
#
# Copyright (C) 2018 Vivien Kraus <vivien@planete-kraus.eu>
#
# 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
# <http://www.gnu.org/licenses/>.
EXTRA_DIST += \
%reldir%/changelog \
%reldir%/compat \
%reldir%/control \
%reldir%/copyright \
%reldir%/manpage.1.ex \
%reldir%/manpage.sgml.ex \
%reldir%/manpage.xml.ex \
%reldir%/menu.ex \
%reldir%/postinst.ex \
%reldir%/postrm.ex \
%reldir%/preinst.ex \
%reldir%/prerm.ex \
%reldir%/README.Debian \
%reldir%/README.source \
%reldir%/rules \
%reldir%/source/format \
%reldir%/tarot.cron.d.ex \
%reldir%/tarot.default.ex \
%reldir%/tarot.doc-base.EX \
%reldir%/tarot-docs.docs \
%reldir%/watch.ex
tarot for Debian
---------------
-- Vivien Kraus <vivien@planete-kraus.eu> Mon, 20 Aug 2018 22:17:26 +0200
tarot for Debian
---------------
<this file describes information about the source package, see Debian policy
manual section 4.14. You WILL either need to modify or delete this file>
-- Vivien Kraus <vivien@planete-kraus.eu> Mon, 20 Aug 2018 22:17:26 +0200
tarot (0.0-1) unstable; urgency=medium
* Initial release
-- Vivien Kraus <vivien@planete-kraus.eu> Mon, 20 Aug 2018 22:17:26 +0200
Source: tarot
Section: games
Priority: optional
Maintainer: Vivien Kraus <vivien@planete-kraus.eu>
Build-Depends: debhelper (>= 9), libreadline-dev, libunistring-dev, gettext
Standards-Version: 3.9.8
Homepage: http://gugurumbe.frama.io/tarot/share/doc/tarot/tarot.html/index.html
Vcs-Git: https://framagit.org/gugurumbe/tarot.git
Vcs-Browser: https://framagit.org/gugurumbe/tarot
Package: tarot
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, libreadline0, libunistring0, gettext
Description: A card *game* with up to 5 *players*
Tarot is a card game popular in some countries. This package
implements the game.
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: tarot
Source: <url://example.com>
Files: *
Copyright: 2017 2018 Vivien Kraus <vivien@planete-kraus.eu>
License: GPL-3+
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
<http://www.gnu.org/licenses/>.
.\" Hey, EMACS: -*- nroff -*-
.\" (C) Copyright 2018 Vivien Kraus <vivien@planete-kraus.eu>,
.\"
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH Tarot SECTION "August 20 2018"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh disable hyphenation
.\" .hy enable hyphenation
.\" .ad l left justify
.\" .ad b justify to both left and right margins
.\" .nf disable filling
.\" .fi enable filling
.\" .br insert line break
.\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.SH NAME
tarot \- program to do something
.SH SYNOPSIS
.B tarot
.RI [ options ] " files" ...
.br
.B bar
.RI [ options ] " files" ...
.SH DESCRIPTION
This manual page documents briefly the
.B tarot
and
.B bar
commands.
.PP
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
.\" respectively.
\fBtarot\fP is a program that...
.SH OPTIONS
These programs follow the usual GNU command line syntax, with long
options starting with two dashes (`-').
A summary of options is included below.
For a complete description, see the Info files.
.TP
.B \-h, \-\-help
Show summary of options.
.TP
.B \-v, \-\-version
Show version of program.
.SH SEE ALSO
.BR bar (1),
.BR baz (1).
.br
The programs are documented fully by
.IR "The Rise and Fall of a Fooish Bar" ,
available via the Info system.
<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
<!-- Process this file with docbook-to-man to generate an nroff manual
page: `docbook-to-man manpage.sgml > manpage.1'. You may view
the manual page with: `docbook-to-man manpage.sgml | nroff -man |
less'. A typical entry in a Makefile or Makefile.am is:
manpage.1: manpage.sgml
docbook-to-man $< > $@
The docbook-to-man binary is found in the docbook-to-man package.
Please remember that if you create the nroff version in one of the
debian/rules file targets (such as build), you will need to include
docbook-to-man in your Build-Depends control field.
-->
<!-- Fill in your name for FIRSTNAME and SURNAME. -->
<!ENTITY dhfirstname "<firstname>FIRSTNAME</firstname>">
<!ENTITY dhsurname "<surname>SURNAME</surname>">
<!-- Please adjust the date whenever revising the manpage. -->
<!ENTITY dhdate "<date>August 20 2018</date>">
<!-- SECTION should be 1-8, maybe w/ subsection other parameters are
allowed: see man(7), man(1). -->
<!ENTITY dhsection "<manvolnum>SECTION</manvolnum>">
<!ENTITY dhemail "<email>vivien@planete-kraus.eu</email>">
<!ENTITY dhusername "Vivien Kraus">
<!ENTITY dhucpackage "<refentrytitle>Tarot</refentrytitle>">
<!ENTITY dhpackage "tarot">
<!ENTITY debian "<productname>Debian</productname>">
<!ENTITY gnu "<acronym>GNU</acronym>">
<!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
]>
<refentry>
<refentryinfo>
<address>
&dhemail;
</address>
<author>
&dhfirstname;
&dhsurname;
</author>
<copyright>
<year>2003</year>
<holder>&dhusername;</holder>
</copyright>
&dhdate;
</refentryinfo>
<refmeta>
&dhucpackage;
&dhsection;
</refmeta>
<refnamediv>
<refname>&dhpackage;</refname>
<refpurpose>program to do something</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>&dhpackage;</command>
<arg><option>-e <replaceable>this</replaceable></option></arg>
<arg><option>--example <replaceable>that</replaceable></option></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>DESCRIPTION</title>
<para>This manual page documents briefly the
<command>&dhpackage;</command> and <command>bar</command>
commands.</para>
<para>This manual page was written for the &debian; distribution
because the original program does not have a manual page.
Instead, it has documentation in the &gnu;
<application>Info</application> format; see below.</para>
<para><command>&dhpackage;</command> is a program that...</para>
</refsect1>
<refsect1>
<title>OPTIONS</title>
<para>These programs follow the usual &gnu; command line syntax,
with long options starting with two dashes (`-'). A summary of
options is included below. For a complete description, see the
<application>Info</application> files.</para>
<variablelist>
<varlistentry>
<term><option>-h</option>
<option>--help</option>
</term>
<listitem>
<para>Show summary of options.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-v</option>
<option>--version</option>
</term>
<listitem>
<para>Show version of program.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>SEE ALSO</title>
<para>bar (1), baz (1).</para>
<para>The programs are documented fully by <citetitle>The Rise and
Fall of a Fooish Bar</citetitle> available via the
<application>Info</application> system.</para>
</refsect1>
<refsect1>
<title>AUTHOR</title>
<para>This manual page was written by &dhusername; &dhemail; for
the &debian; system (and may be used by others). Permission is
granted to copy, distribute and/or modify this document under
the terms of the &gnu; General Public License, Version 2 any
later version published by the Free Software Foundation.
</para>
<para>
On Debian systems, the complete text of the GNU General Public
License can be found in /usr/share/common-licenses/GPL.
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!--
`xsltproc -''-nonet \
-''-param man.charmap.use.subset "0" \
-''-param make.year.ranges "1" \
-''-param make.single.year.ranges "1" \
/usr/share/xml/docbook/stylesheet/docbook-xsl/manpages/docbook.xsl \
manpage.xml'
A manual page <package>.<section> will be generated. You may view the
manual page with: nroff -man <package>.<section> | less'. A typical entry
in a Makefile or Makefile.am is:
DB2MAN = /usr/share/sgml/docbook/stylesheet/xsl/docbook-xsl/manpages/docbook.xsl
XP = xsltproc -''-nonet -''-param man.charmap.use.subset "0"
manpage.1: manpage.xml
$(XP) $(DB2MAN) $<
The xsltproc binary is found in the xsltproc package. The XSL files are in
docbook-xsl. A description of the parameters you can use can be found in the
docbook-xsl-doc-* packages. Please remember that if you create the nroff
version in one of the debian/rules file targets (such as build), you will need
to include xsltproc and docbook-xsl in your Build-Depends control field.
Alternatively use the xmlto command/package. That will also automatically
pull in xsltproc and docbook-xsl.
Notes for using docbook2x: docbook2x-man does not automatically create the
AUTHOR(S) and COPYRIGHT sections. In this case, please add them manually as
<refsect1> ... </refsect1>.
To disable the automatic creation of the AUTHOR(S) and COPYRIGHT sections
read /usr/share/doc/docbook-xsl/doc/manpages/authors.html. This file can be
found in the docbook-xsl-doc-html package.
Validation can be done using: `xmllint -''-noout -''-valid manpage.xml`
General documentation about man-pages and man-page-formatting:
man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/
-->
<!-- Fill in your name for FIRSTNAME and SURNAME. -->
<!ENTITY dhfirstname "FIRSTNAME">
<!ENTITY dhsurname "SURNAME">
<!-- dhusername could also be set to "&dhfirstname; &dhsurname;". -->
<!ENTITY dhusername "Vivien Kraus">
<!ENTITY dhemail "vivien@planete-kraus.eu">
<!-- SECTION should be 1-8, maybe w/ subsection other parameters are
allowed: see man(7), man(1) and
http://www.tldp.org/HOWTO/Man-Page/q2.html. -->
<!ENTITY dhsection "SECTION">
<!-- TITLE should be something like "User commands" or similar (see
http://www.tldp.org/HOWTO/Man-Page/q2.html). -->
<!ENTITY dhtitle "tarot User Manual">
<!ENTITY dhucpackage "Tarot">
<!ENTITY dhpackage "tarot">
]>
<refentry>
<refentryinfo>
<title>&dhtitle;</title>
<productname>&dhpackage;</productname>
<authorgroup>
<author>
<firstname>&dhfirstname;</firstname>
<surname>&dhsurname;</surname>
<contrib>Wrote this manpage for the Debian system.</contrib>
<address>
<email>&dhemail;</email>
</address>
</author>
</authorgroup>
<copyright>
<year>2007</year>
<holder>&dhusername;</holder>
</copyright>
<legalnotice>
<para>This manual page was written for the Debian system
(and may be used by others).</para>
<para>Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU General Public License,
Version 2 or (at your option) any later version published by
the Free Software Foundation.</para>
<para>On Debian systems, the complete text of the GNU General Public
License can be found in
<filename>/usr/share/common-licenses/GPL</filename>.</para>
</legalnotice>
</refentryinfo>
<refmeta>
<refentrytitle>&dhucpackage;</refentrytitle>
<manvolnum>&dhsection;</manvolnum>
</refmeta>
<refnamediv>
<refname>&dhpackage;</refname>