From bf612ab2c054d0b7f037d491216f01599563f9e7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 20 Feb 2008 11:00:41 +0000 Subject: [PATCH] - temporarily add libcap-1 libraries to bootstrap some packages --- .cvsignore | 1 + libcap-1.10-audit.patch | 13 + libcap-1.10-debian.patch | 460 ++++++++++++++++++++++++++++++ libcap-1.10-fPIC.patch | 15 + libcap-1.10-ia64.patch | 32 +++ libcap-1.10-nostaticlib.patch | 38 +++ libcap-1.10-shared.patch | 17 ++ libcap-1.10-useCFLAGSwithCC.patch | 22 ++ libcap-1.10-userland.patch | 19 ++ libcap.spec | 30 ++ sources | 1 + 11 files changed, 648 insertions(+) create mode 100644 libcap-1.10-audit.patch create mode 100644 libcap-1.10-debian.patch create mode 100644 libcap-1.10-fPIC.patch create mode 100644 libcap-1.10-ia64.patch create mode 100644 libcap-1.10-nostaticlib.patch create mode 100644 libcap-1.10-shared.patch create mode 100644 libcap-1.10-useCFLAGSwithCC.patch create mode 100644 libcap-1.10-userland.patch diff --git a/.cvsignore b/.cvsignore index b4e5c63..1e7d50c 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1,2 @@ +libcap-1.10.tar.bz2 libcap-2.06.tar.gz diff --git a/libcap-1.10-audit.patch b/libcap-1.10-audit.patch new file mode 100644 index 0000000..3d35372 --- /dev/null +++ b/libcap-1.10-audit.patch @@ -0,0 +1,13 @@ +--- libcap-1.10/libcap/include/sys/capability.h.audit 2007-02-23 23:18:15.000000000 +0100 ++++ libcap-1.10/libcap/include/sys/capability.h 2007-02-23 23:18:54.000000000 +0100 +@@ -302,6 +302,10 @@ + + #define CAP_LEASE 28 + ++#define CAP_AUDIT_WRITE 29 ++ ++#define CAP_AUDIT_CONTROL 30 ++ + #endif /* !_LINUX_CAPABILITY_H */ + + diff --git a/libcap-1.10-debian.patch b/libcap-1.10-debian.patch new file mode 100644 index 0000000..d1a20ae --- /dev/null +++ b/libcap-1.10-debian.patch @@ -0,0 +1,460 @@ +--- libcap-1.10/Makefile.debian 1999-04-18 00:16:31.000000000 +0200 ++++ libcap-1.10/Makefile 2007-02-21 14:56:33.000000000 +0100 +@@ -3,17 +3,20 @@ + # + # Makefile for libcap + ++ifndef topdir + topdir=$(shell pwd) +-include Make.Rules ++endif ++include $(topdir)/Make.Rules ++DESTDIR= + + # + # flags + # + + all install clean: %: %-here +- make -C libcap $(MAKE_DEFS) $@ +- make -C progs $(MAKE_DEFS) $@ +- make -C doc $(MAKE_DEFS) $@ ++ make -C $(topdir)/libcap $(MAKE_DEFS) $@ ++ make -C $(topdir)/progs $(MAKE_DEFS) $@ ++ make -C $(topdir)/doc $(MAKE_DEFS) $@ + + all-here: + +--- libcap-1.10/Make.Rules.debian 1999-11-18 07:06:02.000000000 +0100 ++++ libcap-1.10/Make.Rules 2007-02-21 14:56:33.000000000 +0100 +@@ -8,7 +8,7 @@ + + # common 'packaging' directoty + +-FAKEROOT= ++FAKEROOT=$(DESTDIR) + + # Autoconf-style prefixes are activated when $(prefix) is defined. + # Otherwise binaries and libraraies are installed in /{lib,sbin}/, +@@ -18,13 +18,13 @@ + exec_prefix=$(prefix) + lib_prefix=$(exec_prefix) + inc_prefix=$(lib_prefix) +-man_prefix=$(prefix) ++man_prefix=$(prefix)/share + else + prefix=/usr + exec_prefix= + lib_prefix=$(exec_prefix) + inc_prefix=$(prefix) +-man_prefix=$(prefix) ++man_prefix=$(prefix)/share + endif + + # Target directories +--- libcap-1.10/libcap/cap_sys.c.debian 1999-04-18 00:16:31.000000000 +0200 ++++ libcap-1.10/libcap/cap_sys.c 2007-02-21 14:56:33.000000000 +0100 +@@ -11,6 +11,8 @@ + #define __LIBRARY__ + #include + ++/* glibc >= 2.1 knows capset/capget. no need to define it here */ ++/* + _syscall2(int, capget, + cap_user_header_t, header, + cap_user_data_t, data) +@@ -18,6 +20,7 @@ + _syscall2(int, capset, + cap_user_header_t, header, + const cap_user_data_t, data) ++*/ + + /* + * $Log: cap_sys.c,v $ +--- libcap-1.10/libcap/Makefile.debian 2007-02-21 14:56:33.000000000 +0100 ++++ libcap-1.10/libcap/Makefile 2007-02-21 14:56:33.000000000 +0100 +@@ -24,12 +24,14 @@ + # + # defines + # ++ifndef topdir + topdir=$(shell pwd)/.. +-include ../Make.Rules ++endif ++include $(topdir)/Make.Rules + # + # Library version + # +-LIBNAME=libcap.so ++LIBNAME=libcap + # + + FILES=cap_alloc cap_proc cap_extint cap_flag cap_text cap_sys +@@ -39,10 +41,11 @@ + + INCLS=libcap.h cap_names.h $(INCS) + OBJS=$(addsuffix .o, $(FILES)) +-MAJLIBNAME=$(LIBNAME).$(VERSION) ++LOBJS=$(addsuffix .lo, $(FILES)) ++MAJLIBNAME=$(LIBNAME).so.$(VERSION) + MINLIBNAME=$(MAJLIBNAME).$(MINOR) + +-all: $(MINLIBNAME) ++all: $(MINLIBNAME) $(LIBNAME).a + + _makenames: _makenames.c cap_names.sed + $(CC) $(CFLAGS) $(LDFLAGS) $< -o $@ +@@ -51,30 +54,38 @@ + ./_makenames > cap_names.h + + cap_names.sed: Makefile /usr/include/linux/capability.h +- @echo "=> making cap_names.c from " +- @sed -ne '/^#define[ \t]CAP[_A-Z]\+[ \t]\+[0-9]\+/{s/^#define \([^ \t]*\)[ \t]*\([^ \t]*\)/ \{ \2, \"\1\" \},/;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;p;}' < /usr/include/linux/capability.h | fgrep -v 0x > cap_names.sed +-# @sed -ne '/^#define[ \t]CAP[_A-Z]\+[ \t]\+[0-9]\+/{s/^#define CAP_\([^ \t]*\)[ \t]*\([^ \t]*\)/ \{ \2, \"\1\" \},/;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;p;}' < /usr/include/linux/capability.h | fgrep -v 0x > cap_names.sed ++cap_names.sed: Makefile include/sys/capability.h ++ @echo "=> making cap_names.c from " ++ @sed -ne '/^#define[ \t]CAP[_A-Z]\+[ \t]\+[0-9]\+/{s/^#define \([^ \t]*\)[ \t]*\([^ \t]*\)/ \{ \2, \"\1\" \},/;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;p;}' < include/sys/capability.h | fgrep -v 0x > cap_names.sed ++# @sed -ne '/^#define[ \t]CAP[_A-Z]\+[ \t]\+[0-9]\+/{s/^#define CAP_\([^ \t]*\)[ \t]*\([^ \t]*\)/ \{ \2, \"\1\" \},/;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;p;}' < /usr/include/linux/capability.h | fgrep -v 0x > cap_names.sed + +-$(MINLIBNAME): $(OBJS) +- $(CC) $(COPTFLAG) -Wl,-soname,$(MAJLIBNAME) -Wl,-x -shared -o $@ $(OBJS) ++$(LIBNAME).a: $(OBJS) ++ ar cruv $(LIBNAME).a $(OBJS) ++ ++$(MINLIBNAME): $(LOBJS) ++ $(CC) $(COPTFLAG) -Wl,-soname,$(MAJLIBNAME) -Wl,-x -shared -fPIC -o $@ $(LOBJS) + ln -sf $(MINLIBNAME) $(MAJLIBNAME) +- ln -sf $(MAJLIBNAME) $(LIBNAME) ++ ln -sf $(MAJLIBNAME) $(LIBNAME).so + + %.o: %.c $(INCLS) + $(CC) $(CFLAGS) -fpic -c $< -o $@ + ++%.lo: %.c $(INCLS) ++ $(CC) $(CFLAGS) -c $< -o $@ ++ + install: all + mkdir -p -m 0755 $(INCDIR)/sys + install -m 0644 include/sys/capability.h $(INCDIR)/sys + mkdir -p -m 0755 $(LIBDIR) ++ install -m 0644 $(LIBNAME).a $(LIBDIR) + install -m 0644 $(MINLIBNAME) $(LIBDIR)/$(MINLIBNAME) + ln -sf $(MINLIBNAME) $(LIBDIR)/$(MAJLIBNAME) +- ln -sf $(MAJLIBNAME) $(LIBDIR)/$(LIBNAME) ++ ln -sf $(MAJLIBNAME) $(LIBDIR)/$(LIBNAME).so + -/sbin/ldconfig + + clean: + $(LOCALCLEAN) +- rm -f $(OBJS) $(LIBNAME)* ++ rm -f $(OBJS) $(LOBJS) $(LIBNAME).a $(LIBNAME).so* + rm -f cap_names.h cap_names.sed _makenames + cd include/sys && $(LOCALCLEAN) + +--- libcap-1.10/libcap/_makenames.c.debian 1999-05-14 06:46:15.000000000 +0200 ++++ libcap-1.10/libcap/_makenames.c 2007-02-21 14:56:33.000000000 +0100 +@@ -9,7 +9,7 @@ + + #include + #include +-#include ++#include + + /* + * #include 'sed' generated array +--- libcap-1.10/libcap/include/sys/capability.h.debian 2007-02-21 14:56:45.000000000 +0100 ++++ libcap-1.10/libcap/include/sys/capability.h 2007-02-21 14:58:18.000000000 +0100 +@@ -24,14 +24,286 @@ + #include + + /* +- * Make sure we can be included from userland by preventing +- * capability.h from including other kernel headers +- */ +-#define _LINUX_TYPES_H +-#define _LINUX_FS_H +-typedef unsigned int __u32; ++ * This is ++ * ++ * Andrew G. Morgan ++ * Alexander Kjeldaas ++ * with help from Aleph1, Roland Buresund and Andrew Main. ++ * ++ * See here for the libcap library ("POSIX draft" compliance): ++ * ++ * ftp://linux.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.2/ ++ */ ++ ++#ifndef _LINUX_CAPABILITY_H ++#define _LINUX_CAPABILITY_H ++ ++#include ++/*#include */ ++ ++/* User-level do most of the mapping between kernel and user ++ capabilities based on the version tag given by the kernel. The ++ kernel might be somewhat backwards compatible, but don't bet on ++ it. */ ++ ++/* XXX - Note, cap_t, is defined by POSIX to be an "opaque" pointer to ++ a set of three capability sets. The transposition of 3*the ++ following structure to such a composite is better handled in a user ++ library since the draft standard requires the use of malloc/free ++ etc.. */ ++ ++#define _LINUX_CAPABILITY_VERSION 0x19980330 ++ ++typedef struct __user_cap_header_struct { ++ __u32 version; ++ int pid; ++} *cap_user_header_t; ++ ++typedef struct __user_cap_data_struct { ++ __u32 effective; ++ __u32 permitted; ++ __u32 inheritable; ++} *cap_user_data_t; ++ ++#ifdef __KERNEL__ ++ ++/* #define STRICT_CAP_T_TYPECHECKS */ ++ ++#ifdef STRICT_CAP_T_TYPECHECKS ++ ++typedef struct kernel_cap_struct { ++ __u32 cap; ++} kernel_cap_t; ++ ++#else ++ ++typedef __u32 kernel_cap_t; ++ ++#endif ++ ++#define _USER_CAP_HEADER_SIZE (2*sizeof(__u32)) ++#define _KERNEL_CAP_T_SIZE (sizeof(kernel_cap_t)) ++ ++#endif ++ ++ ++/** ++ ** POSIX-draft defined capabilities. ++ **/ ++ ++/* In a system with the [_POSIX_CHOWN_RESTRICTED] option defined, this ++ overrides the restriction of changing file ownership and group ++ ownership. */ ++ ++#define CAP_CHOWN 0 ++ ++/* Override all DAC access, including ACL execute access if ++ [_POSIX_ACL] is defined. Excluding DAC access covered by ++ CAP_LINUX_IMMUTABLE. */ ++ ++#define CAP_DAC_OVERRIDE 1 ++ ++/* Overrides all DAC restrictions regarding read and search on files ++ and directories, including ACL restrictions if [_POSIX_ACL] is ++ defined. Excluding DAC access covered by CAP_LINUX_IMMUTABLE. */ ++ ++#define CAP_DAC_READ_SEARCH 2 ++ ++/* Overrides all restrictions about allowed operations on files, where ++ file owner ID must be equal to the user ID, except where CAP_FSETID ++ is applicable. It doesn't override MAC and DAC restrictions. */ ++ ++#define CAP_FOWNER 3 ++ ++/* Overrides the following restrictions that the effective user ID ++ shall match the file owner ID when setting the S_ISUID and S_ISGID ++ bits on that file; that the effective group ID (or one of the ++ supplementary group IDs) shall match the file owner ID when setting ++ the S_ISGID bit on that file; that the S_ISUID and S_ISGID bits are ++ cleared on successful return from chown(2) (not implemented). */ ++ ++#define CAP_FSETID 4 ++ ++/* Used to decide between falling back on the old suser() or fsuser(). */ ++ ++#define CAP_FS_MASK 0x1f ++ ++/* Overrides the restriction that the real or effective user ID of a ++ process sending a signal must match the real or effective user ID ++ of the process receiving the signal. */ ++ ++#define CAP_KILL 5 ++ ++/* Allows setgid(2) manipulation */ ++/* Allows setgroups(2) */ ++/* Allows forged gids on socket credentials passing. */ ++ ++#define CAP_SETGID 6 ++ ++/* Allows set*uid(2) manipulation (including fsuid). */ ++/* Allows forged pids on socket credentials passing. */ ++ ++#define CAP_SETUID 7 ++ ++ ++/** ++ ** Linux-specific capabilities ++ **/ ++ ++/* Transfer any capability in your permitted set to any pid, ++ remove any capability in your permitted set from any pid */ ++ ++#define CAP_SETPCAP 8 ++ ++/* Allow modification of S_IMMUTABLE and S_APPEND file attributes */ ++ ++#define CAP_LINUX_IMMUTABLE 9 ++ ++/* Allows binding to TCP/UDP sockets below 1024 */ ++/* Allows binding to ATM VCIs below 32 */ ++ ++#define CAP_NET_BIND_SERVICE 10 ++ ++/* Allow broadcasting, listen to multicast */ ++ ++#define CAP_NET_BROADCAST 11 ++ ++/* Allow interface configuration */ ++/* Allow administration of IP firewall, masquerading and accounting */ ++/* Allow setting debug option on sockets */ ++/* Allow modification of routing tables */ ++/* Allow setting arbitrary process / process group ownership on ++ sockets */ ++/* Allow binding to any address for transparent proxying */ ++/* Allow setting TOS (type of service) */ ++/* Allow setting promiscuous mode */ ++/* Allow clearing driver statistics */ ++/* Allow multicasting */ ++/* Allow read/write of device-specific registers */ ++/* Allow activation of ATM control sockets */ ++ ++#define CAP_NET_ADMIN 12 ++ ++/* Allow use of RAW sockets */ ++/* Allow use of PACKET sockets */ ++ ++#define CAP_NET_RAW 13 ++ ++/* Allow locking of shared memory segments */ ++/* Allow mlock and mlockall (which doesn't really have anything to do ++ with IPC) */ ++ ++#define CAP_IPC_LOCK 14 ++ ++/* Override IPC ownership checks */ ++ ++#define CAP_IPC_OWNER 15 ++ ++/* Insert and remove kernel modules - modify kernel without limit */ ++/* Modify cap_bset */ ++#define CAP_SYS_MODULE 16 ++ ++/* Allow ioperm/iopl access */ ++/* Allow sending USB messages to any device via /proc/bus/usb */ ++ ++#define CAP_SYS_RAWIO 17 ++ ++/* Allow use of chroot() */ ++ ++#define CAP_SYS_CHROOT 18 ++ ++/* Allow ptrace() of any process */ ++ ++#define CAP_SYS_PTRACE 19 ++ ++/* Allow configuration of process accounting */ ++ ++#define CAP_SYS_PACCT 20 ++ ++/* Allow configuration of the secure attention key */ ++/* Allow administration of the random device */ ++/* Allow examination and configuration of disk quotas */ ++/* Allow configuring the kernel's syslog (printk behaviour) */ ++/* Allow setting the domainname */ ++/* Allow setting the hostname */ ++/* Allow calling bdflush() */ ++/* Allow mount() and umount(), setting up new smb connection */ ++/* Allow some autofs root ioctls */ ++/* Allow nfsservctl */ ++/* Allow VM86_REQUEST_IRQ */ ++/* Allow to read/write pci config on alpha */ ++/* Allow irix_prctl on mips (setstacksize) */ ++/* Allow flushing all cache on m68k (sys_cacheflush) */ ++/* Allow removing semaphores */ ++/* Used instead of CAP_CHOWN to "chown" IPC message queues, semaphores ++ and shared memory */ ++/* Allow locking/unlocking of shared memory segment */ ++/* Allow turning swap on/off */ ++/* Allow forged pids on socket credentials passing */ ++/* Allow setting readahead and flushing buffers on block devices */ ++/* Allow setting geometry in floppy driver */ ++/* Allow turning DMA on/off in xd driver */ ++/* Allow administration of md devices (mostly the above, but some ++ extra ioctls) */ ++/* Allow tuning the ide driver */ ++/* Allow access to the nvram device */ ++/* Allow administration of apm_bios, serial and bttv (TV) device */ ++/* Allow manufacturer commands in isdn CAPI support driver */ ++/* Allow reading non-standardized portions of pci configuration space */ ++/* Allow DDI debug ioctl on sbpcd driver */ ++/* Allow setting up serial ports */ ++/* Allow sending raw qic-117 commands */ ++/* Allow enabling/disabling tagged queuing on SCSI controllers and sending ++ arbitrary SCSI commands */ ++/* Allow setting encryption key on loopback filesystem */ ++ ++#define CAP_SYS_ADMIN 21 ++ ++/* Allow use of reboot() */ ++ ++#define CAP_SYS_BOOT 22 ++ ++/* Allow raising priority and setting priority on other (different ++ UID) processes */ ++/* Allow use of FIFO and round-robin (realtime) scheduling on own ++ processes and setting the scheduling algorithm used by another ++ process. */ ++ ++#define CAP_SYS_NICE 23 ++ ++/* Override resource limits. Set resource limits. */ ++/* Override quota limits. */ ++/* Override reserved space on ext2 filesystem */ ++/* NOTE: ext2 honors fsuid when checking for resource overrides, so ++ you can override using fsuid too */ ++/* Override size restrictions on IPC message queues */ ++/* Allow more than 64hz interrupts from the real-time clock */ ++/* Override max number of consoles on console allocation */ ++/* Override max number of keymaps */ ++ ++#define CAP_SYS_RESOURCE 24 ++ ++/* Allow manipulation of system clock */ ++/* Allow irix_stime on mips */ ++/* Allow setting the real-time clock */ ++ ++#define CAP_SYS_TIME 25 ++ ++/* Allow configuration of tty devices */ ++/* Allow vhangup() of tty */ ++ ++#define CAP_SYS_TTY_CONFIG 26 ++ ++/* Allow the privileged aspects of mknod() */ ++ ++#define CAP_MKNOD 27 ++ ++/* Allow taking of leases on files */ ++ ++#define CAP_LEASE 28 ++ ++#endif /* !_LINUX_CAPABILITY_H */ + +-#include + + /* + * POSIX capability types diff --git a/libcap-1.10-fPIC.patch b/libcap-1.10-fPIC.patch new file mode 100644 index 0000000..d355a13 --- /dev/null +++ b/libcap-1.10-fPIC.patch @@ -0,0 +1,15 @@ +--- libcap-1.10/libcap/Makefile.rh2 2007-02-21 15:21:12.000000000 +0100 ++++ libcap-1.10/libcap/Makefile 2007-02-21 15:22:00.000000000 +0100 +@@ -65,10 +65,10 @@ + ln -sf $(MAJLIBNAME) $(LIBNAME).so + + %.o: %.c $(INCLS) +- $(CC) $(CFLAGS) -fpic -c $< -o $@ ++ $(CC) $(CFLAGS) -fPIC -c $< -o $@ + + %.lo: %.c $(INCLS) +- $(CC) $(CFLAGS) -c $< -o $@ ++ $(CC) $(CFLAGS) -fPIC -c $< -o $@ + + install: all + mkdir -p -m 0755 $(INCDIR)/sys diff --git a/libcap-1.10-ia64.patch b/libcap-1.10-ia64.patch new file mode 100644 index 0000000..16702bc --- /dev/null +++ b/libcap-1.10-ia64.patch @@ -0,0 +1,32 @@ +--- libcap-1.10/libcap/cap_sys.c.ia64 Mon May 21 16:23:27 2001 ++++ libcap-1.10/libcap/cap_sys.c Mon May 21 16:24:09 2001 +@@ -11,14 +11,6 @@ + #define __LIBRARY__ + #include + +-_syscall2(int, capget, +- cap_user_header_t, header, +- cap_user_data_t, data) +- +-_syscall2(int, capset, +- cap_user_header_t, header, +- const cap_user_data_t, data) +- + /* + * $Log: cap_sys.c,v $ + * Revision 1.1.1.1 1999/04/17 22:16:31 morgan +--- libcap-1.10/Make.Rules.ia64 Mon May 21 16:22:08 2001 ++++ libcap-1.10/Make.Rules Mon May 21 16:22:32 2001 +@@ -44,10 +44,10 @@ + CC=gcc + COPTFLAGS=-O2 + DEBUG=-g #-DDEBUG +-WARNINGS=-ansi -D_POSIX_SOURCE -Wall -Wwrite-strings \ ++WARNINGS=-D_POSIX_SOURCE -Wall -Wwrite-strings \ + -Wpointer-arith -Wcast-qual -Wcast-align \ + -Wtraditional -Wstrict-prototypes -Wmissing-prototypes \ +- -Wnested-externs -Winline -Wshadow -pedantic ++ -Wnested-externs -Winline -Wshadow + LD=ld + LDFLAGS=-s #-g + diff --git a/libcap-1.10-nostaticlib.patch b/libcap-1.10-nostaticlib.patch new file mode 100644 index 0000000..58f447e --- /dev/null +++ b/libcap-1.10-nostaticlib.patch @@ -0,0 +1,38 @@ +--- libcap-1.10/libcap/Makefile.rh1 2007-02-21 15:00:01.000000000 +0100 ++++ libcap-1.10/libcap/Makefile 2007-02-21 15:00:53.000000000 +0100 +@@ -45,7 +45,7 @@ + MAJLIBNAME=$(LIBNAME).so.$(VERSION) + MINLIBNAME=$(MAJLIBNAME).$(MINOR) + +-all: $(MINLIBNAME) $(LIBNAME).a ++all: $(MINLIBNAME) + + _makenames: _makenames.c cap_names.sed + $(CC) $(CFLAGS) $(LDFLAGS) $< -o $@ +@@ -59,9 +59,6 @@ + @sed -ne '/^#define[ \t]CAP[_A-Z]\+[ \t]\+[0-9]\+/{s/^#define \([^ \t]*\)[ \t]*\([^ \t]*\)/ \{ \2, \"\1\" \},/;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;p;}' < include/sys/capability.h | fgrep -v 0x > cap_names.sed + # @sed -ne '/^#define[ \t]CAP[_A-Z]\+[ \t]\+[0-9]\+/{s/^#define CAP_\([^ \t]*\)[ \t]*\([^ \t]*\)/ \{ \2, \"\1\" \},/;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;p;}' < /usr/include/linux/capability.h | fgrep -v 0x > cap_names.sed + +-$(LIBNAME).a: $(OBJS) +- ar cruv $(LIBNAME).a $(OBJS) +- + $(MINLIBNAME): $(LOBJS) + $(CC) $(COPTFLAG) -Wl,-soname,$(MAJLIBNAME) -Wl,-x -shared -fPIC -o $@ $(LOBJS) + ln -sf $(MINLIBNAME) $(MAJLIBNAME) +@@ -77,7 +74,6 @@ + mkdir -p -m 0755 $(INCDIR)/sys + install -m 0644 include/sys/capability.h $(INCDIR)/sys + mkdir -p -m 0755 $(LIBDIR) +- install -m 0644 $(LIBNAME).a $(LIBDIR) + install -m 0644 $(MINLIBNAME) $(LIBDIR)/$(MINLIBNAME) + ln -sf $(MINLIBNAME) $(LIBDIR)/$(MAJLIBNAME) + ln -sf $(MAJLIBNAME) $(LIBDIR)/$(LIBNAME).so +@@ -85,7 +81,7 @@ + + clean: + $(LOCALCLEAN) +- rm -f $(OBJS) $(LOBJS) $(LIBNAME).a $(LIBNAME).so* ++ rm -f $(OBJS) $(LOBJS) $(LIBNAME).so* + rm -f cap_names.h cap_names.sed _makenames + cd include/sys && $(LOCALCLEAN) + diff --git a/libcap-1.10-shared.patch b/libcap-1.10-shared.patch new file mode 100644 index 0000000..54e5496 --- /dev/null +++ b/libcap-1.10-shared.patch @@ -0,0 +1,17 @@ +--- libcap-1.11/libcap/Makefile.shared 1999-04-17 18:16:31.000000000 -0400 ++++ libcap-1.11/libcap/Makefile 2002-07-19 06:24:23.000000000 -0400 +@@ -56,12 +56,12 @@ cap_names.sed: Makefile /usr/include/lin + # @sed -ne '/^#define[ \t]CAP[_A-Z]\+[ \t]\+[0-9]\+/{s/^#define CAP_\([^ \t]*\)[ \t]*\([^ \t]*\)/ \{ \2, \"\1\" \},/;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;p;}' < /usr/include/linux/capability.h | fgrep -v 0x > cap_names.sed + + $(MINLIBNAME): $(OBJS) +- $(LD) -soname $(MAJLIBNAME) -x -shared -o $@ $(OBJS) ++ $(CC) -Wl,-soname,$(MAJLIBNAME) -Wl,-x -shared -o $@ $(OBJS) + ln -sf $(MINLIBNAME) $(MAJLIBNAME) + ln -sf $(MAJLIBNAME) $(LIBNAME) + + %.o: %.c $(INCLS) +- $(CC) $(CFLAGS) -c $< -o $@ ++ $(CC) $(CFLAGS) -fpic -c $< -o $@ + + install: all + mkdir -p -m 0755 $(INCDIR)/sys diff --git a/libcap-1.10-useCFLAGSwithCC.patch b/libcap-1.10-useCFLAGSwithCC.patch new file mode 100644 index 0000000..4fa83ad --- /dev/null +++ b/libcap-1.10-useCFLAGSwithCC.patch @@ -0,0 +1,22 @@ +--- libcap-1.10/libcap/Makefile.BAD 2006-07-13 20:42:35.000000000 -0400 ++++ libcap-1.10/libcap/Makefile 2006-07-13 20:42:53.000000000 -0400 +@@ -56,7 +56,7 @@ + # @sed -ne '/^#define[ \t]CAP[_A-Z]\+[ \t]\+[0-9]\+/{s/^#define CAP_\([^ \t]*\)[ \t]*\([^ \t]*\)/ \{ \2, \"\1\" \},/;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;p;}' < /usr/include/linux/capability.h | fgrep -v 0x > cap_names.sed + + $(MINLIBNAME): $(OBJS) +- $(CC) -Wl,-soname,$(MAJLIBNAME) -Wl,-x -shared -o $@ $(OBJS) ++ $(CC) $(COPTFLAG) -Wl,-soname,$(MAJLIBNAME) -Wl,-x -shared -o $@ $(OBJS) + ln -sf $(MINLIBNAME) $(MAJLIBNAME) + ln -sf $(MAJLIBNAME) $(LIBNAME) + +--- libcap-1.10/progs/Makefile.BAD 2006-07-13 20:48:44.000000000 -0400 ++++ libcap-1.10/progs/Makefile 2006-07-13 20:48:54.000000000 -0400 +@@ -36,7 +36,7 @@ + all: $(PROGS) + + $(PROGS): %: %.o +- $(CC) $(LDFLAGS) -o $@ $< $(LIBS) ++ $(CC) $(COPTFLAG) $(LDFLAGS) -o $@ $< $(LIBS) + + %.o: %.c $(INCS) + $(CC) $(CFLAGS) -c $< -o $@ diff --git a/libcap-1.10-userland.patch b/libcap-1.10-userland.patch new file mode 100644 index 0000000..0cd608f --- /dev/null +++ b/libcap-1.10-userland.patch @@ -0,0 +1,19 @@ +--- libcap-1.10/libcap/include/sys/capability.h.foo Fri Nov 9 16:26:25 2001 ++++ libcap-1.10/libcap/include/sys/capability.h Fri Nov 9 16:28:47 2001 +@@ -21,6 +21,16 @@ + */ + + #include ++#include ++ ++/* ++ * Make sure we can be included from userland by preventing ++ * capability.h from including other kernel headers ++ */ ++#define _LINUX_TYPES_H ++#define _LINUX_FS_H ++typedef unsigned int __u32; ++ + #include + + /* diff --git a/libcap.spec b/libcap.spec index 30d3093..12b1eea 100644 --- a/libcap.spec +++ b/libcap.spec @@ -1,8 +1,17 @@ Name: libcap Version: 2.06 +Release: 3%{?dist} Release: 2%{?dist} Summary: Library for getting and setting POSIX.1e capabilities Source: http://www.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.6/%{name}-%{version}.tar.gz +Source1: http://www.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.4/%{name}-1.10.tar.bz2 +Patch0: libcap-1.10-userland.patch +Patch1: libcap-1.10-shared.patch +Patch2: libcap-1.10-useCFLAGSwithCC.patch +Patch3: libcap-1.10-debian.patch +Patch4: libcap-1.10-nostaticlib.patch +Patch5: libcap-1.10-fPIC.patch +Patch6: libcap-1.10-audit.patch URL: http://ftp.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.6/ License: LGPLv2+ Group: System Environment/Libraries @@ -29,11 +38,25 @@ libcap. %prep %setup -q +%{__tar} xjf %{SOURCE1} +cd libcap-1.10 +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +cd .. + %build # libcap can not be build with _smp_mflags: make PREFIX=%{_prefix} LIBDIR=%{_libdir} SBINDIR=%{_sbindir} \ INCDIR=%{_includedir} MANDIR=%{_mandir} COPTFLAG="$RPM_OPT_FLAGS" +(cd libcap-1.10; +make PREFIX=%{_prefix} LIBDIR=%{_libdir} SBINDIR=%{_sbindir} \ + INCDIR=%{_includedir} MANDIR=%{_mandir} COPTFLAG="$RPM_OPT_FLAGS") %install @@ -48,6 +71,10 @@ mkdir -p ${RPM_BUILD_ROOT}/%{_mandir}/man{2,3,8} mv -f doc/*.2 ${RPM_BUILD_ROOT}/%{_mandir}/man2/ mv -f doc/*.3 ${RPM_BUILD_ROOT}/%{_mandir}/man3/ +(cd libcap-1.10; +install -p libcap/libcap.so* ${RPM_BUILD_ROOT}/%{_lib}/ +) + chmod +x ${RPM_BUILD_ROOT}/%{_lib}/*.so.* %post -p /sbin/ldconfig @@ -71,6 +98,9 @@ chmod +x ${RPM_BUILD_ROOT}/%{_lib}/*.so.* rm -rf ${RPM_BUILD_ROOT} %changelog +* Wed Feb 20 2008 Karsten Hopp 2.06-3 +- temporarily add libcap-1 libraries to bootstrap some packages + * Tue Feb 19 2008 Fedora Release Engineering - 2.06-2 - Autorebuild for GCC 4.3 diff --git a/sources b/sources index 69c0ff6..2642880 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ +4426a413128142cab89eb2e6f13d8571 libcap-1.10.tar.bz2 18f236fbd4a3613edb194f1792ad0a69 libcap-2.06.tar.gz