[vz-dev] vzlogger install script

Andreas Goetz cpuidle at gmail.com
Mon Mar 2 16:23:06 CET 2015


Hallo Andre,

On Mon, Mar 2, 2015 at 2:55 PM, Andre Bernemann <andre.bernemann at gmail.com>
wrote:

> gute Idee, Danke für das Skript. Ich habe es mal getestet, und prinzipiell
> funktioniert es bis auf ein paar Kleinigkeiten:
>

Das wäre ja schön, aber die Mängelliste ist ja doch etwas länger.


> 1. ./install.sh libsml --> klappt einwandfrei
>

Der vollständigkeit halber: was hast Du vorher gemacht? git clone? wget?
Hattest Du install.sh auch mal ohne Parameter aufgerufen? Gelten die
Ergebnisse unten für einen frischen git clone? Wann hattest Du das getestet?


>
> 2. ./install.sh libjson:
> Ich bekomme folgenden Fehler:
>
> CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /home/pi/vz/vzlogger/libs/
> json-c/missing aclocal-1.14
> /home/pi/vz/vzlogger/libs/json-c/missing: line 81: aclocal-1.14: command
> not found
> WARNING: 'aclocal-1.14' is missing on your system.
>          You should only need it if you modified 'acinclude.m4' or
>          'configure.ac' or m4 files included by 'configure.ac'.
>          The 'aclocal' program is part of the GNU Automake package:
>          <http://www.gnu.org/software/automake>
>          It also requires GNU Autoconf, GNU m4 and Perl in order to run:
>          <http://www.gnu.org/software/autoconf>
>          <http://www.gnu.org/software/m4/>
>          <http://www.perl.org/>
> Makefile:462: recipe for target 'aclocal.m4' failed
> make: *** [aclocal.m4] Error 127
>
> Wenn ich die Skripte (autogen.sh && ...) manuell direkt im Ordner
> libs/json-c durchlaufen lasse klappt es. Möglicherweise gibt es ein Problem
> mit pushd und autogen.sh?
>

Ich passe. Überhaupt keine Idee. Kann das nur nochmal vom Start weg
versuchen nachzuvollziehen.


> 3. ./install.sh vzlogger
>
Fehler:
> Install the project...
> /usr/bin/cmake -P cmake_install.cmake
> -- Install configuration: ""
> -- Installing: /usr/local/share/doc/vzlogger-0-4/README
> CMake Error at cmake_install.cmake:36 (FILE):
>   file INSTALL cannot find "/home/pi/vz/vzlogger/INSTALL".
> Makefile:65: recipe for target 'install' failed
> make: *** [install] Error 1
>
> Neben INSTALL wird auch die Datei COPYING in cmake_install.cmake
> referenziert. Lege ich die beiden Dateien an funktioniert es.
>

Kommt der Fehler auch wenn Du einfach nur

cmake .
make
sudo make install

aufrufst?

Bei mir gibt es COPYING, im git ist sie ebenfalls- warum existiert die
Datei bei Dir nicht standardmäßig?

@root, @mbehr: kann es sein dass das Aufräumen der Automake Umgebung etwas
damit zu tun hat (mindestens bzgl. INSTALL)?


> Gruß
> André
>

Viele Grüße,
Andreas


