git: a7ccbef49ecd - main - sysutils/linuxfdisk: Remove expired port
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 01 Oct 2025 09:32:30 UTC
The branch main has been updated by mandree:
URL: https://cgit.FreeBSD.org/ports/commit/?id=a7ccbef49ecd9b7dcdb22524c878e4ffbac2ea2f
commit a7ccbef49ecd9b7dcdb22524c878e4ffbac2ea2f
Author: Matthias Andree <mandree@FreeBSD.org>
AuthorDate: 2025-10-01 09:31:22 +0000
Commit: Matthias Andree <mandree@FreeBSD.org>
CommitDate: 2025-10-01 09:31:32 +0000
sysutils/linuxfdisk: Remove expired port
2025-09-30 sysutils/linuxfdisk: Upstream distfile unavailable, way out of date, upstream distfile gone, use gpart instead.
Linuxfdisk had been part of util-linux v2.11z as of 22 years ago.
---
MOVED | 1 +
sysutils/Makefile | 1 -
sysutils/linuxfdisk/Makefile | 28 -
sysutils/linuxfdisk/distinfo | 2 -
sysutils/linuxfdisk/files/linuxfdisk-Makefile | 35 -
sysutils/linuxfdisk/files/linuxfdisk-sys_bsd.c | 118 ---
sysutils/linuxfdisk/files/patch-FreeBSD | 1204 ------------------------
sysutils/linuxfdisk/pkg-descr | 3 -
sysutils/linuxfdisk/pkg-plist | 6 -
9 files changed, 1 insertion(+), 1397 deletions(-)
diff --git a/MOVED b/MOVED
index 5b16f36bcd74..ab4b0a904023 100644
--- a/MOVED
+++ b/MOVED
@@ -4781,3 +4781,4 @@ net/benthos|net/redpanda-connect|2025-09-12|Has expired: Superseded by net/redpa
cad/cvc||2025-09-24|Has expired: Upstream stalled, needs EOL GCC 11 to build
lang/gcc11||2025-09-24|Has expired: End-of-life upstream since mid 2024, newer versions available
devel/util-linux|sysutils/util-linux|2025-09-29|Move to the proper category
+sysutils/linuxfdisk||2025-10-01|Has expired: Upstream distfile unavailable, way out of date, upstream distfile gone, use gpart instead
diff --git a/sysutils/Makefile b/sysutils/Makefile
index 9e008a53f40f..9c7683c1cc59 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -649,7 +649,6 @@
SUBDIR += linux-c7-userspace-rcu
SUBDIR += linux-miniconda-installer
SUBDIR += linux-rkbin
- SUBDIR += linuxfdisk
SUBDIR += littlejet
SUBDIR += lmmon
SUBDIR += lmon
diff --git a/sysutils/linuxfdisk/Makefile b/sysutils/linuxfdisk/Makefile
deleted file mode 100644
index 32a8ceaae6be..000000000000
--- a/sysutils/linuxfdisk/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-PORTNAME= linuxfdisk
-PORTVERSION= 2.11z
-PORTREVISION= 2
-CATEGORIES= sysutils
-MASTER_SITES= KERNEL_ORG/linux/utils/util-linux/v2.11/ \
- http://ftp.be.debian.org/pub/linux/utils/util-linux/v2.11/ \
- ftp://segfault.kiev.ua/pub/
-DISTNAME= util-linux-${PORTVERSION}
-
-MAINTAINER= netch@netch.kiev.ua
-COMMENT= Fdisk, a partition tables manipulator, from util-linux
-
-DEPRECATED= Upstream distfile unavailable, way out of date, upstream distfile gone, use gpart instead.
-EXPIRATION_DATE=2025-09-30
-
-LICENSE= GPLv2+
-
-BROKEN_aarch64= fails to build: error unknown architecture
-BROKEN= dangerous, unaware of GPT and alignments, causes write amplification and HW wear
-
-WRKSRC= ${WRKDIR}/util-linux-${PORTVERSION}/fdisk
-USES= tar:bzip2
-
-pre-patch:
- @${CP} ${FILESDIR}/linuxfdisk-Makefile ${WRKSRC}/Makefile
- @${CP} ${FILESDIR}/linuxfdisk-sys_bsd.c ${WRKSRC}/sys_bsd.c
-
-.include <bsd.port.mk>
diff --git a/sysutils/linuxfdisk/distinfo b/sysutils/linuxfdisk/distinfo
deleted file mode 100644
index f0db3601ce92..000000000000
--- a/sysutils/linuxfdisk/distinfo
+++ /dev/null
@@ -1,2 +0,0 @@
-SHA256 (util-linux-2.11z.tar.bz2) = 8054e245b93df7061f8cb3ebe971e038ffd39a630b9c6ead654925a27961ee02
-SIZE (util-linux-2.11z.tar.bz2) = 1266784
diff --git a/sysutils/linuxfdisk/files/linuxfdisk-Makefile b/sysutils/linuxfdisk/files/linuxfdisk-Makefile
deleted file mode 100644
index 05a3cc461d78..000000000000
--- a/sysutils/linuxfdisk/files/linuxfdisk-Makefile
+++ /dev/null
@@ -1,35 +0,0 @@
-all: fdisk cfdisk sfdisk
-
-FDISK_OBJS = fdisk.o i386_sys_types.o partname.o \
- fdiskbsdlabel.o fdisksunlabel.o fdiskaixlabel.o fdisksgilabel.o \
- sys_bsd.o
-
-SFDISK_OBJS = sfdisk.o sys_bsd.o i386_sys_types.o partname.o getopt.o getopt1.o
-
-CFDISK_OBJS = cfdisk.o sys_bsd.o i386_sys_types.o
-
-CFLAGS += -DUTIL_LINUX_VERSION=\"2.11z\" -I../getopt/gnu
-
-INSTALL?= install -c
-## Debug
-#CFLAGS+= -O0 -g -Wall
-
-fdisk: $(FDISK_OBJS)
- $(CC) -o fdisk $(FDISK_OBJS)
-
-sfdisk: $(SFDISK_OBJS)
- $(CC) -o sfdisk $(SFDISK_OBJS)
-
-cfdisk: $(CFDISK_OBJS)
- $(CC) -o cfdisk $(CFDISK_OBJS) -lncurses
-
-getopt.o: ../getopt/gnu/getopt.c
-getopt1.o: ../getopt/gnu/getopt1.c
-
-install:
- $(INSTALL) -c -m 0555 -s fdisk ${DESTDIR}${PREFIX}/sbin/fdisk-linux
- $(INSTALL) -c -m 0555 -s cfdisk ${DESTDIR}${PREFIX}/sbin/cfdisk-linux
- $(INSTALL) -c -m 0555 -s sfdisk ${DESTDIR}${PREFIX}/sbin/sfdisk-linux
- $(INSTALL) -c -m 0644 fdisk.8 ${DESTDIR}${PREFIX}/share/man/man8/fdisk-linux.8
- $(INSTALL) -c -m 0644 cfdisk.8 ${DESTDIR}${PREFIX}/share/man/man8/cfdisk-linux.8
- $(INSTALL) -c -m 0644 sfdisk.8 ${DESTDIR}${PREFIX}/share/man/man8/sfdisk-linux.8
diff --git a/sysutils/linuxfdisk/files/linuxfdisk-sys_bsd.c b/sysutils/linuxfdisk/files/linuxfdisk-sys_bsd.c
deleted file mode 100644
index eb3a97ea9226..000000000000
--- a/sysutils/linuxfdisk/files/linuxfdisk-sys_bsd.c
+++ /dev/null
@@ -1,118 +0,0 @@
-#include <sys/param.h>
-#include <sys/disklabel.h>
-#if __FreeBSD_version < 500000
-#include <sys/diskslice.h>
-#include <sys/stat.h>
-#else
-#include <sys/disk.h>
-#include <errno.h>
-#endif
-#include <stddef.h>
-#include "common.h"
-
-unsigned int
-sys_bsd_sectorsize(int fd)
-{
-#ifdef DIOCGSECTORSIZE
- ;{
- unsigned int d;
- if (ioctl(fd, DIOCGSECTORSIZE, &d) == 0)
- return d;
- }
-#endif
-#ifdef DIOCGDINFO
- ;{
- struct disklabel dl;
- if (ioctl(fd, DIOCGDINFO, &dl) == 0)
- return dl.d_secsize;
- }
-#endif
-#ifdef DIOCGSLICEINFO
- ;{
- struct diskslices dss;
- if (ioctl(fd, DIOCGSLICEINFO, &dss) == 0)
- return dss.dss_secsize;
- }
-#endif
- return 0;
-}
-
-int
-sys_bsd_getsectors(int fd, unsigned long *s)
-{
- /* XXX */
- struct disklabel dl;
-#if defined(DIOCGMEDIASIZE) && defined(DIOCGSECTORSIZE)
- ;{
- off_t fullsize;
- unsigned sectsize;
- if (ioctl(fd, DIOCGMEDIASIZE, &fullsize) == 0 &&
- ioctl(fd, DIOCGSECTORSIZE, §size) == 0)
- {
- *s = fullsize / sectsize;
- return 0;
- }
- }
-#endif
-#ifdef DIOCGSLICEINFO
- /* XXX it is somehow ugly, but seems to work on 4.x. */
- ;{
- struct diskslices dss;
- struct stat st;
- if (ioctl(fd, DIOCGSLICEINFO, &dss) == 0 &&
- fstat(fd, &st) == 0)
- {
- int slice = 31 & (st.st_rdev >> 16);
- /* If it have disklabel, fall to disklabel case,
- * because it shows more exact info.
- */
- if (slice != WHOLE_DISK_SLICE &&
- dss.dss_slices[slice].ds_label != NULL &&
- ioctl(fd, DIOCGDINFO, &dl) == 0) {
- *s = (unsigned long) dl.d_secperunit;
- return 0;
- }
- *s = dss.dss_slices[slice].ds_size;
- return 0;
- }
- }
-#endif
-#ifdef DIOCGDINFO
- /* Fallback method. */
- if (ioctl(fd, DIOCGDINFO, &dl) == 0) {
- *s = (unsigned long) dl.d_secperunit;
- return 0;
- }
-#endif
- return -1;
-}
-
-int
-sys_bsd_ptsync(int fd)
-{
-#ifdef DIOCSYNCSLICEINFO
- return ioctl(fd, DIOCSYNCSLICEINFO, NULL);
-#else
- /* XXX I suppose here GEOM systems which:
- * 1) Don't allow writing to raw disk if it is mounted anywhere,
- * 2) Automatically update GEOM structures after writing to disk.
- * Hence, no explicit syncing is required.
- */
- return 0;
-#endif
-}
-
-int
-sys_bsd_getgeometry(int fd, struct hd_geometry *g)
-{
- /* XXX */
- struct disklabel dl;
-#ifdef DIOCGDINFO
- if (ioctl(fd, DIOCGDINFO, &dl) < 0)
-#endif
- return -1;
- g->cylinders = dl.d_ncylinders;
- g->heads = dl.d_ntracks;
- g->sectors = dl.d_nsectors;
- return 0;
-}
diff --git a/sysutils/linuxfdisk/files/patch-FreeBSD b/sysutils/linuxfdisk/files/patch-FreeBSD
deleted file mode 100644
index 130d5fca5451..000000000000
--- a/sysutils/linuxfdisk/files/patch-FreeBSD
+++ /dev/null
@@ -1,1204 +0,0 @@
-diff -rNu cfdisk.c cfdisk.c
---- cfdisk.c Tue Nov 26 18:44:33 2002
-+++ cfdisk.c Fri Jun 20 19:47:15 2003
-@@ -76,25 +76,14 @@
- #include <string.h>
- #include <sys/stat.h>
- #include <sys/ioctl.h>
--#include <linux/types.h>
-
- #include "nls.h"
--#include "xstrncpy.h"
- #include "common.h"
-
--#if defined(__GNUC__) || defined(HAS_LONG_LONG)
--typedef long long ext2_loff_t;
--#else
--typedef long ext2_loff_t;
--#endif
--
--extern ext2_loff_t ext2_llseek(unsigned int fd, ext2_loff_t offset,
-- unsigned int origin);
--
- #define VERSION UTIL_LINUX_VERSION
-
--#define DEFAULT_DEVICE "/dev/hda"
--#define ALTERNATE_DEVICE "/dev/sda"
-+#define DEFAULT_DEVICE "/dev/ada0"
-+#define ALTERNATE_DEVICE "/dev/da0"
-
- /* With K=1024 we have `binary' megabytes, gigabytes, etc.
- Some misguided hackers like that.
-@@ -324,7 +313,8 @@
- int logical = 0;
- int logical_sectors[MAXIMUM_PARTS];
-
--__sighandler_t old_SIGINT, old_SIGTERM;
-+void (*old_SIGINT)(int);
-+void (*old_SIGTERM)(int);
-
- int arrow_cursor = FALSE;
- int display_units = MEGABYTES;
-@@ -571,7 +561,7 @@
-
- static void
- read_sector(char *buffer, int sect_num) {
-- if (ext2_llseek(fd, ((ext2_loff_t) sect_num)*SECTOR_SIZE, SEEK_SET) < 0)
-+ if (lseek(fd, ((off_t) sect_num)*SECTOR_SIZE, SEEK_SET) < 0)
- fatal(_("Cannot seek on disk drive"), 2);
- if (read(fd, buffer, SECTOR_SIZE) != SECTOR_SIZE)
- fatal(_("Cannot read disk drive"), 2);
-@@ -579,7 +569,7 @@
-
- static void
- write_sector(char *buffer, int sect_num) {
-- if (ext2_llseek(fd, ((ext2_loff_t) sect_num)*SECTOR_SIZE, SEEK_SET) < 0)
-+ if (lseek(fd, ((off_t) sect_num)*SECTOR_SIZE, SEEK_SET) < 0)
- fatal(_("Cannot seek on disk drive"), 2);
- if (write(fd, buffer, SECTOR_SIZE) != SECTOR_SIZE)
- fatal(_("Cannot write disk drive"), 2);
-@@ -603,11 +593,11 @@
- #define DOS_OSTYPE_SZ 8
- #define DOS_LABEL_SZ 11
- #define DOS_FSTYPE_SZ 8
-- ext2_loff_t offset;
-+ off_t offset;
-
-- offset = ((ext2_loff_t) p_info[i].first_sector + p_info[i].offset)
-+ offset = ((off_t) p_info[i].first_sector + p_info[i].offset)
- * SECTOR_SIZE;
-- if (ext2_llseek(fd, offset, SEEK_SET) == offset
-+ if (lseek(fd, offset, SEEK_SET) == offset
- && read(fd, §or, sizeof(sector)) == sizeof(sector)) {
- dos_copy_to_info(p_info[i].ostype, OSTYPESZ,
- sector+DOS_OSTYPE_OFFSET, DOS_OSTYPE_SZ);
-@@ -664,12 +654,12 @@
- } xfsb;
-
- char *label;
-- ext2_loff_t offset;
-+ off_t offset;
- int j;
-
-- offset = ((ext2_loff_t) p_info[i].first_sector + p_info[i].offset)
-+ offset = ((off_t) p_info[i].first_sector + p_info[i].offset)
- * SECTOR_SIZE + 1024;
-- if (ext2_llseek(fd, offset, SEEK_SET) == offset
-+ if (lseek(fd, offset, SEEK_SET) == offset
- && read(fd, &e2fsb, sizeof(e2fsb)) == sizeof(e2fsb)
- && e2fsb.s_magic[0] + (e2fsb.s_magic[1]<<8) == EXT2_SUPER_MAGIC) {
- label = e2fsb.s_volume_name;
-@@ -684,9 +674,9 @@
- return;
- }
-
-- offset = ((ext2_loff_t) p_info[i].first_sector + p_info[i].offset)
-+ offset = ((off_t) p_info[i].first_sector + p_info[i].offset)
- * SECTOR_SIZE + 0;
-- if (ext2_llseek(fd, offset, SEEK_SET) == offset
-+ if (lseek(fd, offset, SEEK_SET) == offset
- && read(fd, &xfsb, sizeof(xfsb)) == sizeof(xfsb)
- && !strcmp(xfsb.s_magic, XFS_SUPER_MAGIC)) {
- label = xfsb.s_fname;
-@@ -698,9 +688,9 @@
- }
-
- /* reiserfs? */
-- offset = ((ext2_loff_t) p_info[i].first_sector + p_info[i].offset)
-+ offset = ((off_t) p_info[i].first_sector + p_info[i].offset)
- * SECTOR_SIZE + REISERFS_DISK_OFFSET_IN_BYTES;
-- if (ext2_llseek(fd, offset, SEEK_SET) == offset
-+ if (lseek(fd, offset, SEEK_SET) == offset
- && read(fd, &reiserfsb, 1024) == 1024
- && is_reiserfs_magic_string(&reiserfsb)) {
- strncpy(p_info[i].fstype, "reiserfs", FSTYPESZ);
-@@ -1140,7 +1130,7 @@
- print_warning(_("Menu item too long. Menu may look odd."));
- #endif
- if (lenName >= sizeof(buff)) { /* truncate ridiculously long string */
-- xstrncpy(buff, mi, sizeof(buff));
-+ strlcpy(buff, mi, sizeof(buff));
- } else {
- snprintf(buff, sizeof(buff),
- (menuType & MENU_BUTTON) ? "[%*s%-*s]" : "%*s%-*s",
-@@ -1605,17 +1595,7 @@
- opentype = O_RDWR;
- opened = TRUE;
-
-- /* Blocks are visible in more than one way:
-- e.g. as block on /dev/hda and as block on /dev/hda3
-- By a bug in the Linux buffer cache, we will see the old
-- contents of /dev/hda when the change was made to /dev/hda3.
-- In order to avoid this, discard all blocks on /dev/hda.
-- Note that partition table blocks do not live in /dev/hdaN,
-- so this only plays a role if we want to show volume labels. */
-- ioctl(fd, BLKFLSBUF); /* ignore errors */
-- /* e.g. Permission Denied */
--
-- if (ioctl(fd, BLKGETSIZE, &actual_size))
-+ if (sys_bsd_getsectors(fd, &actual_size))
- fatal(_("Cannot get disk size"), 3);
-
- read_sector(buffer.c.b, 0);
-@@ -1824,7 +1804,7 @@
- if (is_bdev) {
- sync();
- sleep(2);
-- if (!ioctl(fd,BLKRRPART))
-+ if (!sys_bsd_ptsync(fd))
- changed = TRUE;
- sync();
- sleep(4);
-@@ -2850,9 +2830,11 @@
- int c;
- int i, len;
-
-+#if 0
- setlocale(LC_ALL, "");
- bindtextdomain(PACKAGE, LOCALEDIR);
- textdomain(PACKAGE);
-+#endif
-
- while ((c = getopt(argc, argv, "ac:gh:s:vzP:")) != -1)
- switch (c) {
-diff -rNu common.h common.h
---- common.h Thu May 9 02:50:35 2002
-+++ common.h Fri Jun 20 19:25:55 2003
-@@ -1,11 +1,10 @@
- /* common stuff for fdisk, cfdisk, sfdisk */
-
--/* including <linux/fs.h> fails */
--#include <sys/ioctl.h>
--#define BLKRRPART _IO(0x12,95) /* re-read partition table */
--#define BLKGETSIZE _IO(0x12,96) /* return device size */
--#define BLKFLSBUF _IO(0x12,97) /* flush buffer cache */
--#define BLKSSZGET _IO(0x12,104) /* get block device sector size */
-+#include <sys/types.h>
-+typedef u_int16_t __u16;
-+typedef u_int32_t __u32;
-+typedef int16_t __s16;
-+typedef u_int8_t __u8;
-
- /* including <linux/hdreg.h> also fails */
- struct hd_geometry {
-@@ -15,9 +14,6 @@
- unsigned long start;
- };
-
--#define HDIO_GETGEO 0x0301 /* get device geometry */
--
--
- struct systypes {
- unsigned char type;
- char *name;
-@@ -26,3 +22,8 @@
- extern struct systypes i386_sys_types[];
-
- extern char *partname(char *dev, int pno, int lth);
-+
-+unsigned int sys_bsd_sectorsize(int fd);
-+int sys_bsd_getsectors(int fd, unsigned long* s);
-+int sys_bsd_ptsync(int fd);
-+int sys_bsd_getgeometry(int, struct hd_geometry*);
-diff -rNu fdisk.c fdisk.c
---- fdisk.c Sat Nov 23 18:05:24 2002
-+++ fdisk.c Fri Jun 20 19:25:55 2003
-@@ -37,11 +37,6 @@
- #include "fdisksgilabel.h"
- #include "fdiskaixlabel.h"
-
--#include "../defines.h"
--#ifdef HAVE_blkpg_h
--#include <linux/blkpg.h>
--#endif
--
- static void delete_partition(int i);
-
- #define hex_val(c) ({ \
-@@ -194,23 +189,21 @@
-
- switch (why) {
- case usage: message = _(
--"Usage: fdisk [-b SSZ] [-u] DISK Change partition table\n"
--" fdisk -l [-b SSZ] [-u] DISK List partition table(s)\n"
--" fdisk -s PARTITION Give partition size(s) in blocks\n"
--" fdisk -v Give fdisk version\n"
--"Here DISK is something like /dev/hdb or /dev/sda\n"
--"and PARTITION is something like /dev/hda7\n"
-+"Usage: fdisk-linux [-b SSZ] [-u] DISK Change partition table\n"
-+" fdisk-linux -l [-b SSZ] [-u] DISK List partition table(s)\n"
-+" fdisk-linux -s PARTITION Give partition size(s) in blocks\n"
-+" fdisk-linux -v Give fdisk version\n"
-+"Here DISK is something like /dev/ada1 or /dev/da0\n"
-+"and PARTITION is something like /dev/ada0s7\n"
- "-u: give Start and End in sector (instead of cylinder) units\n"
- "-b 2048: (for certain MO disks) use 2048-byte sectors\n");
- break;
- case usage2:
- /* msg in cases where fdisk used to probe */
- message = _(
--"Usage: fdisk [-l] [-b SSZ] [-u] device\n"
--"E.g.: fdisk /dev/hda (for the first IDE disk)\n"
--" or: fdisk /dev/sdc (for the third SCSI disk)\n"
--" or: fdisk /dev/eda (for the first PS/2 ESDI drive)\n"
--" or: fdisk /dev/rd/c0d0 or: fdisk /dev/ida/c0d0 (for RAID devices)\n"
-+"Usage: fdisk-linux [-l] [-b SSZ] [-u] device\n"
-+"E.g.: fdisk-linux /dev/ada0 (for the first ATA disk)\n"
-+" or: fdisk-linux /dev/da2 (for the third SCSI disk)\n"
- " ...\n");
- break;
- case unable_to_open:
-@@ -231,7 +224,7 @@
- break;
- case ioctl_error:
- snprintf(error, sizeof(error),
-- _("BLKGETSIZE ioctl failed on %s\n"),
-+ _("DIOCGDINFO ioctl failed on %s\n"),
- disk_device);
- break;
- case out_of_memory:
-@@ -248,8 +241,8 @@
-
- static void
- seek_sector(int fd, uint secno) {
-- ext2_loff_t offset = (ext2_loff_t) secno * sector_size;
-- if (ext2_llseek(fd, offset, SEEK_SET) == (ext2_loff_t) -1)
-+ off_t offset = (off_t) secno * sector_size;
-+ if (lseek(fd, offset, SEEK_SET) == (off_t) -1)
- fatal(unable_to_seek);
- }
-
-@@ -725,53 +718,23 @@
- get_boot(create_empty_dos);
- }
-
--#include <sys/utsname.h>
--#define MAKE_VERSION(p,q,r) (65536*(p) + 256*(q) + (r))
--
--static int
--linux_version_code(void) {
-- static int kernel_version = 0;
-- struct utsname my_utsname;
-- int p, q, r;
--
-- if (!kernel_version && uname(&my_utsname) == 0) {
-- p = atoi(strtok(my_utsname.release, "."));
-- q = atoi(strtok(NULL, "."));
-- r = atoi(strtok(NULL, "."));
-- kernel_version = MAKE_VERSION(p,q,r);
-- }
-- return kernel_version;
--}
--
- static void
- get_sectorsize(int fd) {
--#if defined(BLKSSZGET)
-- if (!user_set_sector_size &&
-- linux_version_code() >= MAKE_VERSION(2,3,3)) {
-- int arg;
-- if (ioctl(fd, BLKSSZGET, &arg) == 0)
-- sector_size = arg;
-- if (sector_size != DEFAULT_SECTOR_SIZE)
-- printf(_("Note: sector size is %d (not %d)\n"),
-- sector_size, DEFAULT_SECTOR_SIZE);
-- }
--#else
-- /* maybe the user specified it; and otherwise we still
-- have the DEFAULT_SECTOR_SIZE default */
--#endif
-+ unsigned int r = sys_bsd_sectorsize(fd);
-+ if (r)
-+ sector_size = r;
-+ if (sector_size != DEFAULT_SECTOR_SIZE)
-+ printf(_("Note: sector size is %d (not %d)\n"),
-+ sector_size, DEFAULT_SECTOR_SIZE);
- }
-
- static void
- get_kernel_geometry(int fd) {
--#ifdef HDIO_GETGEO
-- struct hd_geometry geometry;
--
-- if (!ioctl(fd, HDIO_GETGEO, &geometry)) {
-- kern_heads = geometry.heads;
-- kern_sectors = geometry.sectors;
-- /* never use geometry.cylinders - it is truncated */
-+ struct hd_geometry h;
-+ if (!sys_bsd_getgeometry(fd, &h)) {
-+ kern_heads = h.heads;
-+ kern_sectors = h.sectors;
- }
--#endif
- }
-
- static void
-@@ -813,7 +776,7 @@
-
- get_sectorsize(fd);
- sec_fac = sector_size / 512;
-- guess_device_type(fd);
-+ //guess_device_type(fd);
- heads = cylinders = sectors = 0;
- kern_heads = kern_sectors = 0;
- pt_heads = pt_sectors = 0;
-@@ -828,8 +791,11 @@
- pt_sectors ? pt_sectors :
- kern_sectors ? kern_sectors : 63;
-
-- if (ioctl(fd, BLKGETSIZE, &longsectors))
-- longsectors = 0;
-+ ;{
-+ unsigned long r;
-+ if (sys_bsd_getsectors(fd, &r) == 0)
-+ longsectors = r;
-+ }
-
- sector_offset = 1;
- if (dos_compatible_flag)
-@@ -1404,7 +1370,7 @@
- * Jan. 1990 (version 1.2.1 by Gordon W. Ross Aug. 1990; Modified by S.
- * Lubkin Oct. 1991). */
-
--static void long2chs(ulong ls, uint *c, uint *h, uint *s) {
-+static void long2chs(unsigned long ls, uint *c, uint *h, uint *s) {
- int spc = heads * sectors;
-
- *c = ls / spc;
-@@ -2102,16 +2068,8 @@
- printf(_("Calling ioctl() to re-read partition table.\n"));
- sync();
- sleep(2);
-- if ((i = ioctl(fd, BLKRRPART)) != 0) {
-+ if ((i = sys_bsd_ptsync(fd)) != 0) {
- error = errno;
-- } else {
-- /* some kernel versions (1.2.x) seem to have trouble
-- rereading the partition table, but if asked to do it
-- twice, the second time works. - biro@yggdrasil.com */
-- sync();
-- sleep(2);
-- if ((i = ioctl(fd, BLKRRPART)) != 0)
-- error = errno;
- }
-
- if (i) {
-@@ -2403,9 +2361,11 @@
- int j, c;
- int optl = 0, opts = 0;
-
-+#if 0
- setlocale(LC_ALL, "");
- bindtextdomain(PACKAGE, LOCALEDIR);
- textdomain(PACKAGE);
-+#endif
-
- /*
- * Calls:
-@@ -2455,7 +2415,7 @@
- break;
- case 'V':
- case 'v':
-- printf("fdisk v" UTIL_LINUX_VERSION "\n");
-+ printf("fdisk v" UTIL_LINUX_VERSION "-freebsd-portbld\n");
- exit(0);
- default:
- fatal(usage);
-@@ -2504,7 +2464,7 @@
- disk_device = argv[j];
- if ((fd = open(disk_device, type_open)) < 0)
- fatal(unable_to_open);
-- if (ioctl(fd, BLKGETSIZE, &size))
-+ if (sys_bsd_getsectors(fd, &size))
- fatal(ioctl_error);
- close(fd);
- if (opts == 1)
-diff -rNu fdisk.h fdisk.h
---- fdisk.h 2001-09-13 23:05:35 UTC
-+++ fdisk.h
-@@ -101,4 +101,4 @@
- /* prototypes for fdisksgilabel.c */
- extern int valid_part_table_flag(unsigned char *b);
-
--#define PROC_PARTITIONS "/proc/partitions"
-+#define PROC_PARTITIONS "/compat/linux/proc/partitions"
-diff -rNu fdiskaixlabel.c fdiskaixlabel.c
---- fdiskaixlabel.c Tue Apr 18 15:21:28 2000
-+++ fdiskaixlabel.c Fri Jun 20 19:25:55 2003
-@@ -8,7 +8,7 @@
- #include <string.h> /* strstr */
- #include <unistd.h> /* write */
-
--#include <endian.h>
-+#include <sys/endian.h>
-
- #include "common.h"
- #include "fdisk.h"
-diff -rNu fdiskaixlabel.h fdiskaixlabel.h
---- fdiskaixlabel.h Sun Feb 20 18:50:51 2000
-+++ fdiskaixlabel.h Fri Jun 20 19:25:55 2003
-@@ -1,4 +1,3 @@
--#include <linux/types.h> /* for __u32 etc */
- /*
- * Copyright (C) Andreas Neuper, Sep 1998.
- * This file may be redistributed under
-diff -rNu fdiskbsdlabel.c fdiskbsdlabel.c
---- fdiskbsdlabel.c Thu Oct 31 15:43:42 2002
-+++ fdiskbsdlabel.c Fri Jun 20 19:25:55 2003
-@@ -566,7 +566,7 @@
- sector = get_start_sect(xbsd_part);
- #endif
-
-- if (ext2_llseek (fd, (ext2_loff_t) sector * SECTOR_SIZE, SEEK_SET) == -1)
-+ if (lseek (fd, (off_t) sector * SECTOR_SIZE, SEEK_SET) == -1)
- fatal (unable_to_seek);
- if (BSD_BBSIZE != write (fd, disklabelbuffer, BSD_BBSIZE))
- fatal (unable_to_write);
-@@ -735,7 +735,7 @@
- sector = 0;
- #endif
-
-- if (ext2_llseek (fd, (ext2_loff_t) sector * SECTOR_SIZE, SEEK_SET) == -1)
-+ if (lseek (fd, (off_t) sector * SECTOR_SIZE, SEEK_SET) == -1)
- fatal (unable_to_seek);
- if (BSD_BBSIZE != read (fd, disklabelbuffer, BSD_BBSIZE))
- fatal (unable_to_read);
-@@ -781,12 +781,12 @@
-
- #if defined (__alpha__) && BSD_LABELSECTOR == 0
- alpha_bootblock_checksum (disklabelbuffer);
-- if (ext2_llseek (fd, (ext2_loff_t) 0, SEEK_SET) == -1)
-+ if (lseek (fd, (off_t) 0, SEEK_SET) == -1)
- fatal (unable_to_seek);
- if (BSD_BBSIZE != write (fd, disklabelbuffer, BSD_BBSIZE))
- fatal (unable_to_write);
- #else
-- if (ext2_llseek (fd, (ext2_loff_t) sector * SECTOR_SIZE + BSD_LABELOFFSET,
-+ if (lseek (fd, (off_t) sector * SECTOR_SIZE + BSD_LABELOFFSET,
- SEEK_SET) == -1)
- fatal (unable_to_seek);
- if (sizeof (struct xbsd_disklabel) != write (fd, d, sizeof (struct xbsd_disklabel)))
-@@ -847,9 +847,11 @@
-
- #if defined (__alpha__)
-
-+/*
- #if !defined(__GLIBC__)
- typedef unsigned long long u_int64_t;
- #endif
-+*/
-
- void
- alpha_bootblock_checksum (char *boot)
-diff -rNu fdiskbsdlabel.h fdiskbsdlabel.h
---- fdiskbsdlabel.h Thu Oct 31 15:45:34 2002
-+++ fdiskbsdlabel.h Fri Jun 20 19:25:55 2003
-@@ -31,8 +31,6 @@
- * SUCH DAMAGE.
- */
-
--#include <linux/types.h> /* for __u32, __u16, __u8, __s16 */
--
- #ifndef BSD_DISKMAGIC
- #define BSD_DISKMAGIC ((__u32) 0x82564557)
- #endif
-diff -rNu fdisksgilabel.c fdisksgilabel.c
---- fdisksgilabel.c Thu May 9 02:51:31 2002
-+++ fdisksgilabel.c Fri Jun 20 19:25:55 2003
-@@ -17,9 +17,8 @@
- #include <sys/stat.h> /* stat */
- #include <assert.h> /* assert */
-
--#include <endian.h>
-+#include <sys/endian.h>
- #include "nls.h"
--#include <linux/major.h> /* FLOPPY_MAJOR */
-
- #include "common.h"
- #include "fdisk.h"
-@@ -382,7 +381,7 @@
- */
- sgiinfo*info = fill_sgiinfo(); /* fills the block appropriately */
- int infostartblock = SSWAP32( sgilabel->directory[0].vol_file_start );
-- if( ext2_llseek(fd, (ext2_loff_t)infostartblock*
-+ if( lseek(fd, (off_t)infostartblock*
- SECTOR_SIZE, SEEK_SET) < 0 )
- fatal(unable_to_seek);
- if( write(fd, info, SECTOR_SIZE) != SECTOR_SIZE )
-@@ -735,11 +734,7 @@
-
- other_endian = (BYTE_ORDER == LITTLE_ENDIAN);
-
--#ifdef HDIO_REQ
-- if (!ioctl(fd, HDIO_REQ, &geometry))
--#else
-- if (!ioctl(fd, HDIO_GETGEO, &geometry))
--#endif
-+ if (!sys_bsd_getgeometry(fd, &geometry))
- {
- heads = geometry.heads;
- sectors = geometry.sectors;
-diff -rNu fdisksgilabel.h fdisksgilabel.h
---- fdisksgilabel.h Tue Feb 20 12:26:53 2001
-+++ fdisksgilabel.h Fri Jun 20 19:25:55 2003
-@@ -1,4 +1,3 @@
--#include <linux/types.h> /* for __u32 etc */
- /*
- * Copyright (C) Andreas Neuper, Sep 1998.
- * This file may be modified and redistributed under
-diff -rNu fdisksunlabel.c fdisksunlabel.c
---- fdisksunlabel.c Fri Nov 1 03:55:25 2002
-+++ fdisksunlabel.c Fri Jun 20 19:25:55 2003
-@@ -16,18 +16,18 @@
- #include <unistd.h> /* write */
- #include <sys/ioctl.h> /* ioctl */
- #include <sys/stat.h> /* stat */
--#include <sys/sysmacros.h> /* major */
-+//#include <sys/sysmacros.h> /* major */
-
- #include "nls.h"
-
--#include <endian.h>
--#include "../defines.h" /* for HAVE_scsi_h */
-+#include <sys/endian.h>
-+//#include "../defines.h" /* for HAVE_scsi_h */
- #ifdef HAVE_scsi_h
- #define u_char unsigned char
- #include <scsi/scsi.h> /* SCSI_IOCTL_GET_IDLUN */
- #undef u_char
- #endif
--#include <linux/major.h> /* FLOPPY_MAJOR */
-+//#include <linux/major.h> /* FLOPPY_MAJOR */
-
- #include "common.h"
- #include "fdisk.h"
-@@ -71,6 +71,7 @@
- return SSWAP32(p.num_sectors);
- }
-
-+#if 0
- #ifndef IDE0_MAJOR
- #define IDE0_MAJOR 3
- #endif
-@@ -97,6 +98,7 @@
- floppy = 0;
- }
- }
-+#endif
-
- static void
- set_sun_partition(int i, uint start, uint stop, int sysid) {
-@@ -296,11 +298,7 @@
- }
- }
- if (!p || floppy) {
--#ifdef HDIO_REQ
-- if (!ioctl(fd, HDIO_REQ, &geometry)) {
--#else
-- if (!ioctl(fd, HDIO_GETGEO, &geometry)) {
--#endif
-+ if (!sys_bsd_getgeometry(fd, &geometry)) {
- heads = geometry.heads;
- sectors = geometry.sectors;
- cylinders = geometry.cylinders;
-diff -rNu fdisksunlabel.h fdisksunlabel.h
---- fdisksunlabel.h Tue Oct 3 00:42:10 2000
-+++ fdisksunlabel.h Fri Jun 20 19:25:55 2003
-@@ -1,4 +1,3 @@
--#include <linux/types.h> /* for __u16, __u32 */
-
- typedef struct {
- unsigned char info[128]; /* Informative text string */
-diff -rNu nls.h nls.h
---- nls.h Thu Jan 1 03:00:00 1970
-+++ nls.h Fri Jun 20 19:25:55 2003
-@@ -0,0 +1,2 @@
-+#define _(x) (x)
-+#define N_(x) (x)
-diff -rNu partname.c partname.c
---- partname.c Sun Jul 7 15:16:43 2002
-+++ partname.c Fri Jun 20 19:25:55 2003
-@@ -21,14 +21,16 @@
- p = "";
-
- if (isdigit(dev[w-1]))
-- p = "p";
-+ p = "s";
-
-+#if 0
- /* devfs kludge - note: fdisk partition names are not supposed
- to equal kernel names, so there is no reason to do this */
- if (strcmp (dev + w - 4, "disc") == 0) {
- w -= 4;
- p = "part";
- }
-+#endif
-
- wp = strlen(p);
-
-diff -rNu sfdisk.8 sfdisk.8
---- sfdisk.8 Fri Jun 20 20:37:34 2003
-+++ sfdisk.8 Fri Jun 20 20:43:24 2003
-@@ -9,9 +9,9 @@
- .SH NAME
- sfdisk \- Partition table manipulator for Linux
- .SH SYNOPSIS
--.BR sfdisk " [options] device"
-+.BR sfdisk-linux " [options] device"
- .br
--.BR "sfdisk \-s " [partition]
-+.BR "sfdisk-linux \-s " [partition]
- .SH DESCRIPTION
- .B sfdisk
- has four (main) uses: list the size of a partition, list the partitions
-@@ -19,7 +19,7 @@
- repartition a device.
-
- .SS "List Sizes"
--.BI "sfdisk \-s " partition
-+.BI "sfdisk-linux \-s " partition
- gives the size of
- .I partition
- in blocks. This may be useful in connection with programs like
-@@ -27,16 +27,16 @@
- or so. Here
- .I partition
- is usually something like
--.I /dev/hda1
-+.I /dev/ada0s1
- or
--.IR /dev/sdb12 ,
-+.IR /dev/da2s12 ,
- but may also be an entire disk, like
--.IR /dev/xda .
-+.IR /dev/amrd0 .
- .br
- .RS
- .nf
- .if t .ft CW
--% sfdisk \-s /dev/hda9
-+% sfdisk-linux \-s /dev/ada0s9
- 81599
- %
- .if t .ft R
-@@ -49,12 +49,12 @@
- .RS
- .nf
- .if t .ft CW
--% sfdisk \-s
--/dev/hda: 208896
--/dev/hdb: 1025136
--/dev/hdc: 1031063
--/dev/sda: 8877895
--/dev/sdb: 1758927
-+% sfdisk-linux \-s
-+/dev/ada0: 208896
-+/dev/ada1: 1025136
-+/dev/ada2: 1031063
-+/dev/da0: 8877895
-+/dev/da1: 1758927
- total: 12901917 blocks
- %
- .if t .ft R
-@@ -70,16 +70,16 @@
- .br
- .nf
- .if t .ft CW
--% sfdisk \-l /dev/hdc
-+% sfdisk-linux \-l /dev/ada2
-
--Disk /dev/hdc: 16 heads, 63 sectors, 2045 cylinders
-+Disk /dev/ada2: 16 heads, 63 sectors, 2045 cylinders
- Units = cylinders of 516096 bytes, blocks of 1024 bytes, counting from 0
-
- Device Boot Start End #cyls #blocks Id System
--/dev/hdc1 0+ 406 407\- 205096+ 83 Linux native
--/dev/hdc2 407 813 407 205128 83 Linux native
--/dev/hdc3 814 2044 1231 620424 83 Linux native
--/dev/hdc4 0 \- 0 0 0 Empty
-+/dev/ada2s1 0+ 406 407\- 205096+ 83 Linux native
-+/dev/ada2s2 407 813 407 205128 83 Linux native
-+/dev/ada2s3 814 2044 1231 620424 83 Linux native
-+/dev/ada2s4 0 \- 0 0 0 Empty
- %
- .if t .ft R
- .fi
-@@ -89,17 +89,17 @@
*** 500 LINES SKIPPED ***