gptfdisk: bump to version 1.0.1.

* Bump version.
* Add {lib,devel}:libpopt to {,BUILD_}REQUIRES.
* Set ARCHITECTURES to "x86_gcc2 x86 x86_64" instead of "!x86_gcc2".
* Add cmd:{cgdisk,fixparts,gdisk,sgdisk} to PROVIDES.
* Do not "make install" in INSTALL() because there is no such target
  in the makefile and, instead, call cmd:install.
* Fix patch to avoid including a missing sys/disk.h in support.h.
* Add patch to make diskio-unix.cc accept character devices on Haiku.
* Add patch to use the correct CRC32 polynom on big-endian machines
  in case someone wants to build and try Haiku on ppc.
This commit is contained in:
fbrosson
2016-04-08 21:24:56 +00:00
parent 5ef7894686
commit b6b2d09d3e
4 changed files with 172 additions and 87 deletions

View File

@@ -1,40 +0,0 @@
SUMMARY="GPT partition table manipulator"
DESCRIPTION="GPT fdisk is a disk partitioning tool loosely modeled on Linux \
fdisk, but used for modifying GUID Partition Table (GPT) disks. The related \
FixParts utility fixes some common problems on Master Boot Record (MBR) disks."
REVISION="1"
ARCHITECTURES="!x86_gcc2"
HOMEPAGE="http://www.rodsbooks.com/gdisk/"
SOURCE_URI="http://sourceforge.net/projects/gptfdisk/files/gptfdisk/0.8.10/gptfdisk-0.8.10.tar.gz"
CHECKSUM_SHA256="73e64151203ae0c347c488358e71ca582bb7fb7f0d66df86b71c42050390eb9b"
PATCHES="gptfdisk-0.8.10.patchset"
LICENSE="GNU GPL v2"
COPYRIGHT="2013 Rod Smith"
PROVIDES="
gptfdisk = $portVersion
"
BUILD_REQUIRES="
devel:libuuid
devel:libncurses
"
BUILD_PREREQUIRES="
haiku_devel
cmd:gcc
cmd:make
"
BUILD()
{
make $jobArgs
}
INSTALL()
{
make install
}
TEST()
{
make check
}

View File

@@ -0,0 +1,61 @@
SUMMARY="Text-mode tools for GUID Partition Table (GPT) disks"
DESCRIPTION="GPT fdisk (consisting of the gdisk, cgdisk, sgdisk, and fixparts \
programs) is a set of text-mode partitioning tools loosely modeled on Linux \
fdisk. The gdisk, cgdisk and sgdisk programs work on Globally Unique \
Identifier (GUID) Partition Table (GPT) disks, rather than on Master Boot \
Record (MBR) partition tables, but may also be used on MBR disks to convert \
them to GPT. The fixparts program repairs certain types of damage to MBR disks \
and enables changing partition types from primary to logical and vice-versa."
HOMEPAGE="http://www.rodsbooks.com/gdisk/"
COPYRIGHT="2013-2015 Rod Smith"
LICENSE="GNU GPL v2"
REVISION="1"
SOURCE_URI="https://downloads.sf.net/gptfdisk/gptfdisk-$portVersion.tar.gz"
CHECKSUM_SHA256="864c8aee2efdda50346804d7e6230407d5f42a8ae754df70404dd8b2fdfaeac7"
PATCHES="gptfdisk-$portVersion.patchset"
ARCHITECTURES="x86_gcc2 x86 x86_64"
PROVIDES="
gptfdisk = $portVersion
cmd:cgdisk
cmd:fixparts
cmd:gdisk
cmd:sgdisk
"
REQUIRES="
haiku
lib:libuuid
lib:libncurses
lib:libpopt
"
BUILD_REQUIRES="
haiku_devel
devel:libuuid
devel:libncurses
devel:libpopt
"
BUILD_PREREQUIRES="
cmd:g++
cmd:install
cmd:make
"
BUILD()
{
make $jobArgs
}
INSTALL()
{
install -d -m 755 $sbinDir $docDir $manDir/man8
install -t $sbinDir -c -m 555 -s cgdisk gdisk sgdisk fixparts
install -t $docDir -c -m 444 README COPYING
install -t $manDir/man8 -c -m 444 *.8
}
TEST()
{
make test
}

View File