>
>
> Andreas Goetz <cpuidle at gmail.com> schrieb am So., 1. März 2015 um
> 13:49 Uhr:
>
> Hallo Zusammen,
>>
>> ich hab mal versucht ein Skript zu bauen das vzlogger installiert oder-
>> sofern schon vorhanden- aktualisiert. Wäre schön wenn das jemand testen
>> könnte bevor ich es im git einstelle (@Udo: das wäre auch was für Dich ;)
>>
>> Viele Grüße,
>> Andreas
>>
>>
>> #!/bin/bash
>> #
>> # Installer
>> #
>> # @copyright Copyright (c) 2015, The volkszaehler.org project
>> # @license http://www.opensource.org/licenses/gpl-license.php GNU Public
>> License
>> # @author Andreas Goetz
>> #
>> ##
>> # The installer will clone all required repositories or update them if
>> necessary.
>> # Then the modules are compiled and installed
>> #
>> # USAGE:
>> #
>> #   Run install.sh from vzlogger or parent folder
>> #
>> #       ./install.sh
>> #
>> #   To execute specific parts of the build select which ones to run:
>> #
>> #       ./install.sh <list of modules>
>> #
>> #   Modules:
>> #     - vzlogger (libraries must be in place already)
>> #     - libjson
>> #     - libsml
>> #     - clean (will clean the respektive make targets, requires
>> explicitly naming the modules)
>> #
>> #     To run a clean build:
>> #
>> #       ./install.sh vzlogger libjson libsml clean
>> #
>> ##
>> # This file is part of volkzaehler.org
>> #
>> # volkzaehler.org 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
>> # any later version.
>> #
>> # volkzaehler.org 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 volkszaehler.org. If not, see <http://www.gnu.org/licenses/>
>> .
>> ##
>>
>> set -e
>> shopt -s nocasematch
>>
>> ###############################
>> # some defaults
>> vzlogger_dir=vzlogger
>> lib_dir=libs
>> git_config=.git/config
>>
>> ###############################
>> # functions
>> ask() {
>>     question="$1"
>>     default="$2"
>>     read -e -p "$question [$default] "
>>     REPLY="${REPLY:-$default}"
>> }
>>
>> contains() {
>>     [[ $1 =~ $2 ]] && true || false
>> }
>>
>> git_is_repo() {
>>     folder="$1"
>>     match="${2-$folder}"
>>
>>     if [ -e "$folder/$git_config" ] && grep -q "$match"
>> "$folder/$git_config"; then
>>         true
>>     else
>>         false
>>     fi
>> }
>>
>> git_update() {
>>     folder="$1"
>>     git_repo="$2"
>>     match="${3-$folder}"
>>     git_params="${4-}"
>>
>>     if git_is_repo $folder $match; then
>>         echo "$folder folder: $(pwd)/$folder"
>>         git_dirty=$(cd $folder; git fetch; git log HEAD.. --oneline)
>>     else
>>         echo "$folder not found"
>>         echo "cloning $folder git repository"
>>         git clone $git_params "$git_repo"
>>     fi
>>
>>     if [ -n "$git_dirty" ]; then
>>         echo "updating $folder git repository with remote changes"
>>         pushd $folder
>>             git pull
>>         popd
>>     fi
>> }
>>
>>
>> ###############################
>> # header
>> echo "vzlogger installation script"
>>
>> ###############################
>> # check prerequisites
>> echo
>> echo -n "checking prerequisites:"
>>
>> deps=( grep pidof git cmake pkg-config autoreconf )
>> for binary in "${deps[@]}"; do
>>     if binpath="$(which $binary)" ; then
>>         echo -n " $binary"
>>     else
>>         echo
>>         echo " $binary: not found. Please install to use this script
>> (e.g. sudo apt-get install $binary)."
>>         exit 1
>>     fi
>> done
>> echo
>>
>> ###############################
>> echo
>> echo "vzlogger setup..."
>> if [ -n "$1" ]; then
>>     echo "setup modules: $1"
>> fi
>>
>> ###############################
>> echo
>> echo "checking for vzlogger folder"
>>
>> if git_is_repo . vzlogger; then
>>     # move to parent folder
>>     cd ..
>> fi
>>
>> if [ -z "$1" ] || contains "$*" vzlogger; then
>>     git_update "$vzlogger_dir" https://github.com/
>> volkszaehler/vzlogger.git vzlogger
>> fi
>>
>> pushd "$vzlogger_dir"
>>
>> ###############################
>> echo
>> echo "checking for libraries"
>>
>> if [ ! -d "$lib_dir" ]; then
>>     echo "creating library folder $lib_dir"
>>     mkdir "$lib_dir"
>> fi
>> pushd "$lib_dir"
>>
>>     ###############################
>>     # libjson
>>     if [ -z "$1" ] || contains "$*" libjson; then
>>         echo
>>         echo "checking for libjson"
>>
>>         git_update json-c https://github.com/json-c/json-c json-c "-b
>> json-c-0.12"
>>     fi
>>
>>     # libsml
>>     if [ -z "$1" ] || contains "$*" libsml; then
>>         echo
>>         echo "checking for libsml"
>>
>>         git_update libsml https://github.com/volkszaehler/libsml.git
>>     fi
>>
>>
>>     ###############################
>>     echo
>>     echo "building and installing libraries"
>>
>>     # libjson
>>     if [ -z "$1" ] || contains "$*" libjson; then
>>         echo
>>         echo "building and installing libjson"
>>         pushd json-c
>>             if [ ! -x ./configure ]; then
>>                 sh autogen.sh
>>             fi
>>             if [ ! -e Makefile ]; then
>>                 ./configure
>>             else
>>                 if contains "$*" clean; then make clean; fi
>>             fi
>>
>>             make
>>             sudo make install
>>         popd
>>     fi
>>
>>     # libsml
>>     if [ -z "$1" ] || contains "$*" libsml; then
>>         echo
>>         echo "building and installing libsml"
>>         pushd libsml
>>             if contains "$*" clean; then make clean; fi
>>
>>             make
>>             sudo cp sml/lib/libsml.* /usr/lib/
>>             sudo cp -R sml/include/* /usr/include/
>>             sudo cp sml.pc /usr/lib/pkgconfig/
>>         popd
>>     fi
>>
>> popd
>>
>> ###############################
>> # vzlogger
>> if [ -z "$1" ] || contains "$*" vzlogger; then
>>     echo
>>     echo "building and installing vzlogger"
>>
>>     if contains "$*" clean; then
>>         echo "clearing cmake cache"
>>         rm CMakeCache.txt
>>     fi
>>
>>     echo "building vzlogger"
>>     cmake .
>>     make
>>     echo "installing vzlogger"
>>     sudo make install
>>
>>     if [ -n $(pidof vzlogger) ]; then
>>         echo
>>         echo "vzlogger is already running"
>>         echo "make sure to restart vzlogger"
>>     fi
>> fi
>>
>> popd
>>
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-dev/attachments/20150302/c8d5455c/attachment-0001.html>


More information about the volkszaehler-dev mailing list