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:
Rene Ladan 2016-12-31 17:43:48 +00:00
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
View file

@ -8929,3 +8929,14 @@ x11-toolkits/linux-f10-pango||2016-12-31|Removed
accessibility/linux-f10-atk||2016-12-31|Removed
archivers/linux-f10-ucl||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

View file

@ -880,7 +880,6 @@
SUBDIR += rubygem-dm-chunked_query
SUBDIR += rubygem-dm-constraints
SUBDIR += rubygem-dm-core
SUBDIR += rubygem-dm-devise
SUBDIR += rubygem-dm-do-adapter
SUBDIR += rubygem-dm-migrations
SUBDIR += rubygem-dm-mysql-adapter

View file

@ -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>

View file

@ -1,2 +0,0 @@
SHA256 (rubygem/dm-devise-2.2.1.gem) = e4a5c10e4a18ef3d0f328fa53bf6674e5ec2e8cb4cbaadca4d8366dae1c8c3bd
SIZE (rubygem/dm-devise-2.2.1.gem) = 17920

View file

@ -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

View file

@ -1131,7 +1131,6 @@
SUBDIR += json-glib
SUBDIR += jsoncpp
SUBDIR += jsonnet
SUBDIR += jtag
SUBDIR += judy
SUBDIR += jwasm
SUBDIR += k8048
@ -2986,7 +2985,6 @@
SUBDIR += p5-Params-Validate-Dependencies
SUBDIR += p5-Params-ValidationCompiler
SUBDIR += p5-Paranoid
SUBDIR += p5-Parse-CPAN-Meta
SUBDIR += p5-Parse-CPAN-Packages
SUBDIR += p5-Parse-CPAN-Packages-Fast
SUBDIR += p5-Parse-ErrorString-Perl
@ -5110,8 +5108,6 @@
SUBDIR += rubygem-deprecated2
SUBDIR += rubygem-descendants_tracker
SUBDIR += rubygem-devise
SUBDIR += rubygem-devise-async
SUBDIR += rubygem-devise-async-rails4
SUBDIR += rubygem-devise-rails4
SUBDIR += rubygem-directory_watcher
SUBDIR += rubygem-ditz
@ -5412,7 +5408,6 @@
SUBDIR += rubygem-sprockets-helpers
SUBDIR += rubygem-sprockets-rails
SUBDIR += rubygem-sprockets-sass
SUBDIR += rubygem-sprockets211
SUBDIR += rubygem-sprockets22
SUBDIR += rubygem-sprockets3
SUBDIR += rubygem-spruz

View file

@ -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>

View file

@ -1,2 +0,0 @@
SHA256 (jtag-0.5.1.tar.bz2) = 4036f97ef693e9cbe6f99137ad6920b2679ba97d58cf5e78442a4d60308563b6
SIZE (jtag-0.5.1.tar.bz2) = 314857

View file

@ -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

View file

@ -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;
}

View file

@ -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;

View file

@ -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;

View file

@ -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

View file

@ -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/

View file

@ -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

View file

@ -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>

View file

@ -1,2 +0,0 @@
SHA256 (Parse-CPAN-Meta-1.4414.tar.gz) = cd7608154dfb72c9e110f012befe6b75d78448cb3e761716b60aa7545e16ca1b
SIZE (Parse-CPAN-Meta-1.4414.tar.gz) = 23457

View file

@ -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/

View file

@ -1,2 +0,0 @@
%%SITE_PERL%%/Parse/CPAN/Meta.pm
%%PERL5_MAN3%%/Parse::CPAN::Meta.3.gz

View file

@ -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"

View file

@ -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>

View file

@ -1,2 +0,0 @@
SHA256 (rubygem/devise-async-0.10.1.gem) = 3380fac383a5f16bb2fcdda54d68983210f2d0cae3100572eb888742190e02d3
SIZE (rubygem/devise-async-0.10.1.gem) = 20480

View file

@ -1,4 +0,0 @@
Send Devise's emails in background. Supports Resque, Sidekiq, Delayed::Job and
QueueClassic.
WWW: https://github.com/mhfs/devise-async/

View file

@ -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>

View file