@@ -1,47 +0,0 @@
From 67b231749b7fdd10bfb4cd7ff6244e4848bfb6a1 Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@gmail.com>
Date: Wed, 22 Oct 2014 21:47:40 +0200
Subject: Preliminary Haiku support.
diff --git a/diskio.h b/diskio.h
index 631a43a..e343cb9 100644
--- a/diskio.h
+++ b/diskio.h
@@ -29,7 +29,7 @@
#include <sys/dkio.h>
#endif
-#if defined (__FreeBSD__) || defined (__FreeBSD_kernel__) || defined (__APPLE__)
+#if defined (__FreeBSD__) || defined (__FreeBSD_kernel__) || defined (__APPLE__) || defined(__HAIKU__)
#define fstat64 fstat
#define stat64 stat
#endif
diff --git a/gptcurses.cc b/gptcurses.cc
index 6002077..4eb8aee 100644
--- a/gptcurses.cc
+++ b/gptcurses.cc
@@ -22,6 +22,7 @@
#include <iostream>
#include <string>
#include <sstream>
+#include <clocale>
#include <ncurses.h>
#include "gptcurses.h"
#include "support.h"
diff --git a/support.h b/support.h
index 7f691c3..b64cb16 100644
--- a/support.h
+++ b/support.h
@@ -10,7 +10,7 @@
#define GPTFDISK_VERSION "0.8.10"
-#if defined (__FreeBSD__) || defined (__FreeBSD_kernel__) || defined (__APPLE__)
+#if defined (__FreeBSD__) || defined (__FreeBSD_kernel__) || defined (__APPLE__) || defined(__HAIKU__)
// Darwin (Mac OS) & FreeBSD: disk IOCTLs are different, and there is no lseek64
#include <sys/disk.h>
#define lseek64 lseek
--
1.8.3.4

View File

@@ -0,0 +1,111 @@
From 67b231749b7fdd10bfb4cd7ff6244e4848bfb6a1 Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@gmail.com>
Date: Wed, 22 Oct 2014 21:47:40 +0200
Subject: Preliminary Haiku support.
diff --git a/diskio.h b/diskio.h
index 631a43a..e343cb9 100644
--- a/diskio.h
+++ b/diskio.h
@@ -29,7 +29,7 @@
#include <sys/dkio.h>
#endif
-#if defined (__FreeBSD__) || defined (__FreeBSD_kernel__) || defined (__APPLE__)
+#if defined (__FreeBSD__) || defined (__FreeBSD_kernel__) || defined (__APPLE__) || defined(__HAIKU__)
#define fstat64 fstat
#define stat64 stat
#endif
diff --git a/gptcurses.cc b/gptcurses.cc
index 6002077..4eb8aee 100644
--- a/gptcurses.cc
+++ b/gptcurses.cc
@@ -22,6 +22,7 @@
#include <iostream>
#include <string>
#include <sstream>
+#include <clocale>
#include <ncurses.h>
#include "gptcurses.h"
#include "support.h"
diff --git a/support.h b/support.h
index 7f691c3..b64cb16 100644
--- a/support.h
+++ b/support.h
@@ -16,6 +16,10 @@
#define lseek64 lseek
#endif
+#if defined(__HAIKU__)
+#define lseek64 lseek
+#endif
+
#if defined (__FreeBSD__) || defined (__FreeBSD_kernel__)
#define DEFAULT_GPT_TYPE 0xA503
#endif
--
1.8.3.4
From 43151ba0e882e40163086578d5b6fbda1ec543f5 Mon Sep 17 00:00:00 2001
From: fbrosson <fbrosson@localhost>
Date: Fri, 8 Apr 2016 21:24:56 +0000
Subject: Accept character devices on Haiku.
diff --git a/diskio-unix.cc b/diskio-unix.cc
index af71cdb..38568ed 100644
--- a/diskio-unix.cc
+++ b/diskio-unix.cc
@@ -75,6 +75,7 @@ int DiskIO::OpenForRead(void) {
if (S_ISDIR(st.st_mode))
cerr << "The specified path is a directory!\n";
#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) \
+ && !defined(__HAIKU__) \
&& !defined(__APPLE__)
else if (S_ISCHR(st.st_mode))
cerr << "The specified path is a character device!\n";
--
2.7.0
From ce3cdab4d24c693a97912c2550a6ace6a068836f Mon Sep 17 00:00:00 2001
From: fbrosson <fbrosson@localhost>
Date: Fri, 8 Apr 2016 21:24:56 +0000
Subject: Use the correct CRC32 polynom on big-endian architectures.
diff --git a/crc32.cc b/crc32.cc
index d253dd9..8da42ed 100644
--- a/crc32.cc
+++ b/crc32.cc
@@ -16,6 +16,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
+#include <posix/endian.h>
#include "crc32.h"
/* crc_tab[] -- this crcTable is being build by chksum_crc32GenTab().
@@ -52,7 +53,17 @@ void chksum_crc32gentab ()
unsigned long crc, poly;
int i, j;
+#if defined( BYTE_ORDER )
+# if defined( LITTLE_ENDIAN ) && (BYTE_ORDER == LITTLE_ENDIAN)
poly = 0xEDB88320L;
+# elif defined( BIG_ENDIAN ) && (BYTE_ORDER == BIG_ENDIAN)
+ poly = 0x04C11DB7L;
+# else
+# error Unknown byte-order
+# endif
+#else
+#error Undefined byte-order
+#endif
for (i = 0; i < 256; i++)
{
crc = i;
--
2.7.0