This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "IPFire 3.x development tree".
The branch, master has been updated via 65e01fdf664f69888eefd29c0fa169b8606b43a1 (commit) via 8e1f871b22ff46e39a151d73b3053e25dc58b6ff (commit) via ba89851ede83d30344cd1fc9760c0866aad48137 (commit) via cf0c1c820147e806a44c9c79439f10766521731e (commit) via c453d76c8aa92259a9cac320f84666b0f6e464be (commit) via d8a91e0d4e1534b7ae449d1aef5d7f6e8b109137 (commit) via 980921fc8b9a2e776f84546a197f6039ffb3a76b (commit) via 1133ae84f816490c7c238d51805dbfc68dfd48f4 (commit) via 006080427e3554c0560fd9dd279cb0c27575a2d8 (commit) via 7afde232354a24c1f8806e4695a7a7260c15d769 (commit) via ca81edda794ccfbc3457cb8e4a4778885e9f8bd2 (commit) via 474ab9793f7a94a660777383b2d1565d227ce2d3 (commit) from 6bd7c5abc84f77983b61366cf36d39d9ff1edc9c (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit 65e01fdf664f69888eefd29c0fa169b8606b43a1 Merge: 8e1f871 980921f Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Mar 6 17:17:52 2011 +0100
Merge remote-tracking branch 'stevee/grub-fixes'
commit 8e1f871b22ff46e39a151d73b3053e25dc58b6ff Merge: 0060804 ba89851 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Mar 6 17:17:08 2011 +0100
Merge remote-tracking branch 'stevee/fixes'
commit ba89851ede83d30344cd1fc9760c0866aad48137 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Sun Mar 6 17:07:05 2011 +0100
xorg-x11-drv-vmware: Fix build dependencies.
commit cf0c1c820147e806a44c9c79439f10766521731e Author: Stefan Schantl stefan.schantl@ipfire.org Date: Sun Mar 6 17:07:05 2011 +0100
xorg-x11-drv-vesa: Fix build dependencies.
commit c453d76c8aa92259a9cac320f84666b0f6e464be Author: Stefan Schantl stefan.schantl@ipfire.org Date: Sun Mar 6 17:07:05 2011 +0100
xorg-x11-drv-synaptics: Fix build dependencies.
commit d8a91e0d4e1534b7ae449d1aef5d7f6e8b109137 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Sun Mar 6 17:07:05 2011 +0100
xorg-x11-drv-nv: Fix build dependencies.
commit 980921fc8b9a2e776f84546a197f6039ffb3a76b Author: Stefan Schantl stefan.schantl@ipfire.org Date: Sun Mar 6 17:02:28 2011 +0100
grub: Improve detection of used distribution for grub menu entry.
commit 1133ae84f816490c7c238d51805dbfc68dfd48f4 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Sun Mar 6 16:44:16 2011 +0100
grub: Add default kernel parameter to disable selinux.
We will remove this entry at a later time, when full selinux support is inplemented.
commit 006080427e3554c0560fd9dd279cb0c27575a2d8 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Mar 6 15:11:26 2011 +0100
openssh: Add tools that are required to generate keys to dependencies.
commit 7afde232354a24c1f8806e4695a7a7260c15d769 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Mar 6 11:32:00 2011 +0100
pakfire: Initally package pakfire.
Any older implementation was dropped.
commit ca81edda794ccfbc3457cb8e4a4778885e9f8bd2 Author: Michael Tremer michael.tremer@ipfire.org Date: Sun Mar 6 11:31:10 2011 +0100
rsync: New package.
This is requires by git.
commit 474ab9793f7a94a660777383b2d1565d227ce2d3 Author: Michael Tremer michael.tremer@ipfire.org Date: Sat Mar 5 22:15:29 2011 +0100
python-urlgrabber: Runtime dependency python-curl was missing.
-----------------------------------------------------------------------
Summary of changes: pkgs/grub/grub.default | 4 +- pkgs/grub/grub.nm | 2 +- pkgs/openssh/openssh.nm | 5 +- pkgs/pakfire/pakfire.nm | 25 ++- pkgs/pakfire/src/Makefile | 23 -- pkgs/pakfire/src/decompressor | 60 ----- pkgs/pakfire/src/functions | 96 ------- pkgs/pakfire/src/index | 117 --------- pkgs/pakfire/src/pakfire.in | 61 ----- pkgs/pakfire/src/pakfire.sh | 28 -- pkgs/pakfire/src/python/__init__.py | 11 - pkgs/pakfire/src/python/db.py | 52 ---- pkgs/pakfire/src/python/io.py | 262 -------------------- pkgs/pakfire/src/python/package.py | 150 ----------- pkgs/pakfire/src/python/repo.py | 88 ------- pkgs/pakfire/src/python/servers.py | 88 ------- pkgs/pakfire/src/python/transactionset.py | 35 --- pkgs/python-urlgrabber/python-urlgrabber.nm | 3 +- pkgs/rsync/patches/rsync-3.0.7-buf-overflow.patch | 39 +++ .../bridge-utils.nm => rsync/rsync.nm} | 51 +++-- pkgs/rsync/rsync.xinetd | 14 + pkgs/xorg-x11-drv-nv/xorg-x11-drv-nv.nm | 3 +- .../xorg-x11-drv-synaptics.nm | 4 +- pkgs/xorg-x11-drv-vesa/xorg-x11-drv-vesa.nm | 4 +- pkgs/xorg-x11-drv-vmware/xorg-x11-drv-vmware.nm | 2 +- 25 files changed, 120 insertions(+), 1107 deletions(-) delete mode 100644 pkgs/pakfire/src/Makefile delete mode 100755 pkgs/pakfire/src/decompressor delete mode 100755 pkgs/pakfire/src/functions delete mode 100755 pkgs/pakfire/src/index delete mode 100644 pkgs/pakfire/src/pakfire.in delete mode 100644 pkgs/pakfire/src/pakfire.sh delete mode 100644 pkgs/pakfire/src/python/__init__.py delete mode 100644 pkgs/pakfire/src/python/db.py delete mode 100644 pkgs/pakfire/src/python/io.py delete mode 100644 pkgs/pakfire/src/python/package.py delete mode 100644 pkgs/pakfire/src/python/repo.py delete mode 100644 pkgs/pakfire/src/python/servers.py delete mode 100644 pkgs/pakfire/src/python/transactionset.py create mode 100644 pkgs/rsync/patches/rsync-3.0.7-buf-overflow.patch copy pkgs/{bridge-utils/bridge-utils.nm => rsync/rsync.nm} (58%) create mode 100644 pkgs/rsync/rsync.xinetd
Difference in files: diff --git a/pkgs/grub/grub.default b/pkgs/grub/grub.default index 6200bd8..fe159a6 100644 --- a/pkgs/grub/grub.default +++ b/pkgs/grub/grub.default @@ -5,8 +5,8 @@ GRUB_DEFAULT=0 GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=10 -GRUB_DISTRIBUTOR=$(sed 's/ release.*//' /etc/system-release) -GRUB_CMDLINE_LINUX_DEFAULT="quiet" +GRUB_DISTRIBUTOR=$(sed -n 's/([A-Za-z0-9]*) release ([0-9A-Za-z.-]*) .*/\1 \2/p' < /etc/system-release) +GRUB_CMDLINE_LINUX_DEFAULT="quiet selinux=0" GRUB_CMDLINE_LINUX=""
# Uncomment to disable graphical terminal (grub-pc only) diff --git a/pkgs/grub/grub.nm b/pkgs/grub/grub.nm index 2784ff8..ecb3590 100644 --- a/pkgs/grub/grub.nm +++ b/pkgs/grub/grub.nm @@ -26,7 +26,7 @@ include $(PKGROOT)/Include
PKG_NAME = grub PKG_VER = 1.98 -PKG_REL = 3 +PKG_REL = 5
PKG_MAINTAINER = PKG_GROUP = System/Boot diff --git a/pkgs/openssh/openssh.nm b/pkgs/openssh/openssh.nm index 9ba7dc5..45a982a 100644 --- a/pkgs/openssh/openssh.nm +++ b/pkgs/openssh/openssh.nm @@ -26,7 +26,7 @@ include $(PKGROOT)/Include
PKG_NAME = openssh PKG_VER = 5.8p1 -PKG_REL = 3 +PKG_REL = 4
PKG_MAINTAINER = PKG_GROUP = Application/Internet @@ -38,6 +38,9 @@ PKG_BUILD_DEPS+= audit-devel libselinux-devel nss-devel openssl-devel pam-devel zlib-devel PKG_DEPS-openssh = openssh-clients=$(THISVER) openssh-server=$(THISVER)
+# /usr/bin/ssh-keygen is needed to generate keys for the ssh server. +PKG_DEPS-openssh-server += /usr/bin/ssh-keygen + define PKG_DESCRIPTION SH (Secure SHell) is a program for logging into and executing \ commands on a remote machine. SSH is intended to replace rlogin and \ diff --git a/pkgs/pakfire/pakfire.nm b/pkgs/pakfire/pakfire.nm index 97742c4..e3cdc39 100644 --- a/pkgs/pakfire/pakfire.nm +++ b/pkgs/pakfire/pakfire.nm @@ -25,8 +25,9 @@ include $(PKGROOT)/Include
PKG_NAME = pakfire -PKG_VER = 0.9 -PKG_REL = 0 +PKG_VER = 0.9.1 +PKG_REL = 1 +PKG_ARCH = noarch
PKG_MAINTAINER = Michael Tremer michael.tremer@ipfire.org PKG_GROUP = System/Packaging @@ -34,19 +35,27 @@ PKG_URL = http://www.ipfire.org/ PKG_LICENSE = GPLv3+ PKG_SUMMARY = Package installer/updater.
-PKG_DEPS += cpio python system-release xz +PKG_BUILD_DEPS = python-devel python-distutils-extra +PKG_DEPS += pyliblzma python-progressbar python-urlgrabber pyxattr \ + system-release
define PKG_DESCRIPTION Pakfire optains package lists from the mirrors and can install and update \ packages. endef
-DIR_APP = $(DIR_SOURCE)/src +PKG_TARBALL = $(THISAPP).tar.gz
define STAGE_BUILD - cd $(DIR_APP) && make VERSION="$(PKG_VER)" $(PARALLELISMFLAGS) + cd $(DIR_APP) && make $(PARALLELISMFLAGS) endef
-define STAGE_INSTALL_CMDS - cd $(DIR_APP) && make clean -endef +# Build package + +PKG_PACKAGES += $(PKG_NAME)-build + +PKG_SUMMARY-$(PKG_NAME)-build = The pakfire builder. +PKG_DESCRIPTION-$(PKG_NAME)-build = The tools that are needed to build new \ + pakfire packages. +PKG_DEPS-$(PKG_NAME)-build += pakfire=$(THISVER) +PKG_FILES-$(PKG_NAME)-build = /usr/bin/pakfire-build diff --git a/pkgs/pakfire/src/Makefile b/pkgs/pakfire/src/Makefile deleted file mode 100644 index 86dfaa9..0000000 --- a/pkgs/pakfire/src/Makefile +++ /dev/null @@ -1,23 +0,0 @@ - -SUBSTITUDE = sed -e "s/@VERSION@/$(VERSION)/g" - -PYTHON_MAJ = "2.7" -PYTHON_DIR = $(DESTDIR)/usr/lib/python$(PYTHON_MAJ)/site-packages/pakfire - -all: pakfire - -pakfire: pakfire.in - #$(SUBSTITUDE) pakfire.in > pakfire - - # XXX Just for now: - cp -vf pakfire.sh pakfire - -clean: - rm -vf pakfire python/*.py[co] - -install: pakfire - -mkdir -pv $(DESTDIR)/usr/bin - install -v -m 755 pakfire $(DESTDIR)/usr/bin - -mkdir -pv $(PYTHON_DIR) - cp -vf python/*.py $(PYTHON_DIR)/ - -mkdir -pv $(DESTDIR)/etc/pakfire.repos.d $(DESTDIR)/var/cache/pakfire diff --git a/pkgs/pakfire/src/decompressor b/pkgs/pakfire/src/decompressor deleted file mode 100755 index 667d0c6..0000000 --- a/pkgs/pakfire/src/decompressor +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/bash -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007, 2008, 2009 Michael Tremer & Christian Schmidt # -# # -# 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/. # -# # -############################################################################### - -FILES= -ROOT=/ - -while [ $# -gt 0 ]; do - case "$1" in - --root=*) - ROOT=${1#--root=} - ;; - *.ipk) - file=$1 - [ ${file:0:1} != / ] && file="$(pwd)/$file" - if [ -e "$file" ]; then - FILES="$FILES $file" - else - echo "File does not exist: $file" >&2 - #exit 1 - fi - ;; - esac - shift -done - -if [ "$ROOT" != "/" ]; then - [ -d "$ROOT" ] || mkdir -p $ROOT - cd $ROOT - if [ "$(pwd)" != "$ROOT" ]; then - echo "Could not change to root: $ROOT" >&2 - exit 1 - fi -fi - -# Sort all packages -FILES=$(for i in $FILES; do echo $i; done | sort -u) - -for file in $FILES; do - echo "Extracting $file..." - cpio --extract --quiet -H newc --to-stdout data.img < $file | \ - tar --extract --xz -C ${ROOT} -done diff --git a/pkgs/pakfire/src/functions b/pkgs/pakfire/src/functions deleted file mode 100755 index cd25d5d..0000000 --- a/pkgs/pakfire/src/functions +++ /dev/null @@ -1,96 +0,0 @@ -#!/bin/bash -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007, 2008, 2009 Michael Tremer & Christian Schmidt # -# # -# 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/. # -# # -############################################################################### - -function pkg_get_file() { - cpio --extract --quiet --to-stdout $1 < $2 -} - -function pkg_info() { - pkg_get_file info $1 -} - -function pkg_info_get() { - ( eval "$(pkg_info $2)" - echo ${!1} ) -} - -function pkg_data() { - pkg_get_file data.img $1 -} - -function pkg_control() { - pkg_get_file control $1 -} - -function pkg_verify() { - local pak=$1 - ( - eval $(pkg_info $pak | grep ^PKG_DATA_SHA1) - if [ "$(pkg_data $pak | sha1sum | awk '{ print $1 }')" = "$PKG_DATA_SHA1" ]; then - exit 0 - else - exit 1 - fi - ) - return $? -} - -### package properties - -function pkg_description() { - pkg_info_get PKG_DESCRIPTION $1 -} - -function pkg_deps() { - pkg_info_get PKG_DEPS $1 -} - -function pkg_group() { - pkg_info_get PKG_GROUP $1 -} - -function pkg_hash() { - sha1sum $1 | awk '{ print $1 }' -} - -function pkg_license() { - pkg_info_get PKG_LICENSE $1 -} - -function pkg_maintainer() { - pkg_info_get PKG_MAINTAINER $1 -} - -function pkg_name() { - pkg_info_get PKG_NAME $1 -} - -function pkg_release() { - pkg_info_get PKG_REL $1 -} - -function pkg_summary() { - pkg_info_get PKG_SUMMARY $1 -} - -function pkg_version() { - pkg_info_get PKG_VER $1 -} diff --git a/pkgs/pakfire/src/index b/pkgs/pakfire/src/index deleted file mode 100755 index cd22f3f..0000000 --- a/pkgs/pakfire/src/index +++ /dev/null @@ -1,117 +0,0 @@ -#!/bin/bash -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007, 2008, 2009 Michael Tremer & Christian Schmidt # -# # -# 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/. # -# # -############################################################################### - -. functions - -db_fields="name version release group maintainer license summary description deps hash" -for field in $db_fields; do - if [ -n "${fields}" ]; then - fields="${fields}, '${field}'" - else - fields="'${field}'" - fi -done - - -function db() { - if [ -z "${database}" ]; then - echo "Database is not defined." - exit 1 - fi - #echo "SQL: $@" - sqlite3 ${database} "$@" -} - -while [ "$#" -gt "0" ]; do - case "$1" in - --database=*) - database=${1#--database=} - ;; - --force|-f) - FORCE=1 - ;; - *.ipk) - packages="${packages} ${1}" - ;; - *) - echo "Unrecognized option: "${1}"." - ;; - esac - shift -done - -if [ -e "${database}" ]; then - echo "Database "${database}" does already exist." - if [ "$FORCE" = "1" ]; then - > ${database} - else - exit 1 - fi -fi - -echo "Collecting available packages..." -available=$(for package in ${packages}; do - echo $(pkg_name $package) -done | sort -u) - -printf " There are %4d packages available.\n\n" $(echo "${available}" | wc -w) - -echo "Checking dependency tree..." -for package in ${packages}; do - #echo " ${package##*/}" - for dep in $(pkg_deps ${package}); do - okay= - for avail in ${available}; do - if [ "${dep}" = "${avail}" ]; then - okay=1 - break - fi - done - if [ "${okay}" != "1" ]; then - echo "Dependency "${dep}" of "${package##*/}" could not be resolved." - [ "${FORCE}" = "1" ] || exit 1 - fi - done -done - -echo "Creating database..." -db "CREATE TABLE packages($fields);" - -echo "Writing packages to database..." -for package in ${packages}; do - echo " ${package##*/}" - args= - IFS=$", " - for field in $db_fields; do - if [ -n "${args}" ]; then - args="${args}, "$(pkg_$field ${package})"" - else - args=""$(pkg_$field ${package})"" - fi - done - unset IFS - - db "INSERT INTO packages VALUES($args);" -done - -db "CREATE TABLE info(key, value);" -db "INSERT INTO info(key, value) VALUES('date', '$(date -u)');" -db "INSERT INTO info(key, value) VALUES('host', '$(cat /proc/sys/kernel/hostname)');" diff --git a/pkgs/pakfire/src/pakfire.in b/pkgs/pakfire/src/pakfire.in deleted file mode 100644 index c861c33..0000000 --- a/pkgs/pakfire/src/pakfire.in +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/python - -import sys - -from optparse import OptionParser - -import pakfire -from pakfire.package import Package -from pakfire.transactionset import Transactionset - -__version__ = "@VERSION@" - -op = OptionParser(usage="%prog [options] <action> ...", version="%prog " + __version__) -op.add_option("-r", "--root", dest="root", metavar="DIR") -op.add_option("-v", "--verbose", dest="verbose", - action="store_true", default=False, - help="Be verbose.") -op.add_option("-y", "--yes", dest="allyes", - action="store_true", default=False, - help="Answer all questions with "yes".") -op.add_option("--nogpgcheck", dest="gpgcheck", - action="store_false", default=True, - help="Omit gpg check (unsafe).") - -def usage(exit=1): - op.print_help() - sys.exit(exit) - -def parse_options(): - (options, args) = op.parse_args() - - # When no command was given - if not args: - usage() - - # The first argument is the action - action = args.pop(0) - if not action in ["install", "remove", "info", "provides",]: - op.error(""%s" is not a valid action." % action) - - if not args: - op.error("Action "%s" needs at least one argument.") - - return (action, options, args) - -(action, options, args) = parse_options() - -pakfire = pakfire.Pakfire() - -if action == "install": - pakfire.ts = Transactionset() - for a in args: - p = Package(a) - pakfire.ts.addPackage(p) - - pakfire.ts.run() - -elif action == "info": - for a in args: - p = Package(a) - print p.print_info() diff --git a/pkgs/pakfire/src/pakfire.sh b/pkgs/pakfire/src/pakfire.sh deleted file mode 100644 index f2c36f1..0000000 --- a/pkgs/pakfire/src/pakfire.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -decompress() { - local file=${1} - - [ -e "${file}" ] || return - - cpio --quiet --extract --to-stdout data.img < ${file} \ - | tar xvvJ -C / -} - -action=${1} -shift - -case "${action}" in - localinstall) - for file in $@; do - decompress ${file} - done - ;; - *) - echo - echo "This is only a very light version to install" - echo "packages easyly." - echo "Run: ${0} localinstall <file>.ipk [<file>.ipk ...]" - echo - ;; -esac diff --git a/pkgs/pakfire/src/python/__init__.py b/pkgs/pakfire/src/python/__init__.py deleted file mode 100644 index 3e7012f..0000000 --- a/pkgs/pakfire/src/python/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/python - -from repo import Repositories -from transactionset import Transactionset - -class Pakfire(object): - repos = Repositories() - ts = Transactionset() - - def __init__(self): - pass diff --git a/pkgs/pakfire/src/python/db.py b/pkgs/pakfire/src/python/db.py deleted file mode 100644 index d20ce57..0000000 --- a/pkgs/pakfire/src/python/db.py +++ /dev/null @@ -1,52 +0,0 @@ - - -from pysqlite2 import dbapi2 as sqlite - -DATABASE_PATH = "." - -class Database(object): - def __init__(self, filename): - self.filename = filename - - self.connection = sqlite.connect(self.filename) - - def add(self, table): - c = self.cursor - c.executescript("CREATE TABLE IF NOT EXISTS %s(id, key, value);" % table) - c.close() - - def commit(self): - self.connection.commit() - - def destroy(self, table): - c = self.cursor - c.execute("DELETE FROM %s" % table) - c.close() - self.commit() - - def get(self, table, id, key): - ret = None - c = self.cursor - c.execute("SELECT value FROM %s WHERE id='%s' AND key='%s';" % \ - (table, id, key,)) - try: - ret = c.fetchone()[0] - except TypeError: - pass - c.close() - return ret - - def set(self, table, id, key, value): - c = self.cursor - if not self.get(id, key): - c.execute("INSERT INTO %s(id, key, value) VALUES('%s', '%s', '%s');" \ - % (table, id, key, value,)) - else: - c.execute("UPDATE %s SET value='%s' WHERE id='%s' AND key='%s';" \ - % (table, value, id, key,)) - c.close() - self.commit() - - @property - def cursor(self): - return self.connection.cursor() diff --git a/pkgs/pakfire/src/python/io.py b/pkgs/pakfire/src/python/io.py deleted file mode 100644 index 6f06caa..0000000 --- a/pkgs/pakfire/src/python/io.py +++ /dev/null @@ -1,262 +0,0 @@ -#!/usr/bin/python - -import grp -import os -import pwd -import stat -import time - -def ftype(mode): - if stat.S_ISBLK(mode): - return "b" - elif stat.S_ISCHR(mode): - return "c" - elif stat.S_ISDIR(mode): - return "d" - elif stat.S_ISREG(mode): - return "-" - elif stat.S_ISFIFO(mode): - return "p" - elif stat.S_ISLINK(mode): - return "l" - elif stat.S_ISSOCK(mode): - return "s" - return "?" - -def rwx(mode): - ret = "" - if mode & stat.S_IRUSR: - ret += "r" - else: - ret += "-" - - if mode & stat.S_IWUSR: - ret += "w" - else: - ret += "-" - - if mode & stat.S_IXUSR: - ret += "x" - else: - ret += "-" - - return ret - -def fmode(mode): - ret = ftype(mode) - ret += rwx((mode & 0700) << 0) - ret += rwx((mode & 0070) << 3) - ret += rwx((mode & 0007) << 6) - return ret - -class CpioError(Exception): - pass - - -class CpioEntry(object): - def __init__(self, hdr, archive, offset): - self.archive = archive - self.hdr = hdr - - self.offset = offset + 110 + self.namesize - self.offset += (4 - (self.offset % 4)) % 4 - self.current = 0 - - self.closed = False - - if len(self.hdr) < 110: - raise CpioError("Header too short.") - - if not self.hdr.startswith("070701") and not self.hdr.startswith("070702"): - raise CpioError("Invalid header: %s" % self.hdr[:6]) - - def close(self): - self.closed = True - - def flush(self): - pass # noop - - def read(self, size=None): - """Read data from the entry. - - Keyword arguments: - size -- Number of bytes to read (default: whole entry) - """ - if self.closed: - raise ValueError("Read operation on closed file.") - - self.archive.file.seek(self.offset + self.current, os.SEEK_SET) - - if size and size < self.size - self.current: - ret = self.archive.file.read(size) - else: - ret = self.archive.file.read(self.size - self.current) - self.current += len(ret) - return ret - - def seek(self, offset, whence=0): - """Move to new position within an entry. - - Keyword arguments: - offset -- Byte count - whence -- Describes how offset is used. - 0: From beginning of file - 1: Forwards from current position - 2: Backwards from current position - Other values are ignored. - """ - if self.closed: - raise ValueError("Seek operation on closed file.") - - if whence == os.SEEK_SET: - self.current = offset - elif whence == os.SEEK_REL: - self.current += offset - elif whence == os.SEEK_END: - self.current -= offset - - self.current = min(max(0, self.current), self.size) - - def tell(self): - """Get current position within an entry""" - if self.closed: - raise ValueError("Tell operation on closed file.") - return self.current - - def __repr__(self): - return "<CpioEntry %s 0x%s>" % (self.name, self.checksum,) - - @property - def checksum(self): - return int(self.hdr[102:110], 16) - - @property - def devmajor(self): - return int(self.hdr[62:70], 16) - - @property - def devminor(self): - return int(self.hdr[70:78], 16) - - @property - def gid(self): - return int(self.hdr[30:38], 16) - - @property - def inode(self): - return int(self.hdr[6:14], 16) - - @property - def mode(self): - return int(self.hdr[14:22], 16) - - @property - def mtime(self): - return int(self.hdr[46:54], 16) - - @property - def name(self): - end = 110 + self.namesize - 1 - return self.hdr[110:end] - - @property - def namesize(self): - return int(self.hdr[94:102], 16) - - @property - def nlinks(self): - return int(self.hdr[38:46], 16) - - @property - def rdevmajor(self): - return int(self.hdr[78:86], 16) - - @property - def rdevminor(self): - return int(self.hdr[86:94], 16) - - @property - def size(self): - return int(self.hdr[54:62], 16) - - @property - def uid(self): - return int(self.hdr[22:30], 16) - - -class CpioArchive(object): - _entries = [] - file = None - - def __init__(self, filename): - - self.filename = filename - self.file = open(self.filename, "r") - self.__readfile() - - self.closed = False - - def close(self): - if self.closed: - return - self.closed = True - - self.file.close() - - def __readfile(self): - if not self.file: - raise CpioError("File was not yet opened.") - - self._entries = [] - sposition = self.file.tell() - hdr = self.file.read(110) - while hdr: - namelen = int(hdr[94:102], 16) # Length of the name - hdr += self.file.read(namelen) - ce = CpioEntry(hdr, self, sposition) - if ce.name == "TRAILER!!!": - return - self._entries.append(ce) - - self.file.seek((4 - (self.file.tell()-sposition) % 4) % 4, os.SEEK_CUR) - self.file.seek(ce.size, os.SEEK_CUR) - self.file.seek((4 - (self.file.tell()-sposition) % 4) % 4, os.SEEK_CUR) - - sposition = self.file.tell() - hdr = self.file.read(110) - else: - raise CpioError("Premature end of headers.") - - @property - def entries(self): - return sorted(self._entries) - - @property - def size(self): - return os.path.getsize(self.filename) - - def ls(self): - for x in self.entries: - print x.name - - def ll(self): - for x in self.entries: - print "%s %s %s %s %9d %s %s" % \ - (fmode(x.mode), - x.nlinks, - pwd.getpwuid(x.uid)[0], - grp.getgrgid(x.gid)[0], - x.size, - time.strftime("%Y-%m-%d %H:%M", time.localtime(x.mtime)), - x.name,) - - def get(self, item): - for x in self.entries: - if x.name == item: - return x - raise KeyError("No such file or directory.") - - def __getitem__(self, item): - x = self.get(item) - x.seek(0) - return x.read() diff --git a/pkgs/pakfire/src/python/package.py b/pkgs/pakfire/src/python/package.py deleted file mode 100644 index 1f80b24..0000000 --- a/pkgs/pakfire/src/python/package.py +++ /dev/null @@ -1,150 +0,0 @@ -#!/usr/bin/python - -import hashlib -import os -import subprocess - -import io - -class Package(object): - _info = {} - - def __init__(self, archive): - self.archive = io.CpioArchive(archive) - - def check(self): - print "Checking package %s..." % self.name - return self.verify() - - def extract(self, root="/"): - if not os.path.exists(root): - os.makedirs(root) - - lzma = subprocess.Popen(["lzma", "-dc"], - stdin=subprocess.PIPE, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE,) - - cpio = subprocess.Popen(["cpio", - "--quiet", - "--extract", - "--unconditional", - "--make-directories", - "--no-absolute-filenames",], - stdin=subprocess.PIPE, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - cwd=root) - - BUF = 1024 - file = self.archive["data.img"] - - # Decompress in one big swoop. - lzma.stdin.write(file) - lzma.stdin.close() - - lzmaerr = lzma.stderr.read() - if lzmaerr: - raise Exception("Decompression error: %s" % lzmaerr) - - while True: - buf = lzma.stdout.read(BUF) - if not buf: - break - cpio.stdin.write(buf) - lzma.stdout.close() - - cpioerr = cpio.stderr.read() - if cpioerr: - raise Exception("Archiving error: %s" % cpioerr) - - def install(self, root="/"): - print "Installing %s..." % self.name - self.extract(root) - - def print_info(self): - ret = "" - info = (("Name", self.name), - ("Version", self.version), - ("Arch", self.arch), - ("Release", self.release), - ("Size", self.size), - ("Summary", self.summary), - ("URL", self.url), - ("License", self.license), - ("Description", self.description)) - - for (key, value) in info: - ret += "%-12s: %s\n" % (key, value,) - - if self.verify: - ret += "%-12s: %s\n" % ("Signature", "OK") - else: - ret += "%-12s: %s\n" % ("Signature", "Broken") - - return ret - - def verify(self): - hash = hashlib.sha1(self.archive["data.img"]).hexdigest() - if hash == self.sha1: - return True - return False - - @property - def arch(self): - return self.info.get("PKG_ARCH", None) - - @property - def deps(self): - return self.info.get("PKG_DEPS", None) - - @property - def description(self): - return self.info.get("PKG_DESC", None) - - @property - def group(self): - return self.info.get("PKG_GROUP", None) - - @property - def license(self): - return self.info.get("PKG_LICENSE", None) - - @property - def name(self): - return self.info.get("PKG_NAME", None) - - @property - def info(self): - if not self._info: - self._info = {} - for line in self.archive["info"].split("\n"): - if not line or line.startswith("#"): - continue - (key, value) = line.split("=") - self._info[key] = value.strip(""") - return self._info - - @property - def release(self): - return self.info.get("PKG_REL", None) - - @property - def sha1(self): - return self.info.get("PKG_DATA_SHA1", None) - - @property - def size(self): - return self.archive.size - - @property - def summary(self): - return self.info.get("PKG_SUMMARY", None) - - @property - def url(self): - return self.info.get("PKG_URL", None) - - @property - def version(self): - return self.info.get("PKG_VER", None) diff --git a/pkgs/pakfire/src/python/repo.py b/pkgs/pakfire/src/python/repo.py deleted file mode 100644 index f7f9c3b..0000000 --- a/pkgs/pakfire/src/python/repo.py +++ /dev/null @@ -1,88 +0,0 @@ - -import os -import ConfigParser as configparser -import urlgrabber - -import db as database -from servers import Servers - -REPOS_PATH = "/etc/pakfire.repos.d" - -class Repositories(object): - _repositories = [] - - def __init__(self): - for file in os.listdir(REPOS_PATH): - if not file.endswith(".repo"): - continue - cp = configparser.ConfigParser() - cp.read(os.path.join(REPOS_PATH, file)) - for section in cp.sections(): - self._repositories.append(Repository(section, cp.items(section))) - - @property - def all(self): - return sorted(self._repositories) - - @property - def enabled(self): - ret = [] - for r in self._repositories: - if r.enabled: - ret.append(r) - return ret - - @property - def repositories(self): - return self.enabled - -class Repository(object): - def __init__(self, name, items=None): - self.name = name - - if items: - config = {} - for (key, value) in items: - config[key] = value - self.config = config - - self.db = database.Database("%s.db" % self.name) - self.servers = Servers(self.db) - - def __cmp__(self, other): - return cmp(self.name, other.name) - - def __str__(self): - return self.name - - def __repr__(self): - return "<Repository %s>" % self.name - - def update_mirrorlist(self, mirrorlist=None): - if not mirrorlist: - mirrorlist = self.mirrorlist - f = urlgrabber.urlopen(mirrorlist) - for line in f.readlines(): - self.servers.add(line) - f.close() - - @property - def enabled(self): - value = self.config.get("enabled") - if value == "1": - return True - return False - - @property - def gpgkey(self): - return self.config.get("gpgkey", None) - - @property - def mirrorlist(self): - return self.config.get("mirrorlist", None) - - -if __name__ == "__main__": - rs = Repositories() - for r in rs.repositories: - r.update_mirrorlist() diff --git a/pkgs/pakfire/src/python/servers.py b/pkgs/pakfire/src/python/servers.py deleted file mode 100644 index 32a83cd..0000000 --- a/pkgs/pakfire/src/python/servers.py +++ /dev/null @@ -1,88 +0,0 @@ - -import random -import urlparse -import uuid - -SERVER_DEFAULT_PROTOCOL = "http" -SERVER_DEFAULT_PORT = "80" -SERVER_DEFAULT_PATH = "" - -class Servers(object): - table = "servers" - - def __init__(self, db): - self.db = db - self.db.add(self.table) - - def add(self, url): - p = urlparse.urlparse(url) - for server in self.all: - if str(server) == url: - return - server = Server(self.db) - (server.protocol, server.hostname, server.port, server.path) = \ - (p.scheme, p.hostname, p.port, p.path) - - @property - def all(self): - ret = [] - c = self.db.cursor - c.execute("SELECT DISTINCT id FROM %s" % self.table) - for id in c.fetchall(): - s = Server(self.db, id) - ret.append(s) - return sorted(ret) - - @property - def random(self): - return random.choice(self.all) - - -class Server(object): - table = Servers.table - - def __init__(self, db, id=None): - self.db = db - - if not id: - id = str(uuid.uuid4()) - self.id = "%s" % id - - def __str__(self): - return urlparse.urlunparse((self.protocol, \ - "%s:%s" % (self.hostname, self.port), self.path, None, None, None)) - - def __repr__(self): - return "<Server %s>" % self.id - - def _getHostname(self): - return self.db.get(self.table, self.id, "hostname") - - def _setHostname(self, hostname): - return self.db.set(self.table, self.id, "hostname", hostname) - - hostname = property(_getHostname, _setHostname) - - def _getProtocol(self): - return self.db.get(self.table, self.id, "protocol") or SERVER_DEFAULT_PROTOCOL - - def _setProtocol(self, protocol): - return self.db.set(self.table, self.id, "protocol", protocol) - - protocol = property(_getProtocol, _setProtocol) - - def _getPort(self): - return self.db.get(self.table, self.id, "port") or SERVER_DEFAULT_PORT - - def _setPort(self, port): - return self.db.set(self.table, self.id, "port", port) - - port = property(_getPort, _setPort) - - def _getPath(self): - return self.db.get(self.table, self.id, "path") or SERVER_DEFAULT_PATH - - def _setPath(self, path): - return self.db.set(self.table, self.id, "path", path) - - path = property(_getPath, _setPath) diff --git a/pkgs/pakfire/src/python/transactionset.py b/pkgs/pakfire/src/python/transactionset.py deleted file mode 100644 index ed40bc3..0000000 --- a/pkgs/pakfire/src/python/transactionset.py +++ /dev/null @@ -1,35 +0,0 @@ - - -class Transactionset(object): - _packages = [] - - def __init__(self): - pass - - def addPackage(self, package): - self._packages.append(package) - - def check(self): - print "Checking Transactionset..." - for package in self.packages: - if not package.check(): - return False - return True - - def install(self, root="/"): - for package in self.packages: - package.install(root) - - def resolveDeps(self): - pass - - def run(self, root="/"): - print "Running transactionset..." - if self.check(): - self.install(root) - else: - print "Error, when verifying the packages..." - - @property - def packages(self): - return sorted(self._packages) diff --git a/pkgs/python-urlgrabber/python-urlgrabber.nm b/pkgs/python-urlgrabber/python-urlgrabber.nm index b5beca8..ba1fa0e 100644 --- a/pkgs/python-urlgrabber/python-urlgrabber.nm +++ b/pkgs/python-urlgrabber/python-urlgrabber.nm @@ -26,7 +26,7 @@ include $(PKGROOT)/Include
PKG_NAME = urlgrabber PKG_VER = 3.9.1 -PKG_REL = 1 +PKG_REL = 2 PKG_ARCH = noarch
PKG_MAINTAINER = @@ -36,6 +36,7 @@ PKG_LICENSE = LGPLv2+ PKG_SUMMARY = A high-level cross-protocol url-grabber.
PKG_BUILD_DEPS+= python-devel python-pycurl +PKG_DEPS += python-pycurl
define PKG_DESCRIPTION A high-level cross-protocol url-grabber for python supporting HTTP, \ diff --git a/pkgs/rsync/patches/rsync-3.0.7-buf-overflow.patch b/pkgs/rsync/patches/rsync-3.0.7-buf-overflow.patch new file mode 100644 index 0000000..2c6b195 --- /dev/null +++ b/pkgs/rsync/patches/rsync-3.0.7-buf-overflow.patch @@ -0,0 +1,39 @@ +index 7139b10..fef15aa 100644 +--- a/flist.c ++++ b/flist.c +@@ -1640,21 +1640,29 @@ static void send_directory(int f, struct file_list *flist, char *fbuf, int len, + } + + p = fbuf + len; +- if (len != 1 || *fbuf != '/') ++ if (len == 1 && *fbuf == '/') ++ remainder = MAXPATHLEN - 1; ++ else if (len < MAXPATHLEN-1) { + *p++ = '/'; +- *p = '\0'; +- remainder = MAXPATHLEN - (p - fbuf); ++ *p = '\0'; ++ remainder = MAXPATHLEN - (len + 1); ++ } else ++ remainder = 0; + + for (errno = 0, di = readdir(d); di; errno = 0, di = readdir(d)) { + char *dname = d_name(di); + if (dname[0] == '.' && (dname[1] == '\0' + || (dname[1] == '.' && dname[2] == '\0'))) + continue; +- if (strlcpy(p, dname, remainder) >= remainder) { ++ unsigned name_len = strlcpy(p, dname, remainder); ++ if (name_len >= remainder) { ++ char save = fbuf[len]; ++ fbuf[len] = '\0'; + io_error |= IOERR_GENERAL; + rprintf(FERROR_XFER, +- "cannot send long-named file %s\n", +- full_fname(fbuf)); ++ "filename overflows max-path len by %u: %s/%s\n", ++ name_len - remainder + 1, fbuf, dname); ++ fbuf[len] = save; + continue; + } + if (dname[0] == '\0') { diff --git a/pkgs/rsync/rsync.nm b/pkgs/rsync/rsync.nm new file mode 100644 index 0000000..cec57fd --- /dev/null +++ b/pkgs/rsync/rsync.nm @@ -0,0 +1,75 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007, 2008 Michael Tremer & Christian Schmidt # +# # +# 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/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include $(PKGROOT)/Include + +PKG_NAME = rsync +PKG_VER = 3.0.7 +PKG_REL = 1 + +PKG_MAINTAINER = +PKG_GROUP = Applications/Internet +PKG_URL = http://rsync.samba.org/ +PKG_LICENSE = GPLv3+ +PKG_SUMMARY = A program for synchronizing files over a network. + +PKG_BUILD_DEPS+= autoconf libacl-devel libattr-devel popt-devel + +define PKG_DESCRIPTION + Rsync uses a reliable algorithm to bring remote and host files into + sync very quickly. Rsync is fast because it just sends the differences + in the files over the network instead of sending the complete + files. Rsync is often used as a very powerful mirroring process or + just as a more capable replacement for the rcp command. A technical + report which describes the rsync algorithm is included in this + package. +endef + +PKG_TARBALL = $(THISAPP).tar.gz +PKG_OBJECTS += $(PKG_NAME)-patches-$(PKG_VER).tar.gz + +define STAGE_PREPARE_CMDS + cd $(DIR_SRC) && $(DO_EXTRACT) \ + $(DIR_DL)/$(PKG_NAME)-patches-$(PKG_VER).tar.gz + + cd $(DIR_APP) && chmod -x support/* + + cd $(DIR_APP) && patch -Np1 -i patches/acls.diff + cd $(DIR_APP) && patch -Np1 -i patches/xattrs.diff + cd $(DIR_APP) && patch -Np1 -i patches/copy-devices.diff + + cd $(DIR_APP) && rm -fr autum4te.cache + cd $(DIR_APP) && autoconf + cd $(DIR_APP) && autoheader +endef + +STAGE_BUILD_TARGETS = proto all + +STAGE_INSTALL_TARGETS += INSTALLCMD="install -p" INSTALLMAN="install -p" + +define STAGE_INSTALL_CMDS + -mkdir -pv $(BUILDROOT)/etc/xinetd.d + install -p -m 644 $(DIR_SOURCE)/rsync.xinetd \ + $(BUILDROOT)/etc/xinetd.d/rsync +endef diff --git a/pkgs/rsync/rsync.xinetd b/pkgs/rsync/rsync.xinetd new file mode 100644 index 0000000..d4b591e --- /dev/null +++ b/pkgs/rsync/rsync.xinetd @@ -0,0 +1,14 @@ +# default: off +# description: The rsync server is a good addition to an ftp server, as it \ +# allows crc checksumming etc. +service rsync +{ + disable = yes + flags = IPv6 + socket_type = stream + wait = no + user = root + server = /usr/bin/rsync + server_args = --daemon + log_on_failure += USERID +} diff --git a/pkgs/xorg-x11-drv-nv/xorg-x11-drv-nv.nm b/pkgs/xorg-x11-drv-nv/xorg-x11-drv-nv.nm index 8f3c53e..7f6b0a5 100644 --- a/pkgs/xorg-x11-drv-nv/xorg-x11-drv-nv.nm +++ b/pkgs/xorg-x11-drv-nv/xorg-x11-drv-nv.nm @@ -35,7 +35,8 @@ PKG_LICENSE = MIT PKG_SUMMARY = Xorg X11 nv video driver.
PKG_BUILD_DEPS += autoconf automake libX11-devel libdrm-devel libtool \ - pkg-config xorg-x11-server-devel xorg-x11-util-macros + pkg-config xorg-x11-proto-devel xorg-x11-server-devel \ + xorg-x11-util-macros
define PKG_DESCRIPTION X.Org X11 nv video driver. diff --git a/pkgs/xorg-x11-drv-synaptics/xorg-x11-drv-synaptics.nm b/pkgs/xorg-x11-drv-synaptics/xorg-x11-drv-synaptics.nm index 70e74d9..5565cd7 100644 --- a/pkgs/xorg-x11-drv-synaptics/xorg-x11-drv-synaptics.nm +++ b/pkgs/xorg-x11-drv-synaptics/xorg-x11-drv-synaptics.nm @@ -34,8 +34,8 @@ PKG_URL = http://www.x.org/ PKG_LICENSE = MIT PKG_SUMMARY = Xorg X11 synaptics input driver.
-PKG_BUILD_DEPS += libX11-devel libXi-devel pkg-config xorg-x11-server-devel\ - xorg-x11-util-macros +PKG_BUILD_DEPS += libX11-devel libXi-devel pkg-config xorg-x11-proto-devel \ + xorg-x11-server-devel xorg-x11-util-macros
PKG_PACKAGES += $(PKG_NAME)-devel
diff --git a/pkgs/xorg-x11-drv-vesa/xorg-x11-drv-vesa.nm b/pkgs/xorg-x11-drv-vesa/xorg-x11-drv-vesa.nm index db4cceb..ed82fce 100644 --- a/pkgs/xorg-x11-drv-vesa/xorg-x11-drv-vesa.nm +++ b/pkgs/xorg-x11-drv-vesa/xorg-x11-drv-vesa.nm @@ -34,8 +34,8 @@ PKG_URL = http://www.x.org/ PKG_LICENSE = MIT PKG_SUMMARY = Xorg X11 vesa video driver.
-PKG_BUILD_DEPS += libX11-devel libpciaccess-devel pkg-config xorg-x11-server-devel \ - xorg-x11-util-macros +PKG_BUILD_DEPS += libX11-devel libpciaccess-devel pkg-config xorg-x11-proto-devel \ + xorg-x11-server-devel xorg-x11-util-macros
define PKG_DESCRIPTION X.Org X11 vesa video driver. diff --git a/pkgs/xorg-x11-drv-vmware/xorg-x11-drv-vmware.nm b/pkgs/xorg-x11-drv-vmware/xorg-x11-drv-vmware.nm index b5fc3c7..1d64df6 100644 --- a/pkgs/xorg-x11-drv-vmware/xorg-x11-drv-vmware.nm +++ b/pkgs/xorg-x11-drv-vmware/xorg-x11-drv-vmware.nm @@ -35,7 +35,7 @@ PKG_LICENSE = MIT PKG_SUMMARY = Xorg X11 vmware video driver.
PKG_BUILD_DEPS += libX11-devel libdrm-devel libpciaccess-devel pkg-config\ - xorg-x11-server-devel xorg-x11-util-macros + xorg-x11-proto-devel xorg-x11-server-devel xorg-x11-util-macros
define PKG_DESCRIPTION X.Org X11 vmware video driver.
hooks/post-receive -- IPFire 3.x development tree