Remove expired ports:
2016-12-31 devel/rubygem-devise-async-rails4: Not compatible with devel/rubygem-devise > 3 2016-12-31 devel/rubygem-devise-async: Not compatible with devel/rubygem-devise > 3 2016-12-31 net/iet: Upstream no longer active 2016-12-31 sysutils/geomgui: Development stopped years ago. 2016-12-31 sysutils/screen-legacy: Old version released 2008-08-07 no longer upline maintained. 2016-12-31 sysutils/ntfsprogs: Superseded by sysutils/fusefs-ntfs 2016-12-31 www/rubygem-jekyll2: Use www/rubygem-jekyll instead 2016-12-31 databases/rubygem-dm-devise: Not compatible with devel/rubygem-devise > 3 2016-12-31 devel/rubygem-sprockets211: Use devel/rubygem-sprockets or devel/rubygem-sprockets3 instead 2016-12-31 devel/p5-Parse-CPAN-Meta: Merged into devel/p5-CPAN-Meta 2.150008 2016-12-31 devel/jtag: development ceased 2003, superceded by devel/urjtag
This commit is contained in:
parent
77eed30703
commit
9a5bfc962b
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=430147
84 changed files with 11 additions and 3169 deletions
11
MOVED
11
MOVED
|
@ -8929,3 +8929,14 @@ x11-toolkits/linux-f10-pango||2016-12-31|Removed
|
||||||
accessibility/linux-f10-atk||2016-12-31|Removed
|
accessibility/linux-f10-atk||2016-12-31|Removed
|
||||||
archivers/linux-f10-ucl||2016-12-31|Removed
|
archivers/linux-f10-ucl||2016-12-31|Removed
|
||||||
archivers/linux-f10-upx||2016-12-31|Removed
|
archivers/linux-f10-upx||2016-12-31|Removed
|
||||||
|
devel/rubygem-devise-async-rails4||2016-12-31|Has expired: Not compatible with devel/rubygem-devise > 3
|
||||||
|
devel/rubygem-devise-async||2016-12-31|Has expired: Not compatible with devel/rubygem-devise > 3
|
||||||
|
net/iet||2016-12-31|Has expired: Upstream no longer active
|
||||||
|
sysutils/geomgui||2016-12-31|Has expired: Development stopped years ago.
|
||||||
|
sysutils/screen-legacy||2016-12-31|Has expired: Old version released 2008-08-07 no longer upline maintained.
|
||||||
|
sysutils/ntfsprogs|sysutils/fusefs-ntfs|2016-12-31|Has expired: Superseded by sysutils/fusefs-ntfs
|
||||||
|
www/rubygem-jekyll2|www/rubygem-jekyll|2016-12-31|Has expired: Use www/rubygem-jekyll instead
|
||||||
|
databases/rubygem-dm-devise||2016-12-31|Has expired: Not compatible with devel/rubygem-devise > 3
|
||||||
|
devel/rubygem-sprockets211||2016-12-31|Has expired: Use devel/rubygem-sprockets or devel/rubygem-sprockets3 instead
|
||||||
|
devel/p5-Parse-CPAN-Meta||2016-12-31|Has expired: Merged into devel/p5-CPAN-Meta 2.150008
|
||||||
|
devel/jtag|devel/urjtag|2016-12-31|Has expired: development ceased 2003, superceded by devel/urjtag
|
||||||
|
|
|
@ -880,7 +880,6 @@
|
||||||
SUBDIR += rubygem-dm-chunked_query
|
SUBDIR += rubygem-dm-chunked_query
|
||||||
SUBDIR += rubygem-dm-constraints
|
SUBDIR += rubygem-dm-constraints
|
||||||
SUBDIR += rubygem-dm-core
|
SUBDIR += rubygem-dm-core
|
||||||
SUBDIR += rubygem-dm-devise
|
|
||||||
SUBDIR += rubygem-dm-do-adapter
|
SUBDIR += rubygem-dm-do-adapter
|
||||||
SUBDIR += rubygem-dm-migrations
|
SUBDIR += rubygem-dm-migrations
|
||||||
SUBDIR += rubygem-dm-mysql-adapter
|
SUBDIR += rubygem-dm-mysql-adapter
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
# Created by: rpsfa@rit.edu
|
|
||||||
# $FreeBSD$
|
|
||||||
|
|
||||||
PORTNAME= dm-devise
|
|
||||||
PORTVERSION= 2.2.1
|
|
||||||
CATEGORIES= databases rubygems
|
|
||||||
MASTER_SITES= RG
|
|
||||||
|
|
||||||
MAINTAINER= ruby@FreeBSD.org
|
|
||||||
COMMENT= Adds DataMapper support to devise
|
|
||||||
|
|
||||||
LICENSE= MIT
|
|
||||||
LICENSE_FILE= ${WRKSRC}/LICENSE
|
|
||||||
|
|
||||||
RUN_DEPENDS= rubygem-devise>=1.3:devel/rubygem-devise \
|
|
||||||
rubygem-dm-core>=1.0.2:databases/rubygem-dm-core \
|
|
||||||
rubygem-dm-migrations>=1.0.2:databases/rubygem-dm-migrations \
|
|
||||||
rubygem-dm-rails>=1.0.2:databases/rubygem-dm-rails \
|
|
||||||
rubygem-dm-serializer>=1.0.2:databases/rubygem-dm-serializer \
|
|
||||||
rubygem-dm-timestamps>=1.0.2:databases/rubygem-dm-timestamps
|
|
||||||
|
|
||||||
BROKEN= Not compatible with devel/rubygem-devise > 3
|
|
||||||
DEPRECATED= Not compatible with devel/rubygem-devise > 3
|
|
||||||
EXPIRATION_DATE= 2016-12-31
|
|
||||||
|
|
||||||
NO_ARCH= yes
|
|
||||||
USE_RUBY= yes
|
|
||||||
USES= gem
|
|
||||||
|
|
||||||
.include <bsd.port.mk>
|
|
|
@ -1,2 +0,0 @@
|
||||||
SHA256 (rubygem/dm-devise-2.2.1.gem) = e4a5c10e4a18ef3d0f328fa53bf6674e5ec2e8cb4cbaadca4d8366dae1c8c3bd
|
|
||||||
SIZE (rubygem/dm-devise-2.2.1.gem) = 17920
|
|
|
@ -1,4 +0,0 @@
|
||||||
dm-devise adds DataMapper support to devise (devel/rubygem-devise) for
|
|
||||||
authentication support for Rails.
|
|
||||||
|
|
||||||
WWW: https://github.com/jm81/dm-devise
|
|
|
@ -1131,7 +1131,6 @@
|
||||||
SUBDIR += json-glib
|
SUBDIR += json-glib
|
||||||
SUBDIR += jsoncpp
|
SUBDIR += jsoncpp
|
||||||
SUBDIR += jsonnet
|
SUBDIR += jsonnet
|
||||||
SUBDIR += jtag
|
|
||||||
SUBDIR += judy
|
SUBDIR += judy
|
||||||
SUBDIR += jwasm
|
SUBDIR += jwasm
|
||||||
SUBDIR += k8048
|
SUBDIR += k8048
|
||||||
|
@ -2986,7 +2985,6 @@
|
||||||
SUBDIR += p5-Params-Validate-Dependencies
|
SUBDIR += p5-Params-Validate-Dependencies
|
||||||
SUBDIR += p5-Params-ValidationCompiler
|
SUBDIR += p5-Params-ValidationCompiler
|
||||||
SUBDIR += p5-Paranoid
|
SUBDIR += p5-Paranoid
|
||||||
SUBDIR += p5-Parse-CPAN-Meta
|
|
||||||
SUBDIR += p5-Parse-CPAN-Packages
|
SUBDIR += p5-Parse-CPAN-Packages
|
||||||
SUBDIR += p5-Parse-CPAN-Packages-Fast
|
SUBDIR += p5-Parse-CPAN-Packages-Fast
|
||||||
SUBDIR += p5-Parse-ErrorString-Perl
|
SUBDIR += p5-Parse-ErrorString-Perl
|
||||||
|
@ -5110,8 +5108,6 @@
|
||||||
SUBDIR += rubygem-deprecated2
|
SUBDIR += rubygem-deprecated2
|
||||||
SUBDIR += rubygem-descendants_tracker
|
SUBDIR += rubygem-descendants_tracker
|
||||||
SUBDIR += rubygem-devise
|
SUBDIR += rubygem-devise
|
||||||
SUBDIR += rubygem-devise-async
|
|
||||||
SUBDIR += rubygem-devise-async-rails4
|
|
||||||
SUBDIR += rubygem-devise-rails4
|
SUBDIR += rubygem-devise-rails4
|
||||||
SUBDIR += rubygem-directory_watcher
|
SUBDIR += rubygem-directory_watcher
|
||||||
SUBDIR += rubygem-ditz
|
SUBDIR += rubygem-ditz
|
||||||
|
@ -5412,7 +5408,6 @@
|
||||||
SUBDIR += rubygem-sprockets-helpers
|
SUBDIR += rubygem-sprockets-helpers
|
||||||
SUBDIR += rubygem-sprockets-rails
|
SUBDIR += rubygem-sprockets-rails
|
||||||
SUBDIR += rubygem-sprockets-sass
|
SUBDIR += rubygem-sprockets-sass
|
||||||
SUBDIR += rubygem-sprockets211
|
|
||||||
SUBDIR += rubygem-sprockets22
|
SUBDIR += rubygem-sprockets22
|
||||||
SUBDIR += rubygem-sprockets3
|
SUBDIR += rubygem-sprockets3
|
||||||
SUBDIR += rubygem-spruz
|
SUBDIR += rubygem-spruz
|
||||||
|
|
|
@ -1,46 +0,0 @@
|
||||||
# Created by: Stanislav Sedov <ssedov@mbsd.msk.ru>
|
|
||||||
# $FreeBSD$
|
|
||||||
|
|
||||||
PORTNAME= jtag
|
|
||||||
PORTVERSION= 0.5.1
|
|
||||||
PORTREVISION= 5
|
|
||||||
CATEGORIES= devel
|
|
||||||
MASTER_SITES= SF/openwince/${PORTNAME}/${PORTVERSION}
|
|
||||||
|
|
||||||
MAINTAINER= ports@FreeBSD.org
|
|
||||||
COMMENT= Utility to work with JTAG-aware boards
|
|
||||||
|
|
||||||
LICENSE= GPLv2+
|
|
||||||
LICENSE_FILE= ${WRKSRC}/COPYING
|
|
||||||
|
|
||||||
BUILD_DEPENDS= ${OPENWINCE_INCLUDE_DEP}:devel/openwince-include
|
|
||||||
|
|
||||||
DEPRECATED= development ceased 2003, superceded by devel/urjtag
|
|
||||||
EXPIRATION_DATE= 2016-12-31
|
|
||||||
ONLY_FOR_ARCHS= i386
|
|
||||||
|
|
||||||
USES= readline tar:bzip2
|
|
||||||
GNU_CONFIGURE= yes
|
|
||||||
|
|
||||||
PORTDOCS= *
|
|
||||||
|
|
||||||
OPENWINCE_INCLUDE=${LOCALBASE}/include/openwince
|
|
||||||
OPENWINCE_INCLUDE_DEP=${OPENWINCE_INCLUDE}/common.h
|
|
||||||
|
|
||||||
OPTIONS_DEFINE= NLS DOCS
|
|
||||||
OPTIONS_SUB= yes
|
|
||||||
|
|
||||||
NLS_CONFIGURE_ENABLE= nls
|
|
||||||
NLS_USES= gettext
|
|
||||||
|
|
||||||
post-extract:
|
|
||||||
@${REINPLACE_CMD} -E -e \
|
|
||||||
"s,/usr/local/include/openwince,${OPENWINCE_INCLUDE}," \
|
|
||||||
${WRKSRC}/configure
|
|
||||||
|
|
||||||
post-install-DOCS-on:
|
|
||||||
@${MKDIR} ${STAGEDIR}${DOCSDIR}
|
|
||||||
(cd ${WRKSRC} && ${INSTALL_DATA} README TODO doc/internals.xml \
|
|
||||||
${STAGEDIR}${DOCSDIR})
|
|
||||||
|
|
||||||
.include <bsd.port.mk>
|
|
|
@ -1,2 +0,0 @@
|
||||||
SHA256 (jtag-0.5.1.tar.bz2) = 4036f97ef693e9cbe6f99137ad6920b2679ba97d58cf5e78442a4d60308563b6
|
|
||||||
SIZE (jtag-0.5.1.tar.bz2) = 314857
|
|
|
@ -1,11 +0,0 @@
|
||||||
--- configure.orig 2008-01-10 00:59:23.000000000 +0300
|
|
||||||
+++ configure 2008-01-10 00:59:57.000000000 +0300
|
|
||||||
@@ -6836,7 +6836,7 @@
|
|
||||||
|
|
||||||
|
|
||||||
CFLAGS="$CFLAGS -Wall"
|
|
||||||
-CPPFLAGS="$CPPFLAGS -I\$(top_srcdir) -I\$(top_srcdir)/include"
|
|
||||||
+CPPFLAGS="-I\$(top_srcdir) -I\$(top_srcdir)/include $CPPFLAGS"
|
|
||||||
|
|
||||||
cat >confcache <<\_ACEOF
|
|
||||||
# This file is a shell script that caches the results of configure
|
|
|
@ -1,11 +0,0 @@
|
||||||
--- libbrux/cmd/cmd_detectflash.c.orig Sat Aug 5 23:45:49 2006
|
|
||||||
+++ libbrux/cmd/cmd_detectflash.c Sat Aug 5 23:50:04 2006
|
|
||||||
@@ -40,7 +40,7 @@
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
- detectflash( bus );
|
|
||||||
+ detectflash( bus, 0 );
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
--- libbrux/flash/detectflash.c.orig Sat Aug 5 23:48:47 2006
|
|
||||||
+++ libbrux/flash/detectflash.c Sat Aug 5 23:49:40 2006
|
|
||||||
@@ -43,7 +43,7 @@
|
|
||||||
int jedec_detect( bus_t *bus, uint32_t adr, cfi_array_t **cfi_array );
|
|
||||||
|
|
||||||
void
|
|
||||||
-detectflash( bus_t *bus )
|
|
||||||
+detectflash( bus_t *bus , uint32_t adr )
|
|
||||||
{
|
|
||||||
cfi_array_t *cfi_array = NULL;
|
|
||||||
cfi_query_structure_t *cfi;
|
|
|
@ -1,19 +0,0 @@
|
||||||
--- libbrux/flash/jedec.c.orig Sun Aug 6 00:17:33 2006
|
|
||||||
+++ libbrux/flash/jedec.c Sun Aug 6 00:17:50 2006
|
|
||||||
@@ -37,6 +37,7 @@
|
|
||||||
{
|
|
||||||
int mid;
|
|
||||||
int did;
|
|
||||||
+ cfi_query_structure_t *cfi;
|
|
||||||
|
|
||||||
/* Query flash. */
|
|
||||||
bus_write( bus, 0x0, 0xf0 );
|
|
||||||
@@ -55,7 +56,7 @@
|
|
||||||
if (!(*cfi_array)->cfi_chips[0])
|
|
||||||
return -2; /* out of memory */
|
|
||||||
|
|
||||||
- cfi_query_structure_t *cfi = &(*cfi_array)->cfi_chips[0]->cfi;
|
|
||||||
+ cfi = &(*cfi_array)->cfi_chips[0]->cfi;
|
|
||||||
|
|
||||||
cfi->identification_string.pri_id_code = CFI_VENDOR_AMD_SCS;
|
|
||||||
cfi->identification_string.pri_vendor_tbl = NULL;
|
|
|
@ -1,33 +0,0 @@
|
||||||
--- src/tap/parport/direct.c.orig Sat Aug 5 23:51:32 2006
|
|
||||||
+++ src/tap/parport/direct.c Sat Aug 5 23:57:38 2006
|
|
||||||
@@ -46,28 +46,14 @@
|
|
||||||
static __inline int
|
|
||||||
ioperm( unsigned long from, unsigned long num, int permit )
|
|
||||||
{
|
|
||||||
- u_long ports[32];
|
|
||||||
- u_long i;
|
|
||||||
-
|
|
||||||
- if (i386_get_ioperm( ports ) == -1)
|
|
||||||
- return -1;
|
|
||||||
-
|
|
||||||
- for (i = from; i < (from + num); i++)
|
|
||||||
- if (permit)
|
|
||||||
- ports[i / 32] &= ~(1 << (i % 32));
|
|
||||||
- else
|
|
||||||
- ports[i / 32] |= (1 << (i % 32));
|
|
||||||
-
|
|
||||||
- if (i386_set_ioperm( ports ) == -1)
|
|
||||||
- return -1;
|
|
||||||
-
|
|
||||||
+ return i386_set_ioperm(from, num, permit);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static __inline int
|
|
||||||
iopl( int level )
|
|
||||||
{
|
|
||||||
- return i386_iopl( level );
|
|
||||||
+ return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static __inline unsigned char
|
|
|
@ -1,8 +0,0 @@
|
||||||
JTAG Tools is a software package which enables working with JTAG-aware
|
|
||||||
(IEEE 1149.1) hardware devices (parts) and boards through JTAG adapter.
|
|
||||||
|
|
||||||
This package has open and modular architecture with ability to write
|
|
||||||
miscellaneous extensions (like board testers, flash memory programmers,
|
|
||||||
and so on).
|
|
||||||
|
|
||||||
WWW: http://openwince.sourceforge.net/jtag/
|
|
|
@ -1,44 +0,0 @@
|
||||||
bin/bsdl2jtag
|
|
||||||
bin/jtag
|
|
||||||
%%DATADIR%%/MANUFACTURERS
|
|
||||||
%%DATADIR%%/altera/PARTS
|
|
||||||
%%DATADIR%%/altera/ep1c20f400/STEPPINGS
|
|
||||||
%%DATADIR%%/altera/ep1c20f400/ep1c20f400
|
|
||||||
%%DATADIR%%/altera/epm7128aetc100/STEPPINGS
|
|
||||||
%%DATADIR%%/altera/epm7128aetc100/epm7128aetc100
|
|
||||||
%%DATADIR%%/atmel/PARTS
|
|
||||||
%%DATADIR%%/atmel/atmega128/STEPPINGS
|
|
||||||
%%DATADIR%%/atmel/atmega128/atmega128
|
|
||||||
%%DATADIR%%/broadcom/PARTS
|
|
||||||
%%DATADIR%%/broadcom/bcm1250/STEPPINGS
|
|
||||||
%%DATADIR%%/broadcom/bcm1250/bcm1250
|
|
||||||
%%DATADIR%%/broadcom/bcm3310/STEPPINGS
|
|
||||||
%%DATADIR%%/broadcom/bcm3310/bcm3310
|
|
||||||
%%DATADIR%%/broadcom/bcm5421s/STEPPINGS
|
|
||||||
%%DATADIR%%/broadcom/bcm5421s/bcm5421s
|
|
||||||
%%DATADIR%%/dec/PARTS
|
|
||||||
%%DATADIR%%/dec/sa1100/STEPPINGS
|
|
||||||
%%DATADIR%%/dec/sa1100/sa1100
|
|
||||||
%%DATADIR%%/hitachi/PARTS
|
|
||||||
%%DATADIR%%/hitachi/sh7727/STEPPINGS
|
|
||||||
%%DATADIR%%/hitachi/sh7727/sh7727
|
|
||||||
%%DATADIR%%/intel/PARTS
|
|
||||||
%%DATADIR%%/intel/ixp425/STEPPINGS
|
|
||||||
%%DATADIR%%/intel/ixp425/ixp425
|
|
||||||
%%DATADIR%%/intel/pxa250/STEPPINGS
|
|
||||||
%%DATADIR%%/intel/pxa250/pxa250
|
|
||||||
%%DATADIR%%/intel/pxa250/pxa250c0
|
|
||||||
%%DATADIR%%/intel/sa1110/STEPPINGS
|
|
||||||
%%DATADIR%%/intel/sa1110/sa1110
|
|
||||||
%%DATADIR%%/philips/PARTS
|
|
||||||
%%DATADIR%%/philips/xcr3128xl-cs144/STEPPINGS
|
|
||||||
%%DATADIR%%/philips/xcr3128xl-cs144/xcr3128xl-cs144
|
|
||||||
%%DATADIR%%/samsung/s3c4510b/s3c4510b
|
|
||||||
%%DATADIR%%/xilinx/PARTS
|
|
||||||
%%DATADIR%%/xilinx/xc2c256-tq144/STEPPINGS
|
|
||||||
%%DATADIR%%/xilinx/xc2c256-tq144/xc2c256-tq144
|
|
||||||
%%DATADIR%%/xilinx/xcr3128xl-cs144/STEPPINGS
|
|
||||||
%%DATADIR%%/xilinx/xcr3128xl-cs144/xcr3128xl-cs144
|
|
||||||
%%DATADIR%%/xilinx/xcr3256xl-ft256/STEPPINGS
|
|
||||||
%%DATADIR%%/xilinx/xcr3256xl-ft256/xcr3256xl-ft256
|
|
||||||
%%NLS%%share/locale/sk/LC_MESSAGES/jtag.mo
|
|
|
@ -1,29 +0,0 @@
|
||||||
# Created by: Lars Thegler <lth@FreeBSD.org>
|
|
||||||
# $FreeBSD$
|
|
||||||
|
|
||||||
PORTNAME= Parse-CPAN-Meta
|
|
||||||
PORTVERSION= 1.44.14
|
|
||||||
PORTREVISION= 1
|
|
||||||
CATEGORIES= devel perl5
|
|
||||||
MASTER_SITES= CPAN
|
|
||||||
MASTER_SITE_SUBDIR= CPAN:DAGOLDEN
|
|
||||||
PKGNAMEPREFIX= p5-
|
|
||||||
DISTNAME= ${PORTNAME}-${PORTVERSION:R}${PORTVERSION:E}
|
|
||||||
|
|
||||||
MAINTAINER= lth@FreeBSD.org
|
|
||||||
COMMENT= Parse META.yml and other similar CPAN metadata files
|
|
||||||
|
|
||||||
LICENSE= ART10 GPLv1
|
|
||||||
LICENSE_COMB= dual
|
|
||||||
|
|
||||||
BUILD_DEPENDS= p5-CPAN-Meta-YAML>=0.011:devel/p5-CPAN-Meta-YAML
|
|
||||||
RUN_DEPENDS= p5-CPAN-Meta-YAML>=0.011:devel/p5-CPAN-Meta-YAML
|
|
||||||
|
|
||||||
CONFLICTS_INSTALL= p5-CPAN-Meta-2.1500[1-9]*
|
|
||||||
DEPRECATED= Merged into devel/p5-CPAN-Meta 2.150008
|
|
||||||
EXPIRATION_DATE=2016-12-31
|
|
||||||
|
|
||||||
USES= perl5
|
|
||||||
USE_PERL5= configure
|
|
||||||
|
|
||||||
.include <bsd.port.mk>
|
|
|
@ -1,2 +0,0 @@
|
||||||
SHA256 (Parse-CPAN-Meta-1.4414.tar.gz) = cd7608154dfb72c9e110f012befe6b75d78448cb3e761716b60aa7545e16ca1b
|
|
||||||
SIZE (Parse-CPAN-Meta-1.4414.tar.gz) = 23457
|
|
|
@ -1,6 +0,0 @@
|
||||||
Parse::CPAN::Meta is a parser for META.yml files, based on the
|
|
||||||
parser half of YAML::Tiny. It supports a basic subset of the full
|
|
||||||
YAML specification, enough to implement parsing of typical META.yml
|
|
||||||
files, and other similarly simple YAML files.
|
|
||||||
|
|
||||||
WWW: http://search.cpan.org/dist/Parse-CPAN-Meta/
|
|
|
@ -1,2 +0,0 @@
|
||||||
%%SITE_PERL%%/Parse/CPAN/Meta.pm
|
|
||||||
%%PERL5_MAN3%%/Parse::CPAN::Meta.3.gz
|
|
|
@ -1,10 +0,0 @@
|
||||||
# Created by: Steve Wills <swills@FreeBSD.org>
|
|
||||||
# $FreeBSD$
|
|
||||||
|
|
||||||
PKGNAMESUFFIX= -rails4
|
|
||||||
|
|
||||||
RUN_DEPENDS= rubygem-devise-rails4>=3.2:devel/rubygem-devise-rails4
|
|
||||||
|
|
||||||
MASTERDIR= ${.CURDIR}/../rubygem-devise-async
|
|
||||||
|
|
||||||
.include "${MASTERDIR}/Makefile"
|
|
|
@ -1,27 +0,0 @@
|
||||||
# Created by: Steve Wills <swills@FreeBSD.org>
|
|
||||||
# $FreeBSD$
|
|
||||||
|
|
||||||
PORTNAME= devise-async
|
|
||||||
PORTVERSION= 0.10.1
|
|
||||||
CATEGORIES= devel rubygems
|
|
||||||
MASTER_SITES= RG
|
|
||||||
|
|
||||||
MAINTAINER= ruby@FreeBSD.org
|
|
||||||
COMMENT= Send Devise emails in background
|
|
||||||
|
|
||||||
LICENSE= MIT
|
|
||||||
LICENSE_FILE= ${WRKSRC}/LICENSE
|
|
||||||
|
|
||||||
RUN_DEPENDS?= rubygem-devise>=3.2:devel/rubygem-devise
|
|
||||||
|
|
||||||
SLAVEDIRS= devel/rubygem-devise-async-rails4
|
|
||||||
|
|
||||||
BROKEN= Not compatible with devel/rubygem-devise > 3
|
|
||||||
DEPRECATED= Not compatible with devel/rubygem-devise > 3
|
|
||||||
EXPIRATION_DATE= 2016-12-31
|
|
||||||
|
|
||||||
NO_ARCH= yes
|
|
||||||
USE_RUBY= yes
|
|
||||||
USES= gem
|
|
||||||
|
|
||||||
.include <bsd.port.mk>
|
|
|
@ -1,2 +0,0 @@
|
||||||
SHA256 (rubygem/devise-async-0.10.1.gem) = 3380fac383a5f16bb2fcdda54d68983210f2d0cae3100572eb888742190e02d3
|
|
||||||
SIZE (rubygem/devise-async-0.10.1.gem) = 20480
|
|
|
@ -1,4 +0,0 @@
|
||||||
Send Devise's emails in background. Supports Resque, Sidekiq, Delayed::Job and
|
|
||||||
QueueClassic.
|
|
||||||
|
|
||||||
WWW: https://github.com/mhfs/devise-async/
|
|
|
@ -1,34 +0,0 @@
|
||||||
# Created by: Mikhail T. <m.tsatsenko@gmail.com>
|
|
||||||
# $FreeBSD$
|
|
||||||
|
|
||||||
PORTNAME= sprockets
|
|
||||||
PORTVERSION= 2.11.3
|
|
||||||
PORTREVISION= 1
|
|
||||||
CATEGORIES= devel rubygems
|
|
||||||
MASTER_SITES= RG
|
|
||||||
PKGNAMESUFFIX= 211
|
|
||||||
|
|
||||||
MAINTAINER= ruby@FreeBSD.org
|
|
||||||
COMMENT= Ruby library that preprocesses and concatenates JavaScript files
|
|
||||||
|
|
||||||
LICENSE= MIT
|
|
||||||
|
|
||||||
RUN_DEPENDS= rubygem-hike>=1.2:devel/rubygem-hike \
|
|
||||||
rubygem-multi_json>=1.0:devel/rubygem-multi_json \
|
|
||||||
rubygem-rack16>=1.0:www/rubygem-rack16 \
|
|
||||||
rubygem-tilt1>=1.1:devel/rubygem-tilt1
|
|
||||||
|
|
||||||
CONFLICTS_INSTALL= rubygem-sprockets-[0-9]*
|
|
||||||
|
|
||||||
DEPRECATED= Use devel/rubygem-sprockets or devel/rubygem-sprockets3 instead
|
|
||||||
EXPIRATION_DATE=2016-12-31
|
|
||||||
|
|
||||||
NO_ARCH= yes
|
|
||||||
USE_RUBY= yes
|
|
||||||
USES= gem
|
|
||||||
|
|
||||||
PLIST_FILES= bin/sprockets
|
|
||||||
|
|
||||||
PORTSCOUT= limit:^2\.11
|
|
||||||
|
|
||||||
.include <bsd.port.mk>
|
|
|
@ -1,2 +0,0 @@
|
||||||
SHA256 (rubygem/sprockets-2.11.3.gem) = b41d2f82c529283c7e356511756c54ca3f8d01189d7a5873189ef086b8266182
|
|
||||||
SIZE (rubygem/sprockets-2.11.3.gem) = 42496
|
|
|
@ -1,6 +0,0 @@
|
||||||
Sprockets is a Ruby library that preprocesses and concatenates
|
|
||||||
JavaScript source files. It takes any number of source files
|
|
||||||
and preprocesses them line-by-line in order to build a single
|
|
||||||
concatenation.
|
|
||||||
|
|
||||||
WWW: https://github.com/rails/sprockets
|
|
|
@ -250,7 +250,6 @@
|
||||||
SUBDIR += iaxmodem
|
SUBDIR += iaxmodem
|
||||||
SUBDIR += icmpinfo
|
SUBDIR += icmpinfo
|
||||||
SUBDIR += icpld
|
SUBDIR += icpld
|
||||||
SUBDIR += iet
|
|
||||||
SUBDIR += ifdepd
|
SUBDIR += ifdepd
|
||||||
SUBDIR += iffinder
|
SUBDIR += iffinder
|
||||||
SUBDIR += ifstat
|
SUBDIR += ifstat
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
# Created by: Xin LI <delphij@FreeBSD.org>
|
|
||||||
# $FreeBSD$
|
|
||||||
|
|
||||||
PORTNAME= iet
|
|
||||||
PORTVERSION= 1.4.20.2
|
|
||||||
PORTREVISION= 10
|
|
||||||
CATEGORIES= net kld
|
|
||||||
MASTER_SITES= SF/iscsitarget/iscsitarget/${PORTVERSION}/
|
|
||||||
DISTNAME= iscsitarget-${PORTVERSION}
|
|
||||||
|
|
||||||
PATCH_SITES= LOCAL/delphij
|
|
||||||
PATCHFILES= ${PORTNAME}-${PORTVERSION}.diff.bz2
|
|
||||||
PATCH_DIST_STRIP= -p1
|
|
||||||
|
|
||||||
MAINTAINER= ports@FreeBSD.org
|
|
||||||
COMMENT= The iSCSI Enterprise Target
|
|
||||||
|
|
||||||
LICENSE= GPLv2
|
|
||||||
|
|
||||||
DEPRECATED= Upstream no longer active
|
|
||||||
EXPIRATION_DATE= 2016-12-31
|
|
||||||
|
|
||||||
SSP_UNSAFE= kernel module does not support ssp
|
|
||||||
BUILD_WRKSRC= ${WRKSRC}/freebsd
|
|
||||||
INSTALL_WRKSRC= ${BUILD_WRKSRC}
|
|
||||||
|
|
||||||
USE_RC_SUBR= ietd
|
|
||||||
USES= kmod uidfix
|
|
||||||
|
|
||||||
KMODDIR= ${PREFIX}/modules
|
|
||||||
PLIST_SUB+= KMODDIR=${KMODDIR}
|
|
||||||
MAKE_ENV+= KMODDIR=${KMODDIR} DATADIR=${DATADIR} SYSDIR="${SRC_BASE}/sys"
|
|
||||||
|
|
||||||
IET_CONF_FILES= ietd.conf initiators.allow initiators.deny targets.allow
|
|
||||||
|
|
||||||
.if !exists(${SRC_BASE}/sys/Makefile)
|
|
||||||
IGNORE= requires kernel sources to build
|
|
||||||
.endif
|
|
||||||
|
|
||||||
pre-install:
|
|
||||||
${MKDIR} ${STAGEDIR}${DATADIR} ${STAGEDIR}${KMODDIR} ${STAGEDIR}${ETCDIR}
|
|
||||||
|
|
||||||
.include <bsd.port.mk>
|
|
|
@ -1,4 +0,0 @@
|
||||||
SHA256 (iscsitarget-1.4.20.2.tar.gz) = 0f3c8e2c2038fbbd7059d1efdd428260013212daca75c1d56abbeec33cb8d388
|
|
||||||
SIZE (iscsitarget-1.4.20.2.tar.gz) = 138464
|
|
||||||
SHA256 (iet-1.4.20.2.diff.bz2) = 7d52898f986633ee9f0bee0076416dc7f515a372b625a4f579576b7ac8e9e35d
|
|
||||||
SIZE (iet-1.4.20.2.diff.bz2) = 25970
|
|
|
@ -1,27 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# $FreeBSD$
|
|
||||||
#
|
|
||||||
# PROVIDE: ietd
|
|
||||||
# REQUIRE: LOGIN
|
|
||||||
# KEYWORD: shutdown
|
|
||||||
|
|
||||||
. /etc/rc.subr
|
|
||||||
|
|
||||||
name="ietd"
|
|
||||||
rcvar=ietd_enable
|
|
||||||
|
|
||||||
command=%%PREFIX%%/sbin/${name}
|
|
||||||
required_modules="%%PREFIX%%/modules/iet.ko:iet"
|
|
||||||
stop_precmd="ietd_prestop"
|
|
||||||
|
|
||||||
load_rc_config $name
|
|
||||||
|
|
||||||
: ${ietd_enable:="NO"}
|
|
||||||
|
|
||||||
ietd_prestop()
|
|
||||||
{
|
|
||||||
%%PREFIX%%/sbin/ietadm --op delete
|
|
||||||
}
|
|
||||||
|
|
||||||
run_rc_command "$1"
|
|
|
@ -1,258 +0,0 @@
|
||||||
--- kernel/iscsi.c.orig 2013-01-25 12:58:06.191784106 -0800
|
|
||||||
+++ kernel/iscsi.c 2013-01-25 12:58:45.785782759 -0800
|
|
||||||
@@ -1963,7 +1963,7 @@
|
|
||||||
return ctr_major;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
- ietdev = make_dev(&iet_csw, 0, UID_ROOT, GID_WHEEL, 0550, ctr_name);
|
|
||||||
+ ietdev = make_dev(&iet_csw, 0, UID_ROOT, GID_WHEEL, 0550, "%s", ctr_name);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef LINUX
|
|
||||||
--- kernel/block-io.c.orig 2013-01-25 12:58:06.194781035 -0800
|
|
||||||
+++ kernel/block-io.c 2013-01-25 12:58:45.786780433 -0800
|
|
||||||
@@ -260,7 +260,9 @@
|
|
||||||
int flags = FMODE_READ | (LUReadonly(volume) ? 0 : FMODE_WRITE);
|
|
||||||
int vaccess;
|
|
||||||
int error;
|
|
||||||
+#if defined(NDHASGIANT)
|
|
||||||
int vfslocked;
|
|
||||||
+#endif
|
|
||||||
struct vnode *devvp = NULL;
|
|
||||||
struct g_provider *pp;
|
|
||||||
struct g_geom *gp;
|
|
||||||
@@ -270,13 +272,19 @@
|
|
||||||
if (!bio_data->path)
|
|
||||||
return -(ENOMEM);
|
|
||||||
|
|
||||||
+#if defined(MPSAFE)
|
|
||||||
NDINIT(&nd, LOOKUP, NOFOLLOW | MPSAFE, UIO_SYSSPACE, path, curthread);
|
|
||||||
+#else
|
|
||||||
+ NDINIT(&nd, LOOKUP, NOFOLLOW, UIO_SYSSPACE, path, curthread);
|
|
||||||
+#endif
|
|
||||||
error = vn_open(&nd, &flags, 0, NULL);
|
|
||||||
if (error) {
|
|
||||||
eprintk("failed to open disk %s error %d\n", path, error);
|
|
||||||
return -(error);
|
|
||||||
}
|
|
||||||
+#if defined(NDHASGIANT)
|
|
||||||
vfslocked = NDHASGIANT(&nd);
|
|
||||||
+#endif
|
|
||||||
NDFREE(&nd, NDF_ONLY_PNBUF);
|
|
||||||
|
|
||||||
devvp = nd.ni_vp;
|
|
||||||
@@ -321,7 +329,9 @@
|
|
||||||
g_topology_unlock();
|
|
||||||
bio_data->bdev = devvp;
|
|
||||||
VOP_UNLOCK(devvp, 0);
|
|
||||||
+#if defined(NDHASGIANT)
|
|
||||||
VFS_UNLOCK_GIANT(vfslocked);
|
|
||||||
+#endif
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
gcleanup: /* On geom errors */
|
|
||||||
@@ -331,7 +341,9 @@
|
|
||||||
failed:
|
|
||||||
VOP_UNLOCK(devvp, 0);
|
|
||||||
(void)vn_close(devvp, flags, curthread->td_ucred, curthread);
|
|
||||||
+#if defined(NDHASGIANT)
|
|
||||||
VFS_UNLOCK_GIANT(vfslocked);
|
|
||||||
+#endif
|
|
||||||
return -(error);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
@@ -439,11 +451,15 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
if (bio_data->bdev) {
|
|
||||||
+#if defined(NDHASGIANT)
|
|
||||||
int vfslocked;
|
|
||||||
|
|
||||||
vfslocked = VFS_LOCK_GIANT(bio_data->bdev->v_mount);
|
|
||||||
+#endif
|
|
||||||
(void)vn_close(bio_data->bdev, flags, curthread->td_ucred, curthread);
|
|
||||||
+#if defined(NDHASGIANT)
|
|
||||||
VFS_UNLOCK_GIANT(vfslocked);
|
|
||||||
+#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
if (bio_data->path)
|
|
||||||
--- kernel/file-io.c.orig 2013-01-25 12:58:06.197782092 -0800
|
|
||||||
+++ kernel/file-io.c 2013-01-25 13:01:32.708794758 -0800
|
|
||||||
@@ -24,8 +24,15 @@
|
|
||||||
struct file *filp;
|
|
||||||
#else
|
|
||||||
struct vnode *vp;
|
|
||||||
+#if defined(NDHASGIANT)
|
|
||||||
int vfslocked;
|
|
||||||
- int error, aresid;
|
|
||||||
+#endif
|
|
||||||
+ int error;
|
|
||||||
+#if ((__FreeBSD_version < 1000000 && __FreeBSD_version >= 900506) || (__FreeBSD_version >= 1000009))
|
|
||||||
+ ssize_t aresid;
|
|
||||||
+#else
|
|
||||||
+ int aresid;
|
|
||||||
+#endif
|
|
||||||
#endif
|
|
||||||
struct fileio_data *p = lu->private;
|
|
||||||
page_t *page;
|
|
||||||
@@ -40,8 +47,10 @@
|
|
||||||
filp = p->filp;
|
|
||||||
#else
|
|
||||||
vp = p->filevp;
|
|
||||||
+#if defined(NDHASGIANT)
|
|
||||||
vfslocked = VFS_LOCK_GIANT(vp->v_mount);
|
|
||||||
#endif
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
size = tio->size;
|
|
||||||
offset= tio->offset;
|
|
||||||
@@ -87,8 +96,10 @@
|
|
||||||
}
|
|
||||||
assert(!size);
|
|
||||||
#ifdef FREEBSD
|
|
||||||
+#if defined(NDHASGIANT)
|
|
||||||
VFS_UNLOCK_GIANT(vfslocked);
|
|
||||||
#endif
|
|
||||||
+#endif
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -149,12 +160,17 @@
|
|
||||||
static int fileio_sync(struct iet_volume *lu, struct tio *tio)
|
|
||||||
{
|
|
||||||
struct fileio_data *p = lu->private;
|
|
||||||
- int vfslocked, error;
|
|
||||||
+#if defined(NDHASGIANT)
|
|
||||||
+ int vfslocked;
|
|
||||||
+#endif
|
|
||||||
+ int error;
|
|
||||||
struct vnode *vp;
|
|
||||||
struct mount *mp;
|
|
||||||
|
|
||||||
vp = p->filevp;
|
|
||||||
+#if defined(NDHASGIANT)
|
|
||||||
vfslocked = VFS_LOCK_GIANT(vp->v_mount);
|
|
||||||
+#endif
|
|
||||||
if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0)
|
|
||||||
goto drop;
|
|
||||||
|
|
||||||
@@ -163,7 +179,9 @@
|
|
||||||
VOP_UNLOCK(vp, 0);
|
|
||||||
vn_finished_write(mp);
|
|
||||||
drop:
|
|
||||||
+#if defined(NDHASGIANT)
|
|
||||||
VFS_UNLOCK_GIANT(vfslocked);
|
|
||||||
+#endif
|
|
||||||
return error;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -174,16 +192,25 @@
|
|
||||||
struct nameidata nd;
|
|
||||||
struct vnode *filevp;
|
|
||||||
struct vattr vattr;
|
|
||||||
+#if defined(NDHASGIANT)
|
|
||||||
int vfslocked;
|
|
||||||
+#endif
|
|
||||||
int flags = FMODE_READ | (LUReadonly(volume) ? 0 : FMODE_WRITE);
|
|
||||||
|
|
||||||
info->path = kstrdup(path, GFP_KERNEL);
|
|
||||||
if (!info->path)
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
+#if defined(NDHASGIANT)
|
|
||||||
NDINIT(&nd, LOOKUP, NOFOLLOW | MPSAFE, UIO_SYSSPACE, path, curthread);
|
|
||||||
+#else
|
|
||||||
+ NDINIT(&nd, LOOKUP, NOFOLLOW, UIO_SYSSPACE, path, curthread);
|
|
||||||
+#endif
|
|
||||||
error = namei(&nd);
|
|
||||||
+#if defined(NDHASGIANT)
|
|
||||||
vfslocked = NDHASGIANT(&nd);
|
|
||||||
+#else
|
|
||||||
+#endif
|
|
||||||
if (error) {
|
|
||||||
eprintk("lookup failed for %s err %d\n", path, error);
|
|
||||||
return -(error);
|
|
||||||
@@ -193,7 +220,9 @@
|
|
||||||
if (filevp->v_type != VREG) {
|
|
||||||
eprintk("path %s not a regular file\n", path);
|
|
||||||
NDFREE(&nd, 0);
|
|
||||||
+#if defined(NDHASGIANT)
|
|
||||||
VFS_UNLOCK_GIANT(vfslocked);
|
|
||||||
+#endif
|
|
||||||
return -(EINVAL);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -201,7 +230,9 @@
|
|
||||||
if (error != 0) {
|
|
||||||
eprintk("failed to open path %s err %d\n", path, error);
|
|
||||||
NDFREE(&nd, 0);
|
|
||||||
+#if defined(NDHASGIANT)
|
|
||||||
VFS_UNLOCK_GIANT(vfslocked);
|
|
||||||
+#endif
|
|
||||||
return -(error);
|
|
||||||
}
|
|
||||||
NDFREE(&nd, NDF_ONLY_PNBUF);
|
|
||||||
@@ -212,7 +243,9 @@
|
|
||||||
VOP_UNLOCK(filevp, 0);
|
|
||||||
(void)vn_close(filevp, flags, curthread->td_ucred, curthread);
|
|
||||||
vrele(filevp);
|
|
||||||
+#if defined(NDHASGIANT)
|
|
||||||
VFS_UNLOCK_GIANT(vfslocked);
|
|
||||||
+#endif
|
|
||||||
return -(error);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -300,12 +333,16 @@
|
|
||||||
#else
|
|
||||||
if (p->filevp) {
|
|
||||||
int flags = FMODE_READ | (LUReadonly(lu) ? 0 : FMODE_WRITE);
|
|
||||||
+#if defined(NDHASGIANT)
|
|
||||||
int vfslocked;
|
|
||||||
|
|
||||||
vfslocked = VFS_LOCK_GIANT(p->filevp->v_mount);
|
|
||||||
+#endif
|
|
||||||
vn_close(p->filevp, flags, curthread->td_ucred, curthread);
|
|
||||||
vrele(p->filevp);
|
|
||||||
+#if defined(NDHASGIANT)
|
|
||||||
VFS_UNLOCK_GIANT(vfslocked);
|
|
||||||
+#endif
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
kfree(p);
|
|
||||||
--- kernel/ietbsd.h.orig 2013-06-18 20:31:28.000000000 -0400
|
|
||||||
+++ kernel/ietbsd.h 2013-06-18 20:38:05.000000000 -0400
|
|
||||||
@@ -11,6 +11,7 @@
|
|
||||||
#include <sys/malloc.h>
|
|
||||||
#include <sys/lock.h>
|
|
||||||
#include <sys/mutex.h>
|
|
||||||
+#include <sys/rwlock.h>
|
|
||||||
#include <sys/bio.h>
|
|
||||||
#include <sys/time.h>
|
|
||||||
#include <sys/queue.h>
|
|
||||||
--- usr/bsddefs.h.orig 2013-06-18 20:39:09.000000000 -0400
|
|
||||||
+++ usr/bsddefs.h 2013-06-18 22:23:09.000000000 -0400
|
|
||||||
@@ -1,6 +1,8 @@
|
|
||||||
#ifndef BSDDEFS_H_
|
|
||||||
#define BSDDEFS_H_ 1
|
|
||||||
|
|
||||||
+#include <sys/param.h>
|
|
||||||
+
|
|
||||||
#define SOL_TCP IPPROTO_TCP
|
|
||||||
#define TCP_CORK TCP_NOPUSH
|
|
||||||
|
|
||||||
@@ -8,6 +10,7 @@
|
|
||||||
#define s6_addr16 __u6_addr.__u6_addr16
|
|
||||||
#define s6_addr32 __u6_addr.__u6_addr32
|
|
||||||
|
|
||||||
+#if __FreeBSD_version < 1000028
|
|
||||||
static inline char *
|
|
||||||
strchrnul (const char *s, int c_in)
|
|
||||||
{
|
|
||||||
@@ -17,5 +20,6 @@
|
|
||||||
|
|
||||||
return (char *) s;
|
|
||||||
}
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,26 +0,0 @@
|
||||||
--- kernel/ietbsd.h.orig 2014-07-23 22:45:36.000000000 -0700
|
|
||||||
+++ kernel/ietbsd.h 2014-07-23 22:46:55.000000000 -0700
|
|
||||||
@@ -642,7 +642,9 @@
|
|
||||||
#define SAM_STAT_RESERVATION_CONFLICT SCSI_STATUS_RESERV_CONFLICT
|
|
||||||
#define SAM_STAT_CHECK_CONDITION SCSI_STATUS_CHECK_COND
|
|
||||||
#define WRITE_VERIFY 0x2e
|
|
||||||
+#ifndef VERIFY_16
|
|
||||||
#define VERIFY_16 0x8f
|
|
||||||
+#endif
|
|
||||||
#define DATA_PROTECT SSD_KEY_DATA_PROTECT
|
|
||||||
#define NO_SENSE SSD_KEY_NO_SENSE
|
|
||||||
#define MEDIUM_ERROR SSD_KEY_MEDIUM_ERROR
|
|
||||||
--- kernel/conn.c.orig 2015-02-13 14:23:20.438348146 -0800
|
|
||||||
+++ kernel/conn.c 2015-02-13 14:33:52.728261609 -0800
|
|
||||||
@@ -80,7 +80,11 @@
|
|
||||||
|
|
||||||
if ((so->so_state & SS_ISDISCONNECTING) ||(so->so_state & SS_ISDISCONNECTED))
|
|
||||||
conn_close(conn);
|
|
||||||
+#if __FreeBSD_version >= 1100048
|
|
||||||
+ else if (soreadable(so))
|
|
||||||
+#else
|
|
||||||
else if (so->so_rcv.sb_cc || !(so->so_rcv.sb_state & SBS_CANTRCVMORE))
|
|
||||||
+#endif
|
|
||||||
__nthread_wakeup(info);
|
|
||||||
|
|
||||||
return (SU_OK);
|
|
|
@ -1,70 +0,0 @@
|
||||||
diff --git kernel/eventbsd.c kernel/eventbsd.c
|
|
||||||
index f8572b1..fd98590 100644
|
|
||||||
--- kernel/eventbsd.c
|
|
||||||
+++ kernel/eventbsd.c
|
|
||||||
@@ -105,7 +105,11 @@ int iet_poll(struct cdev *dev, int poll_events, struct thread *td)
|
|
||||||
return (ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
+#if __FreeBSD_version >= 900006
|
|
||||||
+int iet_mmap(struct cdev *dev, vm_ooffset_t offset, vm_paddr_t *paddr, int nprot, vm_memattr_t *memattr __unused)
|
|
||||||
+#else
|
|
||||||
int iet_mmap(struct cdev *dev, vm_offset_t offset, vm_paddr_t *paddr, int nprot)
|
|
||||||
+#endif
|
|
||||||
{
|
|
||||||
int page_idx;
|
|
||||||
page_t **bufs;
|
|
||||||
diff --git kernel/ietbsd.h kernel/ietbsd.h
|
|
||||||
index 32e20d3..fddc225 100644
|
|
||||||
--- kernel/ietbsd.h
|
|
||||||
+++ kernel/ietbsd.h
|
|
||||||
@@ -468,7 +468,11 @@ complete_all(wait_chan_t *chan)
|
|
||||||
#define init_waitqueue_head(h) wait_chan_init(h, "iet")
|
|
||||||
#define wait_event_interruptible wait_on_chan_interruptible
|
|
||||||
#define wait_event wait_on_chan
|
|
||||||
+#if __FreeBSD_version >= 900032
|
|
||||||
+#define yield() kern_yield(curthread->td_user_pri)
|
|
||||||
+#else
|
|
||||||
#define yield uio_yield
|
|
||||||
+#endif
|
|
||||||
#define timer_pending callout_pending
|
|
||||||
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
|
|
||||||
|
|
||||||
diff --git kernel/iscsi.h kernel/iscsi.h
|
|
||||||
index 611f839..1c3c391 100644
|
|
||||||
--- kernel/iscsi.h
|
|
||||||
+++ kernel/iscsi.h
|
|
||||||
@@ -432,7 +432,7 @@ extern void event_exit(void);
|
|
||||||
extern void iet_mmap_exit(void);
|
|
||||||
extern int iet_mmap_init(void);
|
|
||||||
int iet_poll(struct cdev *dev, int events, struct thread *td);
|
|
||||||
-int iet_mmap(struct cdev *dev, vm_offset_t offset, vm_paddr_t *paddr, int nprot);
|
|
||||||
+d_mmap_t iet_mmap;
|
|
||||||
int iet_ioctl(struct cdev *dev, unsigned long cmd, caddr_t arg, int fflag, struct thread *td);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
--- ./kernel/conn.c.orig 2010-04-11 08:13:42.000000000 -0700
|
|
||||||
+++ ./kernel/conn.c 2011-09-09 13:16:38.386740084 -0700
|
|
||||||
@@ -250,14 +250,22 @@ static int iet_conn_alloc(struct iscsi_s
|
|
||||||
#ifdef LINUX
|
|
||||||
conn->file = fget(info->fd);
|
|
||||||
#else
|
|
||||||
+#if __FreeBSD_version < 900041
|
|
||||||
error = fget(curthread, info->fd, &conn->file);
|
|
||||||
+#else
|
|
||||||
+ error = fget(curthread, info->fd, 0, &conn->file);
|
|
||||||
+#endif
|
|
||||||
if (error != 0) {
|
|
||||||
eprintk("failed to get fd %d\n", error);
|
|
||||||
kfree(conn);
|
|
||||||
return error;
|
|
||||||
}
|
|
||||||
|
|
||||||
+#if __FreeBSD_version < 900041
|
|
||||||
error = fgetsock(curthread, info->fd, &conn->sock, 0);
|
|
||||||
+#else
|
|
||||||
+ error = fgetsock(curthread, info->fd, 0, &conn->sock, 0);
|
|
||||||
+#endif
|
|
||||||
if (error != 0) {
|
|
||||||
eprintk("failed to get sock %d\n", error);
|
|
||||||
fdrop(conn->file, curthread);
|
|
|
@ -1,11 +0,0 @@
|
||||||
--- ./kernel/nthread.c.orig 2011-04-01 10:25:22.720654061 -0700
|
|
||||||
+++ ./kernel/nthread.c 2011-04-01 10:25:22.790651367 -0700
|
|
||||||
@@ -147,7 +147,7 @@
|
|
||||||
set_fs(oldfs);
|
|
||||||
#else
|
|
||||||
uio_fill(&uio, iov, i, len, UIO_READ);
|
|
||||||
- flags = MSG_WAITALL | MSG_NOSIGNAL;
|
|
||||||
+ flags = MSG_DONTWAIT | MSG_NOSIGNAL;
|
|
||||||
res = soreceive(conn->sock, NULL, &uio, NULL, NULL, &flags);
|
|
||||||
map_result(&res, &uio, len, 1);
|
|
||||||
#endif
|
|
|
@ -1,20 +0,0 @@
|
||||||
--- kernel/nthread.c.orig 2014-10-30 11:29:21.000000000 -0700
|
|
||||||
+++ kernel/nthread.c 2014-10-30 11:30:14.000000000 -0700
|
|
||||||
@@ -91,7 +91,7 @@
|
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
- error = soo_ioctl(&filetmp, FIONREAD, &avail, NULL, curthread);
|
|
||||||
+ error = fo_ioctl(&filetmp, FIONREAD, &avail, NULL, curthread);
|
|
||||||
if (error)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
@@ -350,7 +350,7 @@
|
|
||||||
filetmp.f_data = conn->sock;
|
|
||||||
filetmp.f_cred = NULL;
|
|
||||||
|
|
||||||
- error = soo_ioctl(&filetmp, FIONSPACE, &avail, NULL, curthread);
|
|
||||||
+ error = fo_ioctl(&filetmp, FIONSPACE, &avail, NULL, curthread);
|
|
||||||
if (error)
|
|
||||||
return 0;
|
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
iSCSI Enterprise Target is a simple open source iSCSI target with
|
|
||||||
professional features, that works well in enterprise environments
|
|
||||||
under real workloads, and is scalable and versatile enough to meet
|
|
||||||
the challenge of future storage needs and developments.
|
|
||||||
|
|
||||||
The port work was originally done by QuadStor.
|
|
||||||
|
|
||||||
WWW: http://iscsitarget.sourceforge.net/
|
|
|
@ -1,11 +0,0 @@
|
||||||
modules/iet.ko
|
|
||||||
@sample %%DATADIR%%/ietd.conf etc/iet/ietd.conf
|
|
||||||
@sample %%DATADIR%%/initiators.allow etc/iet/initiators.allow
|
|
||||||
@sample %%DATADIR%%/initiators.deny etc/iet/initiators.deny
|
|
||||||
@sample %%DATADIR%%/targets.allow etc/iet/targets.allow
|
|
||||||
man/man5/ietd.conf.5.gz
|
|
||||||
man/man8/ietadm.8.gz
|
|
||||||
man/man8/ietd.8.gz
|
|
||||||
sbin/ietd
|
|
||||||
sbin/ietadm
|
|
||||||
@dir etc/iet
|
|
|
@ -374,7 +374,6 @@
|
||||||
SUBDIR += gdmap
|
SUBDIR += gdmap
|
||||||
SUBDIR += genisoimage
|
SUBDIR += genisoimage
|
||||||
SUBDIR += geomWatch
|
SUBDIR += geomWatch
|
||||||
SUBDIR += geomgui
|
|
||||||
SUBDIR += getdelta
|
SUBDIR += getdelta
|
||||||
SUBDIR += geteltorito
|
SUBDIR += geteltorito
|
||||||
SUBDIR += gigolo
|
SUBDIR += gigolo
|
||||||
|
@ -661,7 +660,6 @@
|
||||||
SUBDIR += nomad
|
SUBDIR += nomad
|
||||||
SUBDIR += npadmin
|
SUBDIR += npadmin
|
||||||
SUBDIR += nrg2iso
|
SUBDIR += nrg2iso
|
||||||
SUBDIR += ntfsprogs
|
|
||||||
SUBDIR += nut
|
SUBDIR += nut
|
||||||
SUBDIR += nvclock
|
SUBDIR += nvclock
|
||||||
SUBDIR += nvramtool
|
SUBDIR += nvramtool
|
||||||
|
@ -1021,7 +1019,6 @@
|
||||||
SUBDIR += schedutils
|
SUBDIR += schedutils
|
||||||
SUBDIR += scprotect
|
SUBDIR += scprotect
|
||||||
SUBDIR += screen
|
SUBDIR += screen
|
||||||
SUBDIR += screen-legacy
|
|
||||||
SUBDIR += screenfetch
|
SUBDIR += screenfetch
|
||||||
SUBDIR += screenie
|
SUBDIR += screenie
|
||||||
SUBDIR += scterc
|
SUBDIR += scterc
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
# Created by: Soeren Straarup <xride@FreeBSD.org>
|
|
||||||
# $FreeBSD$
|
|
||||||
|
|
||||||
PORTNAME= geomgui
|
|
||||||
PORTVERSION= 0.13
|
|
||||||
PORTREVISION= 1
|
|
||||||
CATEGORIES= sysutils
|
|
||||||
MASTER_SITES= http://tinkering.hambrew.net/geomgui/ \
|
|
||||||
LOCAL/xride
|
|
||||||
|
|
||||||
MAINTAINER= xride@FreeBSD.org
|
|
||||||
COMMENT= Viewer for kernel geom layer
|
|
||||||
|
|
||||||
DEPRECATED= Development stopped years ago.
|
|
||||||
EXPIRATION_DATE= 2016-12-31
|
|
||||||
|
|
||||||
LIB_DEPENDS= libgvc.so:graphics/graphviz
|
|
||||||
|
|
||||||
USE_GNOME= gtk20 librsvg2
|
|
||||||
USES= iconv pkgconfig libtool tar:bzip2
|
|
||||||
GNU_CONFIGURE= yes
|
|
||||||
|
|
||||||
PLIST_FILES= bin/geomgui \
|
|
||||||
man/man1/geomgui.1.gz
|
|
||||||
|
|
||||||
post-patch:
|
|
||||||
@${REINPLACE_CMD} -e 's|/usr/local|${STAGEDIR}${PREFIX}|' \
|
|
||||||
-e 's,-o root -g wheel,,' \
|
|
||||||
${WRKSRC}/Makefile.in
|
|
||||||
|
|
||||||
.include <bsd.port.mk>
|
|
|
@ -1,2 +0,0 @@
|
||||||
SHA256 (geomgui-0.13.tar.bz2) = cc8cabb49013f932545c6c946af9f134d28d6c582742de44120af71ba6ca328d
|
|
||||||
SIZE (geomgui-0.13.tar.bz2) = 8070
|
|
|
@ -1,6 +0,0 @@
|
||||||
Geomgui is a viewer for the geom layer in the kernel written in C.
|
|
||||||
It can show the geom layout on the host computer or fetch info from
|
|
||||||
a remote system via ssh. It has the same arrow key bindings as fx, vi,
|
|
||||||
(h,j,k and l)and uses z to soom out and Z to zoom in, u is for updating.
|
|
||||||
|
|
||||||
WWW: http://tinkering.hambrew.net/geomgui
|
|
|
@ -1,92 +0,0 @@
|
||||||
# $FreeBSD$
|
|
||||||
|
|
||||||
PORTNAME= ntfsprogs
|
|
||||||
PORTVERSION= 2.0.0
|
|
||||||
PORTREVISION= 5
|
|
||||||
CATEGORIES= sysutils
|
|
||||||
MASTER_SITES= SF/linux-ntfs/NTFS%20Tools%20and%20Library/${PORTVERSION}
|
|
||||||
|
|
||||||
MAINTAINER= ports@FreeBSD.org
|
|
||||||
COMMENT= Utilities and library to manipulate NTFS partitions
|
|
||||||
|
|
||||||
LICENSE= GPLv2+
|
|
||||||
LICENSE_FILE= ${WRKSRC}/COPYING
|
|
||||||
|
|
||||||
DEPRECATED= Superseded by sysutils/fusefs-ntfs
|
|
||||||
EXPIRATION_DATE= 2016-12-31
|
|
||||||
|
|
||||||
CONFLICTS_INSTALL= fusefs-ntfs-*
|
|
||||||
|
|
||||||
USES= fuse pkgconfig libtool tar:bzip2
|
|
||||||
USE_LDCONFIG= yes
|
|
||||||
GNU_CONFIGURE= yes
|
|
||||||
CPPFLAGS+= -I${LOCALBASE}/include
|
|
||||||
LDFLAGS+= -L${LOCALBASE}/lib
|
|
||||||
INSTALL_TARGET= install-strip
|
|
||||||
|
|
||||||
PORTDOCS= *
|
|
||||||
|
|
||||||
OPTIONS_DEFINE= GNOMEVFS2 LOCK UBLIO UUID DOCS
|
|
||||||
OPTIONS_DEFAULT=LOCK UBLIO
|
|
||||||
|
|
||||||
GNOMEVFS2_DESC= Install GnomeVFS 2.0 libntfs interface
|
|
||||||
LOCK_DESC= Lock the device when mounting (avoids access)
|
|
||||||
UBLIO_DESC= Enable user space cache for improved speed
|
|
||||||
UUID_DESC= Generate DCE compliant UUIDs
|
|
||||||
|
|
||||||
SUB_FILES= pkg-message
|
|
||||||
|
|
||||||
.include <bsd.port.options.mk>
|
|
||||||
|
|
||||||
.if ${PORT_OPTIONS:MGNOMEVFS2}
|
|
||||||
WANT_GNOME= yes
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.if ${PORT_OPTIONS:MGNOMEVFS2}
|
|
||||||
CONFIGURE_ARGS+=--enable-gnome-vfs
|
|
||||||
USE_GNOME= gnomevfs2
|
|
||||||
PLIST_SUB+= GNOMEVFS2=""
|
|
||||||
.else
|
|
||||||
CONFIGURE_ARGS+=--disable-gnome-vfs
|
|
||||||
PLIST_SUB+= GNOMEVFS2="@comment "
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.include <bsd.port.pre.mk>
|
|
||||||
|
|
||||||
.if ${ARCH} == "i386"
|
|
||||||
CFLAGS:= ${CFLAGS:C/-O.?/-O0/g}
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.if ${PORT_OPTIONS:MLOCK}
|
|
||||||
CFLAGS+= -DUSE_LOCK
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.if ${PORT_OPTIONS:MUUID}
|
|
||||||
LIB_DEPENDS+= libuuid.so:misc/e2fsprogs-libuuid
|
|
||||||
CONFIGURE_ARGS+=--enable-uuid
|
|
||||||
.else
|
|
||||||
CONFIGURE_ARGS+=--disable-uuid
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.if ${PORT_OPTIONS:MUBLIO}
|
|
||||||
LIB_DEPENDS+= libublio.so:devel/libublio
|
|
||||||
CFLAGS+= -DUSE_UBLIO
|
|
||||||
.else
|
|
||||||
pre-everything::
|
|
||||||
@${ECHO_MSG}
|
|
||||||
@${ECHO_MSG} "WARNING: FreeBSD does not have cache support for block devices. This will considerably reduce the performance of this application, please consider enabling the UBLIO option and following the indications in the post-installation message." | ${FMT}
|
|
||||||
@${ECHO_MSG}
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.if ${PORT_OPTIONS:MUBLIO}
|
|
||||||
post-patch:
|
|
||||||
@${REINPLACE_CMD} -e 's|^libntfs_la_LIBADD =|& -lublio|' \
|
|
||||||
${WRKSRC}/libntfs/Makefile.in
|
|
||||||
.endif
|
|
||||||
|
|
||||||
post-install:
|
|
||||||
${MKDIR} ${STAGEDIR}${DOCSDIR}
|
|
||||||
${INSTALL_DATA} ${WRKSRC}/README ${STAGEDIR}${DOCSDIR}
|
|
||||||
${INSTALL_DATA} ${FILESDIR}/README.FreeBSD ${STAGEDIR}${DOCSDIR}
|
|
||||||
|
|
||||||
.include <bsd.port.post.mk>
|
|
|
@ -1,2 +0,0 @@
|
||||||
SHA256 (ntfsprogs-2.0.0.tar.bz2) = ad36e19706c7303b10aa0a9bf2c2dd0309b91cd0171f1c9eb361d94a85017432
|
|
||||||
SIZE (ntfsprogs-2.0.0.tar.bz2) = 678114
|
|
|
@ -1,150 +0,0 @@
|
||||||
==============================================================================
|
|
||||||
Linux-NTFS README for the FreeBSD port
|
|
||||||
==============================================================================
|
|
||||||
|
|
||||||
1. Introduction
|
|
||||||
2. Port specific notes
|
|
||||||
3. Mounting at startup with /etc/fstab
|
|
||||||
4. Ublio configuration
|
|
||||||
5. Known issues
|
|
||||||
6. Reporting bugs
|
|
||||||
|
|
||||||
==============================================================================
|
|
||||||
1. Introduction
|
|
||||||
==============================================================================
|
|
||||||
|
|
||||||
The Linux-NTFS project provides a read/write filesystem driver for NTFS. It uses
|
|
||||||
the FUSE library (a OS independent library to create filesystem drivers), more
|
|
||||||
precisely FUSE's library with fuse4bsd's kernel module (port of the kernel
|
|
||||||
dependent part of FUSE). For more information see:
|
|
||||||
|
|
||||||
Linux-NTFS site: http://www.linux-ntfs.org/
|
|
||||||
FUSE site: http://fuse.sourceforge.net/
|
|
||||||
fuse4bsd site: http://fuse4bsd.creo.hu/
|
|
||||||
|
|
||||||
==============================================================================
|
|
||||||
2. Port specific notes
|
|
||||||
==============================================================================
|
|
||||||
|
|
||||||
The port has a patch to align read/write operations to the media block size
|
|
||||||
(required on FreeBSD).
|
|
||||||
|
|
||||||
The port has 2 related options: LOCK (to prevent access to the device by
|
|
||||||
external programs than ntfsmount once mounted, default on Linux) and UBLIO
|
|
||||||
(use a user space cache library, see devel/libublio, not required on Linux).
|
|
||||||
|
|
||||||
The reason for using UBLIO is that FreeBSD removed support for block devices,
|
|
||||||
being them now character devices. The former ones had a cache, and Linux-NTFS
|
|
||||||
was optimized for it (Linux still uses them). The same happens on Mac OS X
|
|
||||||
(based on FreeBSD 5). So using UBLIO both improves performance (~10 times
|
|
||||||
faster), and reduces disk load.
|
|
||||||
|
|
||||||
==============================================================================
|
|
||||||
3. Mounting at startup with /etc/fstab
|
|
||||||
==============================================================================
|
|
||||||
|
|
||||||
To mount at startup you need to have the following line in /etc/rc.conf:
|
|
||||||
|
|
||||||
fusefs_enable="YES"
|
|
||||||
|
|
||||||
And add the appropiate line to /etc/fstab: the filesystem should be
|
|
||||||
"ntfs-fuse" instead of "ntfs", and the additional "late" parameter is
|
|
||||||
required. Example:
|
|
||||||
|
|
||||||
/dev/ad4s1 /wxp ntfs-fuse rw,late 0 0
|
|
||||||
|
|
||||||
Note that in FreeBSD 7.x, mount(8) has a fixed (hard coded) list of external
|
|
||||||
mount_XXX programs that can be called, so to make this work you have to do one
|
|
||||||
of the following:
|
|
||||||
|
|
||||||
1. Rename /sbin/mount_ntfs, symlink ntfsmount as the former, and use just
|
|
||||||
"ntfs" as the type in /etc/fstab.
|
|
||||||
# mv /sbin/mount_ntfs /sbin/mount_ntfs-kern
|
|
||||||
# ln -s /usr/sbin/mount_ntfs-fuse /usr/sbin/mount_ntfs
|
|
||||||
2. Apply a patch to src/sbin/mount/mount.c to add "ntfs-fuse" as a valid type.
|
|
||||||
3. Apply a patch to src/sbin/mount/mount.c to make it work like in 6.x (better
|
|
||||||
than the previous one as will allow any external type). It can be found at:
|
|
||||||
http://people.freebsd.org/~alepulver/current-7.0-mount.diff
|
|
||||||
|
|
||||||
==============================================================================
|
|
||||||
4. Ublio configuration
|
|
||||||
==============================================================================
|
|
||||||
|
|
||||||
The UBLIO layer is configured through environment variables, which are read
|
|
||||||
when mounting the filesystem. The following are available:
|
|
||||||
|
|
||||||
NTFS_USE_UBLIO - Enable the UBLIO cache.
|
|
||||||
UBLIO_BLOCKSIZE - Actual reads/writes will be multiples of this quantity.
|
|
||||||
UBLIO_ITEMS - Number of cache entries, each of UBLIO_BLOCKSIZE length.
|
|
||||||
UBLIO_GRACE - Number of times a cache entry will refuse being recycled.
|
|
||||||
UBLIO_SYNC_IO - If enabled, all writes will be immediatly executed.
|
|
||||||
|
|
||||||
To give an idea about tuning, here are the default values with some notes
|
|
||||||
(they are only based on some simple benchmarks, and may be wrong):
|
|
||||||
|
|
||||||
NTFS_USE_UBLIO - 1. Disabling it drastically decreases performance.
|
|
||||||
UBLIO_BLOCKSIZE - 262144 (256KB). Larger improves reading/writing speed of
|
|
||||||
large files, and smaller makes filesystem operations
|
|
||||||
(creation, deletion, moving, find(1)) perform faster.
|
|
||||||
Try 2/4MB and 512/256KB for the different approaches. Note
|
|
||||||
that after that points performance descreases again.
|
|
||||||
UBLIO_ITEMS - 64. Higher increases speed of filesystem operations. Try 128.
|
|
||||||
UBLIO_GRACE - 32. Makes the cache items have more chances to be reused.
|
|
||||||
UBLIO_SYNC_IO - 0. If enabled, highly decreases writing speed, but the data
|
|
||||||
is immediatly written to the disk.
|
|
||||||
|
|
||||||
For example (improves performance over large files, but read below):
|
|
||||||
|
|
||||||
# env UBLIO_BLOCKSIZE=2097152 ntfsmount /dev/ad0s1 /mnt
|
|
||||||
|
|
||||||
Alternatively these variables could be set in the shell startup file. For
|
|
||||||
example if you are using it in /etc/fstab add them to /etc/profile. If you use
|
|
||||||
it as a user, instead, editing the shell startup in HOME is enough.
|
|
||||||
|
|
||||||
Note that higher values for UBLIO_BLOCKSIZE and UBLIO_ITEMS increase the
|
|
||||||
memory usage by their product in bytes. For example, if you set it to 1MB it
|
|
||||||
would consume 64MB. To decrease it to 16MB you could set UBLIO_BLOCKSIZE to
|
|
||||||
256KB (currently this is the default). Small values like 4096 can be used and
|
|
||||||
also perform fine.
|
|
||||||
|
|
||||||
It is also possible to enforce block aligned I/O on regular files by setting
|
|
||||||
the FORCE_ALIGNED_IO variable (it will be set to 512 bytes), but this is only
|
|
||||||
useful for testing purposes and in practice has no use.
|
|
||||||
|
|
||||||
==============================================================================
|
|
||||||
5. Known issues
|
|
||||||
==============================================================================
|
|
||||||
|
|
||||||
When reading/writting the same file repeatedly while doing many simultaneous
|
|
||||||
operations on different files sometimes the former one fails: read(2) returns
|
|
||||||
-1 and sets errno to EAGAIN. This is because of a difference between the FUSE
|
|
||||||
kernel implementation in Linux and FreeBSD, and is being worked on. An example
|
|
||||||
scenario would be playing a song in XMMS, while building many ports, which
|
|
||||||
could cause XMMS skip the song. Another observed problem is the current
|
|
||||||
directory not being found, but entering again would work. The details are
|
|
||||||
described in fuse4bsd (sysutils/fusefs-kmod) documentation (Linux access is
|
|
||||||
path based while FreeBSD is vnode based, which may be reused).
|
|
||||||
|
|
||||||
==============================================================================
|
|
||||||
6. Reporting bugs
|
|
||||||
==============================================================================
|
|
||||||
|
|
||||||
About the port itself, you can ask the maintainer (preferable) and/or in the
|
|
||||||
ports@FreeBSD.org mailing list.
|
|
||||||
|
|
||||||
About general NTFS problems (corruptions, etc) ask in the Linux-NTFS forum
|
|
||||||
(see below).
|
|
||||||
|
|
||||||
But often (even on Linux, 50% of the issues are related to these) the problems
|
|
||||||
reside on the FUSE implementation (the library itself, or fuse4bsd portion).
|
|
||||||
|
|
||||||
For reporting kernel panics, see:
|
|
||||||
|
|
||||||
http://fuse.sourceforge.net/wiki/index.php/DebugFreeBSDPanicsHowto
|
|
||||||
|
|
||||||
And you can report them to the fuse4bsd author (preferable), or here:
|
|
||||||
|
|
||||||
Linux-NTFS forum: http://forum.linux-ntfs.org/
|
|
||||||
FreeBSD PRs: http://www.freebsd.org/send-pr.html
|
|
||||||
|
|
||||||
==============================================================================
|
|
|
@ -1,155 +0,0 @@
|
||||||
--- ./libntfs/device.c.orig 2007-09-26 22:28:34.000000000 +0400
|
|
||||||
+++ ./libntfs/device.c 2011-03-15 23:07:06.183948162 +0300
|
|
||||||
@@ -62,6 +62,9 @@
|
|
||||||
#ifdef HAVE_LINUX_HDREG_H
|
|
||||||
#include <linux/hdreg.h>
|
|
||||||
#endif
|
|
||||||
+#ifdef __FreeBSD__
|
|
||||||
+#include <sys/disk.h>
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
#include "types.h"
|
|
||||||
#include "mst.h"
|
|
||||||
@@ -599,6 +602,17 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
+#ifdef DIOCGMEDIASIZE
|
|
||||||
+ { off_t size;
|
|
||||||
+
|
|
||||||
+ if (dev->d_ops->ioctl(dev, DIOCGMEDIASIZE, &size) >= 0) {
|
|
||||||
+ ntfs_log_debug("DIOCGMEDIASIZE nr bytes = %llu (0x%llx)\n",
|
|
||||||
+ (unsigned long long)size,
|
|
||||||
+ (unsigned long long)size);
|
|
||||||
+ return (s64)size / block_size;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
/*
|
|
||||||
* We couldn't figure it out by using a specialized ioctl,
|
|
||||||
* so do binary search to find the size of the device.
|
|
||||||
@@ -627,8 +641,8 @@
|
|
||||||
*
|
|
||||||
* The following error codes are defined:
|
|
||||||
* EINVAL Input parameter error
|
|
||||||
- * EOPNOTSUPP System does not support HDIO_GETGEO ioctl
|
|
||||||
- * ENOTTY @dev is a file or a device not supporting HDIO_GETGEO
|
|
||||||
+ * EOPNOTSUPP System does not support DIOCGFWSECTORS ioctl
|
|
||||||
+ * ENOTTY @dev is a file or a device not supporting DIOCGFWSECTORS
|
|
||||||
*/
|
|
||||||
s64 ntfs_device_partition_start_sector_get(struct ntfs_device *dev)
|
|
||||||
{
|
|
||||||
@@ -636,13 +650,13 @@
|
|
||||||
errno = EINVAL;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
-#ifdef HDIO_GETGEO
|
|
||||||
- { struct hd_geometry geo;
|
|
||||||
+#ifdef DIOCGFWSECTORS
|
|
||||||
+ { u_int start_sector = 0;
|
|
||||||
|
|
||||||
- if (!dev->d_ops->ioctl(dev, HDIO_GETGEO, &geo)) {
|
|
||||||
- ntfs_log_debug("HDIO_GETGEO start_sect = %lu (0x%lx)\n",
|
|
||||||
- geo.start, geo.start);
|
|
||||||
- return geo.start;
|
|
||||||
+ if (!dev->d_ops->ioctl(dev, DIOCGFWSECTORS, &start_sector)) {
|
|
||||||
+ ntfs_log_debug("DIOCGFWSECTORS start_sect = %lu (0x%lx)\n",
|
|
||||||
+ start_sector, start_sector);
|
|
||||||
+ return start_sector;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
@@ -660,8 +674,8 @@
|
|
||||||
*
|
|
||||||
* The following error codes are defined:
|
|
||||||
* EINVAL Input parameter error
|
|
||||||
- * EOPNOTSUPP System does not support HDIO_GETGEO ioctl
|
|
||||||
- * ENOTTY @dev is a file or a device not supporting HDIO_GETGEO
|
|
||||||
+ * EOPNOTSUPP System does not support DIOCGFWHEADS ioctl
|
|
||||||
+ * ENOTTY @dev is a file or a device not supporting DIOCGFWHEADS
|
|
||||||
*/
|
|
||||||
int ntfs_device_heads_get(struct ntfs_device *dev)
|
|
||||||
{
|
|
||||||
@@ -669,14 +683,13 @@
|
|
||||||
errno = EINVAL;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
-#ifdef HDIO_GETGEO
|
|
||||||
- { struct hd_geometry geo;
|
|
||||||
+#ifdef DIOCGFWHEADS
|
|
||||||
+ { u_int heads;
|
|
||||||
|
|
||||||
- if (!dev->d_ops->ioctl(dev, HDIO_GETGEO, &geo)) {
|
|
||||||
- ntfs_log_debug("HDIO_GETGEO heads = %u (0x%x)\n",
|
|
||||||
- (unsigned)geo.heads,
|
|
||||||
- (unsigned)geo.heads);
|
|
||||||
- return geo.heads;
|
|
||||||
+ if (!dev->d_ops->ioctl(dev, DIOCGFWHEADS, &heads)) {
|
|
||||||
+ ntfs_log_debug("DIOCGFWHEADS heads = %u (0x%x)\n",
|
|
||||||
+ heads, heads);
|
|
||||||
+ return heads;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
@@ -694,8 +707,8 @@
|
|
||||||
*
|
|
||||||
* The following error codes are defined:
|
|
||||||
* EINVAL Input parameter error
|
|
||||||
- * EOPNOTSUPP System does not support HDIO_GETGEO ioctl
|
|
||||||
- * ENOTTY @dev is a file or a device not supporting HDIO_GETGEO
|
|
||||||
+ * EOPNOTSUPP System does not support DIOCGFWSECTORS ioctl
|
|
||||||
+ * ENOTTY @dev is a file or a device not supporting DIOCGFWSECTORS
|
|
||||||
*/
|
|
||||||
int ntfs_device_sectors_per_track_get(struct ntfs_device *dev)
|
|
||||||
{
|
|
||||||
@@ -703,14 +716,13 @@
|
|
||||||
errno = EINVAL;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
-#ifdef HDIO_GETGEO
|
|
||||||
- { struct hd_geometry geo;
|
|
||||||
+#ifdef DIOCGFWSECTORS
|
|
||||||
+ { u_int sptrack;
|
|
||||||
|
|
||||||
- if (!dev->d_ops->ioctl(dev, HDIO_GETGEO, &geo)) {
|
|
||||||
- ntfs_log_debug("HDIO_GETGEO sectors_per_track = %u (0x%x)\n",
|
|
||||||
- (unsigned)geo.sectors,
|
|
||||||
- (unsigned)geo.sectors);
|
|
||||||
- return geo.sectors;
|
|
||||||
+ if (!dev->d_ops->ioctl(dev, DIOCGFWSECTORS, &sptrack)) {
|
|
||||||
+ ntfs_log_debug("DIOCGFWSECTORS sectors_per_track = %u (0x%x)\n",
|
|
||||||
+ sptrack, sptrack);
|
|
||||||
+ return sptrack;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
@@ -728,8 +740,8 @@
|
|
||||||
*
|
|
||||||
* The following error codes are defined:
|
|
||||||
* EINVAL Input parameter error
|
|
||||||
- * EOPNOTSUPP System does not support BLKSSZGET ioctl
|
|
||||||
- * ENOTTY @dev is a file or a device not supporting BLKSSZGET
|
|
||||||
+ * EOPNOTSUPP System does not support DIOCGSECTORSIZE ioctl
|
|
||||||
+ * ENOTTY @dev is a file or a device not supporting DIOCGSECTORSIZE
|
|
||||||
*/
|
|
||||||
int ntfs_device_sector_size_get(struct ntfs_device *dev)
|
|
||||||
{
|
|
||||||
@@ -737,13 +749,13 @@
|
|
||||||
errno = EINVAL;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
-#ifdef BLKSSZGET
|
|
||||||
+#ifdef DIOCGSECTORSIZE
|
|
||||||
{
|
|
||||||
- int sect_size = 0;
|
|
||||||
+ size_t sect_size = 0;
|
|
||||||
|
|
||||||
- if (!dev->d_ops->ioctl(dev, BLKSSZGET, §_size)) {
|
|
||||||
- ntfs_log_debug("BLKSSZGET sector size = %d bytes\n",
|
|
||||||
- sect_size);
|
|
||||||
+ if (!dev->d_ops->ioctl(dev, DIOCGSECTORSIZE, §_size)) {
|
|
||||||
+ ntfs_log_debug("DIOCGSECTORSIZE sector size = %d bytes\n",
|
|
||||||
+ (int)sect_size);
|
|
||||||
return sect_size;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
--- libntfs/device_io.c.orig 2007-09-26 15:28:34.000000000 -0300
|
|
||||||
+++ libntfs/device_io.c 2008-08-10 20:27:34.000000000 -0300
|
|
||||||
@@ -28,11 +28,6 @@
|
|
||||||
/* On Cygwin; use Win32 low level device operations. */
|
|
||||||
#include "win32_io.c"
|
|
||||||
|
|
||||||
-#elif defined(__FreeBSD__)
|
|
||||||
-
|
|
||||||
-/* On FreeBSD; need to use sector aligned i/o. */
|
|
||||||
-#include "freebsd_io.c"
|
|
||||||
-
|
|
||||||
#else
|
|
||||||
|
|
||||||
/*
|
|
|
@ -1,138 +0,0 @@
|
||||||
--- libntfs/unistr.c.orig 2007-09-26 20:28:34.000000000 +0200
|
|
||||||
+++ libntfs/unistr.c 2010-03-24 16:01:11.000000000 +0100
|
|
||||||
@@ -640,86 +640,64 @@
|
|
||||||
* ntfs_upcase_table_build() builds the default upcase table for NTFS and
|
|
||||||
* stores it in the caller supplied buffer @uc of size @uc_len.
|
|
||||||
*
|
|
||||||
- * The generated $UpCase table is the one used by Windows Vista.
|
|
||||||
+ * The generated $UpCase table is the one used by Windows XP.
|
|
||||||
*
|
|
||||||
* Note, @uc_len must be at least 128kiB in size or bad things will happen!
|
|
||||||
*/
|
|
||||||
void ntfs_upcase_table_build(ntfschar *uc, u32 uc_len)
|
|
||||||
{
|
|
||||||
- /*
|
|
||||||
- * "Start" is inclusive and "End" is exclusive, every value has the
|
|
||||||
- * value of "Add" added to it.
|
|
||||||
- */
|
|
||||||
- static int add[][3] = { /* Start, End, Add */
|
|
||||||
- {0x0061, 0x007b, -32}, {0x00e0, 0x00f7, -32}, {0x00f8, 0x00ff, -32},
|
|
||||||
- {0x0256, 0x0258, -205}, {0x028a, 0x028c, -217}, {0x037b, 0x037e, 130},
|
|
||||||
- {0x03ac, 0x03ad, -38}, {0x03ad, 0x03b0, -37}, {0x03b1, 0x03c2, -32},
|
|
||||||
- {0x03c2, 0x03c3, -31}, {0x03c3, 0x03cc, -32}, {0x03cc, 0x03cd, -64},
|
|
||||||
- {0x03cd, 0x03cf, -63}, {0x0430, 0x0450, -32}, {0x0450, 0x0460, -80},
|
|
||||||
- {0x0561, 0x0587, -48}, {0x1f00, 0x1f08, 8}, {0x1f10, 0x1f16, 8},
|
|
||||||
- {0x1f20, 0x1f28, 8}, {0x1f30, 0x1f38, 8}, {0x1f40, 0x1f46, 8},
|
|
||||||
- {0x1f51, 0x1f52, 8}, {0x1f53, 0x1f54, 8}, {0x1f55, 0x1f56, 8},
|
|
||||||
- {0x1f57, 0x1f58, 8}, {0x1f60, 0x1f68, 8}, {0x1f70, 0x1f72, 74},
|
|
||||||
- {0x1f72, 0x1f76, 86}, {0x1f76, 0x1f78, 100}, {0x1f78, 0x1f7a, 128},
|
|
||||||
- {0x1f7a, 0x1f7c, 112}, {0x1f7c, 0x1f7e, 126}, {0x1f80, 0x1f88, 8},
|
|
||||||
- {0x1f90, 0x1f98, 8}, {0x1fa0, 0x1fa8, 8}, {0x1fb0, 0x1fb2, 8},
|
|
||||||
- {0x1fb3, 0x1fb4, 9}, {0x1fcc, 0x1fcd, -9}, {0x1fd0, 0x1fd2, 8},
|
|
||||||
- {0x1fe0, 0x1fe2, 8}, {0x1fe5, 0x1fe6, 7}, {0x1ffc, 0x1ffd, -9},
|
|
||||||
- {0x2170, 0x2180, -16}, {0x24d0, 0x24ea, -26}, {0x2c30, 0x2c5f, -48},
|
|
||||||
- {0x2d00, 0x2d26, -7264}, {0xff41, 0xff5b, -32}, {0}
|
|
||||||
+ static int uc_run_table[][3] = { /* Start, End, Add */
|
|
||||||
+ {0x0061, 0x007B, -32}, {0x0451, 0x045D, -80}, {0x1F70, 0x1F72, 74},
|
|
||||||
+ {0x00E0, 0x00F7, -32}, {0x045E, 0x0460, -80}, {0x1F72, 0x1F76, 86},
|
|
||||||
+ {0x00F8, 0x00FF, -32}, {0x0561, 0x0587, -48}, {0x1F76, 0x1F78, 100},
|
|
||||||
+ {0x0256, 0x0258, -205}, {0x1F00, 0x1F08, 8}, {0x1F78, 0x1F7A, 128},
|
|
||||||
+ {0x028A, 0x028C, -217}, {0x1F10, 0x1F16, 8}, {0x1F7A, 0x1F7C, 112},
|
|
||||||
+ {0x03AC, 0x03AD, -38}, {0x1F20, 0x1F28, 8}, {0x1F7C, 0x1F7E, 126},
|
|
||||||
+ {0x03AD, 0x03B0, -37}, {0x1F30, 0x1F38, 8}, {0x1FB0, 0x1FB2, 8},
|
|
||||||
+ {0x03B1, 0x03C2, -32}, {0x1F40, 0x1F46, 8}, {0x1FD0, 0x1FD2, 8},
|
|
||||||
+ {0x03C2, 0x03C3, -31}, {0x1F51, 0x1F52, 8}, {0x1FE0, 0x1FE2, 8},
|
|
||||||
+ {0x03C3, 0x03CC, -32}, {0x1F53, 0x1F54, 8}, {0x1FE5, 0x1FE6, 7},
|
|
||||||
+ {0x03CC, 0x03CD, -64}, {0x1F55, 0x1F56, 8}, {0x2170, 0x2180, -16},
|
|
||||||
+ {0x03CD, 0x03CF, -63}, {0x1F57, 0x1F58, 8}, {0x24D0, 0x24EA, -26},
|
|
||||||
+ {0x0430, 0x0450, -32}, {0x1F60, 0x1F68, 8}, {0xFF41, 0xFF5B, -32},
|
|
||||||
+ {0}
|
|
||||||
};
|
|
||||||
- /*
|
|
||||||
- * "Start" is exclusive and "End" is inclusive, every second value is
|
|
||||||
- * decremented by one.
|
|
||||||
- */
|
|
||||||
- static int skip_dec[][2] = { /* Start, End */
|
|
||||||
- {0x0100, 0x012f}, {0x0132, 0x0137}, {0x0139, 0x0149}, {0x014a, 0x0178},
|
|
||||||
- {0x0179, 0x017e}, {0x01a0, 0x01a6}, {0x01b3, 0x01b7}, {0x01cd, 0x01dd},
|
|
||||||
- {0x01de, 0x01ef}, {0x01f4, 0x01f5}, {0x01f8, 0x01f9}, {0x01fa, 0x0220},
|
|
||||||
- {0x0222, 0x0234}, {0x023b, 0x023c}, {0x0241, 0x0242}, {0x0246, 0x024f},
|
|
||||||
- {0x03d8, 0x03ef}, {0x03f7, 0x03f8}, {0x03fa, 0x03fb}, {0x0460, 0x0481},
|
|
||||||
- {0x048a, 0x04bf}, {0x04c1, 0x04c4}, {0x04c5, 0x04c8}, {0x04c9, 0x04ce},
|
|
||||||
- {0x04ec, 0x04ed}, {0x04d0, 0x04eb}, {0x04ee, 0x04f5}, {0x04f6, 0x0513},
|
|
||||||
- {0x1e00, 0x1e95}, {0x1ea0, 0x1ef9}, {0x2183, 0x2184}, {0x2c60, 0x2c61},
|
|
||||||
- {0x2c67, 0x2c6c}, {0x2c75, 0x2c76}, {0x2c80, 0x2ce3}, {0}
|
|
||||||
+ static int uc_dup_table[][2] = { /* Start, End */
|
|
||||||
+ {0x0100, 0x012F}, {0x01A0, 0x01A6}, {0x03E2, 0x03EF}, {0x04CB, 0x04CC},
|
|
||||||
+ {0x0132, 0x0137}, {0x01B3, 0x01B7}, {0x0460, 0x0481}, {0x04D0, 0x04EB},
|
|
||||||
+ {0x0139, 0x0149}, {0x01CD, 0x01DD}, {0x0490, 0x04BF}, {0x04EE, 0x04F5},
|
|
||||||
+ {0x014A, 0x0178}, {0x01DE, 0x01EF}, {0x04BF, 0x04BF}, {0x04F8, 0x04F9},
|
|
||||||
+ {0x0179, 0x017E}, {0x01F4, 0x01F5}, {0x04C1, 0x04C4}, {0x1E00, 0x1E95},
|
|
||||||
+ {0x018B, 0x018B}, {0x01FA, 0x0218}, {0x04C7, 0x04C8}, {0x1EA0, 0x1EF9},
|
|
||||||
+ {0}
|
|
||||||
};
|
|
||||||
- /*
|
|
||||||
- * Set the Unicode character at offset "Offset" to "Value". Note,
|
|
||||||
- * "Value" is host endian.
|
|
||||||
- */
|
|
||||||
- static int set[][2] = { /* Offset, Value */
|
|
||||||
- {0x00ff, 0x0178}, {0x0180, 0x0243}, {0x0183, 0x0182}, {0x0185, 0x0184},
|
|
||||||
- {0x0188, 0x0187}, {0x018c, 0x018b}, {0x0192, 0x0191}, {0x0195, 0x01f6},
|
|
||||||
- {0x0199, 0x0198}, {0x019a, 0x023d}, {0x019e, 0x0220}, {0x01a8, 0x01a7},
|
|
||||||
- {0x01ad, 0x01ac}, {0x01b0, 0x01af}, {0x01b9, 0x01b8}, {0x01bd, 0x01bc},
|
|
||||||
- {0x01bf, 0x01f7}, {0x01c6, 0x01c4}, {0x01c9, 0x01c7}, {0x01cc, 0x01ca},
|
|
||||||
- {0x01dd, 0x018e}, {0x01f3, 0x01f1}, {0x023a, 0x2c65}, {0x023e, 0x2c66},
|
|
||||||
- {0x0253, 0x0181}, {0x0254, 0x0186}, {0x0259, 0x018f}, {0x025b, 0x0190},
|
|
||||||
- {0x0260, 0x0193}, {0x0263, 0x0194}, {0x0268, 0x0197}, {0x0269, 0x0196},
|
|
||||||
- {0x026b, 0x2c62}, {0x026f, 0x019c}, {0x0272, 0x019d}, {0x0275, 0x019f},
|
|
||||||
- {0x027d, 0x2c64}, {0x0280, 0x01a6}, {0x0283, 0x01a9}, {0x0288, 0x01ae},
|
|
||||||
- {0x0289, 0x0244}, {0x028c, 0x0245}, {0x0292, 0x01b7}, {0x03f2, 0x03f9},
|
|
||||||
- {0x04cf, 0x04c0}, {0x1d7d, 0x2c63}, {0x214e, 0x2132}, {0}
|
|
||||||
+ static int uc_byte_table[][2] = { /* Offset, Value */
|
|
||||||
+ {0x00FF, 0x0178}, {0x01AD, 0x01AC}, {0x01F3, 0x01F1}, {0x0269, 0x0196},
|
|
||||||
+ {0x0183, 0x0182}, {0x01B0, 0x01AF}, {0x0253, 0x0181}, {0x026F, 0x019C},
|
|
||||||
+ {0x0185, 0x0184}, {0x01B9, 0x01B8}, {0x0254, 0x0186}, {0x0272, 0x019D},
|
|
||||||
+ {0x0188, 0x0187}, {0x01BD, 0x01BC}, {0x0259, 0x018F}, {0x0275, 0x019F},
|
|
||||||
+ {0x018C, 0x018B}, {0x01C6, 0x01C4}, {0x025B, 0x0190}, {0x0283, 0x01A9},
|
|
||||||
+ {0x0192, 0x0191}, {0x01C9, 0x01C7}, {0x0260, 0x0193}, {0x0288, 0x01AE},
|
|
||||||
+ {0x0199, 0x0198}, {0x01CC, 0x01CA}, {0x0263, 0x0194}, {0x0292, 0x01B7},
|
|
||||||
+ {0x01A8, 0x01A7}, {0x01DD, 0x018E}, {0x0268, 0x0197},
|
|
||||||
+ {0}
|
|
||||||
};
|
|
||||||
- unsigned i, r;
|
|
||||||
+ int i, r;
|
|
||||||
|
|
||||||
- memset(uc, 0, uc_len);
|
|
||||||
- uc_len /= 2;
|
|
||||||
- /* Start with a one-to-one mapping, i.e. no upcasing happens at all. */
|
|
||||||
- for (i = 0; i < uc_len; i++)
|
|
||||||
- uc[i] = cpu_to_le16(i);
|
|
||||||
- /* Adjust specified runs by the specified amount. */
|
|
||||||
- for (r = 0; add[r][0]; r++)
|
|
||||||
- for (i = add[r][0]; i < add[r][1]; i++)
|
|
||||||
- uc[i] = cpu_to_le16(le16_to_cpu(uc[i]) + add[r][2]);
|
|
||||||
- /* Decrement every second value in specified runs. */
|
|
||||||
- for (r = 0; skip_dec[r][0]; r++)
|
|
||||||
- for (i = skip_dec[r][0]; i < skip_dec[r][1];
|
|
||||||
- i += 2)
|
|
||||||
- uc[i + 1] = cpu_to_le16(le16_to_cpu(uc[i + 1]) - 1);
|
|
||||||
- /* Set specified characters to specified values. */
|
|
||||||
- for (r = 0; set[r][0]; r++)
|
|
||||||
- uc[set[r][0]] = cpu_to_le16(set[r][1]);
|
|
||||||
+ memset((char*)uc, 0, uc_len);
|
|
||||||
+ uc_len >>= 1;
|
|
||||||
+ if (uc_len > 65536)
|
|
||||||
+ uc_len = 65536;
|
|
||||||
+ for (i = 0; (u32)i < uc_len; i++)
|
|
||||||
+ uc[i] = i;
|
|
||||||
+ for (r = 0; uc_run_table[r][0]; r++)
|
|
||||||
+ for (i = uc_run_table[r][0]; i < uc_run_table[r][1]; i++)
|
|
||||||
+ uc[i] += uc_run_table[r][2];
|
|
||||||
+ for (r = 0; uc_dup_table[r][0]; r++)
|
|
||||||
+ for (i = uc_dup_table[r][0]; i < uc_dup_table[r][1]; i += 2)
|
|
||||||
+ uc[i + 1]--;
|
|
||||||
+ for (r = 0; uc_byte_table[r][0]; r++)
|
|
||||||
+ uc[uc_byte_table[r][0]] = uc_byte_table[r][1];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
|
@ -1,611 +0,0 @@
|
||||||
--- ./libntfs/unix_io.c.orig 2007-09-26 15:28:34.000000000 -0300
|
|
||||||
+++ ./libntfs/unix_io.c 2008-08-10 17:44:16.000000000 -0300
|
|
||||||
@@ -54,19 +54,112 @@
|
|
||||||
#include <linux/fd.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+/*
|
|
||||||
+ * The following build definitions are available:
|
|
||||||
+ * USE_ALIGNED_IO - All I/O is done by blocks.
|
|
||||||
+ * USE_UBLIO - Use the ublio user space cache library.
|
|
||||||
+ * USE_LOCK - Lock the device/file when mounted.
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#ifdef __FreeBSD__
|
|
||||||
+#include <sys/disk.h>
|
|
||||||
+#define USE_ALIGNED_IO 1
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#if USE_UBLIO
|
|
||||||
+#include <sys/uio.h>
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
#include "types.h"
|
|
||||||
#include "mst.h"
|
|
||||||
#include "debug.h"
|
|
||||||
#include "device.h"
|
|
||||||
#include "logging.h"
|
|
||||||
|
|
||||||
-#define DEV_FD(dev) (*(int *)dev->d_private)
|
|
||||||
+#if USE_UBLIO
|
|
||||||
+#define UBLIO_USE_API 1
|
|
||||||
+#include "ublio.h"
|
|
||||||
+#define UBLIO_DEFAULT_ENABLE 1
|
|
||||||
+#define UBLIO_DEFAULT_BLOCKSIZE 262144
|
|
||||||
+#define UBLIO_DEFAULT_ITEMS 64
|
|
||||||
+#define UBLIO_DEFAULT_GRACE 32
|
|
||||||
+#define UBLIO_DEFAULT_SYNC_IO 0
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#if USE_ALIGNED_IO
|
|
||||||
+#define RAW_IO_ALIGNED(dev, offset, count) \
|
|
||||||
+ (DEV_HANDLE(dev)->block_size == 0 || \
|
|
||||||
+ ((offset) % DEV_HANDLE(dev)->block_size == 0 && \
|
|
||||||
+ (count) % DEV_HANDLE(dev)->block_size == 0))
|
|
||||||
+#define RAW_IO_ALIGN(dev, offset) \
|
|
||||||
+ ((offset) / DEV_HANDLE(dev)->block_size * DEV_HANDLE(dev)->block_size)
|
|
||||||
+#define RAW_IO_MAX_SIZE (128 * 1024 * 1024)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+struct unix_filehandle {
|
|
||||||
+ int fd;
|
|
||||||
+#if USE_ALIGNED_IO
|
|
||||||
+ s64 pos;
|
|
||||||
+ s32 block_size;
|
|
||||||
+ s64 media_size;
|
|
||||||
+#endif
|
|
||||||
+#if USE_UBLIO
|
|
||||||
+ ublio_filehandle_t ublio_fh;
|
|
||||||
+#endif
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+#define DEV_HANDLE(dev) ((struct unix_filehandle *)dev->d_private)
|
|
||||||
+#define DEV_FD(dev) (DEV_HANDLE(dev)->fd)
|
|
||||||
|
|
||||||
/* Define to nothing if not present on this system. */
|
|
||||||
#ifndef O_EXCL
|
|
||||||
# define O_EXCL 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#if USE_ALIGNED_IO
|
|
||||||
+/**
|
|
||||||
+ * Get block_size and media_size
|
|
||||||
+ */
|
|
||||||
+static int
|
|
||||||
+raw_io_get_size(struct ntfs_device *dev)
|
|
||||||
+{
|
|
||||||
+ int bs;
|
|
||||||
+ off_t ms;
|
|
||||||
+ struct stat sb;
|
|
||||||
+
|
|
||||||
+ if (fstat(DEV_FD(dev), &sb) < 0) {
|
|
||||||
+ ntfs_log_perror("Failed to stat '%s'", dev->d_name);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (S_ISREG(sb.st_mode)) {
|
|
||||||
+ DEV_HANDLE(dev)->media_size = sb.st_size;
|
|
||||||
+ ntfs_log_trace("%s: regular file (media_size %lld)\n",
|
|
||||||
+ dev->d_name, DEV_HANDLE(dev)->media_size);
|
|
||||||
+ if (getenv("FORCE_ALIGNED_IO"))
|
|
||||||
+ DEV_HANDLE(dev)->block_size = 512;
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (ioctl(DEV_FD(dev), DIOCGSECTORSIZE, &bs) < 0) {
|
|
||||||
+ ntfs_log_perror("Failed to ioctl(DIOCGSECTORSIZE) '%s'",
|
|
||||||
+ dev->d_name);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+ DEV_HANDLE(dev)->block_size = bs;
|
|
||||||
+ ntfs_log_trace("%s: block size %d\n", dev->d_name, bs);
|
|
||||||
+
|
|
||||||
+ if (ioctl(DEV_FD(dev), DIOCGMEDIASIZE, &ms) < 0) {
|
|
||||||
+ ntfs_log_perror("Failed to ioctl(DIOCGMEDIASIZE) '%s'",
|
|
||||||
+ dev->d_name);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+ DEV_HANDLE(dev)->media_size = ms;
|
|
||||||
+ ntfs_log_trace("%s: media size %lld\n", dev->d_name, ms);
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
/**
|
|
||||||
* ntfs_device_unix_io_open - Open a device and lock it exclusively
|
|
||||||
* @dev:
|
|
||||||
@@ -78,24 +171,76 @@
|
|
||||||
*/
|
|
||||||
static int ntfs_device_unix_io_open(struct ntfs_device *dev, int flags)
|
|
||||||
{
|
|
||||||
+#if USE_ALIGNED_IO
|
|
||||||
+ size_t sectsize;
|
|
||||||
+#endif
|
|
||||||
+#if USE_LOCK
|
|
||||||
struct flock flk;
|
|
||||||
+#endif
|
|
||||||
struct stat sbuf;
|
|
||||||
- int err;
|
|
||||||
+ struct unix_filehandle *ufh;
|
|
||||||
+ int err = 0;
|
|
||||||
+#if USE_UBLIO
|
|
||||||
+ struct ublio_param up;
|
|
||||||
+ int use_ublio = 0;
|
|
||||||
+ char *xenv, *xgarbage;
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
if (NDevOpen(dev)) {
|
|
||||||
errno = EBUSY;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
- if (!(dev->d_private = ntfs_malloc(sizeof(int))))
|
|
||||||
+
|
|
||||||
+ ufh = malloc(sizeof(*ufh));
|
|
||||||
+ if (!ufh)
|
|
||||||
return -1;
|
|
||||||
- *(int*)dev->d_private = open(dev->d_name, flags);
|
|
||||||
- if (*(int*)dev->d_private == -1) {
|
|
||||||
+ dev->d_private = ufh;
|
|
||||||
+#if USE_ALIGNED_IO
|
|
||||||
+ ufh->fd = -1;
|
|
||||||
+ ufh->pos = 0;
|
|
||||||
+ ufh->block_size = 0;
|
|
||||||
+ ufh->media_size = 0;
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+ ufh->fd = open(dev->d_name, flags);
|
|
||||||
+ if (ufh->fd == -1) {
|
|
||||||
err = errno;
|
|
||||||
goto err_out;
|
|
||||||
}
|
|
||||||
/* Setup our read-only flag. */
|
|
||||||
if ((flags & O_RDWR) != O_RDWR)
|
|
||||||
NDevSetReadOnly(dev);
|
|
||||||
+#if USE_UBLIO
|
|
||||||
+ ufh->ublio_fh = NULL;
|
|
||||||
+ if ((xenv = getenv("NTFS_USE_UBLIO")) &&
|
|
||||||
+ (xenv[0] == '0' || xenv[0] == '1') && xenv[1] == '\0')
|
|
||||||
+ use_ublio = (xenv[0] == '1');
|
|
||||||
+ else
|
|
||||||
+ use_ublio = UBLIO_DEFAULT_ENABLE;
|
|
||||||
+ if ((xenv = getenv("UBLIO_BLOCKSIZE")))
|
|
||||||
+ up.up_blocksize = strtoul(xenv, &xgarbage, 10);
|
|
||||||
+ if (!xenv || *xgarbage != '\0')
|
|
||||||
+ up.up_blocksize = UBLIO_DEFAULT_BLOCKSIZE;
|
|
||||||
+ if ((xenv = getenv("UBLIO_ITEMS")))
|
|
||||||
+ up.up_items = strtoul(xenv, &xgarbage, 10);
|
|
||||||
+ if (!xenv || *xgarbage != '\0')
|
|
||||||
+ up.up_items = UBLIO_DEFAULT_ITEMS;
|
|
||||||
+ if ((xenv = getenv("UBLIO_GRACE")))
|
|
||||||
+ up.up_grace = strtoul(xenv, &xgarbage, 10);
|
|
||||||
+ if (!xenv || *xgarbage != '\0')
|
|
||||||
+ up.up_grace = UBLIO_DEFAULT_GRACE;
|
|
||||||
+ if ((xenv = getenv("UBLIO_SYNC_IO")) &&
|
|
||||||
+ (xenv[0] == '0' || xenv[0] == '1') && xenv[1] == '\0')
|
|
||||||
+ up.up_sync_io = (xenv[0] == '1');
|
|
||||||
+ else
|
|
||||||
+ up.up_sync_io = UBLIO_DEFAULT_SYNC_IO;
|
|
||||||
+ up.up_priv = &ufh->fd;
|
|
||||||
+ up.up_pread = NULL;
|
|
||||||
+ up.up_preadv = NULL;
|
|
||||||
+ up.up_pwrite = NULL;
|
|
||||||
+ up.up_pwritev = NULL;
|
|
||||||
+#endif
|
|
||||||
+#if USE_LOCK
|
|
||||||
/* Acquire exclusive (mandatory) lock on the whole device. */
|
|
||||||
memset(&flk, 0, sizeof(flk));
|
|
||||||
if (NDevReadOnly(dev))
|
|
||||||
@@ -104,7 +249,21 @@
|
|
||||||
flk.l_type = F_WRLCK;
|
|
||||||
flk.l_whence = SEEK_SET;
|
|
||||||
flk.l_start = flk.l_len = 0LL;
|
|
||||||
- if (fcntl(DEV_FD(dev), F_SETLK, &flk)) {
|
|
||||||
+#endif
|
|
||||||
+#if USE_ALIGNED_IO
|
|
||||||
+ if (raw_io_get_size(dev) < 0) {
|
|
||||||
+ err = errno;
|
|
||||||
+ close(DEV_FD(dev));
|
|
||||||
+ goto err_out;
|
|
||||||
+ }
|
|
||||||
+ if (S_ISBLK(sbuf.st_mode) || S_ISCHR(sbuf.st_mode))
|
|
||||||
+ NDevSetBlock(dev);
|
|
||||||
+#else
|
|
||||||
+ if (S_ISBLK(sbuf.st_mode))
|
|
||||||
+ NDevSetBlock(dev);
|
|
||||||
+#endif /* USE_ALIGNED_IO */
|
|
||||||
+#if USE_LOCK
|
|
||||||
+ if (!NDevBlock(dev) && fcntl(DEV_FD(dev), F_SETLK, &flk)) {
|
|
||||||
err = errno;
|
|
||||||
ntfs_log_debug("ntfs_device_unix_io_open: Could not lock %s "
|
|
||||||
"for %s\n", dev->d_name, NDevReadOnly(dev) ?
|
|
||||||
@@ -114,6 +273,16 @@
|
|
||||||
"Could not close %s", dev->d_name);
|
|
||||||
goto err_out;
|
|
||||||
}
|
|
||||||
+#endif
|
|
||||||
+#if USE_UBLIO
|
|
||||||
+ if (use_ublio) {
|
|
||||||
+ ufh->ublio_fh = ublio_open(&up);
|
|
||||||
+ if (!ufh->ublio_fh) {
|
|
||||||
+ close(DEV_FD(dev));
|
|
||||||
+ goto err_out;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
/* Determine if device is a block device or not, ignoring errors. */
|
|
||||||
if (!fstat(DEV_FD(dev), &sbuf) && S_ISBLK(sbuf.st_mode))
|
|
||||||
NDevSetBlock(dev);
|
|
||||||
@@ -137,7 +306,10 @@
|
|
||||||
*/
|
|
||||||
static int ntfs_device_unix_io_close(struct ntfs_device *dev)
|
|
||||||
{
|
|
||||||
+ /* XXX no error if fysnc, fcntl (ublio_close) fails? */
|
|
||||||
+#if USE_LOCK
|
|
||||||
struct flock flk;
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
if (!NDevOpen(dev)) {
|
|
||||||
errno = EBADF;
|
|
||||||
@@ -145,14 +317,20 @@
|
|
||||||
}
|
|
||||||
if (NDevDirty(dev))
|
|
||||||
fsync(DEV_FD(dev));
|
|
||||||
+#if USE_LOCK
|
|
||||||
/* Release exclusive (mandatory) lock on the whole device. */
|
|
||||||
memset(&flk, 0, sizeof(flk));
|
|
||||||
flk.l_type = F_UNLCK;
|
|
||||||
flk.l_whence = SEEK_SET;
|
|
||||||
flk.l_start = flk.l_len = 0LL;
|
|
||||||
- if (fcntl(DEV_FD(dev), F_SETLK, &flk))
|
|
||||||
+ if (!NDevBlock(dev) && fcntl(DEV_FD(dev), F_SETLK, &flk))
|
|
||||||
ntfs_log_perror("ntfs_device_unix_io_close: Warning: Could not "
|
|
||||||
"unlock %s", dev->d_name);
|
|
||||||
+#endif
|
|
||||||
+#if USE_UBLIO
|
|
||||||
+ if (DEV_HANDLE(dev)->ublio_fh)
|
|
||||||
+ ublio_close(DEV_HANDLE(dev)->ublio_fh);
|
|
||||||
+#endif
|
|
||||||
/* Close the file descriptor and clear our open flag. */
|
|
||||||
if (close(DEV_FD(dev)))
|
|
||||||
return -1;
|
|
||||||
@@ -175,9 +353,234 @@
|
|
||||||
static s64 ntfs_device_unix_io_seek(struct ntfs_device *dev, s64 offset,
|
|
||||||
int whence)
|
|
||||||
{
|
|
||||||
+#if USE_ALIGNED_IO
|
|
||||||
+ s64 abs_pos;
|
|
||||||
+
|
|
||||||
+ ntfs_log_trace("seek offset = 0x%llx, whence = %d.\n", offset, whence);
|
|
||||||
+ switch (whence) {
|
|
||||||
+ case SEEK_SET:
|
|
||||||
+ abs_pos = offset;
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
+ case SEEK_CUR:
|
|
||||||
+ abs_pos = DEV_HANDLE(dev)->pos + offset;
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
+ case SEEK_END:
|
|
||||||
+ abs_pos = DEV_HANDLE(dev)->media_size + offset;
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
+ default:
|
|
||||||
+ ntfs_log_trace("Wrong mode %d.\n", whence);
|
|
||||||
+ errno = EINVAL;
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (abs_pos < 0 || abs_pos > DEV_HANDLE(dev)->media_size) {
|
|
||||||
+ ntfs_log_trace("Seeking outsize seekable area.\n");
|
|
||||||
+ errno = EINVAL;
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+ DEV_HANDLE(dev)->pos = abs_pos;
|
|
||||||
+ return abs_pos;
|
|
||||||
+#else
|
|
||||||
return lseek(DEV_FD(dev), offset, whence);
|
|
||||||
+#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
+#if USE_ALIGNED_IO
|
|
||||||
+
|
|
||||||
+#if USE_UBLIO
|
|
||||||
+#define pread_wrap(fd, buf, count, off) \
|
|
||||||
+ (DEV_HANDLE(fd)->ublio_fh ? \
|
|
||||||
+ ublio_pread(DEV_HANDLE(fd)->ublio_fh, buf, count, off) : \
|
|
||||||
+ pread(DEV_FD(fd), buf, count, off))
|
|
||||||
+#define pwrite_wrap(fd, buf, count, off) \
|
|
||||||
+ (DEV_HANDLE(fd)->ublio_fh ? \
|
|
||||||
+ ublio_pwrite(DEV_HANDLE(fd)->ublio_fh, buf, count, off) : \
|
|
||||||
+ pwrite(DEV_FD(fd), buf, count, off))
|
|
||||||
+#else
|
|
||||||
+#define pread_wrap(fd, buf, count, off) \
|
|
||||||
+ pread(DEV_FD(fd), buf, count, off)
|
|
||||||
+#define pwrite_wrap(fd, buf, count, off) \
|
|
||||||
+ pwrite(DEV_FD(fd), buf, count, off)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+/**
|
|
||||||
+ * aligned_pread - Perform an aligned positioned read from the device
|
|
||||||
+ */
|
|
||||||
+static s64 aligned_pread(struct ntfs_device *dev, void *buf, s64 count, s64 offset)
|
|
||||||
+{
|
|
||||||
+ s64 start, start_aligned;
|
|
||||||
+ s64 end, end_aligned;
|
|
||||||
+ size_t count_aligned;
|
|
||||||
+ char *buf_aligned;
|
|
||||||
+ ssize_t nr;
|
|
||||||
+
|
|
||||||
+ /* short-circuit for regular files */
|
|
||||||
+ start = offset;
|
|
||||||
+ if (count > RAW_IO_MAX_SIZE)
|
|
||||||
+ count = RAW_IO_MAX_SIZE;
|
|
||||||
+ if (RAW_IO_ALIGNED(dev, start, count))
|
|
||||||
+ return pread_wrap(dev, buf, count, start);
|
|
||||||
+
|
|
||||||
+ /*
|
|
||||||
+ * +- start_aligned +- end_aligned
|
|
||||||
+ * | |
|
|
||||||
+ * | +- start +- end |
|
|
||||||
+ * v v v v
|
|
||||||
+ * |----------|----------|----------|
|
|
||||||
+ * ^ ^
|
|
||||||
+ * +----- count ------+
|
|
||||||
+ * ^ ^
|
|
||||||
+ * +-------- count_aligned ---------+
|
|
||||||
+ */
|
|
||||||
+ start_aligned = RAW_IO_ALIGN(dev, start);
|
|
||||||
+ end = start + count;
|
|
||||||
+ end_aligned = RAW_IO_ALIGN(dev, end) +
|
|
||||||
+ (RAW_IO_ALIGNED(dev, end, 0) ? 0 : DEV_HANDLE(dev)->block_size);
|
|
||||||
+ count_aligned = end_aligned - start_aligned;
|
|
||||||
+ ntfs_log_trace(
|
|
||||||
+ "%s: count = 0x%llx/0x%x, start = 0x%llx/0x%llx, end = 0x%llx/0x%llx\n",
|
|
||||||
+ dev->d_name, count, count_aligned,
|
|
||||||
+ start, start_aligned, end, end_aligned);
|
|
||||||
+
|
|
||||||
+ /* allocate buffer */
|
|
||||||
+ buf_aligned = malloc(count_aligned);
|
|
||||||
+ if (buf_aligned == NULL) {
|
|
||||||
+ ntfs_log_trace("malloc(%d) failed\n", count_aligned);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* read aligned data */
|
|
||||||
+ nr = pread_wrap(dev, buf_aligned, count_aligned, start_aligned);
|
|
||||||
+ if (nr == 0)
|
|
||||||
+ return 0;
|
|
||||||
+ if (nr < 0 || nr < start - start_aligned) {
|
|
||||||
+ free(buf_aligned);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* copy out */
|
|
||||||
+ memcpy(buf, buf_aligned + (start - start_aligned), count);
|
|
||||||
+ free(buf_aligned);
|
|
||||||
+
|
|
||||||
+ nr -= start - start_aligned;
|
|
||||||
+ if (nr > count)
|
|
||||||
+ nr = count;
|
|
||||||
+ return nr;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/**
|
|
||||||
+ * aligned_pwrite - Perform an aligned positioned write from the device
|
|
||||||
+ */
|
|
||||||
+static s64 aligned_pwrite(struct ntfs_device *dev, void *buf, s64 count, s64 offset)
|
|
||||||
+{
|
|
||||||
+ s64 start, start_aligned;
|
|
||||||
+ s64 end, end_aligned;
|
|
||||||
+ size_t count_aligned;
|
|
||||||
+ char *buf_aligned;
|
|
||||||
+ ssize_t nw;
|
|
||||||
+
|
|
||||||
+ if (NDevReadOnly(dev)) {
|
|
||||||
+ errno = EROFS;
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+ NDevSetDirty(dev);
|
|
||||||
+
|
|
||||||
+ /* short-circuit for regular files */
|
|
||||||
+ start = offset;
|
|
||||||
+ if (count > RAW_IO_MAX_SIZE)
|
|
||||||
+ count = RAW_IO_MAX_SIZE;
|
|
||||||
+ if (RAW_IO_ALIGNED(dev, start, count))
|
|
||||||
+ return pwrite_wrap(dev, buf, count, start);
|
|
||||||
+
|
|
||||||
+ /*
|
|
||||||
+ * +- start_aligned +- end_aligned
|
|
||||||
+ * | |
|
|
||||||
+ * | +- start +- end |
|
|
||||||
+ * v v v v
|
|
||||||
+ * |----------|----------|----------|
|
|
||||||
+ * ^ ^
|
|
||||||
+ * +----- count ------+
|
|
||||||
+ * ^ ^
|
|
||||||
+ * +-------- count_aligned ---------+
|
|
||||||
+ */
|
|
||||||
+ start_aligned = RAW_IO_ALIGN(dev, start);
|
|
||||||
+ end = start + count;
|
|
||||||
+ end_aligned = RAW_IO_ALIGN(dev, end) +
|
|
||||||
+ (RAW_IO_ALIGNED(dev, end, 0) ? 0 : DEV_HANDLE(dev)->block_size);
|
|
||||||
+ count_aligned = end_aligned - start_aligned;
|
|
||||||
+ ntfs_log_trace(
|
|
||||||
+ "%s: count = 0x%llx/0x%x, start = 0x%llx/0x%llx, end = 0x%llx/0x%llx\n",
|
|
||||||
+ dev->d_name, count, count_aligned,
|
|
||||||
+ start, start_aligned, end, end_aligned);
|
|
||||||
+
|
|
||||||
+ /* allocate buffer */
|
|
||||||
+ buf_aligned = malloc(count_aligned);
|
|
||||||
+ if (buf_aligned == NULL) {
|
|
||||||
+ ntfs_log_trace("malloc(%d) failed\n", count_aligned);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* read aligned lead-in */
|
|
||||||
+ if (pread_wrap(dev, buf_aligned, DEV_HANDLE(dev)->block_size, start_aligned) != DEV_HANDLE(dev)->block_size) {
|
|
||||||
+ ntfs_log_trace("read lead-in failed\n");
|
|
||||||
+ free(buf_aligned);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* read aligned lead-out */
|
|
||||||
+ if (end != end_aligned && count_aligned > DEV_HANDLE(dev)->block_size) {
|
|
||||||
+ if (pread_wrap(dev, buf_aligned + count_aligned - DEV_HANDLE(dev)->block_size, DEV_HANDLE(dev)->block_size, end_aligned - DEV_HANDLE(dev)->block_size) != DEV_HANDLE(dev)->block_size) {
|
|
||||||
+ ntfs_log_trace("read lead-out failed\n");
|
|
||||||
+ free(buf_aligned);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* copy data to write */
|
|
||||||
+ memcpy(buf_aligned + (start - start_aligned), buf, count);
|
|
||||||
+
|
|
||||||
+ /* write aligned data */
|
|
||||||
+ nw = pwrite_wrap(dev, buf_aligned, count_aligned, start_aligned);
|
|
||||||
+ free(buf_aligned);
|
|
||||||
+ if (nw < 0 || nw < start - start_aligned)
|
|
||||||
+ return -1;
|
|
||||||
+
|
|
||||||
+ nw -= start - start_aligned;
|
|
||||||
+ if (nw > count)
|
|
||||||
+ nw = count;
|
|
||||||
+ return nw;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/**
|
|
||||||
+ * aligned_read - Perform an aligned read from the device
|
|
||||||
+ */
|
|
||||||
+static s64 aligned_read(struct ntfs_device *dev, void *buf, s64 count)
|
|
||||||
+{
|
|
||||||
+ s64 nr = aligned_pread(dev, buf, count, DEV_HANDLE(dev)->pos);
|
|
||||||
+ if (nr > 0)
|
|
||||||
+ DEV_HANDLE(dev)->pos += nr;
|
|
||||||
+ return nr;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/**
|
|
||||||
+ * aligned_write - Perform an aligned read from the device
|
|
||||||
+ */
|
|
||||||
+static s64 aligned_write(struct ntfs_device *dev, void *buf, s64 count)
|
|
||||||
+{
|
|
||||||
+ s64 nw = aligned_pwrite(dev, buf, count, DEV_HANDLE(dev)->pos);
|
|
||||||
+ if (nw > 0)
|
|
||||||
+ DEV_HANDLE(dev)->pos += nw;
|
|
||||||
+ return nw;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#undef ublio_pwrite
|
|
||||||
+#undef ublio_pread
|
|
||||||
+
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
/**
|
|
||||||
* ntfs_device_unix_io_read - Read from the device, from the current location
|
|
||||||
* @dev:
|
|
||||||
@@ -191,6 +594,29 @@
|
|
||||||
static s64 ntfs_device_unix_io_read(struct ntfs_device *dev, void *buf,
|
|
||||||
s64 count)
|
|
||||||
{
|
|
||||||
+#if USE_ALIGNED_IO
|
|
||||||
+ return aligned_read(dev, buf, count);
|
|
||||||
+#elif USE_UBLIO
|
|
||||||
+ if (DEV_HANDLE(dev)->ublio_fh) {
|
|
||||||
+ off_t offset;
|
|
||||||
+ ssize_t res;
|
|
||||||
+
|
|
||||||
+ offset = lseek(DEV_FD(dev), 0, SEEK_CUR);
|
|
||||||
+ if (offset == -1)
|
|
||||||
+ return -1;
|
|
||||||
+
|
|
||||||
+ res = ublio_pread(DEV_HANDLE(dev)->ublio_fh, buf, count,
|
|
||||||
+ offset);
|
|
||||||
+ if (res == -1)
|
|
||||||
+ return -1;
|
|
||||||
+
|
|
||||||
+ if (lseek(DEV_FD(dev), res, SEEK_CUR) == -1)
|
|
||||||
+ return -1;
|
|
||||||
+
|
|
||||||
+ return res;
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
return read(DEV_FD(dev), buf, count);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -212,6 +638,28 @@
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
NDevSetDirty(dev);
|
|
||||||
+#if USE_ALIGNED_IO
|
|
||||||
+ return aligned_write(dev, buf, count);
|
|
||||||
+#elif USE_UBLIO
|
|
||||||
+ if (DEV_HANDLE(dev)->ublio_fh)
|
|
||||||
+ off_t offset;
|
|
||||||
+ ssize_t res;
|
|
||||||
+
|
|
||||||
+ offset = lseek(DEV_FD(dev), 0, SEEK_CUR);
|
|
||||||
+ if (offset == -1)
|
|
||||||
+ return -1;
|
|
||||||
+
|
|
||||||
+ res = ublio_pwrite(DEV_HANDLE(dev)->ublio_fh, (void *)buf,
|
|
||||||
+ count, offset);
|
|
||||||
+ if (res == -1)
|
|
||||||
+ return -1;
|
|
||||||
+
|
|
||||||
+ if (lseek(DEV_FD(dev), res, SEEK_CUR) == -1)
|
|
||||||
+ return -1;
|
|
||||||
+
|
|
||||||
+ return res;
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
return write(DEV_FD(dev), buf, count);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -229,6 +677,13 @@
|
|
||||||
static s64 ntfs_device_unix_io_pread(struct ntfs_device *dev, void *buf,
|
|
||||||
s64 count, s64 offset)
|
|
||||||
{
|
|
||||||
+#if USE_ALIGNED_IO
|
|
||||||
+ return aligned_pread(dev, buf, count, offset);
|
|
||||||
+#elif USE_UBLIO
|
|
||||||
+ if (DEV_HANDLE(dev)->ublio_fh)
|
|
||||||
+ return ublio_pread(DEV_HANDLE(dev)->ublio_fh, buf, count,
|
|
||||||
+ offset);
|
|
||||||
+#endif
|
|
||||||
return pread(DEV_FD(dev), buf, count, offset);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -251,6 +706,13 @@
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
NDevSetDirty(dev);
|
|
||||||
+#if USE_ALIGNED_IO
|
|
||||||
+ return aligned_pwrite(dev, buf, count, offset);
|
|
||||||
+#elif USE_UBLIO
|
|
||||||
+ if (DEV_HANDLE(dev)->ublio_fh)
|
|
||||||
+ return ublio_pwrite(DEV_HANDLE(dev)->ublio_fh, (void *)buf,
|
|
||||||
+ count, offset);
|
|
||||||
+#endif
|
|
||||||
return pwrite(DEV_FD(dev), buf, count, offset);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -264,8 +726,17 @@
|
|
||||||
*/
|
|
||||||
static int ntfs_device_unix_io_sync(struct ntfs_device *dev)
|
|
||||||
{
|
|
||||||
+ int res;
|
|
||||||
+
|
|
||||||
if (!NDevReadOnly(dev) && NDevDirty(dev)) {
|
|
||||||
- int res = fsync(DEV_FD(dev));
|
|
||||||
+#if USE_UBLIO
|
|
||||||
+ if (DEV_HANDLE(dev)->ublio_fh)
|
|
||||||
+ res = ublio_fsync(DEV_HANDLE(dev)->ublio_fh);
|
|
||||||
+ if (!DEV_HANDLE(dev)->ublio_fh || !res)
|
|
||||||
+ res = fsync(DEV_FD(dev));
|
|
||||||
+#else
|
|
||||||
+ res = fsync(DEV_FD(dev));
|
|
||||||
+#endif
|
|
||||||
if (!res)
|
|
||||||
NDevClearDirty(dev);
|
|
||||||
return res;
|
|
|
@ -1,21 +0,0 @@
|
||||||
--- ntfsprogs/Makefile.in.orig 2007-09-28 19:12:39.000000000 -0300
|
|
||||||
+++ ntfsprogs/Makefile.in 2008-08-10 20:53:50.000000000 -0300
|
|
||||||
@@ -1072,15 +1072,12 @@
|
|
||||||
|
|
||||||
install-exec-hook:
|
|
||||||
$(INSTALL) -d $(DESTDIR)/sbin
|
|
||||||
- $(LN_S) -f $(sbindir)/mkntfs $(DESTDIR)/sbin/mkfs.ntfs
|
|
||||||
-@ENABLE_FUSE_TRUE@ $(LN_S) -f $(bindir)/ntfsmount $(DESTDIR)/sbin/mount.ntfs-fuse
|
|
||||||
-@ENABLE_FUSE_TRUE@ $(LN_S) -f $(bindir)/ntfsmount $(DESTDIR)/sbin/mount.fuse.ntfs
|
|
||||||
+ $(INSTALL) -d $(DESTDIR)/usr/sbin
|
|
||||||
+@ENABLE_FUSE_TRUE@ $(LN_S) -f $(bindir)/ntfsmount $(DESTDIR)/usr/sbin/mount_ntfs-fuse
|
|
||||||
|
|
||||||
install-data-hook:
|
|
||||||
$(INSTALL) -d $(DESTDIR)$(man8dir)
|
|
||||||
- $(LN_S) -f mkntfs.8 $(DESTDIR)$(man8dir)/mkfs.ntfs.8
|
|
||||||
-@ENABLE_FUSE_TRUE@ $(LN_S) -f ntfsmount.8 $(DESTDIR)$(man8dir)/mount.ntfs-fuse.8
|
|
||||||
-@ENABLE_FUSE_TRUE@ $(LN_S) -f ntfsmount.8 $(DESTDIR)$(man8dir)/mount.fuse.ntfs.8
|
|
||||||
+@ENABLE_FUSE_TRUE@ $(LN_S) -f ntfsmount.8 $(DESTDIR)$(man8dir)/mount_ntfs-fuse.8
|
|
||||||
|
|
||||||
uninstall-local:
|
|
||||||
$(RM) -f $(DESTDIR)/sbin/mkfs.ntfs
|
|
|
@ -1,31 +0,0 @@
|
||||||
--- ntfsprogs/mkntfs.c 2007-09-19 18:51:09.000000000 +0200
|
|
||||||
+++ ntfsprogs/mkntfs.c 2010-03-16 17:26:42.000000000 +0100
|
|
||||||
@@ -552,12 +552,16 @@
|
|
||||||
total = 0LL;
|
|
||||||
retry = 0;
|
|
||||||
do {
|
|
||||||
- bytes_written = dev->d_ops->write(dev, b, count);
|
|
||||||
+ bytes_written = (long long)dev->d_ops->write(dev, b, count);
|
|
||||||
if (bytes_written == -1LL) {
|
|
||||||
retry = errno;
|
|
||||||
ntfs_log_perror("Error writing to %s", dev->d_name);
|
|
||||||
errno = retry;
|
|
||||||
return bytes_written;
|
|
||||||
+ } else if (bytes_written < 0) {
|
|
||||||
+ errno = EINVAL;
|
|
||||||
+ ntfs_log_error("Failed to write to device %s.\n", dev->d_name);
|
|
||||||
+ return -1;
|
|
||||||
} else if (!bytes_written) {
|
|
||||||
retry++;
|
|
||||||
} else {
|
|
||||||
@@ -3072,8 +3076,8 @@
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (!S_ISBLK(sbuf.st_mode)) {
|
|
||||||
- ntfs_log_error("%s is not a block device.\n", vol->dev->d_name);
|
|
||||||
+ if (!S_ISCHR(sbuf.st_mode)) {
|
|
||||||
+ ntfs_log_error("%s is not a character device.\n", vol->dev->d_name);
|
|
||||||
if (!opts.force) {
|
|
||||||
ntfs_log_error("Refusing to make a filesystem here!\n");
|
|
||||||
goto done;
|
|
|
@ -1,14 +0,0 @@
|
||||||
--- ntfsprogs/ntfsclone.c Mon Jul 25 12:31:30 2005
|
|
||||||
+++ ntfsprogs/ntfsclone.c Mon Jul 25 12:33:32 2005
|
|
||||||
@@ -1080,9 +1080,9 @@
|
|
||||||
|
|
||||||
static int device_offset_valid(int fd, s64 ofs)
|
|
||||||
{
|
|
||||||
- char ch;
|
|
||||||
+ char ch[512];
|
|
||||||
|
|
||||||
- if (lseek(fd, ofs, SEEK_SET) >= 0 && read(fd, &ch, 1) == 1)
|
|
||||||
+ if (lseek(fd, ofs, SEEK_SET) >= 0 && read(fd, &ch, 512) > 0)
|
|
||||||
return 0;
|
|
||||||
return -1;
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
--- ntfsprogs/ntfsresize.c.orig Tue Feb 14 12:17:52 2006
|
|
||||||
+++ ntfsprogs/ntfsresize.c Thu May 4 04:46:10 2006
|
|
||||||
@@ -1974,6 +1974,11 @@
|
|
||||||
err_exit("Resident attribute in $Bitmap isn't supported!\n");
|
|
||||||
|
|
||||||
bm_bsize = nr_clusters_to_bitmap_byte_size(resize->new_volume_size);
|
|
||||||
+ if(bm_bsize % 512 != 0) {
|
|
||||||
+ s64 old_bm_bsize = bm_bsize;
|
|
||||||
+ bm_bsize = (bm_bsize + 511) / 512 * 512;
|
|
||||||
+ ntfs_log_verbose("adjusted bm_bsize: %lld->%lld\n", old_bm_bsize, bm_bsize);
|
|
||||||
+ }
|
|
||||||
nr_bm_clusters = rounded_up_division(bm_bsize, vol->cluster_size);
|
|
||||||
|
|
||||||
if (resize->shrink) {
|
|
|
@ -1,10 +0,0 @@
|
||||||
==============================================================================
|
|
||||||
|
|
||||||
Linux-NTFS has been installed, for information, known issues and how to report
|
|
||||||
bugs see the FreeBSD README (describes FUSE and UBLIO options):
|
|
||||||
|
|
||||||
%%DOCSDIR%%/README.FreeBSD
|
|
||||||
|
|
||||||
Also see the official README (platform independent).
|
|
||||||
|
|
||||||
==============================================================================
|
|
|
@ -1,11 +0,0 @@
|
||||||
The goals of the Linux-NTFS project are to develop reliable and full feature
|
|
||||||
access to NTFS by the Linux kernel driver and by a user space driver
|
|
||||||
(ntfsmount), and to provide a wide collection of NTFS utilities and a
|
|
||||||
developer's library for other GPLed programs. We have already achieved a lot,
|
|
||||||
with high quality results. Includes the following:
|
|
||||||
|
|
||||||
ntfsmount: fast, reliable, read/write, userspace.
|
|
||||||
ntfsprogs: various tools for managing ntfs, namely mkntfs, ntfsresize,
|
|
||||||
ntfsclone, ntfsfix, ntfsundelete, ntfswipe and ntfsdecrypt.
|
|
||||||
|
|
||||||
WWW: https://sourceforge.net/projects/linux-ntfs/
|
|
|
@ -1,72 +0,0 @@
|
||||||
bin/ntfscat
|
|
||||||
bin/ntfscluster
|
|
||||||
bin/ntfscmp
|
|
||||||
bin/ntfsfix
|
|
||||||
bin/ntfsinfo
|
|
||||||
bin/ntfsls
|
|
||||||
bin/ntfsmount
|
|
||||||
include/ntfs/attrib.h
|
|
||||||
include/ntfs/attrlist.h
|
|
||||||
include/ntfs/bitmap.h
|
|
||||||
include/ntfs/bootsect.h
|
|
||||||
include/ntfs/collate.h
|
|
||||||
include/ntfs/compat.h
|
|
||||||
include/ntfs/compress.h
|
|
||||||
include/ntfs/crypto.h
|
|
||||||
include/ntfs/debug.h
|
|
||||||
include/ntfs/device.h
|
|
||||||
include/ntfs/device_io.h
|
|
||||||
include/ntfs/dir.h
|
|
||||||
include/ntfs/endians.h
|
|
||||||
include/ntfs/gnome-vfs-method.h
|
|
||||||
include/ntfs/gnome-vfs-module.h
|
|
||||||
include/ntfs/index.h
|
|
||||||
include/ntfs/inode.h
|
|
||||||
include/ntfs/layout.h
|
|
||||||
include/ntfs/lcnalloc.h
|
|
||||||
include/ntfs/list.h
|
|
||||||
include/ntfs/logfile.h
|
|
||||||
include/ntfs/logging.h
|
|
||||||
include/ntfs/mft.h
|
|
||||||
include/ntfs/mst.h
|
|
||||||
include/ntfs/ntfstime.h
|
|
||||||
include/ntfs/runlist.h
|
|
||||||
include/ntfs/security.h
|
|
||||||
include/ntfs/support.h
|
|
||||||
include/ntfs/types.h
|
|
||||||
include/ntfs/unistr.h
|
|
||||||
include/ntfs/version.h
|
|
||||||
include/ntfs/volume.h
|
|
||||||
lib/libntfs.a
|
|
||||||
lib/libntfs.so
|
|
||||||
lib/libntfs.so.10
|
|
||||||
lib/libntfs.so.10.0.0
|
|
||||||
man/man8/libntfs-gnomevfs.8.gz
|
|
||||||
man/man8/libntfs.8.gz
|
|
||||||
man/man8/mkntfs.8.gz
|
|
||||||
man/man8/mount_ntfs-fuse.8.gz
|
|
||||||
man/man8/ntfscat.8.gz
|
|
||||||
man/man8/ntfsclone.8.gz
|
|
||||||
man/man8/ntfscluster.8.gz
|
|
||||||
man/man8/ntfscmp.8.gz
|
|
||||||
man/man8/ntfscp.8.gz
|
|
||||||
man/man8/ntfsfix.8.gz
|
|
||||||
man/man8/ntfsinfo.8.gz
|
|
||||||
man/man8/ntfslabel.8.gz
|
|
||||||
man/man8/ntfsls.8.gz
|
|
||||||
man/man8/ntfsmount.8.gz
|
|
||||||
man/man8/ntfsprogs.8.gz
|
|
||||||
man/man8/ntfsresize.8.gz
|
|
||||||
man/man8/ntfsundelete.8.gz
|
|
||||||
sbin/mkntfs
|
|
||||||
sbin/ntfsclone
|
|
||||||
sbin/ntfscp
|
|
||||||
sbin/ntfslabel
|
|
||||||
sbin/ntfsresize
|
|
||||||
sbin/ntfsundelete
|
|
||||||
%%GNOMEVFS2%%etc/gnome-vfs-2.0/modules/libntfs.conf
|
|
||||||
%%GNOMEVFS2%%lib/gnome-vfs-2.0/modules/libntfs-gnomevfs.a
|
|
||||||
%%GNOMEVFS2%%lib/gnome-vfs-2.0/modules/libntfs-gnomevfs.so
|
|
||||||
%%GNOMEVFS2%%lib/gnome-vfs-2.0/modules/libntfs-gnomevfs.so.1
|
|
||||||
%%GNOMEVFS2%%lib/gnome-vfs-2.0/modules/libntfs-gnomevfs.so.1.0.0
|
|
||||||
/usr/sbin/mount_ntfs-fuse
|
|
|
@ -1,86 +0,0 @@
|
||||||
# Created by: Andrey Chernov <ache@FreeBSD.org>
|
|
||||||
# $FreeBSD$
|
|
||||||
|
|
||||||
PORTNAME= screen
|
|
||||||
PORTVERSION= 4.0.3
|
|
||||||
PORTREVISION= 15
|
|
||||||
CATEGORIES= sysutils
|
|
||||||
MASTER_SITES= http://ftp.gnu.org/gnu/screen/ \
|
|
||||||
ftp://ftp.gnu.org/gnu/screen/ \
|
|
||||||
ftp://gnu.mirror.iweb.com/screen/ \
|
|
||||||
http://gnu.mirror.iweb.com/screen/ \
|
|
||||||
http://mirror.sdunix.com/gnu/ \
|
|
||||||
ftp://mirrors.kernel.org/gnu/screen/ \
|
|
||||||
http://komquats.com/distfiles/ \
|
|
||||||
http://people.freebsd.org/~cy/distfiles/ \
|
|
||||||
GNU
|
|
||||||
PKGNAMESUFFIX= -legacy
|
|
||||||
|
|
||||||
MAINTAINER= cy@FreeBSD.org
|
|
||||||
COMMENT= Multi-screen window manager
|
|
||||||
|
|
||||||
DEPRECATED= Old version released 2008-08-07 no longer upline maintained.
|
|
||||||
EXPIRATION_DATE= 2016-12-31
|
|
||||||
|
|
||||||
OPTIONS_DEFINE= CJK INFO MAN NETHACK XTERM_256 HOSTINLOCKED SHOWENC
|
|
||||||
OPTIONS_DEFAULT= INFO MAN NETHACK XTERM_256
|
|
||||||
CJK_DESC= Treat CJK ambiguous characters as full width
|
|
||||||
INFO_DESC= Build and install info documentation
|
|
||||||
MAN_DESC= Build and install man pages
|
|
||||||
NETHACK_DESC= Enable nethack-style messages
|
|
||||||
XTERM_256_DESC= Enable support for 256 colour xterm
|
|
||||||
HOSTINLOCKED_DESC= Print user@host in locked message
|
|
||||||
SHOWENC_DESC= Show encoding on the status line
|
|
||||||
|
|
||||||
OPTIONS_SUB=
|
|
||||||
|
|
||||||
USES= cpe
|
|
||||||
CPE_VENDOR= gnu
|
|
||||||
|
|
||||||
.include <bsd.port.options.mk>
|
|
||||||
|
|
||||||
GNU_CONFIGURE= yes
|
|
||||||
.if ${PORT_OPTIONS:MMAN}
|
|
||||||
MAKE_ARGS+= -DWITH_MAN
|
|
||||||
.endif
|
|
||||||
.if ${PORT_OPTIONS:MINFO}
|
|
||||||
INFO= screen
|
|
||||||
MAKE_ARGS+= -DWITH_INFO
|
|
||||||
.endif
|
|
||||||
|
|
||||||
# Enables support for 256 colour xterm. Note that you may need to
|
|
||||||
# set up a custom termcap entry or .screenrc which modifies termcap
|
|
||||||
# to contain the following: Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm
|
|
||||||
#
|
|
||||||
.if ${PORT_OPTIONS:MXTERM_256}
|
|
||||||
CFLAGS+= -DCOLORS256
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.if ! ${PORT_OPTIONS:MNETHACK}
|
|
||||||
CFLAGS+= -DNONETHACK
|
|
||||||
.endif
|
|
||||||
|
|
||||||
# treat CJK ambiguous characters as full width via option "cjkwidth"
|
|
||||||
.if ${PORT_OPTIONS:MCJK}
|
|
||||||
EXTRA_PATCHES+= ${FILESDIR}/opt-cjkwidth
|
|
||||||
.endif
|
|
||||||
|
|
||||||
.if ${PORT_OPTIONS:MHOSTINLOCKED}
|
|
||||||
EXTRA_PATCHES+= ${FILESDIR}/opt-hostinlocked
|
|
||||||
.endif
|
|
||||||
|
|
||||||
# show encoding on the status line via option "showenc"
|
|
||||||
.if ${PORT_OPTIONS:MSHOWENC}
|
|
||||||
EXTRA_PATCHES+= ${FILESDIR}/opt-showencoding
|
|
||||||
.endif
|
|
||||||
|
|
||||||
post-patch:
|
|
||||||
@${RM} ${WRKSRC}/doc/screen.info*
|
|
||||||
@${REINPLACE_CMD} -e 's|/dev/ptmx|/nonexistent|' ${WRKSRC}/configure
|
|
||||||
|
|
||||||
post-install:
|
|
||||||
@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
|
|
||||||
${INSTALL_DATA} ${WRKSRC}/etc/etcscreenrc \
|
|
||||||
${STAGEDIR}${EXAMPLESDIR}/screenrc
|
|
||||||
|
|
||||||
.include <bsd.port.mk>
|
|
|
@ -1,2 +0,0 @@
|
||||||
SHA256 (screen-4.0.3.tar.gz) = 78f0d5b1496084a5902586304d4a73954b2bfe33ea13edceecf21615c39e6c77
|
|
||||||
SIZE (screen-4.0.3.tar.gz) = 840602
|
|
|
@ -1,227 +0,0 @@
|
||||||
--- ansi.c.orig Tue Jun 17 08:00:47 2003
|
|
||||||
+++ ansi.c Wed Jun 18 00:55:21 2003
|
|
||||||
@@ -701,7 +701,7 @@
|
|
||||||
curr->w_rend.font = 0;
|
|
||||||
}
|
|
||||||
# ifdef DW_CHARS
|
|
||||||
- if (curr->w_encoding == UTF8 && c >= 0x1100 && utf8_isdouble(c))
|
|
||||||
+ if (curr->w_encoding == UTF8 && utf8_isdouble(c))
|
|
||||||
curr->w_mbcs = 0xff;
|
|
||||||
# endif
|
|
||||||
if (curr->w_encoding == UTF8 && c >= 0x0300 && utf8_iscomb(c))
|
|
||||||
--- comm.c.orig Mon Sep 8 22:25:08 2003
|
|
||||||
+++ comm.c Fri May 6 19:06:12 2005
|
|
||||||
@@ -112,6 +112,9 @@
|
|
||||||
#endif
|
|
||||||
{ "charset", NEED_FORE|ARGS_1 },
|
|
||||||
{ "chdir", ARGS_01 },
|
|
||||||
+#ifdef DW_CHARS
|
|
||||||
+ { "cjkwidth", ARGS_01 },
|
|
||||||
+#endif
|
|
||||||
{ "clear", NEED_FORE|ARGS_0 },
|
|
||||||
{ "colon", NEED_LAYER|ARGS_01 },
|
|
||||||
{ "command", NEED_DISPLAY|ARGS_02 },
|
|
||||||
--- encoding.c.orig Mon Sep 8 22:25:23 2003
|
|
||||||
+++ encoding.c Fri May 6 20:05:24 2005
|
|
||||||
@@ -35,6 +35,10 @@
|
|
||||||
|
|
||||||
extern char *screenencodings;
|
|
||||||
|
|
||||||
+#ifdef DW_CHARS
|
|
||||||
+extern int cjkwidth;
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
static int encmatch __P((char *, char *));
|
|
||||||
# ifdef UTF8
|
|
||||||
static int recode_char __P((int, int, int));
|
|
||||||
@@ -845,22 +849,107 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef DW_CHARS
|
|
||||||
+struct interval {
|
|
||||||
+ int first;
|
|
||||||
+ int last;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+/* auxiliary function for binary search in interval table */
|
|
||||||
+static int bisearch(int ucs, const struct interval *table, int max) {
|
|
||||||
+ int min = 0;
|
|
||||||
+ int mid;
|
|
||||||
+
|
|
||||||
+ if (ucs < table[0].first || ucs > table[max].last)
|
|
||||||
+ return 0;
|
|
||||||
+ while (max >= min) {
|
|
||||||
+ mid = (min + max) / 2;
|
|
||||||
+ if (ucs > table[mid].last)
|
|
||||||
+ min = mid + 1;
|
|
||||||
+ else if (ucs < table[mid].first)
|
|
||||||
+ max = mid - 1;
|
|
||||||
+ else
|
|
||||||
+ return 1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
int
|
|
||||||
utf8_isdouble(c)
|
|
||||||
int c;
|
|
||||||
{
|
|
||||||
- return
|
|
||||||
- (c >= 0x1100 &&
|
|
||||||
- (c <= 0x115f || /* Hangul Jamo init. consonants */
|
|
||||||
- (c >= 0x2e80 && c <= 0xa4cf && (c & ~0x0011) != 0x300a &&
|
|
||||||
- c != 0x303f) || /* CJK ... Yi */
|
|
||||||
- (c >= 0xac00 && c <= 0xd7a3) || /* Hangul Syllables */
|
|
||||||
- (c >= 0xdf00 && c <= 0xdfff) || /* dw combining sequence */
|
|
||||||
- (c >= 0xf900 && c <= 0xfaff) || /* CJK Compatibility Ideographs */
|
|
||||||
- (c >= 0xfe30 && c <= 0xfe6f) || /* CJK Compatibility Forms */
|
|
||||||
- (c >= 0xff00 && c <= 0xff5f) || /* Fullwidth Forms */
|
|
||||||
- (c >= 0xffe0 && c <= 0xffe6) ||
|
|
||||||
- (c >= 0x20000 && c <= 0x2ffff)));
|
|
||||||
+ /* sorted list of non-overlapping intervals of East Asian Ambiguous
|
|
||||||
+ * characters, generated by "uniset +WIDTH-A -cat=Me -cat=Mn -cat=Cf c" */
|
|
||||||
+ static const struct interval ambiguous[] = {
|
|
||||||
+ { 0x00A1, 0x00A1 }, { 0x00A4, 0x00A4 }, { 0x00A7, 0x00A8 },
|
|
||||||
+ { 0x00AA, 0x00AA }, { 0x00AE, 0x00AE }, { 0x00B0, 0x00B4 },
|
|
||||||
+ { 0x00B6, 0x00BA }, { 0x00BC, 0x00BF }, { 0x00C6, 0x00C6 },
|
|
||||||
+ { 0x00D0, 0x00D0 }, { 0x00D7, 0x00D8 }, { 0x00DE, 0x00E1 },
|
|
||||||
+ { 0x00E6, 0x00E6 }, { 0x00E8, 0x00EA }, { 0x00EC, 0x00ED },
|
|
||||||
+ { 0x00F0, 0x00F0 }, { 0x00F2, 0x00F3 }, { 0x00F7, 0x00FA },
|
|
||||||
+ { 0x00FC, 0x00FC }, { 0x00FE, 0x00FE }, { 0x0101, 0x0101 },
|
|
||||||
+ { 0x0111, 0x0111 }, { 0x0113, 0x0113 }, { 0x011B, 0x011B },
|
|
||||||
+ { 0x0126, 0x0127 }, { 0x012B, 0x012B }, { 0x0131, 0x0133 },
|
|
||||||
+ { 0x0138, 0x0138 }, { 0x013F, 0x0142 }, { 0x0144, 0x0144 },
|
|
||||||
+ { 0x0148, 0x014B }, { 0x014D, 0x014D }, { 0x0152, 0x0153 },
|
|
||||||
+ { 0x0166, 0x0167 }, { 0x016B, 0x016B }, { 0x01CE, 0x01CE },
|
|
||||||
+ { 0x01D0, 0x01D0 }, { 0x01D2, 0x01D2 }, { 0x01D4, 0x01D4 },
|
|
||||||
+ { 0x01D6, 0x01D6 }, { 0x01D8, 0x01D8 }, { 0x01DA, 0x01DA },
|
|
||||||
+ { 0x01DC, 0x01DC }, { 0x0251, 0x0251 }, { 0x0261, 0x0261 },
|
|
||||||
+ { 0x02C4, 0x02C4 }, { 0x02C7, 0x02C7 }, { 0x02C9, 0x02CB },
|
|
||||||
+ { 0x02CD, 0x02CD }, { 0x02D0, 0x02D0 }, { 0x02D8, 0x02DB },
|
|
||||||
+ { 0x02DD, 0x02DD }, { 0x02DF, 0x02DF }, { 0x0391, 0x03A1 },
|
|
||||||
+ { 0x03A3, 0x03A9 }, { 0x03B1, 0x03C1 }, { 0x03C3, 0x03C9 },
|
|
||||||
+ { 0x0401, 0x0401 }, { 0x0410, 0x044F }, { 0x0451, 0x0451 },
|
|
||||||
+ { 0x2010, 0x2010 }, { 0x2013, 0x2016 }, { 0x2018, 0x2019 },
|
|
||||||
+ { 0x201C, 0x201D }, { 0x2020, 0x2022 }, { 0x2024, 0x2027 },
|
|
||||||
+ { 0x2030, 0x2030 }, { 0x2032, 0x2033 }, { 0x2035, 0x2035 },
|
|
||||||
+ { 0x203B, 0x203B }, { 0x203E, 0x203E }, { 0x2074, 0x2074 },
|
|
||||||
+ { 0x207F, 0x207F }, { 0x2081, 0x2084 }, { 0x20AC, 0x20AC },
|
|
||||||
+ { 0x2103, 0x2103 }, { 0x2105, 0x2105 }, { 0x2109, 0x2109 },
|
|
||||||
+ { 0x2113, 0x2113 }, { 0x2116, 0x2116 }, { 0x2121, 0x2122 },
|
|
||||||
+ { 0x2126, 0x2126 }, { 0x212B, 0x212B }, { 0x2153, 0x2154 },
|
|
||||||
+ { 0x215B, 0x215E }, { 0x2160, 0x216B }, { 0x2170, 0x2179 },
|
|
||||||
+ { 0x2190, 0x2199 }, { 0x21B8, 0x21B9 }, { 0x21D2, 0x21D2 },
|
|
||||||
+ { 0x21D4, 0x21D4 }, { 0x21E7, 0x21E7 }, { 0x2200, 0x2200 },
|
|
||||||
+ { 0x2202, 0x2203 }, { 0x2207, 0x2208 }, { 0x220B, 0x220B },
|
|
||||||
+ { 0x220F, 0x220F }, { 0x2211, 0x2211 }, { 0x2215, 0x2215 },
|
|
||||||
+ { 0x221A, 0x221A }, { 0x221D, 0x2220 }, { 0x2223, 0x2223 },
|
|
||||||
+ { 0x2225, 0x2225 }, { 0x2227, 0x222C }, { 0x222E, 0x222E },
|
|
||||||
+ { 0x2234, 0x2237 }, { 0x223C, 0x223D }, { 0x2248, 0x2248 },
|
|
||||||
+ { 0x224C, 0x224C }, { 0x2252, 0x2252 }, { 0x2260, 0x2261 },
|
|
||||||
+ { 0x2264, 0x2267 }, { 0x226A, 0x226B }, { 0x226E, 0x226F },
|
|
||||||
+ { 0x2282, 0x2283 }, { 0x2286, 0x2287 }, { 0x2295, 0x2295 },
|
|
||||||
+ { 0x2299, 0x2299 }, { 0x22A5, 0x22A5 }, { 0x22BF, 0x22BF },
|
|
||||||
+ { 0x2312, 0x2312 }, { 0x2460, 0x24E9 }, { 0x24EB, 0x254B },
|
|
||||||
+ { 0x2550, 0x2573 }, { 0x2580, 0x258F }, { 0x2592, 0x2595 },
|
|
||||||
+ { 0x25A0, 0x25A1 }, { 0x25A3, 0x25A9 }, { 0x25B2, 0x25B3 },
|
|
||||||
+ { 0x25B6, 0x25B7 }, { 0x25BC, 0x25BD }, { 0x25C0, 0x25C1 },
|
|
||||||
+ { 0x25C6, 0x25C8 }, { 0x25CB, 0x25CB }, { 0x25CE, 0x25D1 },
|
|
||||||
+ { 0x25E2, 0x25E5 }, { 0x25EF, 0x25EF }, { 0x2605, 0x2606 },
|
|
||||||
+ { 0x2609, 0x2609 }, { 0x260E, 0x260F }, { 0x2614, 0x2615 },
|
|
||||||
+ { 0x261C, 0x261C }, { 0x261E, 0x261E }, { 0x2640, 0x2640 },
|
|
||||||
+ { 0x2642, 0x2642 }, { 0x2660, 0x2661 }, { 0x2663, 0x2665 },
|
|
||||||
+ { 0x2667, 0x266A }, { 0x266C, 0x266D }, { 0x266F, 0x266F },
|
|
||||||
+ { 0x273D, 0x273D }, { 0x2776, 0x277F }, { 0xE000, 0xF8FF },
|
|
||||||
+ { 0xFFFD, 0xFFFD }, { 0xF0000, 0xFFFFD }, { 0x100000, 0x10FFFD }
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ return ((c >= 0x1100 &&
|
|
||||||
+ (c <= 0x115f || /* Hangul Jamo init. consonants */
|
|
||||||
+ c == 0x2329 || c == 0x232a ||
|
|
||||||
+ (c >= 0x2e80 && c <= 0xa4cf &&
|
|
||||||
+ c != 0x303f) || /* CJK ... Yi */
|
|
||||||
+ (c >= 0xac00 && c <= 0xd7a3) || /* Hangul Syllables */
|
|
||||||
+ (c >= 0xf900 && c <= 0xfaff) || /* CJK Compatibility Ideographs */
|
|
||||||
+ (c >= 0xfe30 && c <= 0xfe6f) || /* CJK Compatibility Forms */
|
|
||||||
+ (c >= 0xff00 && c <= 0xff60) || /* Fullwidth Forms */
|
|
||||||
+ (c >= 0xffe0 && c <= 0xffe6) ||
|
|
||||||
+ (c >= 0x20000 && c <= 0x2fffd) ||
|
|
||||||
+ (c >= 0x30000 && c <= 0x3fffd))) ||
|
|
||||||
+ (cjkwidth &&
|
|
||||||
+ bisearch(c, ambiguous,
|
|
||||||
+ sizeof(ambiguous) / sizeof(struct interval) - 1)));
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
--- process.c.orig Thu Sep 18 20:53:54 2003
|
|
||||||
+++ process.c Fri May 6 19:43:53 2005
|
|
||||||
@@ -103,6 +103,9 @@
|
|
||||||
#ifdef UTF8
|
|
||||||
extern char *screenencodings;
|
|
||||||
#endif
|
|
||||||
+#ifdef DW_CHARS
|
|
||||||
+extern int cjkwidth;
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
static int CheckArgNum __P((int, char **));
|
|
||||||
static void ClearAction __P((struct action *));
|
|
||||||
@@ -3821,6 +3824,15 @@
|
|
||||||
Msg(0, "idle off");
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
+#ifdef DW_CHARS
|
|
||||||
+ case RC_CJKWIDTH:
|
|
||||||
+ if(ParseSwitch(act, &cjkwidth) == 0)
|
|
||||||
+ {
|
|
||||||
+ if(msgok)
|
|
||||||
+ Msg(0, "Treat ambiguous width characters as %s width", cjkwidth ? "full" : "half");
|
|
||||||
+ }
|
|
||||||
+ break;
|
|
||||||
+#endif
|
|
||||||
default:
|
|
||||||
#ifdef HAVE_BRAILLE
|
|
||||||
/* key == -2: input from braille keybord, msgok always 0 */
|
|
||||||
--- screen.c.orig Mon Sep 8 22:26:41 2003
|
|
||||||
+++ screen.c Sat May 7 05:16:38 2005
|
|
||||||
@@ -221,6 +221,10 @@
|
|
||||||
char *screenencodings;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifdef DW_CHARS
|
|
||||||
+int cjkwidth;
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
#ifdef NETHACK
|
|
||||||
int nethackflag = 0;
|
|
||||||
#endif
|
|
||||||
@@ -468,6 +472,9 @@
|
|
||||||
InitBuiltinTabs();
|
|
||||||
screenencodings = SaveStr(SCREENENCODINGS);
|
|
||||||
#endif
|
|
||||||
+#ifdef DW_CHARS
|
|
||||||
+ cjkwidth = 0;
|
|
||||||
+#endif
|
|
||||||
nwin = nwin_undef;
|
|
||||||
nwin_options = nwin_undef;
|
|
||||||
strcpy(screenterm, "screen");
|
|
||||||
@@ -762,6 +769,19 @@
|
|
||||||
debug1("environment says encoding=%d\n", nwin_options.encoding);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
+# ifdef DW_CHARS
|
|
||||||
+ {
|
|
||||||
+ char *s;
|
|
||||||
+ if((s = getenv("LC_ALL")) || (s = getenv("LC_CTYPE")) ||
|
|
||||||
+ (s = getenv("LANG")))
|
|
||||||
+ {
|
|
||||||
+ if(!strncmp(s, "zh_", 3) || !strncmp(s, "ja_", 3) || !strncmp(s, "ko_", 3))
|
|
||||||
+ {
|
|
||||||
+ cjkwidth = 1;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
#endif
|
|
||||||
if (SockMatch && strlen(SockMatch) >= MAXSTR)
|
|
||||||
Panic(0, "Ridiculously long socketname - try again.");
|
|
|
@ -1,21 +0,0 @@
|
||||||
--- attacher.c Sun Oct 2 10:29:36 2005
|
|
||||||
+++ attacher.c Sun Oct 2 10:30:18 2005
|
|
||||||
@@ -809,6 +809,7 @@
|
|
||||||
#else
|
|
||||||
char *pass, mypass[16 + 1], salt[3];
|
|
||||||
#endif
|
|
||||||
+ extern char HostName[];
|
|
||||||
|
|
||||||
#ifndef USE_PAM
|
|
||||||
pass = ppp->pw_passwd;
|
|
||||||
@@ -859,8 +860,8 @@
|
|
||||||
*cp1 -= 'a' - 'A';
|
|
||||||
}
|
|
||||||
|
|
||||||
- sprintf(message, "Screen used by %s <%s>.\nPassword:\007",
|
|
||||||
- fullname, ppp->pw_name);
|
|
||||||
+ sprintf(message, "Screen used by %s <%s@%s>.\nPassword:\007",
|
|
||||||
+ fullname, ppp->pw_name, HostName);
|
|
||||||
|
|
||||||
/* loop here to wait for correct password */
|
|
||||||
for (;;)
|
|
|
@ -1,31 +0,0 @@
|
||||||
--- process.c.orig 2008-05-08 02:37:33.000000000 +0800
|
|
||||||
+++ process.c 2008-05-08 02:37:49.000000000 +0800
|
|
||||||
@@ -3422,6 +3422,7 @@
|
|
||||||
{
|
|
||||||
WinSwitchEncoding(fore, n);
|
|
||||||
ResetCharsets(fore);
|
|
||||||
+ RedisplayDisplays(0);
|
|
||||||
}
|
|
||||||
else if (i && display)
|
|
||||||
D_encoding = n;
|
|
||||||
--- screen.c.orig 2008-05-08 02:37:22.000000000 +0800
|
|
||||||
+++ screen.c 2008-05-20 20:34:37.000000000 +0800
|
|
||||||
@@ -2584,6 +2584,18 @@
|
|
||||||
}
|
|
||||||
p += strlen(p) - 1;
|
|
||||||
break;
|
|
||||||
+#ifdef ENCODINGS
|
|
||||||
+ case 'e':
|
|
||||||
+ *p = 0;
|
|
||||||
+ D_encoding = nwin_options.encoding > 0 ? nwin_options.encoding : 0;
|
|
||||||
+ if (win && win->w_encoding)
|
|
||||||
+ {
|
|
||||||
+ *p++ = ' ';
|
|
||||||
+ strcpy(p, EncodingName(win->w_encoding));
|
|
||||||
+ }
|
|
||||||
+ p += strlen(p) - 1;
|
|
||||||
+ break;
|
|
||||||
+#endif
|
|
||||||
case '{':
|
|
||||||
{
|
|
||||||
char rbuf[128];
|
|
|
@ -1,20 +0,0 @@
|
||||||
--- Makefile.in.orig 2007-07-30 12:38:38.000000000 +0200
|
|
||||||
+++ Makefile.in 2007-07-30 12:39:34.000000000 +0200
|
|
||||||
@@ -77,7 +77,7 @@
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
install: installdirs install_bin
|
|
||||||
- cd doc ; $(MAKE) install
|
|
||||||
+ cd doc ; $(MAKE) $(MAKE_ARGS) install
|
|
||||||
-if [ -d /usr/lib/terminfo ]; then \
|
|
||||||
PATH="$$PATH:/usr/5bin" tic ${srcdir}/terminfo/screeninfo.src; \
|
|
||||||
chmod 644 /usr/lib/terminfo/s/screen*; \
|
|
||||||
@@ -90,7 +90,7 @@
|
|
||||||
installdirs:
|
|
||||||
# Path leading to ETCSCREENRC and Socketdirectory not checked.
|
|
||||||
$(srcdir)/etc/mkinstalldirs $(DESTDIR)$(bindir) $(DESTDIR)$(SCREENENCODINGS)
|
|
||||||
- cd doc ; $(MAKE) installdirs
|
|
||||||
+ cd doc ; $(MAKE) $(MAKE_ARGS) installdirs
|
|
||||||
|
|
||||||
uninstall: .version
|
|
||||||
rm -f $(DESTDIR)$(bindir)/$(SCREEN)
|
|
|
@ -1,19 +0,0 @@
|
||||||
--- Makefile.in.orig Thu Feb 14 22:36:33 2002
|
|
||||||
+++ Makefile.in Tue Feb 19 13:18:38 2002
|
|
||||||
@@ -71,14 +71,8 @@
|
|
||||||
$(CC) -c -I. -I$(srcdir) $(M_CFLAGS) $(DEFS) $(OPTIONS) $(CFLAGS) $<
|
|
||||||
|
|
||||||
install_bin: .version screen
|
|
||||||
- -if [ -f $(DESTDIR)$(bindir)/$(SCREEN) ] && [ ! -f $(DESTDIR)$(bindir)/$(SCREEN).old ]; \
|
|
||||||
- then mv $(DESTDIR)$(bindir)/$(SCREEN) $(DESTDIR)$(bindir)/$(SCREEN).old; fi
|
|
||||||
- $(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN)
|
|
||||||
- -chown root $(DESTDIR)$(bindir)/$(SCREEN) && chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN)
|
|
||||||
-# This doesn't work if $(bindir)/screen is a symlink
|
|
||||||
- -if [ -f $(DESTDIR)$(bindir)/screen ] && [ ! -f $(DESTDIR)$(bindir)/screen.old ]; then mv $(DESTDIR)$(bindir)/screen $(DESTDIR)$(bindir)/screen.old; fi
|
|
||||||
- rm -f $(DESTDIR)$(bindir)/screen
|
|
||||||
- (cd $(DESTDIR)$(bindir) && ln -sf $(SCREEN) screen)
|
|
||||||
+ $(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/screen
|
|
||||||
+ -chown root:wheel $(DESTDIR)$(bindir)/screen && chmod 4755 $(DESTDIR)$(bindir)/screen
|
|
||||||
cp $(srcdir)/utf8encodings/?? $(DESTDIR)$(SCREENENCODINGS)
|
|
||||||
|
|
||||||
###############################################################################
|
|
|
@ -1,11 +0,0 @@
|
||||||
--- ansi.c.orig Mon Sep 8 07:24:44 2003
|
|
||||||
+++ ansi.c Mon Dec 1 17:17:17 2003
|
|
||||||
@@ -559,7 +559,7 @@
|
|
||||||
{
|
|
||||||
case '0': case '1': case '2': case '3': case '4':
|
|
||||||
case '5': case '6': case '7': case '8': case '9':
|
|
||||||
- if (curr->w_NumArgs < MAXARGS)
|
|
||||||
+ if (curr->w_NumArgs >= 0 && curr->w_NumArgs < MAXARGS)
|
|
||||||
{
|
|
||||||
if (curr->w_args[curr->w_NumArgs] < 100000000)
|
|
||||||
curr->w_args[curr->w_NumArgs] =
|
|
|
@ -1,24 +0,0 @@
|
||||||
--- attacher.c.orig 2003-09-08 07:24:48.000000000 -0700
|
|
||||||
+++ attacher.c 2011-01-02 21:42:39.547897531 -0800
|
|
||||||
@@ -662,7 +662,7 @@
|
|
||||||
printf("\n");
|
|
||||||
|
|
||||||
prg = getenv("LOCKPRG");
|
|
||||||
- if (prg && strcmp(prg, "builtin") && !access(prg, X_OK))
|
|
||||||
+ if (prg && (strcmp(prg, "builtin") || strcmp(prg,"builtin-passwd")) && !access(prg, X_OK))
|
|
||||||
{
|
|
||||||
signal(SIGCHLD, SIG_DFL);
|
|
||||||
debug1("lockterminal: '%s' seems executable, execl it!\n", prg);
|
|
||||||
@@ -676,7 +676,11 @@
|
|
||||||
setuid(real_uid); /* this should be done already */
|
|
||||||
#endif
|
|
||||||
closeallfiles(0); /* important: /etc/shadow may be open */
|
|
||||||
- execl(prg, "SCREEN-LOCK", NULL);
|
|
||||||
+ if (strcmp(prg,"builtin-passwd"))
|
|
||||||
+ /* use system passsword for lock */
|
|
||||||
+ execl(prg, "SCREEN-LOCK", "-p", "-n", NULL);
|
|
||||||
+ else
|
|
||||||
+ execl(prg, "SCREEN-LOCK", NULL);
|
|
||||||
exit(errno);
|
|
||||||
}
|
|
||||||
if (pid == -1)
|
|
|
@ -1,121 +0,0 @@
|
||||||
--- configure.orig Fri Dec 5 15:46:53 2003
|
|
||||||
+++ configure Sat Mar 4 10:18:24 2006
|
|
||||||
@@ -4746,48 +4746,6 @@
|
|
||||||
sed 's/^/| /' conftest.$ac_ext >&5
|
|
||||||
|
|
||||||
olibs="$LIBS"
|
|
||||||
-LIBS="-lcurses $olibs"
|
|
||||||
-{ echo "$as_me:$LINENO: checking libcurses..." >&5
|
|
||||||
-echo "$as_me: checking libcurses..." >&6;}
|
|
||||||
-cat >conftest.$ac_ext <<_ACEOF
|
|
||||||
-#line $LINENO "configure"
|
|
||||||
-/* confdefs.h. */
|
|
||||||
-_ACEOF
|
|
||||||
-cat confdefs.h >>conftest.$ac_ext
|
|
||||||
-cat >>conftest.$ac_ext <<_ACEOF
|
|
||||||
-/* end confdefs.h. */
|
|
||||||
-
|
|
||||||
-int
|
|
||||||
-main ()
|
|
||||||
-{
|
|
||||||
-
|
|
||||||
-#ifdef __hpux
|
|
||||||
-__sorry_hpux_libcurses_is_totally_broken_in_10_10();
|
|
||||||
-#else
|
|
||||||
-tgetent((char *)0, (char *)0);
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
- ;
|
|
||||||
- return 0;
|
|
||||||
-}
|
|
||||||
-_ACEOF
|
|
||||||
-rm -f conftest.$ac_objext conftest$ac_exeext
|
|
||||||
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
|
||||||
- (eval $ac_link) 2>&5
|
|
||||||
- ac_status=$?
|
|
||||||
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
|
||||||
- (exit $ac_status); } &&
|
|
||||||
- { ac_try='test -s conftest$ac_exeext'
|
|
||||||
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
|
||||||
- (eval $ac_try) 2>&5
|
|
||||||
- ac_status=$?
|
|
||||||
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
|
||||||
- (exit $ac_status); }; }; then
|
|
||||||
- :
|
|
||||||
-else
|
|
||||||
- echo "$as_me: failed program was:" >&5
|
|
||||||
-sed 's/^/| /' conftest.$ac_ext >&5
|
|
||||||
-
|
|
||||||
LIBS="-ltermcap $olibs"
|
|
||||||
{ echo "$as_me:$LINENO: checking libtermcap..." >&5
|
|
||||||
echo "$as_me: checking libtermcap..." >&6;}
|
|
||||||
@@ -4907,8 +4865,6 @@
|
|
||||||
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
|
|
||||||
fi
|
|
||||||
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
|
|
||||||
-fi
|
|
||||||
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
|
|
||||||
|
|
||||||
if test "$cross_compiling" = yes; then
|
|
||||||
{ { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
|
|
||||||
@@ -4927,7 +4883,8 @@
|
|
||||||
|
|
||||||
main()
|
|
||||||
{
|
|
||||||
- exit(strcmp(tgoto("%p1%d", 0, 1), "1") ? 0 : 1);
|
|
||||||
+ char *tgoto(const char *, int, int);
|
|
||||||
+ exit(strcmp(tgoto("%d%d", 0, 1), "1") ? 0 : 1);
|
|
||||||
}
|
|
||||||
_ACEOF
|
|
||||||
rm -f conftest$ac_exeext
|
|
||||||
@@ -5314,19 +5271,16 @@
|
|
||||||
fi
|
|
||||||
rm -f conftest*
|
|
||||||
|
|
||||||
-if test "$ptys" != "$pdir/pty??" ; then
|
|
||||||
-p0=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
|
|
||||||
-p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
|
|
||||||
+# XXX: hardcoded, since port must be devfs and various setups independent
|
|
||||||
+
|
|
||||||
cat >>confdefs.h <<_ACEOF
|
|
||||||
-#define PTYRANGE0 "$p0"
|
|
||||||
+#define PTYRANGE0 "pqrsPQRSlmnoLMNO"
|
|
||||||
_ACEOF
|
|
||||||
|
|
||||||
cat >>confdefs.h <<_ACEOF
|
|
||||||
-#define PTYRANGE1 "$p1"
|
|
||||||
+#define PTYRANGE1 "0123456789abcdefghijklmnopqrstuv"
|
|
||||||
_ACEOF
|
|
||||||
|
|
||||||
-fi
|
|
||||||
-
|
|
||||||
|
|
||||||
# Check whether --with-pty-mode or --without-pty-mode was given.
|
|
||||||
if test "${with_pty_mode+set}" = set; then
|
|
||||||
@@ -5575,6 +5529,8 @@
|
|
||||||
#if defined(SVR4) && !defined(DGUX)
|
|
||||||
#include <utmpx.h>
|
|
||||||
#define utmp utmpx
|
|
||||||
+#define pututline pututxline
|
|
||||||
+#define getutent getutxent
|
|
||||||
#else
|
|
||||||
#include <utmp.h>
|
|
||||||
#endif
|
|
||||||
@@ -5627,6 +5583,8 @@
|
|
||||||
#if defined(SVR4) && !defined(DGUX)
|
|
||||||
#include <utmpx.h>
|
|
||||||
#define utmp utmpx
|
|
||||||
+#define pututline pututxline
|
|
||||||
+#define getutent getutxent
|
|
||||||
#else
|
|
||||||
#include <utmp.h>
|
|
||||||
#endif
|
|
||||||
@@ -5683,6 +5641,8 @@
|
|
||||||
#if defined(SVR4) && !defined(DGUX)
|
|
||||||
#include <utmpx.h>
|
|
||||||
#define utmp utmpx
|
|
||||||
+#define pututline pututxline
|
|
||||||
+#define getutent getutxent
|
|
||||||
#else
|
|
||||||
#include <utmp.h>
|
|
||||||
#endif
|
|
|
@ -1,11 +0,0 @@
|
||||||
--- display.h.orig 2003-07-01 07:01:42.000000000 -0700
|
|
||||||
+++ display.h 2011-11-07 11:54:32.842183150 -0800
|
|
||||||
@@ -85,7 +85,7 @@
|
|
||||||
struct win *d_other; /* pointer to other window */
|
|
||||||
int d_nonblock; /* -1 don't block if obufmax reached */
|
|
||||||
/* >0: block after nonblock secs */
|
|
||||||
- char d_termname[20 + 1]; /* $TERM */
|
|
||||||
+ char d_termname[63 + 1]; /* $TERM */
|
|
||||||
char *d_tentry; /* buffer for tgetstr */
|
|
||||||
char d_tcinited; /* termcap inited flag */
|
|
||||||
int d_width, d_height; /* width/height of the screen */
|
|
|
@ -1,40 +0,0 @@
|
||||||
--- doc/Makefile.in.orig 2006-10-23 13:06:32 UTC
|
|
||||||
+++ doc/Makefile.in
|
|
||||||
@@ -27,25 +27,34 @@ pdf screen.pdf: screen.texinfo mostlycle
|
|
||||||
|
|
||||||
info screen.info: screen.texinfo
|
|
||||||
@rm -f screen.info*
|
|
||||||
- $(MAKEINFO) $(srcdir)/screen.texinfo -o screen.info
|
|
||||||
+ $(MAKEINFO) --no-split $(srcdir)/screen.texinfo -o screen.info
|
|
||||||
|
|
||||||
install: installdirs
|
|
||||||
+.if defined(WITH_MAN)
|
|
||||||
$(INSTALL_DATA) $(srcdir)/screen.1 $(DESTDIR)$(mandir)/man1/screen.1
|
|
||||||
+.endif
|
|
||||||
+.if defined(WITH_INFO)
|
|
||||||
-$(MAKE) screen.info
|
|
||||||
-if test -f screen.info; then d=.; else d=$(srcdir); fi; \
|
|
||||||
if test -f $$d/screen.info; then \
|
|
||||||
for f in $$d/screen.info*; do $(INSTALL_DATA) $$f $(DESTDIR)$(infodir);done; \
|
|
||||||
if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
|
|
||||||
- install-info --info-dir=$(DESTDIR)$(infodir) $$d/screen.info; \
|
|
||||||
+ install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/screen.info; \
|
|
||||||
else true; fi; \
|
|
||||||
fi
|
|
||||||
+.endif
|
|
||||||
|
|
||||||
uninstall:
|
|
||||||
rm -f $(DESTDIR)$(mandir)/man1/screen.1
|
|
||||||
rm -f $(DESTDIR)$(infodir)/screen.info*
|
|
||||||
|
|
||||||
installdirs:
|
|
||||||
- $(srcdir)/../etc/mkinstalldirs $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(infodir)
|
|
||||||
+.if defined(WITH_MAN)
|
|
||||||
+ $(srcdir)/../etc/mkinstalldirs $(DESTDIR)$(mandir)/man1
|
|
||||||
+.endif
|
|
||||||
+.if defined(WITH_INFO)
|
|
||||||
+ $(srcdir)/../etc/mkinstalldirs $(DESTDIR)$(infodir)
|
|
||||||
+.endif
|
|
||||||
|
|
||||||
mostlyclean:
|
|
||||||
-rm -f *.cp *.cps *.fn *.fns *.ky *.kys *.pg *.tp *.vr
|
|
|
@ -1,33 +0,0 @@
|
||||||
--- os.h.orig Tue Jan 8 07:42:33 2002
|
|
||||||
+++ os.h Tue Sep 9 17:39:58 2003
|
|
||||||
@@ -161,7 +161,7 @@
|
|
||||||
# define setregid(rgid, egid) setresgid(rgid, egid, -1)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-#if defined(HAVE_SETEUID) || defined(HAVE_SETREUID)
|
|
||||||
+#if (defined(HAVE_SETEUID) || defined(HAVE_SETREUID)) && __FreeBSD_version < 500000
|
|
||||||
# define USE_SETEUID
|
|
||||||
#endif
|
|
||||||
|
|
||||||
@@ -262,7 +262,11 @@
|
|
||||||
#if defined(UTMPOK) || defined(BUGGYGETLOGIN)
|
|
||||||
# if defined(SVR4) && !defined(DGUX) && !defined(__hpux) && !defined(linux)
|
|
||||||
# include <utmpx.h>
|
|
||||||
-# define UTMPFILE UTMPX_FILE
|
|
||||||
+# ifdef UTMPX_FILE
|
|
||||||
+# define UTMPFILE UTMPX_FILE
|
|
||||||
+# else
|
|
||||||
+# define UTMPFILE "/nonexistent"
|
|
||||||
+# endif
|
|
||||||
# define utmp utmpx
|
|
||||||
# define getutent getutxent
|
|
||||||
# define getutid getutxid
|
|
||||||
@@ -270,7 +274,7 @@
|
|
||||||
# define pututline pututxline
|
|
||||||
# define setutent setutxent
|
|
||||||
# define endutent endutxent
|
|
||||||
-# define ut_time ut_xtime
|
|
||||||
+# define ut_time ut_tv.tv_sec
|
|
||||||
# else /* SVR4 */
|
|
||||||
# include <utmp.h>
|
|
||||||
# endif /* SVR4 */
|
|
|
@ -1,11 +0,0 @@
|
||||||
--- osdef.h.in.orig Sat Apr 28 22:26:43 2001
|
|
||||||
+++ osdef.h.in Tue Apr 9 10:24:18 2002
|
|
||||||
@@ -111,7 +111,7 @@
|
|
||||||
extern int setpgid __P((int, int));
|
|
||||||
extern int tcsetpgrp __P((int, int));
|
|
||||||
#endif
|
|
||||||
-extern int ioctl __P((int, int, char *));
|
|
||||||
+extern int ioctl __P((int, unsigned long, ...));
|
|
||||||
|
|
||||||
extern int kill __P((int, int));
|
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
--- process.c
|
|
||||||
+++ process.c
|
|
||||||
@@ -37,7 +37,7 @@
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/* for solaris 2.1, Unixware (SVR4.2) and possibly others: */
|
|
||||||
-#ifdef SVR4
|
|
||||||
+#if defined(SVR4) && !defined(__FreeBSD__)
|
|
||||||
# include <sys/stropts.h>
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
--- pty.c.orig Mon Feb 6 18:54:37 2006
|
|
||||||
+++ pty.c Mon Feb 6 18:56:50 2006
|
|
||||||
@@ -33,10 +33,12 @@
|
|
||||||
# include <sys/ioctl.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifndef __FreeBSD__
|
|
||||||
/* for solaris 2.1, Unixware (SVR4.2) and possibly others */
|
|
||||||
#ifdef HAVE_SVR4_PTYS
|
|
||||||
# include <sys/stropts.h>
|
|
||||||
#endif
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
#if defined(sun) && defined(LOCKPTY) && !defined(TIOCEXCL)
|
|
||||||
# include <sys/ttold.h>
|
|
|
@ -1,20 +0,0 @@
|
||||||
--- resize.c.orig Mon Sep 8 07:26:31 2003
|
|
||||||
+++ resize.c Mon Dec 1 17:16:29 2003
|
|
||||||
@@ -682,6 +682,17 @@
|
|
||||||
if (wi == 0)
|
|
||||||
he = hi = 0;
|
|
||||||
|
|
||||||
+ if (wi > 1000)
|
|
||||||
+ {
|
|
||||||
+ Msg(0, "Window width too large, truncated");
|
|
||||||
+ wi = 1000;
|
|
||||||
+ }
|
|
||||||
+ if (he > 1000)
|
|
||||||
+ {
|
|
||||||
+ Msg(0, "Window height too large, truncated");
|
|
||||||
+ he = 1000;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (p->w_width == wi && p->w_height == he && p->w_histheight == hi)
|
|
||||||
{
|
|
||||||
debug("ChangeWindowSize: No change.\n");
|
|
|
@ -1,11 +0,0 @@
|
||||||
--- screen.c
|
|
||||||
+++ screen.c
|
|
||||||
@@ -50,7 +50,7 @@
|
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
-#ifdef SVR4
|
|
||||||
+#if defined(SVR4) && !defined(__FreeBSD__)
|
|
||||||
# include <sys/stropts.h>
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
--- screen.h.orig 2003-08-22 05:28:43.000000000 -0700
|
|
||||||
+++ screen.h 2011-11-07 11:53:41.739890820 -0800
|
|
||||||
@@ -22,6 +22,8 @@
|
|
||||||
* $Id: screen.h,v 1.12 1994/05/31 12:32:54 mlschroe Exp $ FAU
|
|
||||||
*/
|
|
||||||
|
|
||||||
+#include <string.h>
|
|
||||||
+
|
|
||||||
#include "os.h"
|
|
||||||
|
|
||||||
#if defined(__STDC__)
|
|
||||||
@@ -202,7 +204,7 @@
|
|
||||||
char preselect[20];
|
|
||||||
int esc; /* his new escape character unless -1 */
|
|
||||||
int meta_esc; /* his new meta esc character unless -1 */
|
|
||||||
- char envterm[20 + 1]; /* terminal type */
|
|
||||||
+ char envterm[63 + 1]; /* terminal type */
|
|
||||||
int encoding; /* encoding of display */
|
|
||||||
}
|
|
||||||
attach;
|
|
|
@ -1,15 +0,0 @@
|
||||||
--- termcap.c.orig Wed Jul 5 16:33:30 2000
|
|
||||||
+++ termcap.c Wed Oct 11 05:40:12 2000
|
|
||||||
@@ -355,11 +355,7 @@
|
|
||||||
if (D_CG0)
|
|
||||||
{
|
|
||||||
if (D_CS0 == 0)
|
|
||||||
-#ifdef TERMINFO
|
|
||||||
- D_CS0 = "\033(%p1%c";
|
|
||||||
-#else
|
|
||||||
- D_CS0 = "\033(%.";
|
|
||||||
-#endif
|
|
||||||
+ D_CS0 = "\033(%p1%c"; /* Old ncurses can't handle %. */
|
|
||||||
if (D_CE0 == 0)
|
|
||||||
D_CE0 = "\033(B";
|
|
||||||
D_AC = 0;
|
|
|
@ -1,18 +0,0 @@
|
||||||
--- terminfo/checktc.c.orig Fri Sep 29 09:13:22 1995
|
|
||||||
+++ terminfo/checktc.c Tue Apr 22 20:37:18 2003
|
|
||||||
@@ -171,6 +171,7 @@
|
|
||||||
fflush(stdout);
|
|
||||||
}
|
|
||||||
|
|
||||||
+#ifndef __FreeBSD__
|
|
||||||
void CPutStr(s, c)
|
|
||||||
char *s;
|
|
||||||
int c;
|
|
||||||
@@ -178,6 +179,7 @@
|
|
||||||
tputs(tgoto(s, 0, c), 1, putcha);
|
|
||||||
fflush(stdout);
|
|
||||||
}
|
|
||||||
+#endif /* __FreeBSD__ */
|
|
||||||
|
|
||||||
void CCPutStr(s, x, y)
|
|
||||||
char *s;
|
|
|
@ -1,22 +0,0 @@
|
||||||
--- tty.sh
|
|
||||||
+++ tty.sh
|
|
||||||
@@ -76,7 +76,7 @@
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
-#ifdef SVR4
|
|
||||||
+#if defined(SVR4) && !defined(__FreeBSD__)
|
|
||||||
#include <sys/stropts.h> /* for I_POP */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
@@ -562,7 +562,9 @@
|
|
||||||
XIF{VLNEXT} np->tio.c_cc[VLNEXT] = VDISABLE;
|
|
||||||
XIF{VSTATUS} np->tio.c_cc[VSTATUS] = VDISABLE;
|
|
||||||
XIF{VSUSP} np->tio.c_cc[VSUSP] = VDISABLE;
|
|
||||||
-XIF{VERASE} np->tio.c_cc[VERASE] = VDISABLE;
|
|
||||||
+ /* Set VERASE to DEL, rather than VDISABLE, to avoid libvte
|
|
||||||
+ "autodetect" issues. */
|
|
||||||
+XIF{VERASE} np->tio.c_cc[VERASE] = 0x7f;
|
|
||||||
XIF{VKILL} np->tio.c_cc[VKILL] = VDISABLE;
|
|
||||||
# ifdef HPUX_LTCHARS_HACK
|
|
||||||
np->m_ltchars.t_suspc = VDISABLE;
|
|
|
@ -1,87 +0,0 @@
|
||||||
--- utmp.c
|
|
||||||
+++ utmp.c
|
|
||||||
@@ -404,12 +404,6 @@
|
|
||||||
register slot_t slot;
|
|
||||||
struct utmp u;
|
|
||||||
int saved_ut;
|
|
||||||
-#ifdef UTHOST
|
|
||||||
- char *p;
|
|
||||||
- char host[sizeof(D_loginhost) + 15];
|
|
||||||
-#else
|
|
||||||
- char *host = 0;
|
|
||||||
-#endif /* UTHOST */
|
|
||||||
|
|
||||||
wi->w_slot = (slot_t)0;
|
|
||||||
if (!utmpok || wi->w_type != W_TYPE_PTY)
|
|
||||||
@@ -430,51 +424,12 @@
|
|
||||||
makeuser(&u, stripdev(wi->w_tty), LoginName, wi->w_pid);
|
|
||||||
|
|
||||||
#ifdef UTHOST
|
|
||||||
- host[sizeof(host) - 15] = '\0';
|
|
||||||
- if (display)
|
|
||||||
- {
|
|
||||||
- strncpy(host, D_loginhost, sizeof(host) - 15);
|
|
||||||
- if (D_loginslot != (slot_t)0 && D_loginslot != (slot_t)-1 && host[0] != '\0')
|
|
||||||
- {
|
|
||||||
- /*
|
|
||||||
- * we want to set our ut_host field to something like
|
|
||||||
- * ":ttyhf:s.0" or
|
|
||||||
- * "faui45:s.0" or
|
|
||||||
- * "132.199.81.4:s.0" (even this may hurt..), but not
|
|
||||||
- * "faui45.informati"......:s.0
|
|
||||||
- * HPUX uses host:0.0, so chop at "." and ":" (Eric Backus)
|
|
||||||
- */
|
|
||||||
- for (p = host; *p; p++)
|
|
||||||
- if ((*p < '0' || *p > '9') && (*p != '.'))
|
|
||||||
- break;
|
|
||||||
- if (*p)
|
|
||||||
- {
|
|
||||||
- for (p = host; *p; p++)
|
|
||||||
- if (*p == '.' || (*p == ':' && p != host))
|
|
||||||
- {
|
|
||||||
- *p = '\0';
|
|
||||||
- break;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- else
|
|
||||||
- {
|
|
||||||
- strncpy(host + 1, stripdev(D_usertty), sizeof(host) - 15 - 1);
|
|
||||||
- host[0] = ':';
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- else
|
|
||||||
- strncpy(host, "local", sizeof(host) - 15);
|
|
||||||
-
|
|
||||||
- sprintf(host + strlen(host), ":S.%d", wi->w_number);
|
|
||||||
- debug1("rlogin hostname: '%s'\n", host);
|
|
||||||
-
|
|
||||||
# if !defined(_SEQUENT_) && !defined(sequent)
|
|
||||||
- strncpy(u.ut_host, host, sizeof(u.ut_host));
|
|
||||||
+ strncpy(u.ut_host, D_loginhost, sizeof(u.ut_host));
|
|
||||||
# endif
|
|
||||||
#endif /* UTHOST */
|
|
||||||
|
|
||||||
- if (pututslot(slot, &u, host, wi) == 0)
|
|
||||||
+ if (pututslot(slot, &u, D_loginhost, wi) == 0)
|
|
||||||
{
|
|
||||||
Msg(errno,"Could not write %s", UtmpName);
|
|
||||||
UT_CLOSE;
|
|
||||||
@@ -589,7 +544,7 @@
|
|
||||||
struct utmp *u;
|
|
||||||
{
|
|
||||||
u->ut_type = DEAD_PROCESS;
|
|
||||||
-#if !defined(linux) || defined(EMPTY)
|
|
||||||
+#if (!defined(linux) || defined(EMPTY)) && !defined(__FreeBSD__)
|
|
||||||
u->ut_exit.e_termination = 0;
|
|
||||||
u->ut_exit.e_exit = 0;
|
|
||||||
#endif
|
|
||||||
@@ -728,7 +683,7 @@
|
|
||||||
{
|
|
||||||
strncpy(u->ut_line, line, sizeof(u->ut_line));
|
|
||||||
strncpy(u->ut_name, user, sizeof(u->ut_name));
|
|
||||||
- (void)time((time_t *)&u->ut_time);
|
|
||||||
+ u->ut_time = time(NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static slot_t
|
|
|
@ -1,9 +0,0 @@
|
||||||
Screen is a full-screen window manager that multiplexes a physical terminal
|
|
||||||
between several processes (typically interactive shells).
|
|
||||||
Each virtual terminal provides the functions of a DEC VT100 terminal and, in
|
|
||||||
addition, several control functions from the ANSI X3.64 (ISO 6429) and ISO
|
|
||||||
2022 standards (e.g. insert/delete line and support for multiple character
|
|
||||||
sets). There is a scrollback history buffer for each virtual terminal and a
|
|
||||||
copy-and-paste mechanism that allows moving text regions between windows.
|
|
||||||
|
|
||||||
WWW: http://www.gnu.org/software/screen/
|
|
|
@ -1,20 +0,0 @@
|
||||||
bin/screen
|
|
||||||
%%MAN%%man/man1/screen.1.gz
|
|
||||||
@sample %%EXAMPLESDIR%%/screenrc etc/screenrc
|
|
||||||
%%DATADIR%%/utf8encodings/01
|
|
||||||
%%DATADIR%%/utf8encodings/02
|
|
||||||
%%DATADIR%%/utf8encodings/03
|
|
||||||
%%DATADIR%%/utf8encodings/04
|
|
||||||
%%DATADIR%%/utf8encodings/18
|
|
||||||
%%DATADIR%%/utf8encodings/19
|
|
||||||
%%DATADIR%%/utf8encodings/a1
|
|
||||||
%%DATADIR%%/utf8encodings/bf
|
|
||||||
%%DATADIR%%/utf8encodings/c2
|
|
||||||
%%DATADIR%%/utf8encodings/c3
|
|
||||||
%%DATADIR%%/utf8encodings/c4
|
|
||||||
%%DATADIR%%/utf8encodings/c6
|
|
||||||
%%DATADIR%%/utf8encodings/c7
|
|
||||||
%%DATADIR%%/utf8encodings/c8
|
|
||||||
%%DATADIR%%/utf8encodings/cc
|
|
||||||
%%DATADIR%%/utf8encodings/cd
|
|
||||||
%%DATADIR%%/utf8encodings/d6
|
|
|
@ -1966,7 +1966,6 @@
|
||||||
SUBDIR += rubygem-innate
|
SUBDIR += rubygem-innate
|
||||||
SUBDIR += rubygem-jekyll
|
SUBDIR += rubygem-jekyll
|
||||||
SUBDIR += rubygem-jekyll-watch
|
SUBDIR += rubygem-jekyll-watch
|
||||||
SUBDIR += rubygem-jekyll2
|
|
||||||
SUBDIR += rubygem-journey
|
SUBDIR += rubygem-journey
|
||||||
SUBDIR += rubygem-jquery-atwho-rails
|
SUBDIR += rubygem-jquery-atwho-rails
|
||||||
SUBDIR += rubygem-jquery-atwho-rails-rails4
|
SUBDIR += rubygem-jquery-atwho-rails-rails4
|
||||||
|
|
|
@ -1,45 +0,0 @@
|
||||||
# Created by: Peter Schuller <peter.schuller@infidyne.com>
|
|
||||||
# $FreeBSD$
|
|
||||||
|
|
||||||
PORTNAME= jekyll
|
|
||||||
PORTVERSION= 2.5.3
|
|
||||||
PORTREVISION= 2
|
|
||||||
CATEGORIES= www rubygems
|
|
||||||
MASTER_SITES= RG
|
|
||||||
PKGNAMESUFFIX= 2
|
|
||||||
|
|
||||||
MAINTAINER= ruby@FreeBSD.org
|
|
||||||
COMMENT= Simple, blog aware, static site generator
|
|
||||||
|
|
||||||
LICENSE= MIT
|
|
||||||
LICENSE_FILE= ${WRKSRC}/LICENSE
|
|
||||||
|
|
||||||
RUN_DEPENDS= rubygem-classifier-reborn>=2.0:devel/rubygem-classifier-reborn \
|
|
||||||
rubygem-colorator>=0.1:textproc/rubygem-colorator \
|
|
||||||
rubygem-jekyll-coffeescript>=1.0:devel/rubygem-jekyll-coffeescript \
|
|
||||||
rubygem-jekyll-gist>=1.0:textproc/rubygem-jekyll-gist \
|
|
||||||
rubygem-jekyll-paginate>=1.0:textproc/rubygem-jekyll-paginate \
|
|
||||||
rubygem-jekyll-sass-converter>=1.0:textproc/rubygem-jekyll-sass-converter \
|
|
||||||
rubygem-jekyll-watch>=1.1:www/rubygem-jekyll-watch \
|
|
||||||
rubygem-kramdown>=1.3:textproc/rubygem-kramdown \
|
|
||||||
rubygem-liquid2>=2.6.1:textproc/rubygem-liquid2 \
|
|
||||||
rubygem-mercenary>=0.3.3:devel/rubygem-mercenary \
|
|
||||||
rubygem-pygments.rb>=0.6.0:devel/rubygem-pygments.rb \
|
|
||||||
rubygem-redcarpet>=3.1:textproc/rubygem-redcarpet \
|
|
||||||
rubygem-safe_yaml>=1.0:devel/rubygem-safe_yaml \
|
|
||||||
rubygem-toml>=0.1.0:devel/rubygem-toml
|
|
||||||
|
|
||||||
CONFLICTS_INSTALL= rubygem-jekyll-3.*
|
|
||||||
|
|
||||||
DEPRECATED= Use www/rubygem-jekyll instead
|
|
||||||
EXPIRATION_DATE=2016-12-31
|
|
||||||
|
|
||||||
PORTSCOUT= limit:^2\.
|
|
||||||
|
|
||||||
NO_ARCH= yes
|
|
||||||
USE_RUBY= yes
|
|
||||||
USES= gem
|
|
||||||
|
|
||||||
PLIST_FILES= bin/jekyll
|
|
||||||
|
|
||||||
.include <bsd.port.mk>
|
|
|
@ -1,2 +0,0 @@
|
||||||
SHA256 (rubygem/jekyll-2.5.3.gem) = 56085eb920484394c03bc2cbc96274685a2e72ed43d33eec9e3d97e68569a3a9
|
|
||||||
SIZE (rubygem/jekyll-2.5.3.gem) = 58368
|
|
|
@ -1,9 +0,0 @@
|
||||||
Jekyll is a simple, blog aware, static site generator. It takes a
|
|
||||||
template directory (representing the raw form of a website), runs it
|
|
||||||
through Textile or Markdown and Liquid converters, and spits out a
|
|
||||||
complete, static website suitable for serving with Apache or your
|
|
||||||
favorite web server. This is also the engine behind GitHub Pages,
|
|
||||||
which you can use to host your project?s page or blog right here from
|
|
||||||
GitHub.
|
|
||||||
|
|
||||||
WWW: https://github.com/mojombo/jekyll
|
|
Loading…
Reference in a new issue