summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ncpfs/01-linux3.0_uname.patch20
-rw-r--r--ncpfs/02-legacy.patch981
-rw-r--r--ncpfs/03-multiple_security_issues.patch511
-rw-r--r--ncpfs/04-drop-mtab-support.patch268
-rw-r--r--ncpfs/05-ldflags.patch77
-rw-r--r--ncpfs/06-makefile-remove-generated.patch14
-rw-r--r--ncpfs/PKGBUILD80
7 files changed, 0 insertions, 1951 deletions
diff --git a/ncpfs/01-linux3.0_uname.patch b/ncpfs/01-linux3.0_uname.patch
deleted file mode 100644
index 6818af87b..000000000
--- a/ncpfs/01-linux3.0_uname.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -aur ncpfs-2.2.6.org/sutil/ncpm_common.c ncpfs-2.2.6/sutil/ncpm_common.c
---- ncpfs-2.2.6.org/sutil/ncpm_common.c 2011-08-23 16:45:11.000000000 +0200
-+++ ncpfs-2.2.6/sutil/ncpm_common.c 2011-08-23 16:52:26.049972551 +0200
-@@ -245,13 +245,13 @@
-
- static int getmountver(void) {
- struct utsname name;
-- int maj, mid, rev;
-+ int maj = 0, mid = 0, rev = 0;
- int ver;
-
- if (uname(&name)) {
- errexit(1, _("Cannot get kernel release\n"));
- }
-- if (sscanf(name.release, "%d.%d.%d", &maj, &mid, &rev) != 3) {
-+ if (sscanf(name.release, "%d.%d-ARCH", &maj, &mid) != 2) {
- errexit(2, _("Cannot convert kernel release \"%s\" to number\n"), name.release);
- }
- ver = maj*0x10000 + mid*0x100 + rev;
-
diff --git a/ncpfs/02-legacy.patch b/ncpfs/02-legacy.patch
deleted file mode 100644
index d3d1ecc7d..000000000
--- a/ncpfs/02-legacy.patch
+++ /dev/null
@@ -1,981 +0,0 @@
---- a/contrib/pam/pam_ncp_auth.c 2005-01-28 04:35:59.000000000 +1100
-+++ b/contrib/pam/pam_ncp_auth.c 2010-03-27 15:18:45.000000000 +1100
-@@ -257,6 +257,7 @@
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
-+#include <syslog.h>
- #include <unistd.h>
- #include <pwd.h>
- #include <grp.h>
-@@ -266,6 +267,7 @@
- #include <fcntl.h>
- #include <errno.h>
- #include <ctype.h>
-+#include <syslog.h>
-
- #include "support.h"
-
---- a/include/ncp/ipxlib.h 2005-01-28 04:35:59.000000000 +1100
-+++ b/include/ncp/ipxlib.h 2010-03-27 15:20:07.000000000 +1100
-@@ -63,32 +63,32 @@ struct sap_query
-
- struct sap_server_ident
- {
-- u_int16_t server_type __attribute__((packed));
-- char server_name[48] __attribute__((packed));
-- IPXNet server_network __attribute__((packed));
-+ u_int16_t server_type;
-+ char server_name[48];
-+ IPXNet server_network;
- #ifdef SWIG
-- u_int8_t server_node[6] __attribute__((packed));
-+ u_int8_t server_node[6];
- #else
-- IPXNode server_node __attribute__((packed));
-+ IPXNode server_node;
- #endif
-- IPXPort server_port __attribute__((packed));
-- u_int16_t intermediate_network __attribute__((packed));
--};
-+ IPXPort server_port;
-+ u_int16_t intermediate_network;
-+} __attribute__((packed));
-
- #define IPX_RIP_REQUEST (0x1)
- #define IPX_RIP_RESPONSE (0x2)
-
- struct ipx_rt_def {
-- u_int32_t network __attribute__((packed));
-- u_int16_t hops __attribute__((packed));
-- u_int16_t ticks __attribute__((packed));
--};
-+ u_int32_t network;
-+ u_int16_t hops;
-+ u_int16_t ticks;
-+} __attribute__((packed));
-
- struct ipx_rip_packet
- {
-- u_int16_t operation __attribute__((packed));
-- struct ipx_rt_def rt[1] __attribute__((packed));
--};
-+ u_int16_t operation;
-+ struct ipx_rt_def rt[1];
-+} __attribute__((packed));
-
- #ifdef SWIG
- #define IPX_BROADCAST_NODE "\xff\xff\xff\xff\xff\xff"
---- a/include/ncp/kernel/ncp.h 2005-01-28 04:35:59.000000000 +1100
-+++ b/include/ncp/kernel/ncp.h 2010-03-27 15:20:07.000000000 +1100
-@@ -52,28 +52,28 @@
- #define NCP_DEALLOC_SLOT_REQUEST (0x5555)
-
- struct ncp_request_header {
-- u_int16_t type __attribute__((packed));
-- u_int8_t sequence __attribute__((packed));
-- u_int8_t conn_low __attribute__((packed));
-- u_int8_t task __attribute__((packed));
-- u_int8_t conn_high __attribute__((packed));
-- u_int8_t function __attribute__((packed));
-- u_int8_t data[0] __attribute__((packed));
--};
-+ u_int16_t type;
-+ u_int8_t sequence;
-+ u_int8_t conn_low;
-+ u_int8_t task;
-+ u_int8_t conn_high;
-+ u_int8_t function;
-+ u_int8_t data[0];
-+} __attribute__((packed));
-
- #define NCP_REPLY (0x3333)
- #define NCP_POSITIVE_ACK (0x9999)
-
- struct ncp_reply_header {
-- u_int16_t type __attribute__((packed));
-- u_int8_t sequence __attribute__((packed));
-- u_int8_t conn_low __attribute__((packed));
-- u_int8_t task __attribute__((packed));
-- u_int8_t conn_high __attribute__((packed));
-- u_int8_t completion_code __attribute__((packed));
-- u_int8_t connection_state __attribute__((packed));
-- u_int8_t data[0] __attribute__((packed));
--};
-+ u_int16_t type;
-+ u_int8_t sequence;
-+ u_int8_t conn_low;
-+ u_int8_t task;
-+ u_int8_t conn_high;
-+ u_int8_t completion_code;
-+ u_int8_t connection_state;
-+ u_int8_t data[0];
-+} __attribute__((packed));
-
- #define NCP_VOLNAME_LEN (16)
- #define NCP_NUMBER_OF_VOLUMES (64)
-@@ -175,64 +175,64 @@ struct ncp_volume_info {
-
- #ifdef SWIG
- struct nw_info_struct {
-- u_int32_t spaceAlloc __attribute__((packed));
-- u_int32_t attributes __attribute__((packed));
-- u_int16_t flags __attribute__((packed));
-- u_int32_t dataStreamSize __attribute__((packed));
-- u_int32_t totalStreamSize __attribute__((packed));
-- u_int16_t numberOfStreams __attribute__((packed));
-- u_int16_t creationTime __attribute__((packed));
-- u_int16_t creationDate __attribute__((packed));
-- u_int32_t creatorID __attribute__((packed));
-- u_int16_t modifyTime __attribute__((packed));
-- u_int16_t modifyDate __attribute__((packed));
-- u_int32_t modifierID __attribute__((packed));
-- u_int16_t lastAccessDate __attribute__((packed));
-- u_int16_t archiveTime __attribute__((packed));
-- u_int16_t archiveDate __attribute__((packed));
-- u_int32_t archiverID __attribute__((packed));
-- u_int16_t inheritedRightsMask __attribute__((packed));
-- u_int32_t dirEntNum __attribute__((packed));
-- u_int32_t DosDirNum __attribute__((packed));
-- u_int32_t volNumber __attribute__((packed));
-- u_int32_t EADataSize __attribute__((packed));
-- u_int32_t EAKeyCount __attribute__((packed));
-- u_int32_t EAKeySize __attribute__((packed));
-- u_int32_t NSCreator __attribute__((packed));
-+ u_int32_t spaceAlloc;
-+ u_int32_t attributes;
-+ u_int16_t flags;
-+ u_int32_t dataStreamSize;
-+ u_int32_t totalStreamSize;
-+ u_int16_t numberOfStreams;
-+ u_int16_t creationTime;
-+ u_int16_t creationDate;
-+ u_int32_t creatorID;
-+ u_int16_t modifyTime;
-+ u_int16_t modifyDate;
-+ u_int32_t modifierID;
-+ u_int16_t lastAccessDate;
-+ u_int16_t archiveTime;
-+ u_int16_t archiveDate;
-+ u_int32_t archiverID;
-+ u_int16_t inheritedRightsMask;
-+ u_int32_t dirEntNum;
-+ u_int32_t DosDirNum;
-+ u_int32_t volNumber;
-+ u_int32_t EADataSize;
-+ u_int32_t EAKeyCount;
-+ u_int32_t EAKeySize;
-+ u_int32_t NSCreator;
- %pragma(swig) readonly
-- u_int8_t nameLen __attribute__((packed));
-+ u_int8_t nameLen;
- %pragma(swig) readwrite
-- byteLenPrefixCharArray entryName[255] __attribute__((packed));
--};
-+ byteLenPrefixCharArray entryName[255];
-+} __attribute__((packed));
- #else
- struct nw_info_struct {
-- u_int32_t spaceAlloc __attribute__((packed));
-- u_int32_t attributes __attribute__((packed));
-- u_int16_t flags __attribute__((packed));
-- u_int32_t dataStreamSize __attribute__((packed));
-- u_int32_t totalStreamSize __attribute__((packed));
-- u_int16_t numberOfStreams __attribute__((packed));
-- u_int16_t creationTime __attribute__((packed));
-- u_int16_t creationDate __attribute__((packed));
-- u_int32_t creatorID __attribute__((packed));
-- u_int16_t modifyTime __attribute__((packed));
-- u_int16_t modifyDate __attribute__((packed));
-- u_int32_t modifierID __attribute__((packed));
-- u_int16_t lastAccessDate __attribute__((packed));
-- u_int16_t archiveTime __attribute__((packed));
-- u_int16_t archiveDate __attribute__((packed));
-- u_int32_t archiverID __attribute__((packed));
-- u_int16_t inheritedRightsMask __attribute__((packed));
-- u_int32_t dirEntNum __attribute__((packed));
-- u_int32_t DosDirNum __attribute__((packed));
-- u_int32_t volNumber __attribute__((packed));
-- u_int32_t EADataSize __attribute__((packed));
-- u_int32_t EAKeyCount __attribute__((packed));
-- u_int32_t EAKeySize __attribute__((packed));
-- u_int32_t NSCreator __attribute__((packed));
-- u_int8_t nameLen __attribute__((packed));
-- u_int8_t entryName[256] __attribute__((packed));
--};
-+ u_int32_t spaceAlloc;
-+ u_int32_t attributes;
-+ u_int16_t flags;
-+ u_int32_t dataStreamSize;
-+ u_int32_t totalStreamSize;
-+ u_int16_t numberOfStreams;
-+ u_int16_t creationTime;
-+ u_int16_t creationDate;
-+ u_int32_t creatorID;
-+ u_int16_t modifyTime;
-+ u_int16_t modifyDate;
-+ u_int32_t modifierID;
-+ u_int16_t lastAccessDate;
-+ u_int16_t archiveTime;
-+ u_int16_t archiveDate;
-+ u_int32_t archiverID;
-+ u_int16_t inheritedRightsMask;
-+ u_int32_t dirEntNum;
-+ u_int32_t DosDirNum;
-+ u_int32_t volNumber;
-+ u_int32_t EADataSize;
-+ u_int32_t EAKeyCount;
-+ u_int32_t EAKeySize;
-+ u_int32_t NSCreator;
-+ u_int8_t nameLen;
-+ u_int8_t entryName[256];
-+} __attribute__((packed));
- #endif
-
- /* modify mask - use with MODIFY_DOS_INFO structure */
-@@ -251,46 +251,46 @@ struct nw_info_struct {
- #define DM_MAXIMUM_SPACE (0x00002000L)
-
- struct nw_modify_dos_info {
-- u_int32_t attributes __attribute__((packed));
-- u_int16_t creationDate __attribute__((packed));
-- u_int16_t creationTime __attribute__((packed));
-- u_int32_t creatorID __attribute__((packed));
-- u_int16_t modifyDate __attribute__((packed));
-- u_int16_t modifyTime __attribute__((packed));
-- u_int32_t modifierID __attribute__((packed));
-- u_int16_t archiveDate __attribute__((packed));
-- u_int16_t archiveTime __attribute__((packed));
-- u_int32_t archiverID __attribute__((packed));
-- u_int16_t lastAccessDate __attribute__((packed));
-- u_int16_t inheritanceGrantMask __attribute__((packed));
-- u_int16_t inheritanceRevokeMask __attribute__((packed));
-- u_int32_t maximumSpace __attribute__((packed));
--};
-+ u_int32_t attributes;
-+ u_int16_t creationDate;
-+ u_int16_t creationTime;
-+ u_int32_t creatorID;
-+ u_int16_t modifyDate;
-+ u_int16_t modifyTime;
-+ u_int32_t modifierID;
-+ u_int16_t archiveDate;
-+ u_int16_t archiveTime;
-+ u_int32_t archiverID;
-+ u_int16_t lastAccessDate;
-+ u_int16_t inheritanceGrantMask;
-+ u_int16_t inheritanceRevokeMask;
-+ u_int32_t maximumSpace;
-+} __attribute__((packed));
-
- #ifdef SWIG
- struct nw_file_info {
- struct nw_info_struct i;
- int opened;
- int access;
-- u_int32_t server_file_handle __attribute__((packed));
-- u_int8_t open_create_action __attribute__((packed));
-- fixedArray file_handle[6] __attribute__((packed));
--};
-+ u_int32_t server_file_handle;
-+ u_int8_t open_create_action;
-+ fixedArray file_handle[6];
-+} __attribute__((packed));
- #else
- struct nw_file_info {
- struct nw_info_struct i;
- int opened;
- int access;
-- u_int32_t server_file_handle __attribute__((packed));
-- u_int8_t open_create_action __attribute__((packed));
-- u_int8_t file_handle[6] __attribute__((packed));
--};
-+ u_int32_t server_file_handle;
-+ u_int8_t open_create_action;
-+ u_int8_t file_handle[6];
-+} __attribute__((packed));
- #endif
-
- struct nw_search_sequence {
-- u_int8_t volNumber __attribute__((packed));
-- u_int32_t dirBase __attribute__((packed));
-- u_int32_t sequence __attribute__((packed));
--};
-+ u_int8_t volNumber;
-+ u_int32_t dirBase;
-+ u_int32_t sequence;
-+} __attribute__((packed));
-
- #endif /* _LINUX_NCP_H */
---- a/include/ncp/ncp.h 2005-01-28 04:35:59.000000000 +1100
-+++ b/include/ncp/ncp.h 2010-03-27 15:20:07.000000000 +1100
-@@ -91,21 +91,21 @@ struct nw_property {
- };
-
- struct prop_net_address {
-- u_int32_t network __attribute__((packed));
-+ u_int32_t network;
- #ifdef SWIG
- fixedArray node[IPX_NODE_LEN];
- #else
-- u_int8_t node[IPX_NODE_LEN] __attribute__((packed));
-+ u_int8_t node[IPX_NODE_LEN];
- #endif
-- u_int16_t port __attribute__((packed));
--};
-+ u_int16_t port;
-+} __attribute__((packed));
-
- struct ncp_filesearch_info {
- u_int8_t volume_number;
- u_int16_t directory_id;
- u_int16_t sequence_no;
- u_int8_t access_rights;
--};
-+} __attribute__((packed));
-
- #define NCP_MAX_FILENAME (14)
- struct ncp_file_info {
-@@ -127,28 +127,28 @@ struct ncp_file_info {
-
- #ifdef SWIG
- struct nw_queue_job_entry {
-- u_int16_t InUse __attribute__((packed));
-- u_int32_t prev __attribute__((packed));
-- u_int32_t next __attribute__((packed));
-- u_int32_t ClientStation __attribute__((packed));
-- u_int32_t ClientTask __attribute__((packed));
-- u_int32_t ClientObjectID __attribute__((packed));
-- u_int32_t TargetServerID __attribute__((packed));
-- fixedArray TargetExecTime[6] __attribute__((packed));
-- fixedArray JobEntryTime[6] __attribute__((packed));
-- u_int32_t JobNumber __attribute__((packed));
-- u_int16_t JobType __attribute__((packed));
-- u_int16_t JobPosition __attribute__((packed));
-- u_int16_t JobControlFlags __attribute__((packed));
-- u_int8_t FileNameLen __attribute__((packed));
-- byteLenPrefixCharArray JobFileName[13] __attribute__((packed));
-- u_int32_t JobFileHandle __attribute__((packed));
-- u_int32_t ServerStation __attribute__((packed));
-- u_int32_t ServerTaskNumber __attribute__((packed));
-- u_int32_t ServerObjectID __attribute__((packed));
-- fixedCharArray JobTextDescription[50] __attribute__((packed));
-- fixedArray ClientRecordArea[152] __attribute__((packed));
--};
-+ u_int16_t InUse;
-+ u_int32_t prev;
-+ u_int32_t next;
-+ u_int32_t ClientStation;
-+ u_int32_t ClientTask;
-+ u_int32_t ClientObjectID;
-+ u_int32_t TargetServerID;
-+ fixedArray TargetExecTime[6];
-+ fixedArray JobEntryTime[6];
-+ u_int32_t JobNumber;
-+ u_int16_t JobType;
-+ u_int16_t JobPosition;
-+ u_int16_t JobControlFlags;
-+ u_int8_t FileNameLen;
-+ byteLenPrefixCharArray JobFileName[13];
-+ u_int32_t JobFileHandle;
-+ u_int32_t ServerStation;
-+ u_int32_t ServerTaskNumber;
-+ u_int32_t ServerObjectID;
-+ fixedCharArray JobTextDescription[50];
-+ fixedArray ClientRecordArea[152];
-+} __attribute__((packed));
-
- struct queue_job {
- struct nw_queue_job_entry j;
-@@ -156,28 +156,28 @@ struct queue_job {
- };
- #else
- struct nw_queue_job_entry {
-- u_int16_t InUse __attribute__((packed));
-- u_int32_t prev __attribute__((packed));
-- u_int32_t next __attribute__((packed));
-- u_int32_t ClientStation __attribute__((packed));
-- u_int32_t ClientTask __attribute__((packed));
-- u_int32_t ClientObjectID __attribute__((packed));
-- u_int32_t TargetServerID __attribute__((packed));
-- u_int8_t TargetExecTime[6] __attribute__((packed));
-- u_int8_t JobEntryTime[6] __attribute__((packed));
-- u_int32_t JobNumber __attribute__((packed));
-- u_int16_t JobType __attribute__((packed));
-- u_int16_t JobPosition __attribute__((packed));
-- u_int16_t JobControlFlags __attribute__((packed));
-- u_int8_t FileNameLen __attribute__((packed));
-- char JobFileName[13] __attribute__((packed));
-- u_int32_t JobFileHandle __attribute__((packed));
-- u_int32_t ServerStation __attribute__((packed));
-- u_int32_t ServerTaskNumber __attribute__((packed));
-- u_int32_t ServerObjectID __attribute__((packed));
-- char JobTextDescription[50] __attribute__((packed));
-- char ClientRecordArea[152] __attribute__((packed));
--};
-+ u_int16_t InUse;
-+ u_int32_t prev;
-+ u_int32_t next;
-+ u_int32_t ClientStation;
-+ u_int32_t ClientTask;
-+ u_int32_t ClientObjectID;
-+ u_int32_t TargetServerID;
-+ u_int8_t TargetExecTime[6];
-+ u_int8_t JobEntryTime[6];
-+ u_int32_t JobNumber;
-+ u_int16_t JobType;
-+ u_int16_t JobPosition;
-+ u_int16_t JobControlFlags;
-+ u_int8_t FileNameLen;
-+ char JobFileName[13];
-+ u_int32_t JobFileHandle;
-+ u_int32_t ServerStation;
-+ u_int32_t ServerTaskNumber;
-+ u_int32_t ServerObjectID;
-+ char JobTextDescription[50];
-+ char ClientRecordArea[152];
-+} __attribute__((packed));
-
- struct queue_job {
- struct nw_queue_job_entry j;
-@@ -202,34 +202,34 @@ struct queue_job {
-
- #ifdef SWIG
- struct print_job_record {
-- u_int8_t Version __attribute__((packed));
-- u_int8_t TabSize __attribute__((packed));
-- u_int16_t Copies __attribute__((packed));
-- u_int16_t CtrlFlags __attribute__((packed));
-- u_int16_t Lines __attribute__((packed));
-- u_int16_t Rows __attribute__((packed));
-- fixedCharArray FormName[16] __attribute__((packed));
-- fixedArray Reserved[6] __attribute__((packed));
-- fixedCharArray BannerName[13] __attribute__((packed));
-- fixedCharArray FnameBanner[13] __attribute__((packed));
-- fixedCharArray FnameHeader[14] __attribute__((packed));
-- fixedCharArray Path[80] __attribute__((packed));
--};
-+ u_int8_t Version;
-+ u_int8_t TabSize;
-+ u_int16_t Copies;
-+ u_int16_t CtrlFlags;
-+ u_int16_t Lines;
-+ u_int16_t Rows;
-+ fixedCharArray FormName[16];
-+ fixedArray Reserved[6];
-+ fixedCharArray BannerName[13];
-+ fixedCharArray FnameBanner[13];
-+ fixedCharArray FnameHeader[14];
-+ fixedCharArray Path[80];
-+} __attribute__((packed));
- #else
- struct print_job_record {
-- u_int8_t Version __attribute__((packed));
-- u_int8_t TabSize __attribute__((packed));
-- u_int16_t Copies __attribute__((packed));
-- u_int16_t CtrlFlags __attribute__((packed));
-- u_int16_t Lines __attribute__((packed));
-- u_int16_t Rows __attribute__((packed));
-- char FormName[16] __attribute__((packed));
-- u_int8_t Reserved[6] __attribute__((packed));
-- char BannerName[13] __attribute__((packed));
-- char FnameBanner[13] __attribute__((packed));
-- char FnameHeader[14] __attribute__((packed));
-- char Path[80] __attribute__((packed));
--};
-+ u_int8_t Version;
-+ u_int8_t TabSize;
-+ u_int16_t Copies;
-+ u_int16_t CtrlFlags;
-+ u_int16_t Lines;
-+ u_int16_t Rows;
-+ char FormName[16];
-+ u_int8_t Reserved[6];
-+ char BannerName[13];
-+ char FnameBanner[13];
-+ char FnameHeader[14];
-+ char Path[80];
-+} __attribute__((packed));
- #endif
-
- #endif /* _NCP_H */
---- a/include/ncp/ncplib.h 2005-01-28 04:35:59.000000000 +1100
-+++ b/include/ncp/ncplib.h 2010-03-27 15:20:07.000000000 +1100
-@@ -107,7 +107,7 @@ extern "C" {
-
- /* we know that the 386 can handle misalignment and has the "right"
- byteorder */
--#if defined(__i386__)
-+#if 0
-
- static inline word
- WVAL_LH(const void * buf, int pos)
-@@ -462,25 +462,25 @@ struct ncp_file_server_info
- #else
- struct ncp_file_server_info
- {
-- u_int8_t ServerName[48] __attribute__((packed));
-- u_int8_t FileServiceVersion __attribute__((packed));
-- u_int8_t FileServiceSubVersion __attribute__((packed));
-- u_int16_t MaximumServiceConnections __attribute__((packed));
-- u_int16_t ConnectionsInUse __attribute__((packed));
-- u_int16_t NumberMountedVolumes __attribute__((packed));
-- u_int8_t Revision __attribute__((packed));
-- u_int8_t SFTLevel __attribute__((packed));
-- u_int8_t TTSLevel __attribute__((packed));
-- u_int16_t MaxConnectionsEverUsed __attribute__((packed));
-- u_int8_t AccountVersion __attribute__((packed));
-- u_int8_t VAPVersion __attribute__((packed));
-- u_int8_t QueueVersion __attribute__((packed));
-- u_int8_t PrintVersion __attribute__((packed));
-- u_int8_t VirtualConsoleVersion __attribute__((packed));
-- u_int8_t RestrictionLevel __attribute__((packed));
-- u_int8_t InternetBridge __attribute__((packed));
-- u_int8_t Reserved[60] __attribute__((packed));
--};
-+ u_int8_t ServerName[48];
-+ u_int8_t FileServiceVersion;
-+ u_int8_t FileServiceSubVersion;
-+ u_int16_t MaximumServiceConnections;
-+ u_int16_t ConnectionsInUse;
-+ u_int16_t NumberMountedVolumes;
-+ u_int8_t Revision;
-+ u_int8_t SFTLevel;
-+ u_int8_t TTSLevel;
-+ u_int16_t MaxConnectionsEverUsed;
-+ u_int8_t AccountVersion;
-+ u_int8_t VAPVersion;
-+ u_int8_t QueueVersion;
-+ u_int8_t PrintVersion;
-+ u_int8_t VirtualConsoleVersion;
-+ u_int8_t RestrictionLevel;
-+ u_int8_t InternetBridge;
-+ u_int8_t Reserved[60];
-+} __attribute__((packed));
- #endif
-
- struct ncp_file_server_info_2 {
-@@ -588,47 +588,47 @@ long
-
- struct ncp_station_addr
- {
-- u_int32_t NetWork __attribute__((packed));
-+ u_int32_t NetWork;
- #ifdef SWIG
- fixedArray Node[6];
- #else
-- u_int8_t Node[6] __attribute__((packed));
-+ u_int8_t Node[6];
- #endif
-- u_int16_t Socket __attribute__((packed));
--};
-+ u_int16_t Socket;
-+} __attribute__((packed));
-
- struct ncp_prop_login_control
- {
- #ifdef SWIG
- fixedArray AccountExpireDate[3];
- #else
-- u_int8_t AccountExpireDate[3] __attribute__((packed));
-+ u_int8_t AccountExpireDate[3];
- #endif
-- u_int8_t Disabled __attribute__((packed));
-+ u_int8_t Disabled;
- #ifdef SWIG
- fixedArray PasswordExpireDate[3];
- #else
-- u_int8_t PasswordExpireDate[3] __attribute__((packed));
-+ u_int8_t PasswordExpireDate[3];
- #endif
-- u_int8_t GraceLogins __attribute__((packed));
-- u_int16_t PasswordExpireInterval __attribute__((packed));
-- u_int8_t MaxGraceLogins __attribute__((packed));
-- u_int8_t MinPasswordLength __attribute__((packed));
-- u_int16_t MaxConnections __attribute__((packed));
-+ u_int8_t GraceLogins;
-+ u_int16_t PasswordExpireInterval;
-+ u_int8_t MaxGraceLogins;
-+ u_int8_t MinPasswordLength;
-+ u_int16_t MaxConnections;
- #ifdef SWIG
-- fixedArray ConnectionTimeMask[42] __attribute__((packed));
-- fixedArray LastLogin[6] __attribute__((packed));
-+ fixedArray ConnectionTimeMask[42];
-+ fixedArray LastLogin[6];
- #else
-- u_int8_t ConnectionTimeMask[42] __attribute__((packed));
-- u_int8_t LastLogin[6] __attribute__((packed));
-+ u_int8_t ConnectionTimeMask[42];
-+ u_int8_t LastLogin[6];
- #endif
-- u_int8_t RestrictionMask __attribute__((packed));
-- u_int8_t reserved __attribute__((packed));
-- u_int32_t MaxDiskUsage __attribute__((packed));
-- u_int16_t BadLoginCount __attribute__((packed));
-- u_int32_t BadLoginCountDown __attribute__((packed));
-- struct ncp_station_addr LastIntruder __attribute__((packed));
--};
-+ u_int8_t RestrictionMask;
-+ u_int8_t reserved;
-+ u_int32_t MaxDiskUsage;
-+ u_int16_t BadLoginCount;
-+ u_int32_t BadLoginCountDown;
-+ struct ncp_station_addr LastIntruder;
-+} __attribute__((packed));
-
- NWCCODE NWReadPropertyValue(NWCONN_HANDLE conn, const char *objName,
- NWObjectType objType, const char *propertyName,
---- a/ipx-1.0/ipx_internal_net.8 2005-01-28 04:35:59.000000000 +1100
-+++ b/ipx-1.0/ipx_internal_net.8 2007-09-16 21:43:16.000000000 +1000
-@@ -15,6 +15,8 @@ not have a physical device or frame type
- a route-independent address for service providers. Internal networks
- are optional; however, when one is present it is also the
- Primary Interface. There can only be one internal network per host.
-+The node number defaults to 1 if a second arg is not
-+given to the "add" command.
- .SS OPTIONS
- .TP
- .I add
---- a/ipx-1.0/Makefile.in 2005-01-28 04:35:59.000000000 +1100
-+++ b/ipx-1.0/Makefile.in 2007-09-16 21:43:16.000000000 +1000
-@@ -52,8 +52,8 @@ mrproper: clean
- distclean: mrproper
-
- install: $(UTILS) $(MAN8GZ) $(UTIIPX)
-- $(INSTALL) -d $(DESTDIR)$(bindir)
-- $(INSTALL) $(UTILS) $(UTIIPX) $(DESTDIR)$(bindir)
-+ $(INSTALL) -d $(DESTDIR)$(sbindir)
-+ $(INSTALL) $(UTILS) $(UTIIPX) $(DESTDIR)$(sbindir)
- $(INSTALL) -d $(DESTDIR)$(mandir)/man8
- $(INSTALL_DATA) $(MAN8GZ) $(DESTDIR)$(mandir)/man8
-
---- a/lib/ncplib.c 2005-01-28 04:35:59.000000000 +1100
-+++ b/lib/ncplib.c 2010-03-27 15:20:07.000000000 +1100
-@@ -2421,7 +2421,7 @@ ncp_initialize_2(int *argc, char **argv,
- int i = 1;
- NWCCODE nwerr;
-
-- static int get_argument(int arg_no, const char **target) {
-+ int get_argument(int arg_no, const char **target) {
- int count = 1;
-
- if (target != NULL) {
-@@ -2584,14 +2584,14 @@ ncp_request(struct ncp_conn *conn, int f
-
- struct nw_time_buffer
- {
-- u_int8_t year __attribute__((packed));
-- u_int8_t month __attribute__((packed));
-- u_int8_t day __attribute__((packed));
-- u_int8_t hour __attribute__((packed));
-- u_int8_t minute __attribute__((packed));
-- u_int8_t second __attribute__((packed));
-- u_int8_t wday __attribute__((packed));
--};
-+ u_int8_t year;
-+ u_int8_t month;
-+ u_int8_t day;
-+ u_int8_t hour;
-+ u_int8_t minute;
-+ u_int8_t second;
-+ u_int8_t wday;
-+} __attribute__((packed));
-
- static time_t
- nw_to_ctime(struct nw_time_buffer *source)
---- a/lib/ndslib.c 2005-01-28 04:35:59.000000000 +1100
-+++ b/lib/ndslib.c 2010-03-27 15:18:45.000000000 +1100
-@@ -49,7 +49,7 @@
- #define RANDBUF /* if defined: read random data once from /dev/urandom */
- /*#define ERR_MSG*/ /* if defined: show error messages in nds_login_auth */
- /*#define DEBUG_PRINT*/
--/*#define FIND_ISR */ /* if defined: show reasons for -330 invalid response */
-+#define FIND_ISR /* if defined: show reasons for -330 invalid response */
-
- #define NCP_OBSOLETE
-
---- a/man/Makefile.in 2005-01-28 04:35:59.000000000 +1100
-+++ b/man/Makefile.in 2010-03-27 15:18:45.000000000 +1100
-@@ -15,7 +15,7 @@ MOUNT2 = @MOUNT2@
-
- MAN1 := nprint.1 nsend.1 nwauth.1 nwbols.1 nwboprops.1 nwbpset.1 \
- nwbpvalues.1 nwdir.1 nwfsinfo.1 nwfstime.1 nwpasswd.1 nwpurge.1 \
-- nwrights.1 nwsfind.1 nwtrustee.1 nwuserlist.1 nwvolinfo.1 pqlist.1 \
-+ nwrights.1 nwsfind.1 nwtrustee.1 nwtrustee2.1 nwuserlist.1 nwvolinfo.1 pqlist.1 \
- nwpqjob.1 pqstat.1 pserver.1 slist.1 nwpjmv.1
- MAN3 := $(notdir $(wildcard ${this_srcdir}/*.3ncp))
- MAN5 := nwclient.5
-@@ -47,6 +47,7 @@ install: all
- ln -sf nwpqjob.1.gz $(DESTDIR)$(mandir)/man1/pqrm.1.gz
- ifeq ($(USE_KERNEL),1)
- ln -sf ncpmount.8.gz $(DESTDIR)$(mandir)/man8/mount.ncp.8.gz
-+ ln -sf ncpmount.8.gz $(DESTDIR)$(mandir)/man8/mount.ncpfs.8.gz
- endif
-
- install-dev: all
---- a/man/ncpmount.8 2005-01-28 04:35:59.000000000 +1100
-+++ b/man/ncpmount.8 2007-09-16 21:43:16.000000000 +1000
-@@ -282,7 +282,7 @@ is done by commercial workstations, plea
- You can specify character translation rules for converting names from
- unicode to your desktop (it works together with \fB-p\fP).
- .I iocharset
--is charset name, for example \fIiso-8859-1\fP.
-+is charset name, for example \fIiso8859-1\fP.
- .RE
-
- .B -p
---- a/man/nwbpset.1 2005-01-28 04:35:59.000000000 +1100
-+++ b/man/nwbpset.1 2010-03-27 15:18:45.000000000 +1100
-@@ -26,7 +26,7 @@ Reads a property specification from the
- sets the corresponding property. The format is determined by the
- output of 'nwbpvalues -c'. nwbpset will hopefully become an important
- part of the bindery management suite of ncpfs, together with
--'nwbpvalues -c'. See util/nwbpsecurity for an example.
-+\'nwbpvalues -c\'. See util/nwbpsecurity for an example.
-
- As another example, look at the following command line:
-
---- a/man/nwbpvalues.1 2005-01-28 04:35:59.000000000 +1100
-+++ b/man/nwbpvalues.1 2007-09-16 21:43:16.000000000 +1000
-@@ -1,4 +1,4 @@
--.TH NWBPVALUES 8 7/9/1996 nwbpvalues nwbpvalues
-+.TH NWBPVALUES 1 7/9/1996 nwbpvalues nwbpvalues
- .SH NAME
- nwbpvalues \- Print a NetWare Bindery Propery's contents
- .SH SYNOPSIS
---- a/man/nwfsctrl.8 2005-01-28 04:35:59.000000000 +1100
-+++ b/man/nwfsctrl.8 2007-09-16 21:43:16.000000000 +1000
-@@ -1,4 +1,4 @@
--.TH NWFSCTRL 1 2/12/1999 nwfsctrl nwfsctrl
-+.TH NWFSCTRL 8 2/12/1999 nwfsctrl nwfsctrl
- .SH NAME
- nwfsctrl \- Perform server command
- .SH SYNOPSIS
---- a/man/nwtrustee.1 2005-01-28 04:35:59.000000000 +1100
-+++ b/man/nwtrustee.1 2007-09-16 21:43:16.000000000 +1000
-@@ -1,4 +1,4 @@
--.TH NWTRUSTEE 8 7/9/1996 nwtrustee nwtrustee
-+.TH NWTRUSTEE 1 7/9/1996 nwtrustee nwtrustee
- .SH NAME
- nwtrustee \- List an object's trustee directory assignments
- .SH SYNOPSIS
---- a/man/nwtrustee2.1 1970-01-01 10:00:00.000000000 +1000
-+++ b/man/nwtrustee2.1 2007-09-16 21:43:16.000000000 +1000
-@@ -0,0 +1,52 @@
-+.TH NWTRUSTEE2 1 10/16/2005 nwtrustee2 nwtrustee2
-+.SH NAME
-+nwtrustee2 \- Lists trustees and permissions of a ncp directory
-+.SH SYNOPSIS
-+.B nwtrustee2
-+[
-+.B -h
-+] [
-+.B -?
-+] [
-+.B -v
-+] [
-+.I directory
-+]
-+
-+.SH DESCRIPTION
-+.B nwtrustee2
-+lists the permissions assigned to any trustees for a given ncp directory. It
-+does not show the inherited permissions, but only the ones directly assigned to
-+it.
-+
-+The letters used to express the permissions are explained in the
-+\fInwgrant\fP(1) manpage.
-+
-+The \fIdirectory\fP has to belong to a volume mounted with \fIncpmount\fP or
-+mount.ncp, if omited the current directory is used.
-+
-+.SH OPTIONS
-+
-+.B -h
-+or
-+.B -?
-+.RS 3
-+.B -h
-+or
-+.B -?
-+prints a short help text.
-+.RE
-+
-+.B -v
-+.RS 3
-+Verbose mode. Prints the directory name before procesing.
-+.RE
-+
-+.SH SEE ALSO
-+
-+\fInwtrustee\fP(1), \fInwgrant\fP(1), \fInwrevoke\fP(1), \fInwrights\fP(1)
-+
-+
-+.SH AUTHORS
-+nwtrustee2 was written by Petr Vandrovec <vandrove@vc.cvut.cz>.
-+This manual page was written by Maximiliano Curia <maxy@gnuservers.com.ar>.
---- a/man/nwvolinfo.1 2005-01-28 04:35:59.000000000 +1100
-+++ b/man/nwvolinfo.1 2007-09-16 21:43:16.000000000 +1000
-@@ -1,4 +1,4 @@
--.TH NWVOLINFO 8 7/9/1996 nwvolinfo nwvolinfo
-+.TH NWVOLINFO 1 7/9/1996 nwvolinfo nwvolinfo
- .SH NAME
- nwvolinfo \- Diplay info on NetWare Volumes
- .SH SYNOPSIS
-@@ -97,4 +97,4 @@ Display the information in numeric-only
-
- .SH AUTHORS
- nwvolinfo was written by Jacek Stepniewski <cunio@gazeta.pl> based on
--utilities by Volker Lendecke.
-\ No newline at end of file
-+utilities by Volker Lendecke.
-Binary files ncpfs-2.2.6/po/de.gmo and b/po/de.gmo differ
---- a/po/de.po 2005-01-28 04:35:59.000000000 +1100
-+++ b/po/de.po 2007-09-16 21:43:16.000000000 +1000
-@@ -216,7 +216,7 @@ msgstr "%s: Ungültiger Routerknoten %s\
- #: ipx-1.0/ipx_route.c:98
- #, c-format
- msgid "%s: Node (%s) is invalid.\n"
--msgstr "%s: Knoten (%s) is ungültig.\n"
-+msgstr "%s: Knoten (%s) ist ungültig.\n"
-
- #: ipx-1.0/ipx_route.c:124
- #, c-format
-@@ -1426,7 +1426,7 @@ msgstr "Kann Verbindung zu Kontext nicht
- #: sutil/ncplogin.c:920
- #, c-format
- msgid "Cannot authenticate connection: %s\n"
--msgstr "Kann Vebindung nicht authentifizieren: %s\n"
-+msgstr "Kann Verbindung nicht authentifizieren: %s\n"
-
- #: sutil/ncplogin.c:939
- #, c-format
-@@ -1789,7 +1789,7 @@ msgstr "bind(wdog_sock, ): %s\n"
- #: sutil/ncpm_common.c:1791
- #, c-format
- msgid "Could not open message socket: %s\n"
--msgstr "Konte Socket für Nachrichten nicht öffnen: %s\n"
-+msgstr "Konnte Socket für Nachrichten nicht öffnen: %s\n"
-
- #: sutil/ncpm_common.c:1799
- #, c-format
-@@ -1904,7 +1904,7 @@ msgid ""
- "\n"
- msgstr ""
- "\n"
--"-v Detailierte Ausgabe\n"
-+"-v Detaillierte Ausgabe\n"
- "-i interface Zu testendes Interface, Standard: eth0\n"
- "-t timeout Wartezeit auf Antwort in Sekunden, Standard: 3\n"
- "-h Zeigt diesen Hilfetext an\n"
-@@ -2782,7 +2782,7 @@ msgstr ""
- "\n"
- "-t type Typ der aufzulistenden Objekte (Dezimalwert)\n"
- "-o object Maske für aufzulistenden Objekte\n"
--"-v Detailierte Auflistung\n"
-+"-v Detaillierte Auflistung\n"
- "-a Alternatives Ausgabeformat\n"
- "-d Objekttyp dezimal anzeigen\n"
- "\n"
-@@ -2818,7 +2818,7 @@ msgstr ""
- "\n"
- "-o object_name Name des zu überprüfenden Objekts\n"
- "-t type Objekttyp (Dezimalwert)\n"
--"-v Detailierte Auflistung\n"
-+"-v Detaillierte Auflistung\n"
- "\n"
-
- #: util/nwborm.c:47
-@@ -3129,7 +3129,7 @@ msgstr ""
- "-o object_name Objektname\n"
- "-t type Objekttyp (Dezimalwert)\n"
- "-p property Name der zu listenden Eigenschaft\n"
--"-v Detailierte Auflistung\n"
-+"-v Detaillierte Auflistung\n"
- "-c Kanonische Ausgabe, für die Verwendung mit nwbpadd\n"
- "\n"
-
-@@ -3629,7 +3629,7 @@ msgstr ""
- " über dessen Inhalt\n"
- " -l Listet Namespace Informationen\n"
- " -e Listet erweiterte Attributinformationen\n"
--" -v Detailiertes Auflistung\n"
-+" -v Detailliertes Auflistung\n"
- " -f Listet die Datei nutzende Verbindungen\n"
- " -p List physikalische Sperren dieser Datei\n"
- " -t Technisch - zeigt Werte und ihre Bedeutung\n"
-@@ -4532,7 +4532,7 @@ msgstr ""
- "-O objectid Objekt-ID\n"
- "-o objname Objektname (Typ muß angegeben werden)\n"
- "-t type Objekttyp\n"
--"-v Detailierte Auflistung\n"
-+"-v Detaillierte Auflistung\n"
- "\n"
-
- #: util/nwtrustee2.c:45
-@@ -4559,7 +4559,7 @@ msgid ""
- "\n"
- msgstr ""
- "\n"
--"-v Detailiert\n"
-+"-v Detailliert\n"
- "\n"
- "Datei- / Verzeichnisliste, die nach Trustees abgesucht wird\n"
- "\n"
---- a/sutil/Makefile.in 2005-01-28 04:35:59.000000000 +1100
-+++ b/sutil/Makefile.in 2007-09-16 21:43:16.000000000 +1000
-@@ -53,8 +53,8 @@ install: all
- ${INSTALL} -d $(DESTDIR)/sbin
- ${INSTALL} -m 4755 $(UTILS) $(DESTDIR)$(bindir)
- ifeq ($(USE_KERNEL),1)
-- ln -sf ..$(bindir)/ncpmount $(DESTDIR)/sbin/mount.ncp
-- ln -sf ..$(bindir)/ncpmount $(DESTDIR)/sbin/mount.ncpfs
-+ ln -sf $(bindir)/ncpmount $(DESTDIR)/sbin/mount.ncp
-+ ln -sf $(bindir)/ncpmount $(DESTDIR)/sbin/mount.ncpfs
- ln -sf ncpumount $(DESTDIR)$(bindir)/ncplogout
- endif
-
---- a/sutil/ncpm_common.c 2005-01-28 04:35:59.000000000 +1100
-+++ b/sutil/ncpm_common.c 2007-09-16 21:44:54.000000000 +1000
-@@ -85,6 +85,7 @@
- #include <stdio.h>
- #include <string.h>
- #include <signal.h>
-+#include <stddef.h>
- #include <pwd.h>
- #include <grp.h>
- #include <ncp/ext/socket.h>
---- a/util/Makefile.in 2005-01-28 04:35:59.000000000 +1100
-+++ b/util/Makefile.in 2007-09-16 21:43:16.000000000 +1000
-@@ -70,7 +70,7 @@ ifneq ($(SBINUTILS),)
- endif
- ifeq ($(USE_KERNEL)$(MOUNT2),11)
- ifneq ($(sbindir),/sbin)
-- ln -sf ..$(sbindir)/nwmsg $(DESTDIR)/sbin/nwmsg
-+ ln -sf $(sbindir)/nwmsg $(DESTDIR)/sbin/nwmsg
- endif
- endif
-
---- a/util/nwpjmv.c 2005-01-28 04:35:59.000000000 +1100
-+++ b/util/nwpjmv.c 2007-09-16 21:43:16.000000000 +1000
-@@ -131,7 +131,7 @@ build_command(struct nw_queue *q, struct
- char *s = q->command;
- char *target_end = target + target_size;
-
-- static void add_string(const char *str)
-+ void add_string(const char *str)
- {
- int len = strlen(str);
- if (target + len + 1 > target_end)
---- a/util/pserver.c 2005-01-28 04:35:59.000000000 +1100
-+++ b/util/pserver.c 2007-09-16 21:43:16.000000000 +1000
-@@ -153,7 +153,7 @@ build_command(struct nw_queue *q, struct
- char *s = q->command;
- char *target_end = target + target_size;
-
-- static void add_string(const char *str)
-+ void add_string(const char *str)
- {
- int len = strlen(str);
- if (target + len + 1 > target_end)
diff --git a/ncpfs/03-multiple_security_issues.patch b/ncpfs/03-multiple_security_issues.patch
deleted file mode 100644
index 5655712de..000000000
--- a/ncpfs/03-multiple_security_issues.patch
+++ /dev/null
@@ -1,511 +0,0 @@
-http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=572937
-
-http://seclists.org/fulldisclosure/2010/Mar/122
-
-The ncpmount, ncpumount, and ncplogin utilities, installed as part of the ncpfs
-package, contain several vulnerabilities.
-
-1. ncpmount, ncpumount, and ncplogin are vulnerable to race conditions that
-allow a local attacker to unmount arbitrary mountpoints, causing
-denial-of-service, or mount Netware shares to arbitrary directories,
-potentially leading to root compromise. This issue was formerly assigned
-CVE-2009-3297, but has since been re-assigned CVE-2010-0788 to avoid overlap
-with related bugs in other packages.
-
-2. ncpumount is vulnerable to an information disclosure vulnerability that
-allows a local attacker to verify the existence of arbitrary files, violating
-directory permissions. This issue has been assigned CVE-2010-0790.
-
-3. ncpmount, ncpumount, and ncplogin create lockfiles insecurely, allowing a
-local attacker to leave a stale lockfile at /etc/mtab~, causing other mount
-utilities to fail and creating denial-of-service conditions. This issue has
-been assigned CVE-2010-0791.
-
---- a/sutil/ncplogin.c 2010-03-03 16:18:59.000000000 -0500
-+++ b/sutil/ncplogin.c 2010-03-03 16:17:41.000000000 -0500
-@@ -934,7 +934,9 @@
- NWDSFreeContext(ctx);
- /* ncpmap, ncplogin must write in /etc/mtab */
- {
-+ block_sigs();
- add_mnt_entry(mount_name, mount_point, info.flags);
-+ unblock_sigs();
- }
- free(mount_name);
- if (info.echo_mnt_pnt) {
---- a/sutil/ncpm_common.c 2010-03-03 16:18:59.000000000 -0500
-+++ b/sutil/ncpm_common.c 2010-03-03 16:17:41.000000000 -0500
-@@ -360,7 +360,7 @@
- #endif
-
- static inline int ncpm_suser(void) {
-- return setreuid(-1, 0);
-+ return setresuid(0, 0, myuid);
- }
-
- static int ncpm_normal(void) {
-@@ -368,11 +368,31 @@
- int v;
-
- e = errno;
-- v = setreuid(-1, myuid);
-+ v = setresuid(myuid, myuid, 0);
- errno = e;
- return v;
- }
-
-+void block_sigs(void) {
-+
-+ sigset_t mask, orig_mask;
-+ sigfillset(&mask);
-+
-+ if(sigprocmask(SIG_SETMASK, &mask, &orig_mask) < 0) {
-+ errexit(-1, _("Blocking signals failed.\n"));
-+ }
-+}
-+
-+void unblock_sigs(void) {
-+
-+ sigset_t mask, orig_mask;
-+ sigemptyset(&mask);
-+
-+ if (sigprocmask(SIG_SETMASK, &mask, &orig_mask) < 0) {
-+ errexit(-1, _("Un-blocking signals failed.\n"));
-+ }
-+}
-+
- static int proc_ncpm_mount(const char* source, const char* target, const char* filesystem, unsigned long mountflags, const void* data) {
- int v;
- int e;
-@@ -444,7 +464,7 @@
- }
- datav2.file_mode = data->file_mode;
- datav2.dir_mode = data->dir_mode;
-- err = proc_ncpm_mount(mount_name, data->mount_point, "ncpfs", flags, (void*) &datav2);
-+ err = proc_ncpm_mount(mount_name, ".", "ncpfs", flags, (void*) &datav2);
- if (err)
- return errno;
- return 0;
-@@ -508,7 +528,7 @@
- exit(0); /* Should not return from process_connection */
- }
- close(pp[0]);
-- err=proc_ncpm_mount(mount_name, data->mount_point, "ncpfs", flags, (void*) &datav3);
-+ err=proc_ncpm_mount(mount_name, ".", "ncpfs", flags, (void*) &datav3);
- if (err) {
- err = errno;
- /* Mount unsuccesful so we have to kill daemon */
-@@ -559,7 +579,7 @@
- sprintf(mountopts, "version=%u,flags=%u,owner=%u,uid=%u,gid=%u,mode=%u,dirmode=%u,timeout=%u,retry=%u,wdogpid=%u,ncpfd=%u,infofd=%u",
- NCP_MOUNT_VERSION_V5, ncpflags, data->mounted_uid, data->uid, data->gid, data->file_mode,
- data->dir_mode, data->time_out, data->retry_count, wdog_pid, data->ncp_fd, pp[1]);
-- err=proc_ncpm_mount(mount_name, data->mount_point, "ncpfs", flags, mountopts);
-+ err=proc_ncpm_mount(mount_name, ".", "ncpfs", flags, mountopts);
- } else {
- err=-1;
- }
-@@ -577,7 +597,7 @@
- datav4.file_mode = data->file_mode;
- datav4.dir_mode = data->dir_mode;
- datav4.wdog_pid = wdog_pid;
-- err = proc_ncpm_mount(mount_name, data->mount_point, "ncpfs", flags, (void*)&datav4);
-+ err = proc_ncpm_mount(mount_name, ".", "ncpfs", flags, (void*)&datav4);
- if (err) {
- err = errno;
- /* Mount unsuccesful so we have to kill daemon */
-@@ -1395,6 +1415,17 @@
- }
- #endif /* MOUNT3 */
-
-+static int check_name(const char *name)
-+{
-+ char *s;
-+ for (s = "\n\t\\"; *s; s++) {
-+ if (strchr(name, *s)) {
-+ return -1;
-+ }
-+ }
-+ return 0;
-+}
-+
- static const struct smntflags {
- unsigned int flag;
- const char* name;
-@@ -1416,6 +1447,9 @@
- int fd;
- FILE* mtab;
-
-+ if (check_name(mount_name) == -1 || check_name(mpnt) == -1)
-+ errexit(107, _("Illegal character in mount entry\n"));
-+
- ment.mnt_fsname = mount_name;
- ment.mnt_dir = mpnt;
- ment.mnt_type = (char*)"ncpfs";
---- a/sutil/ncpm_common.h 2010-03-03 16:18:59.000000000 -0500
-+++ b/sutil/ncpm_common.h 2010-03-03 16:17:41.000000000 -0500
-@@ -121,6 +121,9 @@
- int proc_aftermount(const struct ncp_mount_info* info, NWCONN_HANDLE* conn);
- int proc_ncpm_umount(const char* dir);
-
-+void block_sigs(void);
-+void unblock_sigs(void);
-+
- #define UNUSED(x) x __attribute__((unused))
-
- #endif /* __NCPM_COMMON_H__ */
---- a/sutil/ncpmount.c 2010-03-03 16:18:59.000000000 -0500
-+++ b/sutil/ncpmount.c 2010-03-03 16:17:41.000000000 -0500
-@@ -359,11 +359,17 @@
- usage();
- return -1;
- }
-+
- realpath(argv[optind], mount_point);
-
-- if (stat(mount_point, &st) == -1)
-+ if (chdir(mount_point))
-+ {
-+ errexit(31, _("Could not change directory into mount target %s: %s\n"),
-+ mount_point, strerror(errno));
-+ }
-+ if (stat(".", &st) == -1)
- {
-- errexit(31, _("Could not find mount point %s: %s\n"),
-+ errexit(31, _("Mount point %s does not exist: %s\n"),
- mount_point, strerror(errno));
- }
- if (mount_ok(&st) != 0)
-@@ -714,7 +720,9 @@
- ncp_close(conn);
-
- if (!opt_n) {
-+ block_sigs();
- add_mnt_entry(mount_name, mount_point, info.flags);
-+ unblock_sigs();
- }
- return 0;
- }
---- a/sutil/ncpumount.c 2010-03-03 16:18:59.000000000 -0500
-+++ b/sutil/ncpumount.c 2010-03-03 16:17:41.000000000 -0500
-@@ -70,13 +70,24 @@
- #include <mntent.h>
- #include <pwd.h>
-
-+#include <sched.h>
-+
- #include "private/libintl.h"
-
- #define _(X) X
-
-+#ifndef MS_REC
-+#define MS_REC 16384
-+#endif
-+#ifndef MS_SLAVE
-+#define MS_SLAVE (1<<19)
-+#endif
-+
- static char *progname;
- static int is_ncplogout = 0;
-
-+uid_t uid;
-+
- static void
- usage(void)
- {
-@@ -117,6 +128,40 @@
- va_end(ap);
- }
-
-+/* Mostly copied from ncpm_common.c */
-+void block_sigs(void) {
-+
-+ sigset_t mask, orig_mask;
-+ sigfillset(&mask);
-+ sigdelset(&mask, SIGALRM); /* Need SIGALRM for ncpumount */
-+
-+ if(setresuid(0, 0, uid) < 0) {
-+ eprintf("Failed to raise privileges.\n");
-+ exit(-1);
-+ }
-+
-+ if(sigprocmask(SIG_SETMASK, &mask, &orig_mask) < 0) {
-+ eprintf("Blocking signals failed.\n");
-+ exit(-1);
-+ }
-+}
-+
-+void unblock_sigs(void) {
-+
-+ sigset_t mask, orig_mask;
-+ sigemptyset(&mask);
-+
-+ if(setresuid(uid, uid, 0) < 0) {
-+ eprintf("Failed to drop privileges.\n");
-+ exit(-1);
-+ }
-+
-+ if(sigprocmask(SIG_SETMASK, &mask, &orig_mask) < 0) {
-+ eprintf("Un-blocking signals failed.\n");
-+ exit(-1);
-+ }
-+}
-+
- static void alarmSignal(int sig) {
- (void)sig;
- }
-@@ -192,10 +237,13 @@
- if (!numEntries)
- return 0; /* don't waste time ! */
-
-+ block_sigs();
-+
- while ((fd = open(MOUNTED "~", O_RDWR | O_CREAT | O_EXCL, 0600)) == -1) {
- struct timespec tm;
-
- if (errno != EEXIST || retries == 0) {
-+ unblock_sigs();
- eprintf(_("Can't get %s~ lock file: %s\n"), MOUNTED, strerror(errno));
- return 1;
- }
-@@ -206,6 +254,7 @@
- alarm(0);
- close(fd);
- if (err) {
-+ unblock_sigs();
- eprintf(_("Can't lock lock file %s~: %s\n"), MOUNTED, _("Lock timed out"));
- return 1;
- }
-@@ -223,26 +272,205 @@
- err = __clearMtab(mount_points, numEntries);
-
- if ((unlink(MOUNTED "~") == -1) && (err == 0)){
-+ unblock_sigs();
- eprintf(_("Can't remove %s~"), MOUNTED);
- return 1;
- }
-+ unblock_sigs();
- return err;
- }
-
-+
-+int ncp_mnt_umount(const char *abs_mnt, const char *rel_mnt)
-+{
-+ if (umount(rel_mnt) != 0) {
-+ eprintf(_("Could not umount %s: %s\n"),
-+ abs_mnt, strerror(errno));
-+ return -1;
-+ }
-+ return 0;
-+}
-+
-+
-+static int check_is_mount_child(void *p)
-+{
-+ const char **a = p;
-+ const char *last = a[0];
-+ const char *mnt = a[1];
-+ int res;
-+ const char *procmounts = "/proc/mounts";
-+ int found;
-+ FILE *fp;
-+ struct mntent *entp;
-+
-+ res = mount("", "/", "", MS_SLAVE | MS_REC, NULL);
-+ if (res == -1) {
-+ eprintf(_("Failed to mark mounts slave: %s\n"),
-+ strerror(errno));
-+ return 1;
-+ }
-+
-+ res = mount(".", "/tmp", "", MS_BIND | MS_REC, NULL);
-+ if (res == -1) {
-+ eprintf(_("Failed to bind parent to /tmp: %s\n"),
-+ strerror(errno));
-+ return 1;
-+ }
-+
-+ fp = setmntent(procmounts, "r");
-+ if (fp == NULL) {
-+ eprintf(_("Failed to open %s: %s\n"),
-+ procmounts, strerror(errno));
-+ return 1;
-+ }
-+
-+ found = 0;
-+ while ((entp = getmntent(fp)) != NULL) {
-+ if (strncmp(entp->mnt_dir, "/tmp/", 5) == 0 &&
-+ strcmp(entp->mnt_dir + 5, last) == 0) {
-+ found = 1;
-+ break;
-+ }
-+ }
-+ endmntent(fp);
-+
-+ if (!found) {
-+ eprintf(_("%s not mounted\n"), mnt);
-+ return 1;
-+ }
-+
-+ return 0;
-+}
-+
-+
-+static int check_is_mount(const char *last, const char *mnt)
-+{
-+ char buf[131072];
-+ pid_t pid, p;
-+ int status;
-+ const char *a[2] = { last, mnt };
-+
-+ pid = clone(check_is_mount_child, buf + 65536, CLONE_NEWNS, (void *) a);
-+ if (pid == (pid_t) -1) {
-+ eprintf(_("Failed to clone namespace: %s\n"),
-+ strerror(errno));
-+ return -1;
-+ }
-+ p = waitpid(pid, &status, __WCLONE);
-+ if (p == (pid_t) -1) {
-+ eprintf(_("Waitpid failed: %s\n"),
-+ strerror(errno));
-+ return -1;
-+ }
-+ if (!WIFEXITED(status)) {
-+ eprintf(_("Child terminated abnormally (status %i)\n"),
-+ status);
-+ return -1;
-+ }
-+ if (WEXITSTATUS(status) != 0)
-+ return -1;
-+
-+ return 0;
-+}
-+
-+
-+static int chdir_to_parent(char *copy, const char **lastp, int *currdir_fd)
-+{
-+ char *tmp;
-+ const char *parent;
-+ char buf[PATH_MAX];
-+ int res;
-+
-+ tmp = strrchr(copy, '/');
-+ if (tmp == NULL || tmp[1] == '\0') {
-+ eprintf(_("Internal error: invalid abs path: <%s>\n"),
-+ copy);
-+ return -1;
-+ }
-+ if (tmp != copy) {
-+ *tmp = '\0';
-+ parent = copy;
-+ *lastp = tmp + 1;
-+ } else if (tmp[1] != '\0') {
-+ *lastp = tmp + 1;
-+ parent = "/";
-+ } else {
-+ *lastp = ".";
-+ parent = "/";
-+ }
-+ *currdir_fd = open(".", O_RDONLY);
-+ if (*currdir_fd == -1) {
-+ eprintf(_("Failed to open current directory: %s\n"),
-+ strerror(errno));
-+ return -1;
-+ }
-+ res = chdir(parent);
-+ if (res == -1) {
-+ eprintf(_("Failed to chdir to %s: %s\n"),
-+ parent, strerror(errno));
-+ return -1;
-+ }
-+ if (getcwd(buf, sizeof(buf)) == NULL) {
-+ eprintf(_("Failed to obtain current directory: %s\n"),
-+ strerror(errno));
-+ return -1;
-+ }
-+ if (strcmp(buf, parent) != 0) {
-+ eprintf(_("Mountpoint moved (%s -> %s)\n"),
-+ parent, buf);
-+ return -1;
-+
-+ }
-+
-+ return 0;
-+}
-+
-+
-+static int unmount_ncp(const char *mount_point)
-+{
-+ int currdir_fd = -1;
-+ char *copy;
-+ const char *last;
-+ int res;
-+
-+ copy = strdup(mount_point);
-+ if (copy == NULL) {
-+ eprintf(_("Failed to allocate memory\n"));
-+ return -1;
-+ }
-+ res = chdir_to_parent(copy, &last, &currdir_fd);
-+ if (res == -1)
-+ goto out;
-+ res = check_is_mount(last, mount_point);
-+ if (res == -1)
-+ goto out;
-+ res = ncp_mnt_umount(mount_point, last);
-+
-+out:
-+ free(copy);
-+ if (currdir_fd != -1) {
-+ fchdir(currdir_fd);
-+ close(currdir_fd);
-+ }
-+
-+ return res;
-+}
-+
- static int
- do_umount(const char *mount_point)
- {
- int fid = open(mount_point, O_RDONLY, 0);
- uid_t mount_uid;
-+ int res;
-
- if (fid == -1) {
-- eprintf(_("Could not open %s: %s\n"),
-- mount_point, strerror(errno));
-+ eprintf(_("Invalid or unauthorized mountpoint %s\n"),
-+ mount_point);
- return -1;
- }
- if (ncp_get_mount_uid(fid, &mount_uid) != 0) {
- close(fid);
-- eprintf(_("%s probably not ncp-filesystem\n"),
-+ eprintf(_("Invalid or unauthorized mountpoint %s\n"),
- mount_point);
- return -1;
- }
-@@ -253,12 +481,8 @@
- return -1;
- }
- close(fid);
-- if (umount(mount_point) != 0) {
-- eprintf(_("Could not umount %s: %s\n"),
-- mount_point, strerror(errno));
-- return -1;
-- }
-- return 0;
-+ res = unmount_ncp(mount_point);
-+ return res;
- }
-
-
-@@ -409,7 +633,8 @@
- int allConns = 0;
- const char *serverName = NULL;
- const char *treeName = NULL;
-- uid_t uid = getuid();
-+
-+ uid = getuid();
-
- progname = strrchr(argv[0], '/');
- if (progname) {
diff --git a/ncpfs/04-drop-mtab-support.patch b/ncpfs/04-drop-mtab-support.patch
deleted file mode 100644
index 28d797788..000000000
--- a/ncpfs/04-drop-mtab-support.patch
+++ /dev/null
@@ -1,268 +0,0 @@
-Description: Drop all mtab writes
-Author: Bastian Blank <waldi@debian.org>
-Bug-Debian: http://bugs.debian.org/692470
-
---- ncpfs-2.2.6.orig/sutil/ncpm_common.h
-+++ ncpfs-2.2.6/sutil/ncpm_common.h
-@@ -60,7 +60,6 @@ void verify_argv(int argc, char* argv[])
- int ncp_mount_specific(struct ncp_conn* conn, int pathNS, const unsigned char* NWpath, int pathlen);
- int mount_ok(struct stat *st);
- void mycom_err(int, const char*, ...);
--void add_mnt_entry(char* mount_name, char* mpoint, unsigned long flags);
-
- struct ncp_mount_info {
- struct ncp_mount_data_independent mdata;
---- ncpfs-2.2.6.orig/sutil/ncpm_common.c
-+++ ncpfs-2.2.6/sutil/ncpm_common.c
-@@ -104,7 +104,6 @@
- #include <stdlib.h>
- #include <stdarg.h>
- #include <sys/mount.h>
--#include <mntent.h>
- #include <ncp/kernel/ipx.h>
- #include <sys/ioctl.h>
- #if MOUNT3
-@@ -1440,68 +1439,6 @@ static const struct smntflags {
- {MS_NODIRATIME, "nodiratime"},
- {0, NULL}};
-
--void add_mnt_entry(char* mount_name, char* mpnt, unsigned long flags) {
-- const struct smntflags* sf;
-- char mnt_opts[80];
-- char* p;
-- struct mntent ment;
-- int fd;
-- FILE* mtab;
--
-- if (check_name(mount_name) == -1 || check_name(mpnt) == -1)
-- errexit(107, _("Illegal character in mount entry\n"));
--
-- ment.mnt_fsname = mount_name;
-- ment.mnt_dir = mpnt;
-- ment.mnt_type = (char*)"ncpfs";
-- ment.mnt_opts = mnt_opts;
-- ment.mnt_freq = 0;
-- ment.mnt_passno = 0;
--
-- p = mnt_opts;
-- *p++ = 'r';
-- *p++ = (flags & MS_RDONLY)?'o':'w';
-- for (sf = mntflags; sf->flag; sf++) {
-- if (flags & sf->flag) {
-- *p++ = ',';
-- strcpy(p, sf->name);
-- p += strlen(p);
-- }
-- }
-- *p = 0;
--
-- if (ncpm_suser()) {
-- errexit(91, _("Cannot switch to superuser: %s\n"), strerror(errno));
-- }
-- if ((fd = open(MOUNTED "~", O_RDWR | O_CREAT | O_EXCL, 0600)) == -1)
-- {
-- errexit(58, _("Can't get %s~ lock file\n"), MOUNTED);
-- }
-- close(fd);
--
-- if ((mtab = setmntent(MOUNTED, "a+")) == NULL)
-- {
-- errexit(59, _("Can't open %s\n"), MOUNTED);
-- }
-- if (addmntent(mtab, &ment) == 1)
-- {
-- errexit(60, _("Can't write mount entry\n"));
-- }
-- if (fchmod(fileno(mtab), 0644) == -1)
-- {
-- errexit(61, _("Can't set perms on %s\n"), MOUNTED);
-- }
-- endmntent(mtab);
--
-- if (unlink(MOUNTED "~") == -1)
-- {
-- errexit(62, _("Can't remove %s~\n"), MOUNTED);
-- }
-- if (ncpm_normal()) {
-- errexit(90, _("Cannot relinquish superuser rights: %s\n"), strerror(EPERM));
-- }
--}
--
- static int __proc_option(const struct optinfo* opts, struct ncp_mount_info* info, const char* opt, const char* param) {
- const struct optinfo* optr;
-
---- ncpfs-2.2.6.orig/sutil/ncpmount.c
-+++ ncpfs-2.2.6/sutil/ncpmount.c
-@@ -114,7 +114,6 @@
- #include <stdlib.h>
- #include <stdarg.h>
- #include <sys/mount.h>
--#include <mntent.h>
- #include <ncp/kernel/ipx.h>
- #include <ncp/nwclient.h>
- #include <sys/ioctl.h>
-@@ -719,11 +718,6 @@ ncpipx:;
- }
- ncp_close(conn);
-
-- if (!opt_n) {
-- block_sigs();
-- add_mnt_entry(mount_name, mount_point, info.flags);
-- unblock_sigs();
-- }
- return 0;
- }
-
---- ncpfs-2.2.6.orig/sutil/ncplogin.c
-+++ ncpfs-2.2.6/sutil/ncplogin.c
-@@ -111,7 +111,6 @@
- #include <stdlib.h>
- #include <stdarg.h>
- #include <sys/mount.h>
--#include <mntent.h>
- #include <ncp/kernel/ipx.h>
- #include <sys/ioctl.h>
- #ifdef CONFIG_NATIVE_UNIX
-@@ -932,12 +931,6 @@ ncpipx:;
- }
- NWCCCloseConn(conn);
- NWDSFreeContext(ctx);
-- /* ncpmap, ncplogin must write in /etc/mtab */
-- {
-- block_sigs();
-- add_mnt_entry(mount_name, mount_point, info.flags);
-- unblock_sigs();
-- }
- free(mount_name);
- if (info.echo_mnt_pnt) {
- printf(_("mounted on:%s\n"),mount_point);
---- ncpfs-2.2.6.orig/sutil/ncpumount.c
-+++ ncpfs-2.2.6/sutil/ncpumount.c
-@@ -186,108 +186,6 @@ static void enableAlarm(void) {
- sigprocmask(SIG_UNBLOCK, &sa.sa_mask, NULL);
- }
-
--static int __clearMtab (const char* mount_points[], unsigned int numEntries) {
--// main logic from ncpumount.c
-- struct mntent *mnt;
-- FILE *mtab;
-- FILE *new_mtab;
--
--#define MOUNTED_TMP MOUNTED".tmp"
--
-- if ((mtab = setmntent(MOUNTED, "r")) == NULL){
-- eprintf(_("Can't open %s: %s\n"), MOUNTED,
-- strerror(errno));
-- return 1;
-- }
--
-- if ((new_mtab = setmntent(MOUNTED_TMP, "w")) == NULL){
-- eprintf(_("Can't open %s: %s\n"), MOUNTED_TMP,
-- strerror(errno));
-- endmntent(mtab);
-- return 1;
-- }
-- while ((mnt = getmntent(mtab)) != NULL) {
-- unsigned int i=0;
-- int found=0;
--
-- while (i<numEntries && !found) {
-- found=!strcmp(mnt->mnt_dir, mount_points[i]);
-- i++;
-- }
-- if (!found) {
-- addmntent(new_mtab, mnt);
-- }
-- }
--
-- endmntent(mtab);
--
-- if (fchmod(fileno(new_mtab), S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH) < 0){
-- eprintf(_("Error changing mode of %s: %s\n"),
-- MOUNTED_TMP, strerror(errno));
-- return 1;
-- }
-- endmntent(new_mtab);
--
-- if (rename(MOUNTED_TMP, MOUNTED) < 0){
-- eprintf(_("Cannot rename %s to %s: %s\n"),
-- MOUNTED, MOUNTED_TMP, strerror(errno));
-- return 1;
-- }
-- return 0;
--}
--
--static int clearMtab (const char* mount_points[], unsigned int numEntries) {
-- int fd;
-- int err;
-- int retries = 10;
--
-- if (!numEntries)
-- return 0; /* don't waste time ! */
--
-- block_sigs();
--
-- while ((fd = open(MOUNTED "~", O_RDWR | O_CREAT | O_EXCL, 0600)) == -1) {
-- struct timespec tm;
--
-- if (errno != EEXIST || retries == 0) {
-- unblock_sigs();
-- eprintf(_("Can't get %s~ lock file: %s\n"), MOUNTED, strerror(errno));
-- return 1;
-- }
-- fd = open(MOUNTED "~", O_RDWR);
-- if (fd != -1) {
-- alarm(10);
-- err = lockf(fd, F_LOCK, 0);
-- alarm(0);
-- close(fd);
-- if (err) {
-- unblock_sigs();
-- eprintf(_("Can't lock lock file %s~: %s\n"), MOUNTED, _("Lock timed out"));
-- return 1;
-- }
-- tm.tv_sec = 0;
-- tm.tv_nsec = 20000000;
-- nanosleep(&tm, NULL);
-- }
-- retries--;
-- }
-- alarm(1);
-- lockf(fd, F_LOCK, 0);
-- alarm(0);
-- close(fd);
--
-- err = __clearMtab(mount_points, numEntries);
--
-- if ((unlink(MOUNTED "~") == -1) && (err == 0)){
-- unblock_sigs();
-- eprintf(_("Can't remove %s~"), MOUNTED);
-- return 1;
-- }
-- unblock_sigs();
-- return err;
--}
--
--
- int ncp_mnt_umount(const char *abs_mnt, const char *rel_mnt)
- {
- if (umount(rel_mnt) != 0) {
-@@ -629,10 +527,6 @@ static int old_ncpumount(int argc, char
- ret = 1;
- continue;
- }
-- if (clearMtab(&mount_point, 1)) {
-- ret = 1;
-- continue;
-- }
- }
- return ret;
- }
-@@ -751,7 +645,6 @@ main(int argc, char *argv[])
- if (serverName || allConns) {
- processBindServers(conns,curEntries,serverName,umountTable,&mountEntries);
- }
-- clearMtab(umountTable, mountEntries);
- } else if (treeName) {
- eprintf(_("No NCP connections to tree %s.\n"),treeName);
- } else if (serverName) {
diff --git a/ncpfs/05-ldflags.patch b/ncpfs/05-ldflags.patch
deleted file mode 100644
index 77ba4fc9c..000000000
--- a/ncpfs/05-ldflags.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-Description: Add usage of LDFLAGS
-Author: Bastian Blank <waldi@debian.org>
-
---- ncpfs-2.2.6.orig/Make.rules.in
-+++ ncpfs-2.2.6/Make.rules.in
-@@ -43,6 +43,8 @@ CFLAGS_DEFINES := -DN_PLAT_LINUX -DLOCAL
-
- CCFLAGS := $(CFLAGS_DEFINES) $(CFLAGS_OPTIONS) $(INCLUDES)
-
-+LDFLAGS := @LDFLAGS@
-+
- # If your system is ELF, either also do a 'make install', or append the util/
- # directory where the dynamic library resides to the environment
- # variable LD_LIBRARY_PATH
---- ncpfs-2.2.6.orig/sutil/Makefile.in
-+++ ncpfs-2.2.6/sutil/Makefile.in
-@@ -85,7 +85,7 @@ ncpm_common.d mount_login.d: %.d: %.c
- [ -s $@ ] || rm -f $@
-
- $(UTILS): %: %.o ../lib/libncp.a ncpm_common.o mount_login.o
-- $(CC) @GC_SECTIONS@-o $@ $(addsuffix .o,$@) $(LDFLAGS_$@) ../lib/libncp.a ${LIBS}
-+ $(CC) @GC_SECTIONS@-o $@ $(addsuffix .o,$@) $(LDFLAGS_$@) $(LDFLAGS) ../lib/libncp.a ${LIBS}
-
- ../lib/libncp.a:
- make -C ../lib libncp.a
---- ncpfs-2.2.6.orig/ipx-1.0/Makefile.in
-+++ ncpfs-2.2.6/ipx-1.0/Makefile.in
-@@ -33,10 +33,10 @@ $(ALL_OBJECTS): %.o: %.c
- [ -s $@ ] || rm -f $@
-
- $(UTIIPX): %: %.o ipxutil.o
-- $(CC) $(CFLAGS) -o $@ $(addsuffix .o,$@) ipxutil.o ${LIBS}
-+ $(CC) $(CFLAGS) -o $@ $(addsuffix .o,$@) ipxutil.o $(LDFLAGS) ${LIBS}
-
- $(UTILS): %: %.o
-- $(CC) $(CFLAGS) -o $@ $(addsuffix .o,$@) ${LIBS}
-+ $(CC) $(CFLAGS) -o $@ $(addsuffix .o,$@) $(LDFLAGS) ${LIBS}
-
- $(MAN8GZ): %.gz: %
- gzip -9 -c $< >$@
---- ncpfs-2.2.6.orig/util/Makefile.in
-+++ ncpfs-2.2.6/util/Makefile.in
-@@ -94,10 +94,10 @@ $(O_USERUTILS) $(O_SBINUTILS) $(O_OTHER)
- pqstat nwpqjob nprint: dsqueue.o
-
- $(UTILS): %: %.o $(LIBDEP)
-- $(CC) $(CFLAGS) -o $@ $(addsuffix .o,$@) $(ADDOBJS_$@) -L$(NCPLIB_DIR) -lncp ${LIBS}
-+ $(CC) $(CFLAGS) -o $@ $(addsuffix .o,$@) $(ADDOBJS_$@) $(LDFLAGS) -L$(NCPLIB_DIR) -lncp ${LIBS}
-
- ipx_probe: ipx_probe.c
-- $(CC) $(CFLAGS) $(CCFLAGS) -o ipx_probe ipx_probe.c ${LIBS}
-+ $(CC) $(CFLAGS) $(CCFLAGS) -o ipx_probe ipx_probe.c $(LDFLAGS) ${LIBS}
-
- dep:
-
---- ncpfs-2.2.6.orig/lib/Makefile.in
-+++ ncpfs-2.2.6/lib/Makefile.in
-@@ -122,7 +122,7 @@ $(SHARED_NCPLIB): $(SHARED_NCPLIB_BIN)
- ln -sf $< $@
-
- $(SHARED_NCPLIB_BIN): $(SHARED_O_OBJ) ${this_srcdir}/libncp.vers
-- $(CC) -shared -o $@ -Wl,-soname=$(SHARED_NCPLIB_SONAME) $(SHARED_VLINK) $(SHARED_O_OBJ) ${LIBS} -lc
-+ $(CC) -shared -o $@ -Wl,-soname=$(SHARED_NCPLIB_SONAME) $(SHARED_VLINK) $(SHARED_O_OBJ) $(LDFLAGS) ${LIBS} -lc
-
- install_static: $(STATIC_NCPLIB_BIN)
- $(INSTALL) -d $(DESTDIR)$(libadir)
---- ncpfs-2.2.6.orig/ipxdump/Makefile.in
-+++ ncpfs-2.2.6/ipxdump/Makefile.in
-@@ -24,7 +24,7 @@ install: $(EXEC)
- ifeq ($(ncp_if_ether_support),yes)
-
- $(EXEC): %: %.o $(OBJECTS)
-- $(CC) $(CFLAGS) -o $@ $(addsuffix .o,$@) $(OBJECTS)
-+ $(CC) $(CFLAGS) -o $@ $(addsuffix .o,$@) $(LDFLAGS) $(OBJECTS)
-
- else
- .PHONY ipxdump ipxparse
diff --git a/ncpfs/06-makefile-remove-generated.patch b/ncpfs/06-makefile-remove-generated.patch
deleted file mode 100644
index 547210100..000000000
--- a/ncpfs/06-makefile-remove-generated.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Description: Remove another generated file
-Author: Bastian Blank <waldi@debian.org>
-Bug-Debian: http://bugs.debian.org/692471
-
---- ncpfs-2.2.6.orig/Makefile.in
-+++ ncpfs-2.2.6/Makefile.in
-@@ -71,6 +71,7 @@ distclean:
- rm -f intl/Makefile po/Makefile po/Makefile.in
- rm -f lib/Makefile man/Makefile sutil/Makefile util/Makefile
- rm -f include/config.h
-+ rm -f include/private/libncp-atomic.h
- rm -f include/ncp/ext/socket.h include/ncp/ext/stdint.h
- rm -f include/ncp/kernel/fs.h
- rm -f include/ncp/kernel/if.h include/ncp/kernel/route.h include/ncp/kernel/types.h
diff --git a/ncpfs/PKGBUILD b/ncpfs/PKGBUILD
deleted file mode 100644
index 20316651b..000000000
--- a/ncpfs/PKGBUILD
+++ /dev/null
@@ -1,80 +0,0 @@
-# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Contributor: dsa <dsa@unilestemg.br>
-# Contributor: gerbra <gerbra@derbrauer.homelinux.net>
-# Contributor: Joker-jar <joker-jar@yandex.ru>
-# Contributor: josephgbr <rafael.f.f1@gmail.com>
-# Maintainer: Erich Eckner <arch at eckner dot net>
-
-pkgname=ncpfs
-pkgver=2.2.6
-pkgrel=11
-pkgdesc="Utilities to use resources from Novell NetWare servers"
-url="http://www.novell.com/"
-arch=('i686' 'x86_64')
-license=('GPL')
-depends=('linux' 'pam')
-_url="http://ftp.de.debian.org/debian/pool/main/n/$pkgname"
-source=("${_url}/${pkgname}_${pkgver}.orig.tar.gz"
- '01-linux3.0_uname.patch'
- '02-legacy.patch'
- '03-multiple_security_issues.patch'
- '04-drop-mtab-support.patch'
- '05-ldflags.patch'
- '06-makefile-remove-generated.patch')
-md5sums=('a9ab9f135d504440202069393dd9eb36'
- 'e3e3c7c148fff31162175af02f8111a7'
- '20e438bdd8c141b4b604aaf30a3f5f4a'
- '4b0de0263d1d4b91b3520d2eb0cda3a8'
- '5ab557986d02c2cf26f10db42ffb9f02'
- '52fce52a2ccd0dd27cf100ff277d273e'
- '660e851a1f6ab6e9f5464006de844b7e')
-
-# USERS: set this to 1 to enable PHP support
-_with_php=0
-if [ $_with_php -eq 1 ]; then
- makedepends=('php')
- optdepends=('php: PHP NCP authentication support')
-fi
-
-prepare() {
- cd $pkgname-$pkgver
- patch -p1 -i "$srcdir"/01-linux3.0_uname.patch
- patch -p1 -i "$srcdir"/02-legacy.patch
- patch -p1 -i "$srcdir"/03-multiple_security_issues.patch
- patch -p1 -i "$srcdir"/04-drop-mtab-support.patch
- patch -p1 -i "$srcdir"/05-ldflags.patch
- patch -p1 -i "$srcdir"/06-makefile-remove-generated.patch
- # set to use sbindir variable, instead of hardcoded sbin dir
- sed -i 's/sbin/$(sbindir)/' sutil/Makefile.in
- # eliminate warning of deprecation of _BSD_SOURCE in favor of _DEFAULT_SOURCE
- sed -i 's/_BSD_SOURCE/_DEFAULT_SOURCE/' contrib/pam/pam_ncp_auth.c
-}
-
-build() {
- cd $pkgname-$pkgver
-
- # libs should go /usr/lib
- export ncp_cv_pam_directory='/usr/lib/security'
-
- if [ $_with_php -eq 1 ]; then
- ./configure --prefix=/usr --sbindir=/usr/bin --mandir=/usr/share/man
- sed 's/function_entry/zend_function_entry/' -i contrib/php/php_auth_nds.c
- else
- ./configure --prefix=/usr --sbindir=/usr/bin --mandir=/usr/share/man --disable-php
- fi
-
- make
-}
-
-package() {
- cd $pkgname-$pkgver
- make DESTDIR="$pkgdir" install install-dev
- # fix symlinks for libncp.so.2.3.0
- rm "$pkgdir"/usr/lib/libncp.so
- ln -s libncp.so.2.3.0 "$pkgdir"/usr/lib/libncp.so
- ln -s libncp.so.2.3.0 "$pkgdir"/usr/lib/libncp.so.2.3
- # fix symlinks for ncpmount
- rm "$pkgdir"/usr/bin/mount.{ncp,ncpfs}
- ln -s ncpmount "$pkgdir"/usr/bin/mount.ncp
- ln -s ncpmount "$pkgdir"/usr/bin/mount.ncpfs
-}