Re: [Clamav-devel] [PATCH] Added a autogen.sh for buildstrap the build system

2012-04-16 Thread Török Edwin
On 04/16/2012 07:18 PM, Elia Pinto wrote:
> 2012/4/16 Török Edwin :
>> On 04/16/2012 07:02 PM, Elia Pinto wrote:
>>> Please ignore this patch. It is incomplete, i am sorry.
>>>
>>> I will reroll it shortly.
>>
>> autogen.sh is not needed, 'autoreconf -fvi' does the job.
> Yes, but not check the minimum version of the gnu buildtool used
> by a project, giving strange error if not, and, in the clamav case,
> don't check and give bad error if
> libtool libtdl tool or the static library are missing.

autoconf version is checked by AC_PREREQ, and automake version by 
AM_INIT_AUTOMAKE,
so checking those in autogen.sh is redundant.
All that remains to be checked is the libtool version.

Or just run the build-system regeneration on an up-to-date Debian 
testing/unstable, like we do :)

Best regards,
--Edwin
___
http://lurker.clamav.net/list/clamav-devel.html
Please submit your patches to our Bugzilla: http://bugs.clamav.net


Re: [Clamav-devel] [PATCH] Added a autogen.sh for buildstrap the build system

2012-04-16 Thread Elia Pinto
2012/4/16 Török Edwin :
> On 04/16/2012 07:02 PM, Elia Pinto wrote:
>> Please ignore this patch. It is incomplete, i am sorry.
>>
>> I will reroll it shortly.
>
> autogen.sh is not needed, 'autoreconf -fvi' does the job.
Yes, but not check the minimum version of the gnu buildtool used
by a project, giving strange error if not, and, in the clamav case,
don't check and give bad error if
libtool libtdl tool or the static library are missing.

Best Regards

Elia
>
> Best regards,
> --Edwin
> ___
> http://lurker.clamav.net/list/clamav-devel.html
> Please submit your patches to our Bugzilla: http://bugs.clamav.net
___
http://lurker.clamav.net/list/clamav-devel.html
Please submit your patches to our Bugzilla: http://bugs.clamav.net


Re: [Clamav-devel] [PATCH] Added a autogen.sh for buildstrap the build system

2012-04-16 Thread Török Edwin
On 04/16/2012 07:02 PM, Elia Pinto wrote:
> Please ignore this patch. It is incomplete, i am sorry.
> 
> I will reroll it shortly.

autogen.sh is not needed, 'autoreconf -fvi' does the job.

Best regards,
--Edwin
___
http://lurker.clamav.net/list/clamav-devel.html
Please submit your patches to our Bugzilla: http://bugs.clamav.net


Re: [Clamav-devel] [PATCH] Added a autogen.sh for buildstrap the build system

2012-04-16 Thread Elia Pinto
Please ignore this patch. It is incomplete, i am sorry.

I will reroll it shortly.

