SOURCES: killproc-suse.patch (NEW) - from suse sysvinit-2.86-102.s...
glen
glen at pld-linux.org
Wed Oct 31 23:12:55 CET 2007
Author: glen Date: Wed Oct 31 22:12:55 2007 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- from suse sysvinit-2.86-102.src.rpm
---- Files affected:
SOURCES:
killproc-suse.patch (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: SOURCES/killproc-suse.patch
diff -u /dev/null SOURCES/killproc-suse.patch:1.1
--- /dev/null Wed Oct 31 23:12:55 2007
+++ SOURCES/killproc-suse.patch Wed Oct 31 23:12:50 2007
@@ -0,0 +1,179 @@
+--- Makefile
++++ Makefile 2007-06-18 16:40:20.300899354 +0200
+@@ -53,6 +53,7 @@ UBINPRG =
+
+ ifeq ($(DISTRO),SuSE)
+ UBINPRG += usleep
++ UBINPRG += fsync
+ endif
+
+ all: $(SBINPRG) $(UBINPRG)
+@@ -72,8 +73,11 @@ checkproc: checkproc.c libinit.o
+ usleep: usleep.c
+ $(CC) $(CFLAGS) -o $@ $^
+
++fsync: fsync.c
++ $(CC) $(CFLAGS) -o $@ $^
++
+ clean:
+- $(RM) *.o *~ killproc startproc checkproc pidofproc start_daemon usleep
++ $(RM) *.o *~ killproc startproc checkproc pidofproc start_daemon usleep fsync
+
+ install: $(TODO)
+ if test -n "$(SBINPRG)" ; then \
+@@ -116,6 +120,8 @@ FILES = README \
+ libinit.h \
+ usleep.c \
+ usleep.1 \
++ fsync.c \
++ fsync.1 \
+ killproc-$(VERSION).lsm
+
+ dest:
+--- checkproc.c
++++ checkproc.c 2007-03-09 14:05:44.000000000 +0100
+@@ -162,8 +162,8 @@ int main(int argc, char **argv)
+ if (remember_pids(pid_file,fullname,root,flags) < 0)
+ exit(LSB_PROOFX);
+
+- if (!remember && (flags & KILL))
+- exit(LSB_NOPROC); /* New LSB: no pid file is no job */
++ if (!remember)
++ exit(LSB_STATUS_NOPROC); /* New LSB: no pid file is no job */
+ }
+ /* No pid file means that we have to search in /proc/ */
+ free(pid_file);
+--- fsync.1
++++ fsync.1 2007-06-18 16:45:14.768333714 +0200
+@@ -0,0 +1,39 @@
++.\"
++.\" Copyright 2007 Werner Fink, 2007 SuSE GmbH Nuernberg, Germany.
++.\"
++.\" 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 2 of the License, or
++.\" (at your option) any later version.
++.\"
++.TH FSYNC 1 "Jun 18, 2007" "Version 1.16" "The SuSE boot concept"
++.UC 1
++.SH NAME
++fsync \- synchronize the specified file with storage device
++.\"
++.SH SYNOPSIS
++.\"
++.B fsync
++.I file
++.\"
++.SH DESCRIPTION
++.B fsync
++synchronize the in-core state of the specified file with the storage device
++.\"
++.SH BUGS
++The
++.B fsync
++program uses the
++.BR fsync (2)
++function and therefore shows the same weaknesses
++by any system activity.
++\."
++.SH SEE ALSO
++.BR fsync (2),
++.BR fdatasync (2).
++\."
++.SH COPYRIGHT
++2007 Werner Fink,
++2007 SuSE GmbH Nuernberg, Germany.
++.SH AUTHOR
++Werner Fink <werner at suse.de>
+--- fsync.c
++++ fsync.c 2007-06-18 16:37:20.393692218 +0200
+@@ -0,0 +1,89 @@
++/*
++ * fsync.c File data sync for the specified file
++ *
++ * Usage: fsync file
++ *
++ * Copyright 2007 Werner Fink, 2007 SUSE LINUX Products GmbH, Germany.
++ *
++ * 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 2 of the License, or
++ * (at your option) any later version.
++ *
++ * Author: Werner Fink <werner at suse.de>
++ */
++
++#ifndef __USE_STRING_INLINES
++# define __USE_STRING_INLINES
++#endif
++#ifdef __NO_STRING_INLINES
++# undef __NO_STRING_INLINES
++#endif
++#ifndef _GNU_SOURCE
++#define _GNU_SOURCE
++#endif
++#include <string.h>
++#include <libgen.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <unistd.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
++#include <errno.h>
++
++#define USAGE "Usage:\t%s file\n", we_are
++
++static char *we_are;
++int main(int argc, char **argv)
++{
++ int ret, fd, flags;
++ char *path, *dir = NULL;
++
++ if (argc != 2)
++ goto err;
++
++ if ((path = strdup(argv[1])) == (char*)0)
++ goto err;
++
++ dir = dirname(path);
++ flags = O_RDONLY|O_NOCTTY|O_NONBLOCK;
++
++ if (getuid() == 0)
++ flags |= O_NOATIME;
++
++ if ((fd = open(argv[1], flags)) < 0) {
++ if (errno != ENOENT)
++ goto err;
++ if ((fd = open(dir, flags|O_DIRECTORY)) < 0)
++ goto err;
++ ret = fsync(fd);
++ close(fd);
++ if (ret < 0)
++ goto err;
++ if ((fd = open(argv[1], flags)) < 0)
++ goto err;
++ }
++ ret = fsync(fd);
++ close(fd);
++ if (ret < 0)
++ goto err;
++
++ return 0;
++ /* Do this at the end for speed */
++err:
++ we_are = basename(argv[0]);
++ fprintf(stderr, USAGE);
++
++ if (argc > 1 && *(argv[1]) == '-') {
++ argv[1]++;
++ if (!strcmp(argv[1], "-help") || *(argv[1]) == 'h' || *(argv[1]) == '?') {
++ fprintf(stderr, "Do a fsync(2) on the specified file.\n\n");
++ fprintf(stderr, "Help options:\n");
++ fprintf(stderr, " -h, -?, --help display this help and exit.\n");
++ exit (0);
++ }
++ } else if (errno != 0)
++ fprintf(stderr, "%s: %s\n", argv[1], strerror(errno));
++ exit (1);
++}
================================================================
More information about the pld-cvs-commit
mailing list