commit 2535b7b0de17f8499df3f89bcc924f3894700a847b4dda3d7408215d02f920bc Author: OBS User unknown Date: Sat Oct 11 22:54:17 2008 +0000 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/boinc-client?expand=0&rev=1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/bnc-431510.patch b/bnc-431510.patch new file mode 100644 index 0000000..5734dca --- /dev/null +++ b/bnc-431510.patch @@ -0,0 +1,937 @@ +diff -Naur boinc-6.2.18/client/app_stats_mac.C boinc-6.2.18-mp/client/app_stats_mac.C +--- boinc-6.2.18/client/app_stats_mac.C 2008-08-25 22:29:18.000000000 +0200 ++++ boinc-6.2.18-mp/client/app_stats_mac.C 1970-01-01 01:00:00.000000000 +0100 +@@ -1,715 +0,0 @@ +-// Berkeley Open Infrastructure for Network Computing +-// http://boinc.berkeley.edu +-// Copyright (C) 2006 University of California +-// +-// This is free software; you can redistribute it and/or +-// modify it under the terms of the GNU Lesser General Public +-// License as published by the Free Software Foundation; +-// either version 2.1 of the License, or (at your option) any later version. +-// +-// This software 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 Lesser General Public License for more details. +-// +-// To view the GNU Lesser General Public License visit +-// http://www.gnu.org/copyleft/lesser.html +-// or write to the Free Software Foundation, Inc., +-// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +- +-// This file is adapted from code originally supplied by Apple Computer, Inc. +-// The Berkeley Open Infrastructure for Network Computing project has modified +-// the original code and made additions as of September 22, 2006. The original +-// Apple Public Source License statement appears below: +- +-/* +- * Copyright (c) 2002-2004 Apple Computer, Inc. All rights reserved. +- * +- * @APPLE_LICENSE_HEADER_START@ +- * +- * The contents of this file constitute Original Code as defined in and +- * are subject to the Apple Public Source License Version 1.1 (the +- * "License"). You may not use this file except in compliance with the +- * License. Please obtain a copy of the License at +- * http://www.apple.com/publicsource and read it before using this file. +- * +- * This Original Code and all software distributed under the License are +- * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER +- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, +- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, +- * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the +- * License for the specific language governing rights and limitations +- * under the License. +- * +- * @APPLE_LICENSE_HEADER_END@ +- */ +- +-// app_stats_mac.C +-// +- +-// #define _DEBUG 1 +- +-// Put a safety limit on recursion +-#define MAX_DESCENDANT_LEVEL 4 +- +-// Totals for non_BOINC processes are not useful because most OSs don't +-// move idle processes out of RAM, so physical memory is always full +-#define GET_NON_BOINC_INFO 0 +- +-// We don't need swap space info because +-// http://developer.apple.com/documentation/Performance/Conceptual/ManagingMemory/Articles/AboutMemory.html says: +-// Unlike most UNIX-based operating systems, Mac OS X does not use a +-// preallocated swap partition for virtual memory. Instead, it uses all +-// of the available space on the machineÕs boot partition. +-// However, the associated overhead is not significant if we are examining +-// only BOINC descendant processes. +-#define GET_SWAP_SIZE 1 +- +-// The overhead for getting CPU times is not significant if we are +-// examining only BOINC descendant processes. +-#define GET_CPU_TIMES 1 +- +- +-#include +-#include +-#include +-#include +-#include +-#include +- +-#include "procinfo.h" +- +-using std::vector; +- +-static int get_boinc_proc_info(int my_pid, int boinc_pid); +-static int build_proc_list (vector& pi, int boinc_pid); +-static void output_child_totals(PROCINFO& pinfo); +-static boolean_t appstats_task_update(task_t a_task, vector& piv); +-static void find_all_descendants(vector& piv, int pid, int rlvl); +-static void add_child_totals(PROCINFO& pi, vector& piv, int pid, int rlvl); +-//static void add_others(PROCINFO&, std::vector&); +-static void sig_pipe(int signo); +- +-#ifdef _DEBUG +-static void print_procinfo(PROCINFO& pinfo); +-static void vm_size_render(unsigned long long a_size); +-#endif +- +-// BOINC helper application to get info about each of the BOINC Client's +-// child processes (including all its descendants) and also totals for +-// all other processes. +-// On the Mac, much of this information is accessible only by the super-user, +-// so this helper application must be run setuid root. +- +-int main(int argc, char** argv) { +- int boinc_pid, my_pid; +- int retval; +- char buf[256]; +- +- if (geteuid() != 0) // This must be run setuid root +- return EACCES; +- +- my_pid = getpid(); +- boinc_pid = getppid(); // Assumes we were called by BOINC client +- +- if (argc == 2) +- boinc_pid = atoi(argv[1]); // Pass in any desired valid pid for testing +- +- if (signal(SIGPIPE, sig_pipe) == SIG_ERR) { +- fprintf(stderr, "signal error"); +- return 0; +- } +- +- setbuf(stdin, 0); +- setbuf(stdout, 0); +- +- while (1) { +- if (fgets(buf, sizeof(buf), stdin) == NULL) +- return 0; +- +- if (feof(stdin)) +- return 0; +- +- retval = get_boinc_proc_info(my_pid, boinc_pid); +- } +- +- return 0; +-} +- +-static int get_boinc_proc_info(int my_pid, int boinc_pid) { +- int retval; +- vector piv; +- PROCINFO child_total; +- unsigned int i; +- +- +- retval = build_proc_list(piv, boinc_pid); +- if (retval) +- return retval; +- +- for (i=0; i& pi, int boinc_pid) { +- boolean_t retval = FALSE; +- kern_return_t error; +- mach_port_t appstats_port; +- processor_set_t *psets, pset; +- task_t *tasks; +- unsigned i, j, pcnt, tcnt; +- PROCINFO pinfo; +- int pid, mib[4]; +- struct kinfo_proc kinfo; +- size_t kinfosize; +- +- appstats_port = mach_host_self(); +- +- // First, get a list of all tasks / processes +- +- error = host_processor_sets(appstats_port, &psets, &pcnt); +- if (error != KERN_SUCCESS) { +- fprintf(stderr, +- "Error in host_processor_sets(): %s", +- mach_error_string(error)); +- retval = TRUE; +- goto RETURN; +- } +- +- for (i = 0; i < pcnt; i++) { +- if (retval) +- break; +- +- error = host_processor_set_priv(appstats_port, psets[i], &pset); +- if (error != KERN_SUCCESS) { +- fprintf(stderr, +- "Error in host_processor_set_priv(): %s", +- mach_error_string(error)); +- retval = TRUE; +- break; +- } +- +- error = processor_set_tasks(pset, &tasks, &tcnt); +- if (error != KERN_SUCCESS) { +- fprintf(stderr, +- "Error in processor_set_tasks(): %s", +- mach_error_string(error)); +- retval = TRUE; +- break; +- } +- +- for (j = 0; j < tcnt; j++) { +- if (retval) +- break; +- +- memset(&pinfo, 0, sizeof(PROCINFO)); +- +- /* Get pid for this task. */ +- error = pid_for_task(tasks[j], &pid); +- if (error != KERN_SUCCESS) { +- /* Not a process, or the process is gone. */ +- continue; +- } +- +- // Get parent pid for each process +- /* Get kinfo structure for this task. */ +- kinfosize = sizeof(struct kinfo_proc); +- mib[0] = CTL_KERN; +- mib[1] = KERN_PROC; +- mib[2] = KERN_PROC_PID; +- mib[3] = pid; +- +- if (sysctl(mib, 4, &kinfo, &kinfosize, NULL, 0) == -1) { +- fprintf(stderr, +- "%s(): Error in sysctl(): %s", __FUNCTION__, +- strerror(errno)); +- retval = TRUE; +- break; +- } +- +- if (kinfo.kp_proc.p_stat == 0) { +- /* Zombie process. */ +- continue; +- } +- +- pinfo.id = pid; +- pinfo.parentid = kinfo.kp_eproc.e_ppid; +- +- pi.push_back(pinfo); +- } +- } +- +-#if ! GET_NON_BOINC_INFO +- // Next, find all BOINC's decendants and mark them for further study +- if (! retval) +- find_all_descendants(pi, boinc_pid, 0); +-#endif +- +- // Now get the process information for each descendant +- for (i = 0; i < pcnt; i++) { +- for (j = 0; j < tcnt; j++) { +- if (! retval) +- if (appstats_task_update(tasks[j], pi)) { +- retval = TRUE; +- goto RETURN; +- } +- +- /* Delete task port if it isn't our own. */ +- if (tasks[j] != mach_task_self()) { +- mach_port_deallocate(mach_task_self(), +- tasks[j]); +- } +- } +- +- error = vm_deallocate((vm_map_t)mach_task_self(), +- (vm_address_t)tasks, tcnt * sizeof(task_t)); +- if (error != KERN_SUCCESS) { +- if (!retval) +- fprintf(stderr, +- "Error in vm_deallocate(): %s", +- mach_error_string(error)); +- retval = TRUE; +- goto RETURN; +- } +- if ((error = mach_port_deallocate(mach_task_self(), +- pset)) != KERN_SUCCESS +- || (error = mach_port_deallocate(mach_task_self(), +- psets[i])) != KERN_SUCCESS) { +- if (!retval) +- fprintf(stderr, +- "Error in mach_port_deallocate(): %s", +- mach_error_string(error)); +- retval = TRUE; +- goto RETURN; +- } +- } +- +- error = vm_deallocate((vm_map_t)mach_task_self(), +- (vm_address_t)psets, pcnt * sizeof(processor_set_t)); +- if (error != KERN_SUCCESS) { +- if (!retval) +- fprintf(stderr, +- "Error in vm_deallocate(): %s", +- mach_error_string(error)); +- retval = TRUE; +- goto RETURN; +- } +- +- RETURN: +- return retval; +- +-} +- +-/* Update statistics for task a_task. */ +-static boolean_t appstats_task_update(task_t a_task, vector& piv) +-{ +- boolean_t retval; +- kern_return_t error; +- mach_msg_type_number_t count; +- task_basic_info_data_t ti; +- vm_address_t address; +- mach_port_t object_name; +- vm_region_top_info_data_t info; +- vm_size_t size; +- thread_array_t thread_table; +- unsigned int table_size; +- thread_basic_info_t thi; +- thread_basic_info_data_t thi_data; +- unsigned i; +- task_events_info_data_t events; +- vm_size_t vsize, rsize; +- PROCINFO *pinfo; +- int pid; +- +- /* Get pid for this task. */ +- error = pid_for_task(a_task, &pid); +- if (error != KERN_SUCCESS) { +- /* Not a process, or the process is gone. */ +- retval = FALSE; +- goto GONE; +- } +- +- for (i=0; iid == pid) +- break; +- } +- +- if (pinfo->id != pid) { +- fprintf(stderr, "pid %d missing from list\n", pid); +- retval = FALSE; +- goto RETURN; +- } +- +-#if ! GET_NON_BOINC_INFO +- if (!pinfo->is_boinc_app) { +- retval = FALSE; +- goto RETURN; +- } +-#endif +- /* +- * Get task_info, which is used for memory usage and CPU usage +- * statistics. +- */ +- count = TASK_BASIC_INFO_COUNT; +- error = task_info(a_task, TASK_BASIC_INFO, (task_info_t)&ti, &count); +- if (error != KERN_SUCCESS) { +- retval = FALSE; +- goto GONE; +- } +- +- /* +- * Get memory usage statistics. +- */ +- +- /* +- * Set rsize and vsize; they require no calculation. (Well, actually, +- * we adjust vsize if traversing memory objects to not include the +- * globally shared text and data regions). +- */ +- rsize = ti.resident_size; +-#if GET_SWAP_SIZE +- vsize = ti.virtual_size; +- /* +- * Iterate through the VM regions of the process and determine +- * the amount of memory of various types it has mapped. +- */ +- for (address = 0; ; address += size) { +- /* Get memory region. */ +- count = VM_REGION_TOP_INFO_COUNT; +- if (vm_region(a_task, &address, &size, +- VM_REGION_TOP_INFO, (vm_region_info_t)&info, &count, +- &object_name) != KERN_SUCCESS) { +- /* No more memory regions. */ +- break; +- } +- +- if (address >= GLOBAL_SHARED_TEXT_SEGMENT +- && address < (GLOBAL_SHARED_DATA_SEGMENT +- + SHARED_DATA_REGION_SIZE)) { +- /* This region is private shared. */ +- +- /* +- * Check if this process has the globally shared +- * text and data regions mapped in. If so, adjust +- * virtual memory size and exit loop. +- */ +- if (info.share_mode == SM_EMPTY) { +- vm_region_basic_info_data_64_t b_info; +- +- count = VM_REGION_BASIC_INFO_COUNT_64; +- if (vm_region_64(a_task, &address, +- &size, VM_REGION_BASIC_INFO, +- (vm_region_info_t)&b_info, &count, +- &object_name) != KERN_SUCCESS) { +- break; +- } +- +- if (b_info.reserved) { +- vsize -= (SHARED_TEXT_REGION_SIZE + SHARED_DATA_REGION_SIZE); +- break; +- } +- } +- } +- } +-#else +- vsize = 0; +-#endif // GET_SWAP_SIZE +- pinfo->working_set_size = rsize; +- pinfo->swap_size = vsize; +- +- /* +- * Get CPU usage statistics. +- */ +- +- pinfo->user_time = (double)ti.user_time.seconds + (((double)ti.user_time.microseconds)/1000000.); +- pinfo->kernel_time = (double)ti.system_time.seconds + (((double)ti.system_time.microseconds)/1000000.); +- +- /* Get number of threads. */ +- error = task_threads(a_task, &thread_table, &table_size); +- if (error != KERN_SUCCESS) { +- retval = FALSE; +- goto RETURN; +- } +- +-#if GET_CPU_TIMES +- /* Iterate through threads and collect usage stats. */ +- thi = &thi_data; +- for (i = 0; i < table_size; i++) { +- count = THREAD_BASIC_INFO_COUNT; +- if (thread_info(thread_table[i], THREAD_BASIC_INFO, +- (thread_info_t)thi, &count) == KERN_SUCCESS) { +- if ((thi->flags & TH_FLAGS_IDLE) == 0) { +- pinfo->user_time += (double)thi->user_time.seconds + (((double)thi->user_time.microseconds)/1000000.); +- pinfo->kernel_time += (double)thi->system_time.seconds + (((double)thi->system_time.microseconds)/1000000.); +- } +- } +- if (a_task != mach_task_self()) { +- if ((error = mach_port_deallocate(mach_task_self(), +- thread_table[i])) != KERN_SUCCESS) { +- fprintf(stderr, +- "Error in mach_port_deallocate(): %s", +- mach_error_string(error)); +- retval = TRUE; +- goto RETURN; +- } +- } +- } +- if ((error = vm_deallocate(mach_task_self(), (vm_offset_t)thread_table, +- table_size * sizeof(thread_array_t)) != KERN_SUCCESS)) { +- fprintf(stderr, +- "Error in vm_deallocate(): %s", +- mach_error_string(error)); +- retval = TRUE; +- goto RETURN; +- } +-#endif GET_CPU_TIMES +- +- /* +- * Get event counters. +- */ +- +- count = TASK_EVENTS_INFO_COUNT; +- if (task_info(a_task, TASK_EVENTS_INFO, +- (task_info_t)&events, &count) != KERN_SUCCESS) { +- /* Error. */ +- retval = FALSE; +- goto RETURN; +- } else { +- pinfo->page_fault_count = events.pageins; +- } +- +- retval = FALSE; +- RETURN: +- GONE: +- +- return retval; +-} +- +-// Scan the process table marking all the decendants of the parent +-// process. Loop thru entire table as the entries aren't in order. +-// Recurse at most 5 times to get additional child processes. +-// +-static void find_all_descendants(vector& piv, int pid, int rlvl) { +- unsigned int i; +- +- if (rlvl > MAX_DESCENDANT_LEVEL) { +- return; +- } +- for (i=0; i& piv, int pid, int rlvl) { +- unsigned int i; +- +- if (rlvl > (MAX_DESCENDANT_LEVEL - 1)) { +- return; +- } +- for (i=0; i& piv) { +- unsigned int i; +- +- memset(&pi, 0, sizeof(pi)); +- for (i=0; i. +- */ +- +- +-#ifdef __cplusplus +-extern "C" { +-#endif +- +- +-#define OLD_GDB_DYLD_INTERFACE __ppc__ || __i386__ +- +-#if OLD_GDB_DYLD_INTERFACE +-/* +- * gdb_dyld_version is the version of gdb interface that dyld is currently +- * exporting. For the interface described in this header file gdb_dyld_version +- * is 2. As the gdb/dyld interface changes this number will be incremented and +- * comments will be added as to what are the are changes for the various +- * versions. +- */ +-extern unsigned int gdb_dyld_version; +- +-/* +- * gdb_dyld_state_changed is the internal dyld routine called by dyld to notify +- * gdb that the state of the data structures has changed. gdb is expected to +- * put a break point on this routine and re-read the internal dyld data +- * structures below when this break point is hit. +- */ +-extern void gdb_dyld_state_changed(void); +- +-/* +- * gdb looks directly at parts of two of dyld's internal data structures. The +- * list of object file images and the list of library images. The parts of +- * these structures that gdb looks at will not change unless the value of +- * gdb_dyld_version changes. The size of these structures and the other fields +- * that gdb does not look at may change. +- * +- * struct object_images { +- * struct object_image images[NOBJECT_IMAGES]; +- * unsigned long nimages; +- * struct object_images *next_images; +- * ... +- * }; +- * +- * struct library_images { +- * struct library_image images[NLIBRARY_IMAGES]; +- * unsigned long nimages; +- * struct library_images *next_images; +- * ... +- * }; +- * +- * Both the object_image structure and the library_image structure +- * start with a structure containing the following fields: +- * +- * struct image { +- * char *physical_name; physical image name (file name) +- * unsigned long vmaddr_slide; the slide from the staticly linked address +- * struct mach_header *mh; address of the mach header of the image +- * unsigned long valid; TRUE if this is struct is valid +- * char *name; image name for reporting errors +- * ... +- * }; +- * +- * In gdb_dyld_version 1 the first field was "name". In gdb_dyld_version 2 the +- * first field was changed to "physical_name" and a new fifth field "name" was +- * added. These two fields are set to the same values except in the case of +- * zero-link. In zero-link the NSLinkModule() option +- * NSLINKMODULE_OPTION_TRAILING_PHYS_NAME is used and then the physical_name is +- * the file name of the module zero-link loaded that is part of the logical +- * image "name". +- */ +- +-/* object_images is the global object_images structure */ +- +-/* the number of gdb_object_image structures present per bucket */ +-extern unsigned int gdb_nobject_images; +- +-/* the size of each gdb_object_image structure */ +-extern unsigned int gdb_object_image_size; +- +-/* library_images is the global library_images structure */ +- +-/* the number of gdb_library_image structures present per bucket */ +-extern unsigned int gdb_nlibrary_images; +- +-/* the size of each gdb_library_image structure */ +-extern unsigned int gdb_library_image_size; +- +-#endif /* OLD_GDB_DYLD_INTERFACE */ +- +- +-/* +- * Beginning in Mac OS X 10.4, there is a new mechanism for dyld to notify gdb and other about new images. +- * +- * +- */ +- +-enum dyld_image_mode { dyld_image_adding=0, dyld_image_removing=1 }; +- +-struct dyld_image_info { +- const struct mach_header* imageLoadAddress; /* base address image is mapped into */ +- const char* imageFilePath; /* path dyld used to load the image */ +- uintptr_t imageFileModDate; /* time_t of image file */ +- /* if stat().st_mtime of imageFilePath does not match imageFileModDate, */ +- /* then file has been modified since dyld loaded it */ +-}; +- +- +-typedef void (*dyld_image_notifier)(enum dyld_image_mode mode, uint32_t infoCount, const struct dyld_image_info info[]); +- +-/* +- * gdb looks for the symbol "_dyld_all_image_infos" in dyld. It contains the fields below. +- * +- * For a snap shot of what images are currently loaded, the infoArray fields contain a pointer +- * to an array of all images. If infoArray is NULL, it means it is being modified, come back later. +- * +- * To be notified of changes, gdb sets a break point on the notification field. The function +- * it points to is called by dyld with an array of information about what images have been added +- * (dyld_image_adding) or are about to be removed (dyld_image_removing). +- * +- * The notification is called after infoArray is updated. This means that if gdb attaches to a process +- * and infoArray is NULL, gdb can set a break point on notification and let the proccess continue to +- * run until the break point. Then gdb can inspect the full infoArray. +- */ +- struct dyld_all_image_infos { +- uint32_t version; /* == 1 in Mac OS X 10.4 */ +- uint32_t infoArrayCount; +- const struct dyld_image_info* infoArray; +- dyld_image_notifier notification; +- bool processDetachedFromSharedRegion; +-}; +-extern struct dyld_all_image_infos dyld_all_image_infos; +- +- +- +- +-#ifdef __cplusplus +-} +-#endif +- +-#endif /* _DYLD_GDB_ */ diff --git a/boinc-6.2.18.tar.bz2 b/boinc-6.2.18.tar.bz2 new file mode 100644 index 0000000..7808364 --- /dev/null +++ b/boinc-6.2.18.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a58f7ae15461724ac02934f03da58b63a9c24edb6d8999c1691256b2cde04c5 +size 28771307 diff --git a/boinc-LC_MESSAGES.patch b/boinc-LC_MESSAGES.patch new file mode 100644 index 0000000..8771d78 --- /dev/null +++ b/boinc-LC_MESSAGES.patch @@ -0,0 +1,66 @@ +--- locale/client/Makefile.am.orig 2008-08-25 22:38:54.000000000 +0200 ++++ locale/client/Makefile.am 2008-08-25 22:38:22.000000000 +0200 +@@ -0,0 +1,53 @@ ++## -*- mode: makefile; tab-width: 4 -*- ++ ++include $(top_srcdir)/Makefile.incl ++ ++datadir = $(prefix)/share/locale ++ ++locale_dirs = \ ++ af_ZA \ ++ ar \ ++ be \ ++ bg \ ++ ca \ ++ cs \ ++ cs_CZ \ ++ da \ ++ de \ ++ el \ ++ en_US \ ++ es \ ++ eu \ ++ fi \ ++ fr \ ++ hr \ ++ hu \ ++ it \ ++ ja \ ++ ko_KR \ ++ lt \ ++ lv \ ++ nb \ ++ nl \ ++ pl \ ++ pt \ ++ pt_BR \ ++ ro \ ++ ru \ ++ sk \ ++ sl \ ++ sv_SE \ ++ tr \ ++ uk \ ++ zh_CN \ ++ zh_TW ++ ++install-exec-hook: ++ mydir=$(DESTDIR)$(datadir) ;\ ++ for ldir in $(locale_dirs) ; do \ ++ $(INSTALL) -d $$mydir/$$ldir/LC_MESSAGES ; \ ++ if [ -f "$$ldir/BOINC Manager.mo" ] ; then \ ++ $(INSTALL) "$$ldir/BOINC Manager.mo" $$mydir/$$ldir/LC_MESSAGES/"BOINC Manager.mo" ; \ ++ fi ;\ ++ done ++ +--- configure.ac.orig 2008-08-25 22:29:18.000000000 +0200 ++++ configure.ac 2008-08-25 23:19:42.000000000 +0200 +@@ -670,6 +670,7 @@ + doc/Makefile + doc/manpages/Makefile + lib/Makefile ++ locale/client/Makefile + Makefile + py/Boinc/boinc_path_config.py:py/Boinc/boinc_path_config.py.in + py/Boinc/Makefile diff --git a/boinc-client.changes b/boinc-client.changes new file mode 100644 index 0000000..14cd37f --- /dev/null +++ b/boinc-client.changes @@ -0,0 +1,11 @@ +------------------------------------------------------------------- +Sat Oct 4 05:44:49 CEST 2008 - mauro@suse.de + +- Add bnc-431510.patch to fix bnc#431510. + +------------------------------------------------------------------- +Mon Sep 8 22:15:35 CEST 2008 - mauro@suse.de + +- initial package for SuSE. boinc 6.2.18 (based on the enzokiel's + opensuse version). + diff --git a/boinc-client.spec b/boinc-client.spec new file mode 100644 index 0000000..d0e5b2d --- /dev/null +++ b/boinc-client.spec @@ -0,0 +1,244 @@ +# +# spec file for package boinc-client (Version 6.2.18) +# +# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + +# norootforbuild + + +Name: boinc-client +Summary: The Berkeley Open Infrastructure for Network Computing (BOINC) +Version: 6.2.18 +Release: 1 +Url: http://boinc.berkeley.edu/ +Source0: boinc-%{version}.tar.bz2 +Source1: boinc-icons.tar.bz2 +Source2: boinc-logrotate +Source3: boinc-gui.desktop +Source4: boincmgr +Patch0: boinc-docbook2x.patch +Patch1: boinc-LC_MESSAGES.patch +Patch2: boinc-rcscript.patch +Patch3: boinc-sysconfig.patch +Patch4: boinc-subdirs.patch +Patch5: bnc-431510.patch +License: LGPL v2.1 only +Group: Productivity/Clustering/Computing +BuildRequires: libcurl-devel >= 7.15.2 python-mysql update-desktop-files +BuildRequires: Mesa-devel freeglut-devel libopenssl-devel +BuildRequires: gcc-c++ gettext-runtime mysql-devel wxGTK-devel >= 2.8.7 +BuildRequires: docbook2x libjpeg-devel libxslt xorg-x11-libXmu-devel +Requires: logrotate +BuildRoot: %{_tmppath}/%{name}-%{version}-build + +%description +The Berkeley Open Infrastructure for Network Computing (BOINC) is an +open-source software platform which supports distributed computing, +primarily in the form of "volunteer" computing and "desktop Grid" +computing. It is well suited for problems which are often described as +"trivially parallel". + +BOINC is the underlying software used by projects such as SETI@home, +Einstein@Home, ClimatePrediciton.net, the World Community Grid, and +many other distributed computing projects. + + + +Authors: +-------- + University of California, Berkeley + Dr. David P. Anderson + Rom Walton + Charlie Fenton + +%package -n boinc-gui-lang +License: LGPL v2.1 only +Summary: The Berkeley Open Infrastructure for Network Computing (BOINC) +Group: Productivity/Clustering/Computing + +%description -n boinc-gui-lang +The Berkeley Open Infrastructure for Network Computing (BOINC) is an +open-source software platform which supports distributed computing, +primarily in the form of "volunteer" computing and "desktop Grid" +computing. It is well suited for problems which are often described as +"trivially parallel". + +BOINC is the underlying software used by projects such as SETI@home, +Einstein@Home, ClimatePrediciton.net, the World Community Grid, and +many other distributed computing projects. + + + +Authors: +-------- + University of California, Berkeley + Dr. David P. Anderson + Rom Walton + Charlie Fenton + +%package -n boinc-gui +License: LGPL v2.1 only +Summary: The Berkeley Open Infrastructure for Network Computing (BOINC) +Group: Productivity/Clustering/Computing +Requires: boinc-client = %{version}-%{release}, boinc-gui-lang = %{version}-%{release} + +%description -n boinc-gui +The Berkeley Open Infrastructure for Network Computing (BOINC) is an +open-source software platform which supports distributed computing, +primarily in the form of "volunteer" computing and "desktop Grid" +computing. It is well suited for problems which are often described as +"trivially parallel". + +BOINC is the underlying software used by projects such as SETI@home, +Einstein@Home, ClimatePrediciton.net, the World Community Grid, and +many other distributed computing projects. + + + +Authors: +-------- + University of California, Berkeley + Dr. David P. Anderson + Rom Walton + Charlie Fenton + +%package devel +License: LGPL v2.1 only +Summary: The Berkeley Open Infrastructure for Network Computing (BOINC) +Group: Productivity/Clustering/Computing +Provides: boinc-client-devel = %{version} +Requires: boinc-client = %{version}-%{release} + +%description devel +The Berkeley Open Infrastructure for Network Computing (BOINC) is an +open-source software platform which supports distributed computing, +primarily in the form of "volunteer" computing and "desktop Grid" +computing. It is well suited for problems which are often described as +"trivially parallel". + +BOINC is the underlying software used by projects such as SETI@home, +Einstein@Home, ClimatePrediciton.net, the World Community Grid, and +many other distributed computing projects. + + + +Authors: +-------- + University of California, Berkeley + Dr. David P. Anderson + Rom Walton + Charlie Fenton + +%prep +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT +%setup -q -n boinc-%{version} +%patch0 +%patch1 +%patch2 +%patch3 +%patch4 +%patch5 -p1 +tar -xvjf %{S:1} + +%build +export RPM_OPT_FLAGS="-O3 -funroll-loops -fforce-addr -ffast-math" +export CFLAGS="$RPM_OPT_FLAGS" +./_autosetup +./configure \ + --prefix=%{_prefix} \ + --libdir=%{_libdir} \ + --mandir=%{_mandir} \ + --disable-server \ + --enable-client \ + --enable-unicode +make + +%install +make DESTDIR=$RPM_BUILD_ROOT install +# create symlink for boinc_client +ln -s %{_bindir}/boinc_client $RPM_BUILD_ROOT%{_bindir}/boinc +# install logrotate and create symlink to /etc/int.d/boinc-client +install -d -m755 $RPM_BUILD_ROOT%{_sbindir} +ln -s %{_sysconfdir}/init.d/boinc-client $RPM_BUILD_ROOT%{_sbindir}/rcboinc-client +install -D -m644 %{S:2} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/boinc +# istall desktop-file and icons +install -D -m644 %{S:3} $RPM_BUILD_ROOT%{_datadir}/applications/boinc-gui.desktop +install -D -m644 boinc-gui-128.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/128x128/apps/boinc-gui.png +install -D -m644 boinc-gui-64.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/64x64/apps/boinc-gui.png +install -D -m644 boinc-gui-48.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/48x48/apps/boinc-gui.png +install -D -m644 boinc-gui-32.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/32x32/apps/boinc-gui.png +install -D -m644 boinc-gui-22.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/22x22/apps/boinc-gui.png +install -D -m644 boinc-gui-16.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/16x16/apps/boinc-gui.png +#removing sysconfig entry +rm $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/boinc-client +# install boincmgr +install -D -m755 %{S:4} $RPM_BUILD_ROOT%{_bindir}/boincmgr + +%clean +rm -rf $RPM_BUILD_ROOT + +%pre + +%post + +%preun +%stop_on_removal boinc-client + +%postun +%restart_on_update boinc-client + +%files +%defattr(-,root,root) +%{_bindir}/boinc +%{_bindir}/boinc_client +%{_bindir}/boinc_cmd +%{_bindir}/ca-bundle.crt +%{_bindir}/crypt_prog +%{_bindir}/switcher +%{_sbindir}/* +%config %{_sysconfdir}/init.d/* +%config(noreplace) %{_sysconfdir}/logrotate.d/* +#%{_sysconfdir}/sysconfig/* +%{_mandir}/man*/* +%doc COPYING COPYRIGHT checkin_* INSTALL notes todo TODO_OLD + +%files -n boinc-gui-lang +%defattr(-,root,root) +%{_datadir}/locale/*/LC_MESSAGES/* +%{_datadir}/locale/ko_KR +%{_datadir}/locale/ko_KR/LC_MESSAGES +%{_datadir}/locale/sv_SE +%{_datadir}/locale/sv_SE/LC_MESSAGES + +%files -n boinc-gui +%defattr(-,root,root) +%{_bindir}/boincmgr +%{_bindir}/boinc_gui +%{_datadir}/applications/* +%{_datadir}/icons/hicolor/*/apps/* + +%files devel +%defattr(-,root,root) +%dir %{_includedir}/BOINC +%{_includedir}/BOINC/*.h +%{_libdir}/*a + +%changelog +* Sat Oct 04 2008 mauro@suse.de +- Add bnc-431510.patch to fix bnc#431510. +* Tue Sep 09 2008 mauro@suse.de +- initial package for SuSE. boinc 6.2.18 (based on the enzokiel's + opensuse version). diff --git a/boinc-docbook2x.patch b/boinc-docbook2x.patch new file mode 100644 index 0000000..e7513d4 --- /dev/null +++ b/boinc-docbook2x.patch @@ -0,0 +1,11 @@ +--- configure.ac.orig 2008-08-25 22:29:18.000000000 +0200 ++++ configure.ac 2008-08-25 23:06:01.000000000 +0200 +@@ -150,7 +150,7 @@ + dnl Check for docbook2x-man, which we use to create the manpages in + dnl doc/manpages, and set the conditional HAVE_DOCBOOK2X_MAN to build + dnl the manpages only if docbook2x-man is available. +-AC_PATH_PROG(DOCBOOK2X_MAN, docbook2x-man) ++AC_PATH_PROG(DOCBOOK2X_MAN, docbook-to-man) + AM_CONDITIONAL(HAVE_DOCBOOK2X_MAN, [test -n "${DOCBOOK2X_MAN}"]) + + AC_SUBST([CLIENT_BIN_FILENAME],[boinc${EXEEXT}]) diff --git a/boinc-gui.desktop b/boinc-gui.desktop new file mode 100644 index 0000000..56decfd --- /dev/null +++ b/boinc-gui.desktop @@ -0,0 +1,20 @@ + +[Desktop Entry] +Encoding=UTF-8 +Exec=boincmgr +Icon=boinc-gui +Terminal=false +Type=Application +Name=BOINC Manager +GenericName=BOINC monitor and control utility +GenericName[de]=BOINC Ãœberwachungs- und Kontrollprogramm +GenericName[pt]=Monitorização BOINC e utilitário de controlo +GenericName[cs]=Monitorovací a ovládací nástroj pro BOINC +Comment=Configure or monitor a BOINC core client +Comment[de]=BOINC Basis Client konfigurieren oder überwachen +Comment[pt]=Configurar ou monitorizar o cliente básico do BOINC +Comment[cs]=Monitoruje a nastavuje klienta BOINC +Categories=Utility;X-SuSE-WebUtility;GTK; +X-KDE-StartupNotify=true +X-SuSE-translate=true + diff --git a/boinc-icons.tar.bz2 b/boinc-icons.tar.bz2 new file mode 100644 index 0000000..e644c9f --- /dev/null +++ b/boinc-icons.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e8e4e90787afa32246b36ba46c373ab05f993db1899dc4d59cb26f482def2bb +size 45415 diff --git a/boinc-logrotate b/boinc-logrotate new file mode 100644 index 0000000..5e46b3c --- /dev/null +++ b/boinc-logrotate @@ -0,0 +1,27 @@ +/var/log/boinc_client.log { + daily + compress + dateext + notifempty + rotate 99 + size 4M + missingok + create 640 root root + postrotate + /etc/init.d/boinc-client restart + endscript +} + +/var/log/boinc_client_err.log { + daily + compress + dateext + notifempty + rotate 99 + size 4M + missingok + create 640 root root + postrotate + /etc/init.d/boinc-client restart + endscript +} diff --git a/boinc-rcscript.patch b/boinc-rcscript.patch new file mode 100644 index 0000000..6120ac7 --- /dev/null +++ b/boinc-rcscript.patch @@ -0,0 +1,206 @@ +--- client/scripts/boinc-client.in.orig Wed Sep 03 13:08:27 2008 ++++ client/scripts/boinc-client.in Wed Sep 03 13:21:19 2008 +@@ -25,7 +25,7 @@ + # Provides: boinc + # Required-Start: $network + # Required-Stop: $network +-# Default-Start: 3 4 5 ++# Default-Start: 3 4 5 + # Default-Stop: 0 1 2 6 + # Short-Description: This script monitors the BOINC client. + # Description: This script starts the local BOINC client as a daemon +@@ -54,12 +54,13 @@ + ######################################################################## + + # set the basic PATH +-export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/ucb/bin ++PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/ucb/bin ++export PATH + + # Find the correct ps to use. On solaris /usr/ucb/ps is the one to use + # on everything else, we hope the first one in the path is the right one. +-if [ -x /usr/ucb/ps ] ; then +- PS=/usr/ucb/ps ++if [ -x /bin/ps ] ; then ++ PS=/bin/ps + else + PS=ps + fi +@@ -72,7 +73,7 @@ + ######################################################################## + SHELLS="bash ksh zsh" + # count how many times we've tried to restart +-TRIES=$1 ++TRIES=$2 + if [ -z "$TRIES" ] ; then + TRIES=0 + fi +@@ -92,7 +93,7 @@ + for try in $SHELLS ; do + ex=`which $try` + if [ ! -z "${ex}" -a -x "${ex}" ] ; then +- if ${ex} $0 $TRIES ; then ++ if ${ex} $0 $1 $TRIES ; then + # it worked, we can exit + exit 0 + else +@@ -114,7 +115,7 @@ + + # Name of user to run as: + # +-BOINCUSER=boinc ++BOINCUSER=root + + # Working directory. Could be /home/boinc, /var/lib/boinc, etc.. + # The reason I prefer /var/lib/boinc is that this works best for a +@@ -129,7 +130,7 @@ + # + BOINCEXE_NAME=boinc_client + BOINCEXE=${bindir}/${BOINCEXE_NAME} +-BOINCCMD_NAME=boinccmd ++BOINCCMD_NAME=boinc_cmd + BOINCCMD=${bindir}/${BOINCCMD_NAME} + + # Log files (you should rotate these occasionally) +@@ -161,9 +162,11 @@ + + # If there is the subsys directory, then use it ... + if [ -d /var/lock/subsys/ ]; then +- LOCKFILE=/var/lock/subsys/boinc-client ++ LOCKFILE=/var/lock/subsys/${BOINCEXE_NAME} + elif [ -d /var/lock ]; then +- LOCKFILE=/var/lock/boinc-client ++ LOCKFILE=/var/lock/${BOINCEXE_NAME} ++elif [ -d /var/run ]; then ++ LOCKFILE=/var/run/${BOINCEXE_NAME}.lock + fi + + # su on Linux seems to need this to be set to work properly in a script +@@ -175,25 +178,26 @@ + # but if the functions are not found we create our own simple replacements. + # (The idea for replacing the functions comes from OpenAFS. Thanks guys!) + +-if [ -f /etc/rc.d/init.d/functions ] ; then +- . /etc/rc.d/init.d/functions +- if `printf "Hello" >/dev/null 2>/dev/null` ; then ++if [ -f /etc/init.d/functions ] ; then ++ . /etc/init.d/functions ++else ++ if printf "Hello" >/dev/null 2>/dev/null ; then + # printf works + printcol='printf \033[60G%s' +- if `echo -en "Hello" >/dev/null 2>/dev/null` ; then ++ elif echo -en "Hello" >/dev/null 2>/dev/null ; then + # echo -en works + printcol='echo -en \033[60G' +- else ++ else + # no printf make do with echo -n + printcol="echo -n .........." +- fi +- function echo_success () { $printcol "[OK]" ; } +- function echo_failure () { $printcol "[FAILED]" ; } +- function echo_warning () { $printcol "[WARNING]" ; } +- function killproc() { ++ fi ++ function echo_success () { $printcol "[OK]" ; } ++ function echo_failure () { $printcol "[FAILED]" ; } ++ function echo_warning () { $printcol "[WARNING]" ; } ++ function killproc() { + PID=`local_pidof $1` + [ $PID ] && kill $PID +- } ++ } + fi + + # check if we have pidof. If not use ps and grep for the same job. +@@ -212,7 +216,9 @@ + # If we don't have it, use su for the same job. + # + if [ ! -x /sbin/runuser ] ; then +- alias runuser=su ++ RUNUSER=su ++else ++ RUNUSER=runuser + fi + + # Some additional places to look for executables +@@ -226,16 +232,16 @@ + ./boinc-client.conf + ./boinc.conf + /etc/sysconfig/boinc-client +-/etc/default/boinc-client +-/etc/boinc-client.conf +-${sysconfdir}/sysconfig/boinc-client +-${sysconfdir}/default/boinc-client +-${sysconfdir}/boinc-client.conf + /etc/sysconfig/boinc ++/etc/default/boinc-client + /etc/default/boinc ++/etc/boinc-client.conf + /etc/boinc.conf ++${sysconfdir}/sysconfig/boinc-client + ${sysconfdir}/sysconfig/boinc ++${sysconfdir}/default/boinc-client + ${sysconfdir}/default/boinc ++${sysconfdir}/boinc-client.conf + ${sysconfdir}/boinc.conf + none + " +@@ -264,6 +270,9 @@ + . ${config_file} + fi + ++## Get group-id for user $BOINCUSER in stringformat ++BOINCGROUP=`id -gn $BOINCUSER` ++ + ## Add ${BOINCDIR} to the path, just in case the executables are stored there. + export PATH=${PATH}:${BOINCDIR} + +@@ -272,7 +281,7 @@ + echo -n "Creating $BOINCDIR " + if mkdir -p $BOINCDIR 2>/dev/null ; then + if [ -n "$BOINCUSER" ] ; then +- if chown $BOINCUSER $BOINCDIR ; then ++ if chown $BOINCUSER:$BOINCGROUP $BOINCDIR ; then + echo_success + else + echo_failure +@@ -288,7 +297,8 @@ + fi + + ## Check what user we are running as: +-USERNOW=`whoami` ++# we can't rely on the existence of "whoami" or "logname", so we'll use ps. ++USERNOW=`${PS} u $$ | tail -1 | awk '{print $1}'` + if [ -z "$BOINCUSER" ] ; then + BOINCUSER="${USERNOW}" + fi +@@ -321,7 +331,8 @@ + exit 8 + fi + elif [ "${USERNOW}" = "root" ] ; then +- if [ -z `su -s /bin/sh $BOINCUSER -c "if test -O ${BOINCDIR} ; then echo success ; fi"` ]; then ++ cmd="if test -O ${BOINCDIR} ; then echo success ; fi" ++ if [ -z `su $BOINCUSER -c "$cmd"` ]; then + echo -n ERROR: $BOINCDIR is not owned by $BOINCUSER. + echo_failure + echo +@@ -389,6 +400,7 @@ + echo + fi + ++ touch ${LOGFILE} ${ERRORLOG} + NOCORE="ulimit -c 0 2>&1 >/dev/null" + echo -n "Starting BOINC client as a daemon: " + if [ "${BOINCUSER}" = "${USERNOW}" ] ; then +@@ -396,7 +408,8 @@ + $NOCORE + $BOINCEXE $BOINCOPTS >>$LOGFILE 2>>$ERRORLOG & + else +- runuser - $BOINCUSER -c "$NOCORE ; $BOINCEXE $BOINCOPTS >>$LOGFILE 2>>$ERRORLOG" ++ chown ${BOINCUSER}:$BOINCGROUP ${LOGFILE} ${ERRORLOG} ++ ${RUNUSER} - $BOINCUSER -c "$NOCORE ; $BOINCEXE $BOINCOPTS >>$LOGFILE 2>>$ERRORLOG" 2>/dev/null > /dev/null & + fi + sleep 3 + PID=`local_pidof $BOINCEXE_NAME` diff --git a/boinc-subdirs.patch b/boinc-subdirs.patch new file mode 100644 index 0000000..cc3b67a --- /dev/null +++ b/boinc-subdirs.patch @@ -0,0 +1,16 @@ +--- Makefile.am.orig 2008-08-25 22:29:18.000000000 +0200 ++++ Makefile.am 2008-08-25 22:43:08.000000000 +0200 +@@ -13,11 +13,11 @@ + endif + + if ENABLE_CLIENT +- CLIENT_SUBDIRS = client ++ CLIENT_SUBDIRS = client client/scripts + endif + + if BUILD_CLIENTGUI +- CLIENTGUI_SUBDIRS = clientgui sea ++ CLIENTGUI_SUBDIRS = clientgui sea locale/client + endif + + # ORDER MATTERS below. One must build dependencies FIRST, then things diff --git a/boinc-sysconfig.patch b/boinc-sysconfig.patch new file mode 100644 index 0000000..c732719 --- /dev/null +++ b/boinc-sysconfig.patch @@ -0,0 +1,91 @@ +--- client/scripts/boinc-client.conf.orig 2008-08-28 14:24:15.000000000 +0200 ++++ client/scripts/boinc-client.conf 2008-08-28 14:22:55.000000000 +0200 +@@ -0,0 +1,63 @@ ++## Path: Applications/BOINC ++## Description: Define userid under which boinc-client is run ++## Type: string ++## Default: "root" ++## Config: boinc-client ++# Here you should change the default value to another existing user, ++# for example use your (non-root) account. ++BOINCUSER="root" ++## Path: Applications/BOINC ++## Description: Define directory in which boinc-client is run ++## Type: string ++## Default: "/var/lib/boinc" ++## Config: boinc-client ++# Enter the dirctory where boinc-client shall store the project data. ++BOINCDIR="/var/lib/boinc" ++## Path: Applications/BOINC ++## Description: Define log file ++## Type: string ++## Default: "/var/log/boinc_client.log" ++## Config: boinc-client ++# Name and location of boinc logfile, normally no change necessary. ++LOGFILE="/var/log/boinc_client.log" ++## Path: Applications/BOINC ++## Description: Define error log file ++## Type: string ++## Default: "/var/log/boinc_client_err.log" ++## Config: boinc-client ++# Name and location of boinc error-logfile, normally no change necessary. ++ERRORLOG="/var/log/boinc_client_err.log" ++## Path: Applications/BOINC ++## Description: Define pid file ++## Type: string ++## Default: "/var/run/boinc_client.pid" ++## Config: boinc-client ++# Name and location of boinc pid-file, normally no change necessary. ++PIDFILE="/var/run/boinc_client.pid" ++## Path: Applications/BOINC ++## Description: Define lockfile ++## Type: string ++## Default: "/var/lock/subsys/boinc_client" ++## Config: boinc-client ++# Name and location of boinc lockfile, normally no change necessary. ++LOCKFILE="/var/lock/subsys/boinc_client" ++## Path: Applications/BOINC ++## Description: Define BOINC options ++## Type: string ++## Default: "--dir $BOINCDIR" ++## Config: boinc-client ++# Add this option if you want to allow boinc manager connections from remote machines ++# BOINCOPTS="--allow_remote_gui_rpc" ++# ++# Add this option if you want to turn off all logging ++# BOINCOPTS="--daemon" ++# ++# Add this option if you want to redirect logging to the files stderrdae.txt ++# and stdoutdae.txt in BOINCDIR rather than LOGFILE and ERRORLOG ++# BOINCOPTS="--redirectio" ++# ++# Add this option if you want to run only when no logins from anywhere are active ++# BOINCOPTS="--check_all_logins" ++# ++# For more options read the manpages. ++BOINCOPTS="--dir $BOINCDIR" +--- client/scripts/Makefile.am.orig 2008-08-25 22:29:15.000000000 +0200 ++++ client/scripts/Makefile.am 2008-08-25 22:47:29.000000000 +0200 +@@ -1,7 +1,17 @@ +-all: +- chmod +x boinc-client +- +-install: +- $(INSTALL) -b boinc-client /etc/init.d/ ++## -*- mode: makefile; tab-width: 4 -*- + ++install-exec-hook: ++ chmod +x boinc-client ++ $(INSTALL) -d $(DESTDIR)/etc/init.d ++ $(INSTALL) -b boinc-client $(DESTDIR)/etc/init.d/boinc-client ++ if [ -d /etc/sysconfig ] ; then \ ++ $(INSTALL) -d $(DESTDIR)/etc/sysconfig ; \ ++ $(INSTALL) -m644 boinc-client.conf $(DESTDIR)/etc/sysconfig/boinc-client ; \ ++ elif [ -d /etc/default ] ; then \ ++ $(INSTALL) - $(DESTDIR)/etc/default ; \ ++ $(INSTALL) -m644 boinc-client.conf $(DESTDIR)/etc/default/boinc-client ; \ ++ else \ ++ $(INSTALL) -d $(DESTDIR)/etc ; \ ++ $(INSTALL) -m644 boinc-client.conf $(DESTDIR)/etc/boinc-client.conf ; \ ++ fi + diff --git a/boincmgr b/boincmgr new file mode 100644 index 0000000..055e36c --- /dev/null +++ b/boincmgr @@ -0,0 +1,24 @@ +#!/bin/sh +# +# BOINC Manager on Unix +#!/bin/sh +# +# BOINC - start the BOINC Manager + +# Source the configuration file for the boinc-client init script. +# +config_files="./boinc-client.conf /etc/sysconfig/boinc-client" + +# Find the correct config file +# +for config_file in $config_files ; do + if [ -f ${config_file} ] ; then + . ${config_file}; + break; + fi +done + +# Change directory and start BOINC Manager +# +cd $BOINCDIR +exec boinc_gui diff --git a/ready b/ready new file mode 100644 index 0000000..473a0f4