Thanks
2012/4/16 Elia Pinto :
> This patch add a simple autogen.sh for buildstrap
> the gnu build system. It also check the minimun version
> of the gnu buildtool necessary for clamav.
>
> Signed-off-by: Elia Pinto 
> ---
>  Makefile.am |    2 +-
>  autogen.sh  |  200 
> +++
>  2 files changed, 201 insertions(+), 1 deletions(-)
>  create mode 100755 autogen.sh
>
> diff --git a/Makefile.am b/Makefile.am
> index 3970e2e..b3c02a5 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -19,7 +19,7 @@
>  ACLOCAL_AMFLAGS=-I m4
>
>  SUBDIRS = libltdl libclamav clamscan clamd clamdscan freshclam sigtool 
> clamconf database docs etc clamav-milter test clamdtop clambc unit_tests
> -EXTRA_DIST = FAQ examples BUGS shared libclamav.pc.in 
> libclamunrar_iface/Makefile.am libclamunrar_iface/Makefile.in UPGRADE 
> COPYING.bzip2 COPYING.lzma COPYING.unrar COPYING.LGPL COPYING.llvm 
> COPYING.file COPYING.zlib COPYING.getopt COPYING.regex COPYING.sha256 
> platform.h.in clamdscan/clamdscan.map win32
> +EXTRA_DIST = FAQ examples BUGS shared libclamav.pc.in 
> libclamunrar_iface/Makefile.am libclamunrar_iface/Makefile.in UPGRADE 
> COPYING.bzip2 COPYING.lzma COPYING.unrar COPYING.LGPL COPYING.llvm 
> COPYING.file COPYING.zlib COPYING.getopt COPYING.regex COPYING.sha256 
> platform.h.in clamdscan/clamdscan.map win32 README-prereq
>
>  bin_SCRIPTS=clamav-config
>
> diff --git a/autogen.sh b/autogen.sh
> new file mode 100755
> index 000..f41e365
> --- /dev/null
> +++ b/autogen.sh
> @@ -0,0 +1,200 @@
> +#!/bin/sh
> +#
> +# $Id$
> +# autogen.sh: autogen.sh script for clamav projects
> +#
> +# Copyright (c) 2010-2011 Elia Pinto 
> +#
> +# This program have the same copyright notice as clamav
> +# itself
> +#
> +# Global Function and Variables
> +#
> +_PROGNAME="$0"
> +#
> +red=; grn=; lgn=; blu=; std=;
> +test "X$$TERM" != Xdumb \
> +&&  test -t 1 2>/dev/null  \
> +&& { \
> +  red=' [0;31m'; \
> +  grn=' [0;32m'; \
> +  lgn=' [1;32m'; \
> +  blu=' [1;34m'; \
> +  std=' [m'; \
> +}
> +
> +Die()    {
> +        color="$red"
> +       echo "${color}${_PROGNAME}: Error: $@${std}" >&2
> +       exit 1
> +}
> +
> +Notice() {
> +        color="$grn"
> +       echo "${color}${_PROGNAME}: $@${std}"
> +}
> +
> +
> +# Function Used for checking the Version Used for building
> +#
> +# Note this deviates from the version comparison in automake
> +# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
> +# but this should suffice as we won't be specifying old
> +# version formats or redundant trailing .0 in bootstrap.conf.
> +# If we did want full compatibility then we should probably
> +# use m4_version_compare from autoconf.
> +sort_ver() { # sort -V is not generally available
> +  ver1="$1"
> +  ver2="$2"
> +
> +  # split on '.' and compare each component
> +  i=1
> +  while : ; do
> +    p1=$(echo "$ver1" | cut -d. -f$i)
> +    p2=$(echo "$ver2" | cut -d. -f$i)
> +    if [ ! "$p1" ]; then
> +      echo "$1 $2"
> +      break
> +    elif [ ! "$p2" ]; then
> +      echo "$2 $1"
> +      break
> +    elif [ ! "$p1" = "$p2" ]; then
> +      if [ "$p1" -gt "$p2" ] 2>/dev/null; then # numeric comparison
> +        echo "$2 $1"
> +      elif [ "$p2" -gt "$p1" ] 2>/dev/null; then # numeric comparison
> +        echo "$1 $2"
> +      else # numeric, then lexicographic comparison
> +        lp=$(printf "$p1\n$p2\n" | LANG=C sort -n | tail -n1)
> +        if [ "$lp" = "$p2" ]; then
> +          echo "$1 $2"
> +        else
> +          echo "$2 $1"
> +        fi
> +      fi
> +      break
> +    fi
> +    i=$(($i+1))
> +  done
> +}
> +
> +get_version() {
> +  app=$1
> +
> +  $app --version >/dev/null 2>&1 || return 1
> +
> +  $app --version 2>&1 |
> +  sed -n '# extract version within line
> +          s/.*[v ]\{1,\}\([0-9]\{1,\}\.[.a-z0-9-]*\).*/\1/
> +          t done
> +
> +          # extract version at start of line
> +          s/^\([0-9]\{1,\}\.[.a-z0-9-]*\).*/\1/
> +          t done
> +
> +          d
> +
> +          :done
> +          #the following essentially does s/5.005/5.5/
> +          s/\.0*\([1-9]\)/.\1/g
> +          p
> +          q'
> +}
> +
> +check_versions() {
> +  ret=0
> +
> +  while read app req_ver; do
> +    # Honor $APP variables ($TAR, $AUTOCONF, etc.)
> +    appvar=`echo $app | tr '[a-z]' '[A-Z]'`
> +    test "$appvar" = TAR && appvar=AMTAR
> +    eval "app=\${$appvar-$app}"
> +    inst_ver=$(get_version $app)
> +    if [ ! "$inst_ver" ]; then
> +      echo "Error: '$app' not found" >&2
> +      ret=1
> +    elif [ ! "$req_ver" = "-" ]; then
> +      latest_ver=$(sort_ver $req_ver $inst_ver | cut -d' ' -f2)
> +      if [ ! "$latest_ver" = "$inst_ver" ]; then
> +        echo "Error: '$app' version == $inst_ver is too old" >&2
> +        echo "       '$app' version >= $req_ver is required" >&2
> +        ret=1
> +      fi
> +    fi
> +  done
> +
> +  return $ret
> +}
> +
> +pri

[Clamav-devel] [PATCH] Added a autogen.sh for buildstrap the build system

2012-04-16 Thread Elia Pinto
This patch add a simple autogen.sh for buildstrap
the gnu build system. It also check the minimun version
of the gnu buildtool necessary for clamav.

Signed-off-by: Elia Pinto 
---
 Makefile.am |2 +-
 autogen.sh  |  200 +++
 2 files changed, 201 insertions(+), 1 deletions(-)
 create mode 100755 autogen.sh

diff --git a/Makefile.am b/Makefile.am
index 3970e2e..b3c02a5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -19,7 +19,7 @@
 ACLOCAL_AMFLAGS=-I m4
 
 SUBDIRS = libltdl libclamav clamscan clamd clamdscan freshclam sigtool 
