Bugzilla – Attachment 12599 Details for
Bug 8840
ubuntu-pkg-check.sh fix and extend functionality
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Replaced ubuntu-pkg-check.sh with one that works properly.
0001-Bug-8840-ubuntu-pkg-check.sh-fix-and-extend-function.patch (text/plain), 7.66 KB, created by
Mark Tompsett
on 2012-09-28 17:37:41 UTC
(
hide
)
Description:
Replaced ubuntu-pkg-check.sh with one that works properly.
Filename:
MIME Type:
Creator:
Mark Tompsett
Created:
2012-09-28 17:37:41 UTC
Size:
7.66 KB
patch
obsolete
>From 2d710b7cf587e12b5b12a1e1163192c74f2d25a0 Mon Sep 17 00:00:00 2001 >From: Mark Tompsett <mtompset@hotmail.com> >Date: Sat, 29 Sep 2012 01:11:55 +0800 >Subject: [PATCH] Bug 8840 - ubuntu-pkg-check.sh fix and extend functionality >Content-Type: text/plain; charset="utf-8" > >First, reworked it into a newer script with parameters: > ubuntu-packages.sh -r >This will generate output identical to the old script, except >that it is fixed for non-english setups. > ubuntu-packages.sh -h >This adds a brief help, which all scripts should have. > ubuntu-packages.sh -ic >This helps handle a multi-arch problem by printing out a >relevant command for installing missing dependencies. >--- > install_misc/ubuntu-packages.sh | 196 ++++++++++++++++++++++++++++++++++++++ > install_misc/ubuntu-pkg-check.sh | 27 ------ > 2 files changed, 196 insertions(+), 27 deletions(-) > create mode 100755 install_misc/ubuntu-packages.sh > delete mode 100755 install_misc/ubuntu-pkg-check.sh > >diff --git a/install_misc/ubuntu-packages.sh b/install_misc/ubuntu-packages.sh >new file mode 100755 >index 0000000..65905c9 >--- /dev/null >+++ b/install_misc/ubuntu-packages.sh >@@ -0,0 +1,196 @@ >+#!/bin/bash >+ >+# Copyright 2012 Universidad Nacional de Cordoba >+# Written by Tomas Cohen Arazi >+# Mark Tompsett >+# >+# This file is part of Koha. >+# >+# Koha 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 2 of the License, or (at your option) any later >+# version. >+# >+# Koha 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 Koha; if not, write to the Free Software Foundation, Inc., >+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. >+ >+# Output simple help >+usage() { >+ local scriptname=$(basename $0) >+ cat <<EOF >+$scriptname >+ >+Query for missing dependencies. Print the install command for them if specified. >+ >+Usage: >+$scriptname -r >+$scriptname -ic >+$scriptname -h >+ >+ -r | --report Report the status of Koha's dependencies >+ -ic | --install-command Display the install command for the missing dependencies >+ -h | --help Display this help message >+EOF >+} >+ >+# Check if the package is installed >+packageInstalled() { >+ local package=$1 >+ if dpkg -s $package &> /dev/null ; then >+ return 0 >+ else >+ return 1 >+ fi >+} >+ >+# Get the installed package version >+getPackageVersion() { >+ local package=$1 >+ dpkg-query -W $package | cut -f2 >+} >+ >+# A parameter is required. >+if [ "$#" -eq "0" ]; then >+ usage >+ exit 1 >+fi >+ >+# Initialize variables >+CHECK=no >+INSTALLCMD=no >+HELP=no >+ >+# Loop over parameters >+while (( "$#" )); do >+ case $1 in >+ -r | --report ) >+ CHECK=yes >+ ;; >+ -ic | --install-command ) >+ INSTALLCMD=yes >+ ;; >+ -h | --help) >+ HELP=yes >+ ;; >+ * ) >+ usage >+ exit 1 >+ esac >+ shift >+done >+ >+if [ "$HELP" = "yes" ]; then >+ usage >+ exit 0 >+fi >+ >+# Determine what directory this script is in, the packages files >+# should be in the same path. >+DIR=`dirname $0` >+ >+# Determine the Ubuntu release >+UBUNTU_RELEASE=`lsb_release -r | cut -f2 -d' '` >+UBUNTU_PACKAGES_FILE=$DIR/ubuntu.$UBUNTU_RELEASE.packages >+ >+# Check for the release-specific packages file. Default to the general one >+# but warn the user about LTS releases recommended, if they are attempting >+# to do an install command option. >+if [ ! -e $UBUNTU_PACKAGES_FILE ]; then >+ UBUNTU_PACKAGES_FILE=$DIR/ubuntu.packages >+ if [ "$INSTALLCMD" == "yes" ]; then >+ echo "# There's no packages file for your distro/release" >+ echo "# WARNING! We strongly recommend an LTS release." >+ fi >+fi >+ >+# We where asked to print the packages list and current versions (if any) >+UBUNTU_PACKAGES=`awk '{print $1}' $UBUNTU_PACKAGES_FILE | grep -v '^\s*#' | grep -v '^\s*$'` >+ >+# Only output this on an install command option in order to maintain >+# output equivalence to the former script, in the case of reporting >+# only. >+if [ "$INSTALLCMD" == "yes" ]; then >+ >+ # Tell them which file being used to determine the output. >+ echo "# Using the $UBUNTU_PACKAGES_FILE file as source" >+ >+ # Comment for skiping the dots if needed .... >+ if [ "$CHECK" == "no" ]; then >+ echo -n "#" >+ fi >+fi >+ >+# Initialize variable to accumulate missing packages in. >+MISSING_PACKAGES="" >+ >+# Loop used to accumulate the missing packages and display package information if requested to report. >+for PACKAGE in $UBUNTU_PACKAGES; do >+ >+ # If an install command option is running, but not a report option, >+ # There is no need to determine the version number. If it was >+ # This would run even slower! >+ >+ # Test if the package is installed >+ if packageInstalled $PACKAGE ; then >+ PACKAGE_INSTALLED=1 >+ >+ # It must not be installed, accumulate for output >+ else >+ PACKAGE_INSTALLED=0 >+ MISSING_PACKAGES="$MISSING_PACKAGES $PACKAGE" >+ fi >+ >+ # If we are supposed to report... >+ if [ "$CHECK" == "yes" ]; then >+ >+ # Determine the package version if it is installed. >+ if [ $PACKAGE_INSTALLED ]; then >+ PACKAGE_VERSION=`getPackageVersion $PACKAGE` >+ >+ # otherwise default to 'none'. >+ else >+ PACKAGE_VERSION="none" >+ fi >+ >+ # report the package name and version number. >+ echo -e "$PACKAGE = $PACKAGE_VERSION" >+ >+ # Otherwise, we'll just echo a dor for the impatient. >+ else >+ echo -n "." >+ fi >+ >+done >+ >+# If we aren't reporting, then the last echo didn't have a newline. >+if [ "$CHECK" != "yes" ]; then >+ echo >+fi >+ >+# If the install command was requested... >+if [ "$INSTALLCMD" == "yes" ]; then >+ >+ # Give them a nicely indented command to copy, if dependencies are missing. >+ if [ "${#MISSING_PACKAGES}" -gt "0" ]; then >+ cat <<EOF >+# Copy and paste the following command to install all Koha's dependencies on your system: >+# Note: this command will run with admin privileges. Make sure your user has sudo rights >+EOF >+ >+ echo -e "\tsudo apt-get install $MISSING_PACKAGES" >+ >+ # Otherwise tell them all is well. >+ else >+ echo -e "# All dependencies installed!" >+ echo -e "# Please confirm the version numbers are sufficient" >+ echo -e "# By running koha_perl_deps.pl -m -u." >+ fi >+ >+fi >+ >+exit 0 >diff --git a/install_misc/ubuntu-pkg-check.sh b/install_misc/ubuntu-pkg-check.sh >deleted file mode 100755 >index 75bec3f..0000000 >--- a/install_misc/ubuntu-pkg-check.sh >+++ /dev/null >@@ -1,27 +0,0 @@ >-#!/bin/sh >- >-# determine what directory this script is in, because the packages files >-# should be there too. >-DIR=`dirname $0` >- >-#determine which vbersion of ubuntu >-VERSION=`lsb_release -r | cut -f2 -d' '` >-UBUNTU_PACKAGES=$DIR/ubuntu.$VERSION.packages >- >-# sanity checks >-if [ ! -e $UBUNTU_PACKAGES ]; then >- echo "WARNING! We strongly recommend an LTS release." >- UBUNTU_PACKAGES=$DIR/ubuntu.packages >-fi >-echo "Using the $UBUNTU_PACKAGES file." >- >-# main >-UBUNTU_PACKAGES_LIST=`awk '{print $1}' $UBUNTU_PACKAGES | grep -v '^\s*#' | grep -v '^\s*$'` >-for F in $UBUNTU_PACKAGES_LIST; do >- UBUNTU_PKG_POLICY=`apt-cache policy $F 2> /dev/null | grep "Installed:"` >- if [ "${#UBUNTU_PKG_POLICY}" -eq "0" ]; then >- UBUNTU_PKG_POLICY="Installed: \(none\)\*" >- fi >- UBUNTU_PKG_VERSION=`echo $UBUNTU_PKG_POLICY | awk '{print $2}'` >- echo "$F = $UBUNTU_PKG_VERSION" >-done >-- >1.7.9.5 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 8840
:
12566
|
12594
|
12599
|
12610
|
12613
|
13200
|
14171
|
14176
|
14177
|
16539
|
16540
|
18096
|
18097