@ -1,2 +0,0 @@
SHA256 (rubygem/sprockets-2.11.3.gem) = b41d2f82c529283c7e356511756c54ca3f8d01189d7a5873189ef086b8266182
SIZE (rubygem/sprockets-2.11.3.gem) = 42496

View file

@ -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

View file

@ -250,7 +250,6 @@
SUBDIR += iaxmodem
SUBDIR += icmpinfo
SUBDIR += icpld
SUBDIR += iet
SUBDIR += ifdepd
SUBDIR += iffinder
SUBDIR += ifstat

View file

@ -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>

View file

@ -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

View file

@ -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"

View file

@ -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

View file

@ -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);

View file

@ -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);

View file

@ -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

View file

@ -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;

View file

@ -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/

View file

@ -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

View file

@ -374,7 +374,6 @@
SUBDIR += gdmap
SUBDIR += genisoimage
SUBDIR += geomWatch
SUBDIR += geomgui
SUBDIR += getdelta
SUBDIR += geteltorito
SUBDIR += gigolo
@ -661,7 +660,6 @@
SUBDIR += nomad
SUBDIR += npadmin
SUBDIR += nrg2iso
SUBDIR += ntfsprogs
SUBDIR += nut
SUBDIR += nvclock
SUBDIR += nvramtool
@ -1021,7 +1019,6 @@
SUBDIR += schedutils
SUBDIR += scprotect
SUBDIR += screen
SUBDIR += screen-legacy
SUBDIR += screenfetch
SUBDIR += screenie
SUBDIR += scterc

View file

@ -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>

View file

@ -1,2 +0,0 @@
SHA256 (geomgui-0.13.tar.bz2) = cc8cabb49013f932545c6c946af9f134d28d6c582742de44120af71ba6ca328d
SIZE (geomgui-0.13.tar.bz2) = 8070

View file

@ -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

View file

@ -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>

View file

@ -1,2 +0,0 @@
SHA256 (ntfsprogs-2.0.0.tar.bz2) = ad36e19706c7303b10aa0a9bf2c2dd0309b91cd0171f1c9eb361d94a85017432
SIZE (ntfsprogs-2.0.0.tar.bz2) = 678114

View file

@ -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
==============================================================================

View file

@ -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, &sect_size)) {
- ntfs_log_debug("BLKSSZGET sector size = %d bytes\n",
- sect_size);
+ if (!dev->d_ops->ioctl(dev, DIOCGSECTORSIZE, &sect_size)) {
+ ntfs_log_debug("DIOCGSECTORSIZE sector size = %d bytes\n",
+ (int)sect_size);
return sect_size;
}
}

View file

@ -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
/*

View file

@ -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];
}
/**

View file

@ -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;

View file

@ -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

View file

@ -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;

View file

@ -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;
}

View file

@ -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) {

View file

@ -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).
==============================================================================

View file

@ -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/

View file

@ -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

View file

@ -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>

View file

@ -1,2 +0,0 @@
SHA256 (screen-4.0.3.tar.gz) = 78f0d5b1496084a5902586304d4a73954b2bfe33ea13edceecf21615c39e6c77
SIZE (screen-4.0.3.tar.gz) = 840602

View file

@ -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.");

View file

@ -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 (;;)

View file

@ -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];

View file

@ -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)

View file

@ -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)
###############################################################################

View file

@ -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] =

View file

@ -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)

View file

@ -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

View file

@ -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 */

View file

@ -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

View file

@ -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 */

View file

@ -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));

View file

@ -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

View file

@ -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>

View file

@ -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");

View file

@ -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

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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

View file

@ -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/

View file

@ -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

View file

@ -1966,7 +1966,6 @@
SUBDIR += rubygem-innate
SUBDIR += rubygem-jekyll
SUBDIR += rubygem-jekyll-watch
SUBDIR += rubygem-jekyll2
SUBDIR += rubygem-journey
SUBDIR += rubygem-jquery-atwho-rails
SUBDIR += rubygem-jquery-atwho-rails-rails4

View file

@ -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>

View file

@ -1,2 +0,0 @@
SHA256 (rubygem/jekyll-2.5.3.gem) = 56085eb920484394c03bc2cbc96274685a2e72ed43d33eec9e3d97e68569a3a9
SIZE (rubygem/jekyll-2.5.3.gem) = 58368

View file

@ -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