clamconf database docs etc clamav-milter test clamdtop clambc unit_tests
-EXTRA_DIST = FAQ examples BUGS shared libclamav.pc.in 
libclamunrar_iface/Makefile.am libclamunrar_iface/Makefile.in UPGRADE 
COPYING.bzip2 COPYING.lzma COPYING.unrar COPYING.LGPL COPYING.llvm COPYING.file 
COPYING.zlib COPYING.getopt COPYING.regex COPYING.sha256 platform.h.in 
clamdscan/clamdscan.map win32
+EXTRA_DIST = FAQ examples BUGS shared libclamav.pc.in 
libclamunrar_iface/Makefile.am libclamunrar_iface/Makefile.in UPGRADE 
COPYING.bzip2 COPYING.lzma COPYING.unrar COPYING.LGPL COPYING.llvm COPYING.file 
COPYING.zlib COPYING.getopt COPYING.regex COPYING.sha256 platform.h.in 
clamdscan/clamdscan.map win32 README-prereq
 
 bin_SCRIPTS=clamav-config
 
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 000..f41e365
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,200 @@
+#!/bin/sh
+#
+# $Id$
+# autogen.sh: autogen.sh script for clamav projects
+#
+# Copyright (c) 2010-2011 Elia Pinto 
+#
+# This program have the same copyright notice as clamav
+# itself
+#
+# Global Function and Variables
+#
+_PROGNAME="$0"
+#
+red=; grn=; lgn=; blu=; std=; 
+test "X$$TERM" != Xdumb \
+&&  test -t 1 2>/dev/null  \
+&& { \
+  red=''; \
+  grn=''; \
+  lgn=''; \
+  blu=''; \
+  std=''; \
+}
+
+Die(){
+color="$red"
+   echo "${color}${_PROGNAME}: Error: $@${std}" >&2
+   exit 1
+}
+
+Notice() {
+color="$grn"
+   echo "${color}${_PROGNAME}: $@${std}" 
+}
+
+
+# Function Used for checking the Version Used for building
+# 
+# Note this deviates from the version comparison in automake
+# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
+# but this should suffice as we won't be specifying old
+# version formats or redundant trailing .0 in bootstrap.conf.
+# If we did want full compatibility then we should probably
+# use m4_version_compare from autoconf.
+sort_ver() { # sort -V is not generally available
+  ver1="$1"
+  ver2="$2"
+
+  # split on '.' and compare each component
+  i=1
+  while : ; do
+p1=$(echo "$ver1" | cut -d. -f$i)
+p2=$(echo "$ver2" | cut -d. -f$i)
+if [ ! "$p1" ]; then
+  echo "$1 $2"
+  break
+elif [ ! "$p2" ]; then
+  echo "$2 $1"
+  break
+elif [ ! "$p1" = "$p2" ]; then
+  if [ "$p1" -gt "$p2" ] 2>/dev/null; then # numeric comparison
+echo "$2 $1"
+  elif [ "$p2" -gt "$p1" ] 2>/dev/null; then # numeric comparison
+echo "$1 $2"
+  else # numeric, then lexicographic comparison
+lp=$(printf "$p1\n$p2\n" | LANG=C sort -n | tail -n1)
+if [ "$lp" = "$p2" ]; then
+  echo "$1 $2"
+else
+  echo "$2 $1"
+fi
+  fi
+  break
+fi
+i=$(($i+1))
+  done
+}
+
+get_version() {
+  app=$1
+
+  $app --version >/dev/null 2>&1 || return 1
+
+  $app --version 2>&1 |
+  sed -n '# extract version within line
+  s/.*[v ]\{1,\}\([0-9]\{1,\}\.[.a-z0-9-]*\).*/\1/
+  t done
+
+  # extract version at start of line
+  s/^\([0-9]\{1,\}\.[.a-z0-9-]*\).*/\1/
+  t done
+
+  d
+
+  :done
+  #the following essentially does s/5.005/5.5/
+  s/\.0*\([1-9]\)/.\1/g
+  p
+  q'
+}
+
+check_versions() {
+  ret=0
+
+  while read app req_ver; do
+# Honor $APP variables ($TAR, $AUTOCONF, etc.)
+appvar=`echo $app | tr '[a-z]' '[A-Z]'`
+test "$appvar" = TAR && appvar=AMTAR
+eval "app=\${$appvar-$app}"
+inst_ver=$(get_version $app)
+if [ ! "$inst_ver" ]; then
+  echo "Error: '$app' not found" >&2
+  ret=1
+elif [ ! "$req_ver" = "-" ]; then
+  latest_ver=$(sort_ver $req_ver $inst_ver | cut -d' ' -f2)
+  if [ ! "$latest_ver" = "$inst_ver" ]; then
+echo "Error: '$app' version == $inst_ver is too old" >&2
+echo "   '$app' version >= $req_ver is required" >&2
+ret=1
+  fi
+fi
+  done
+
+  return $ret
+}
+
+print_versions() {
+  echo "ProgramMin_version"
+  echo "--"
+  printf "$buildreq"
+  echo "--"
+  # can't depend on column -t
+}
+
+###
+# Begin  Bootstrapping
+###
+# Build prerequisites
+buildreq="\
+autoconf   2.59
+automake   1.11.1
+libtool   2.2.10
+"
+echo
+Notice "Bootstrapping clamav build system..."
+echo
+# Guess whether we are using con