summaryrefslogtreecommitdiff
path: root/pcr
diff options
context:
space:
mode:
Diffstat (limited to 'pcr')
-rw-r--r--pcr/localepurge/PKGBUILD43
-rw-r--r--pcr/localepurge/locale.nopurge56
-rw-r--r--pcr/localepurge/localepurge.8.patch142
-rw-r--r--pcr/localepurge/localepurge.config.patch147
-rw-r--r--pcr/localepurge/localepurge.patch206
5 files changed, 594 insertions, 0 deletions
diff --git a/pcr/localepurge/PKGBUILD b/pcr/localepurge/PKGBUILD
new file mode 100644
index 000000000..be13e0aeb
--- /dev/null
+++ b/pcr/localepurge/PKGBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Hyacinthe Cartiaux <hyacinthe.cartiaux @ free.fr>
+# Contributor: Francesco Groccia <frgroccia gmail.com>
+# Contributor: Dincer Celik <dincer@bornovali.com>
+
+pkgname=localepurge
+pkgver=0.7.3.4
+pkgrel=1
+pkgdesc="Script to remove disk space wasted for unneeded localizations."
+arch=('any')
+url="http://packages.debian.org/source/sid/localepurge"
+license=('GPL')
+backup=('etc/locale.nopurge')
+source=("http://ftp.de.debian.org/debian/pool/main/l/localepurge/${pkgname}_${pkgver}.tar.xz"
+ "${pkgname}.patch"
+ "${pkgname}.8.patch"
+ "${pkgname}.config.patch"
+ "locale.nopurge")
+
+prepare()
+{
+ patch -uN ${srcdir}/${pkgname}/usr/sbin/localepurge < ${srcdir}/localepurge.patch
+ patch -uN ${srcdir}/${pkgname}/debian/localepurge.8 < ${srcdir}/localepurge.8.patch
+ patch -uN ${srcdir}/${pkgname}/debian/localepurge.config < ${srcdir}/localepurge.config.patch
+}
+
+package()
+{
+ install -D -m755 ${srcdir}/${pkgname}/usr/sbin/localepurge ${pkgdir}/usr/bin/localepurge
+ install -D -m644 ${srcdir}/${pkgname}/debian/localepurge.8 ${pkgdir}/usr/share/man/man8/localepurge.8
+ install -D -m755 ${srcdir}/${pkgname}/debian/localepurge.config ${pkgdir}/usr/bin/localepurge-config
+ install -D -m644 locale.nopurge ${pkgdir}/etc/locale.nopurge
+ if [ ! -e /var/cache/localepurge/localelist ]; then
+ find /usr/share/locale -maxdepth 1 -type d -name "*" -printf "%f\n" | grep "^[a-z]" | cut -d" " -f1 | sort -u > ${srcdir}/localelist
+ else
+ cp /var/cache/localepurge/localelist ${srcdir}/localelist
+ fi
+ install -D -m644 ${srcdir}/localelist ${pkgdir}/var/cache/localepurge/localelist
+}
+sha256sums=('18d933181bf455ce386b91794a6e8dc9026bd89dde29ca6fbcde34d3030e2060'
+ 'b8704eec22d0e84ada9a524277322f9892c11f3f4b84ec0dd4f50f0ca2dc7474'
+ '82bd40594ef0646465eed6e525368e87694322513c0d3280879fcfc5c40cb6a7'
+ 'b27e69a87f81ecb01ecd9fd92c174ed3c4406200eedc50ba6ebabce91e3851e8'
+ 'b9c28be93fa47d4f0315972159e501d9eef28bbab7ffe6e8e7c4a13c359f35e8')
diff --git a/pcr/localepurge/locale.nopurge b/pcr/localepurge/locale.nopurge
new file mode 100644
index 000000000..66968232d
--- /dev/null
+++ b/pcr/localepurge/locale.nopurge
@@ -0,0 +1,56 @@
+####################################################
+# This is the configuration file for localepurge(8).
+####################################################
+# Comment this to enable localepurge.
+# NO COMMENT IT IF YOU ARE NOT SURE WHAT ARE YOU DOING
+# THIS APP DO NOT ASK FOR CONFIRMATION
+
+NEEDSCONFIGFIRST
+
+####################################################
+# Uncommenting this string enables removal of localized
+# man pages based on the configuration information for
+# locale files defined below:
+
+MANDELETE
+
+####################################################
+# Uncommenting this string causes localepurge to simply delete
+# locales which have newly appeared on the system without
+# bothering you about it:
+
+#DONTBOTHERNEWLOCALE
+
+#####################################################
+# Commenting out this string enables faster but less
+# accurate calculation of freed disk space:
+
+#QUICKNDIRTYCALC
+
+####################################################
+# Uncommenting this string enables display of freed disk
+# space if localepurge has purged any superfluous data:
+
+SHOWFREEDSPACE
+
+#####################################################
+# Commenting out this string disables verbose output:
+
+#VERBOSE
+
+#####################################################
+# You like Colors?
+
+#NOCOLOR
+
+#####################################################
+# You can use the -v -d -nc options in command line.
+
+#####################################################
+# Following locales won't be deleted from this system
+# for example:
+en
+en_GB
+en_GB.UTF-8
+en_US
+en_US.UTF-8
diff --git a/pcr/localepurge/localepurge.8.patch b/pcr/localepurge/localepurge.8.patch
new file mode 100644
index 000000000..793b6184b
--- /dev/null
+++ b/pcr/localepurge/localepurge.8.patch
@@ -0,0 +1,142 @@
+--- ../localepurge-orig/debian/localepurge.8 2013-09-20 12:52:48.000000000 +0200
++++ localepurge.8 2013-09-21 12:48:33.864666265 +0200
+@@ -1,4 +1,4 @@
+-.TH LOCALEPURGE 8
++.TH LOCALEPURGE 8 "2013-09-21" "GNU/Linux" ""
+ .SH NAME
+ localepurge \- reclaim disk space removing unneeded localizations
+ .SH SYNOPSIS
+@@ -7,15 +7,8 @@
+ .SH "DESCRIPTION"
+ .BR localepurge
+ is a small script to recover disk space wasted for unneeded locale
+-files and localized man pages. It will be automagically invoked by
+-.BR dpkg
+-upon completion of any
+-.BR apt
+-installation run. You have to define the locale
+-directory names you want to keep from removal after each
+-.BR apt
+-installation run
+-in the
++files and localized man pages. You have to define the locale
++directory names you want to keep from removal in the
+ .BR /etc/locale.nopurge
+ configuration file. Unless
+ .BR localepurge
+@@ -35,10 +28,17 @@
+ .BR \-\ /usr/share/omf
+ .br
+ The localization files you actually need and which you want to be preserved on your system can be
+-easily configured by running the following command:
++easily configured by editing the following file:
+ .br
+-.BR dpkg-reconfigure\ localepurge
++.BR /etc/locale.nopurge
+ .br
++New locales discovered on your system will be listed in
++.I /var/cache/localepurge/localelist\-new
++and should be added to
++.I /var/cache/localepurge/localelist
++by the
++.BR /usr/bin/localepurge-config
++script.
+ .SH OPTIONS
+ The configurable options consist of toggling verbose output, reporting a
+ summary of freed space, and deletion of localized manual pages in
+@@ -68,10 +68,10 @@
+ .BR not
+ .BR integrated
+ .BR with
+-.BR Debian's
++.BR "Arch Linux's"
+ .BR package
+ .BR management
+-.BR system
++.BR system
+ and therefore is not meant for the faint of heart. Responsibility for its
+ usage and possible breakage of your system therefore lies in the sysadmin's
+ (your) hands.
+@@ -85,60 +85,12 @@
+ All locale directories containing a subdirectory named LC_MESSAGES
+ which are either commented out or not even listed at all in
+ .BR /etc/locale.nopurge
+-will be irreversibly deleted. The only way to
+-reinstall any lost locales is a complete reinstallation of all the
+-Debian packages containing them. See
+-.BR /usr/share/doc/localepurge/reinstall_debs.sh
+-for a recipe.
+-Alternatively you can reconfigure
+-it with
+-.BR dpkg-reconfigure(8)
+-to prevent locale files from being purged during subsequent runs of apt.
+-.br
+-.SH SOLVING PROBLEMS caused by localepurge
+-This program does interfere with the Debian package management and does
+-provoke strange, but usually harmless, behaviour of programs related
+-with
+-.BR apt/dpkg
+-like
+-.BR dpkg-repack(1),
+-.BR debsums(1),
+-.BR reportbug(1),
+-etc.
+-If you need to have any package in its full integrity so that e.g. the
+-formerly mentioned programs work as designed by its author and as
+-expected by you, simply deinstall
+-.BR localepurge
+-temporarily without purging its configuration and reinstall the packages
+-you need in their fully integral state. When you are done with what you
+-needed the integral packages for simply reinstall
+-.BR localepurge
+-again.
+-
++will be irreversibly deleted. The only way to reinstall any lost
++locales is a complete reinstallation of all the Arch Linux packages
++containing them. For more information, see "Reinstalling all installed packages"
++at http://wiki.archlinux.org/index.php/Pacman_Tips.
+ .SH FILES
+ .BR /etc/locale.nopurge
+-.SH SEE ALSO
+-Administrators of systems with short disk space should have a look
+-at both the
+-.BR deborphan
+-and
+-.BR debfoster
+-packages. Especially
+-.BR debfoster
+-can work wonders for your scarce disk space!
+-
+-.br
+-.BR deborphan(1)
+-.br
+-.BR debfoster(8)
+-.br
+-.BR dpkg-reconfigure(8)
+-.br
+-.BR debconf(8)
+-.br
+-.BR /usr/share/doc/localepurge/README.debian
+-.br
+-.BR /usr/share/doc/localepurge/reinstall_debs.sh
+ .SH AUTHOR
+ .BR localepurge
+ and its accompanying manual page was written for the
+@@ -150,3 +102,17 @@
+ Debian's great package management system will make
+ .BR localepurge
+ fully obsolete.
++.SH NOTE
++This manual page and the Debian localepurge script have been modified
++for Arch Linux system by Francesco Groccia <frgroccia gmail.com>.
++Some Debian\-specific information has been removed.
++.br
++In particular, the following files have been revised from the
++localepurge source code (Debian "sid" distribution):
++.HP
++
++.I ../debian/localepurge.8
++
++.I ../debian/localepurge.config
++
++.I ../usr/sbin/localepurge
diff --git a/pcr/localepurge/localepurge.config.patch b/pcr/localepurge/localepurge.config.patch
new file mode 100644
index 000000000..83f021853
--- /dev/null
+++ b/pcr/localepurge/localepurge.config.patch
@@ -0,0 +1,147 @@
+--- localepurge.conf.orig 2014-02-04 18:17:32.554174127 +0100
++++ localepurge.conf 2014-02-04 18:21:08.911092875 +0100
+@@ -2,26 +2,11 @@
+
+ set -e
+
+-. /usr/share/debconf/confmodule
+-
+ # first get all possible locales and create a full list of locale values:
+
+-CONFIG_FILE="/etc/locale.nopurge"
+ TEMPFILE="$(mktemp --suffix ".locales")"
+ LOCALELIST=/var/cache/localepurge/localelist
+
+-conf_has_key() {
+- local key="$1"
+-
+- if [ -f "$CONFIG_FILE" ] && fgrep --quiet --line-regexp \
+- "$key" "$CONFIG_FILE"; then
+- echo "true"
+- else
+- echo "false"
+- fi
+-}
+-
+-
+ # for the purpose of presenting a ready made preselection at the very first
+ # configuration, include already configured locales from locales package:
+
+@@ -46,9 +31,7 @@
+
+ # include locales supported by the locales package:
+
+-if [ -f /usr/share/i18n/SUPPORTED ]; then
+- grep ^[a-z] /usr/share/i18n/SUPPORTED | cut -d' ' -f1 | sort -u >> "$TEMPFILE"
+-fi
++find /usr/share/locale -maxdepth 1 -type d -name "*" -printf "%f\n" | grep "^[a-z]" | cut -d" " -f1 | sort -u >> "$TEMPFILE"
+
+ # include locales from our previous localelist if it already exists:
+
+@@ -59,8 +42,7 @@
+ # include locales from newly added locales:
+ NEWLOCALELIST="$LOCALELIST"-new
+
+-if [ -f "$NEWLOCALELIST" ] && \
+- [ $(ps w -p "$PPID" | grep -c dpkg-reconfigure) = "1" ]; then
++if [ -f "$NEWLOCALELIST" ]; then
+ cat "$NEWLOCALELIST" >> "$TEMPFILE"
+ rm -f "$NEWLOCALELIST"
+ fi
+@@ -79,96 +61,9 @@
+ else
+ mv "$LOCALELIST" "$LOCALELIST"-old
+ sort -u "$TEMPFILE" > "$LOCALELIST"
+-fi
+-
+-# finally sort and create full list of all collected locale names
+-
+-LOCALES=$(sort -u "$TEMPFILE" | tr '\n' ' ' \
+- | sed 's/\ /,\ /g' | sed 's/,\ $//g')
+-
+-if [ -f "$CONFIG_FILE" ] ; then
+- # Update the debconf database
+- PRESELECT="$(grep --extended-regexp '^[[:lower:]][[:lower:]]' \
+- "$CONFIG_FILE" | tr '\n' ' ' | sed 's/\ /,\ /g' | \
+- sed 's/,\ $//g')"
+- db_set localepurge/nopurge "$PRESELECT"
+-
+- db_set localepurge/use-dpkg-feature "$(conf_has_key USE_DPKG)"
+- db_set localepurge/mandelete "$(conf_has_key MANDELETE)"
+- db_set localepurge/dontbothernew "$(conf_has_key DONTBOTHERNEWLOCALE)"
+- db_set localepurge/showfreedspace "$(conf_has_key SHOWFREEDSPACE)"
+- db_set localepurge/quickndirtycalc "$(conf_has_key QUICKNDIRTYCALC)"
+- db_set localepurge/verbose "$(conf_has_key VERBOSE)"
+-
+-else
+-
+- # sort and create preselection values from "$LOCALEGEN"
+-
+- PRESELECT=$(sort -u "$LOCALEGEN" | tr '\n' ' ' \
+- | sed 's/\ /,\ /g' | sed 's/,\ $//g')
+ fi
+
+ # deleting temporary files not needed anymore:
+
+ rm -f "$TEMPFILE" "$LOCALEGEN"
+
+-#############################################################
+-# now that all locale data is in place let debconf take over:
+-
+-db_subst localepurge/nopurge locales "$LOCALES"
+-
+-# uncomment for debugging:
+-#echo "$LOCALES" > /tmp/locales.list
+-
+-db_get localepurge/nopurge
+-if [ "$RET" = "" ] && [ "$RET" != "PURGE_ALL" ] \
+- || [ "$RET" = "NEEDSCONFIGFIRST" ]; then
+- db_set localepurge/nopurge "$PRESELECT"
+- db_fset localepurge/nopurge seen false
+- # uncomment for debugging:
+- #echo "$PRESELECT" > /tmp/preselect.list
+-fi
+-
+-db_input high localepurge/nopurge || true
+-db_go
+-
+-db_get localepurge/nopurge
+-if [ "$RET" = "" ] || [ "$RET" = "PURGE_ALL" ]; then
+- db_input high localepurge/none_selected || true
+- db_go
+-
+- db_get localepurge/none_selected
+- if [ "$RET" = "false" ]; then
+- db_input high localepurge/remove_no || true
+- db_go
+- fi
+-fi
+-
+-db_input high localepurge/use-dpkg-feature || true
+-db_go
+-if [ "$RET" = "" -o "$RET" = "true" ] ; then
+- USE_DPKG=yes
+-else
+- USE_DPKG=no
+-fi
+-
+-db_input medium localepurge/mandelete || true
+-db_go
+-
+-if [ "$USE_DPKG" = "xno" ] ; then
+- # Features incompatible with the dpkg approach.
+- db_input medium localepurge/dontbothernew || true
+- db_go
+-
+- db_input low localepurge/showfreedspace || true
+- db_go
+-
+- db_get localepurge/showfreedspace
+- if [ "$RET" = "true" ]; then
+- db_input low localepurge/quickndirtycalc || true
+- db_go
+- fi
+-
+- db_input low localepurge/verbose || true
+- db_go
+-fi
diff --git a/pcr/localepurge/localepurge.patch b/pcr/localepurge/localepurge.patch
new file mode 100644
index 000000000..c0174d5bf
--- /dev/null
+++ b/pcr/localepurge/localepurge.patch
@@ -0,0 +1,206 @@
+--- ../localepurge-orig/usr/sbin/localepurge 2013-06-15 18:46:01.000000000 +0200
++++ localepurge 2013-09-21 12:04:38.155721151 +0200
+@@ -1,6 +1,6 @@
+ #! /bin/bash
+
+-# Deleting all locale files and localized man pages installed
++# Deleting all locale files and localized man pages installed
+ # on system which are *not* listed in /etc/locale.nopurge
+
+ set -e
+@@ -12,48 +12,35 @@
+ fi
+
+ if [ "$1" = "--help" ] || [ "$1" = "-h" ]; then
+- echo ""
+- echo "Verbose output is triggered with option '-v' or '-verbose'."
+- echo "Debugging output is triggered with option '-d' or '-debug'."
+- echo "To reconfigure it, run 'dpkg-reconfigure localepurge'."
+- echo "Documentation is either available via 'man localepurge'"
+- echo "or by reading the docs in /usr/share/doc/localepurge."
+- echo ""
+- if [ -f $NOPURGECONF ] && fgrep --quiet --line-regexp USE_DPKG $NOPURGECONF ; then
+- echo "NB: localepurge has been configured to use dpkg. Therefore,"
+- echo "this script will not do anything."
+- fi
+- exit 0
++ echo ""
++ echo "Verbose output is triggered with option '-v' or '-verbose'."
++ echo "Debugging output is triggered with option '-d' or '-debug'."
++ echo "To reconfigure it, edit /etc/locale.nopurge file."
++ echo "Documentation is available via 'man 8 localepurge'."
++ echo ""
++ exit 0
+ fi
+
+-
+ # Do nothing and report why if no valid configuration file exists:
+
+-if [ ! -f $NOPURGECONF ]
+- then
+- echo " No $NOPURGECONF file present, exiting ..."
++if [ ! -f $NOPURGECONF ]; then
++ echo " No $NOPURGECONF file present, exiting ..."
++ exit 0
++else
++ if fgrep --quiet --line-regexp NEEDSCONFIGFIRST $NOPURGECONF ; then
++ echo
++ echo " You have to configure \"localepurge\" by editing"
++ echo
++ echo " /etc/locale.nopurge file"
++ echo
++ echo " to make $0 actually start to function."
++ echo
++ echo " Nothing to be done, exiting ..."
++ echo
+ exit 0
+- else
+- if fgrep --quiet --line-regexp USE_DPKG $NOPURGECONF
+- then
+- # Do nothing, dpkg does all the work for us.
+- exit 0
+- elif fgrep --quiet --line-regexp NEEDSCONFIGFIRST $NOPURGECONF
+- then
+- echo
+- echo " You have to configure \"localepurge\" with the command"
+- echo
+- echo " dpkg-reconfigure localepurge"
+- echo
+- echo " to make $0 actually start to function."
+- echo
+- echo " Nothing to be done, exiting ..."
+- echo
+- exit 0
+- fi
++ fi
+ fi
+
+-
+ ################################################################
+ ## Initialise variables
+
+@@ -85,7 +72,6 @@
+ VERBOSE=1
+ fi
+
+-
+ ################################################################
+ ## Manage the list of locales
+
+@@ -97,57 +83,57 @@
+
+ ((VERBOSE)) && echo "localepurge: checking for existence of $LOCALECACHEDIR..."
+ if [ ! -d $LOCALECACHEDIR ]; then
+- mkdir -m 644 -p $LOCALECACHEDIR
++ mkdir -m 644 -p $LOCALECACHEDIR
+ fi
+
+ ((VERBOSE)) && echo "localepurge: checking for existence of $LOCALELIST..."
+ if [ ! -f $LOCALELIST ]; then
+- touch $LOCALELIST && chmod 664 $LOCALELIST
++ touch $LOCALELIST && chmod 664 $LOCALELIST
+ fi
+
+ ((VERBOSE)) && echo "localepurge: checking system for new locale ..."
+
+ for NEWLOCALE in $(cd /usr/share/locale; ls .)
+-do
+- if [ -d /usr/share/locale/$NEWLOCALE/LC_MESSAGES ]; then
+- if [ ! "$(grep -cx $NEWLOCALE $LOCALELIST)" = "1" ]; then
+- echo "$NEWLOCALE" >> "$NEWLOCALELIST"
++do
++ if [ -d /usr/share/locale/$NEWLOCALE/LC_MESSAGES ]; then
++ if [ ! "$(grep -cx $NEWLOCALE $LOCALELIST)" = "1" ]; then
++ echo "$NEWLOCALE" >> "$NEWLOCALELIST"
++ fi
+ fi
+- fi
+ done
+
+ for NEWLOCALE in $(ls --ignore="man[1-9]*" /usr/share/man)
+-do
+- if [ -d /usr/share/man/$NEWLOCALE/man1 ] || [ -d /usr/share/man/$NEWLOCALE/man8 ]; then
+- if [ ! "$(grep -cx $NEWLOCALE $LOCALELIST)" = "1" ]; then
+- echo "$NEWLOCALE" >> "$NEWLOCALELIST"
++do
++ if [ -d /usr/share/man/$NEWLOCALE/man1 ] || [ -d /usr/share/man/$NEWLOCALE/man8 ]; then
++ if [ ! "$(grep -cx $NEWLOCALE $LOCALELIST)" = "1" ]; then
++ echo "$NEWLOCALE" >> "$NEWLOCALELIST"
++ fi
+ fi
+- fi
+ done
+
+ if [ -f $NEWLOCALELIST ]; then
+- if ((DONTBOTHERNEWLOCALE)); then
+- mv "$NEWLOCALELIST" "$NEWLOCALELIST".temp
+- sort -u "$NEWLOCALELIST".temp "$LOCALELIST"> "$NEWLOCALELIST"
+- mv "$NEWLOCALELIST" "$LOCALELIST"
+- rm "$NEWLOCALELIST".temp
+- else
+- mv "$NEWLOCALELIST" "$NEWLOCALELIST".temp
+- sort -u "$NEWLOCALELIST".temp > "$NEWLOCALELIST"
+- rm "$NEWLOCALELIST".temp
+- fi
++ if ((DONTBOTHERNEWLOCALE)); then
++ mv "$NEWLOCALELIST" "$NEWLOCALELIST".temp
++ sort -u "$NEWLOCALELIST".temp "$LOCALELIST"> "$NEWLOCALELIST"
++ mv "$NEWLOCALELIST" "$LOCALELIST"
++ rm "$NEWLOCALELIST".temp
++ else
++ mv "$NEWLOCALELIST" "$NEWLOCALELIST".temp
++ sort -u "$NEWLOCALELIST".temp > "$NEWLOCALELIST"
++ rm "$NEWLOCALELIST".temp
++ fi
+ fi
+
+ if [ -f "$NEWLOCALELIST" ] && [ $DONTBOTHERNEWLOCALE != yes ]; then
+ echo "Some new locales have appeared on your system:"
+ echo
+- tr '\n' ' ' < "$NEWLOCALELIST"
++ tr '\n' ' ' < "$NEWLOCALELIST"
+ echo
+ echo
+ echo "They will not be touched until you reconfigure localepurge"
+ echo "with the following command:"
+ echo
+- echo " dpkg-reconfigure localepurge"
++ echo " /usr/bin/localepurge-config"
+ echo
+ fi
+
+@@ -157,7 +143,7 @@
+ ## all locales and create a pattern matching superfluous locales.
+ nopurge=$(
+ set -o noglob; # Disable path expansion and use 'echo'
+- # below to change newlines into spaces
++ # below to change newlines into spaces
+ echo $(grep --invert-match --extended-regexp '^[ \t]*(#|$)' $NOPURGECONF)
+ )
+ nopurgepat='@(C|'"${nopurge// /|}"')'
+@@ -172,7 +158,7 @@
+ )
+
+ ################################################################
+-## Define utility functions
++## Define utility functions
+
+ # Function for disk space calculation
+ # Usage: get_used_space <dirname>
+@@ -202,7 +188,7 @@
+ local flag
+ ((VERBOSE)) && flag=-v
+ for file; do
+- if [ -f "$file" ] || [ -h "$file" ]; then
++ if [ -f "$file" ] || [ -h "$file" ]; then
+ echo "$file"
+ fi
+ done | xargs rm $flag
+@@ -241,7 +227,6 @@
+ fi
+ }
+
+-
+ ################################################################
+ ## Now, get the job done
+