[PATCH 1/2] gnu: Add apsl2.0.

  • Done
  • quality assurance status badge
Details
2 participants
  • Pierre Neidhardt
  • zimoun
Owner
unassigned
Submitted by
Pierre Neidhardt
Severity
normal
P
P
Pierre Neidhardt wrote on 4 Apr 2019 18:48
(address . guix-patches@gnu.org)
20190404164814.26096-1-mail@ambrevar.xyz
* guix/licenses.scm (apsl2.0): New variable.
---
guix/licenses.scm | 6 ++++++
1 file changed, 6 insertions(+)

Toggle diff (26 lines)
diff --git a/guix/licenses.scm b/guix/licenses.scm
index 676e71acdb..623ec69898 100644
--- a/guix/licenses.scm
+++ b/guix/licenses.scm
@@ -34,6 +34,7 @@
#:use-module (srfi srfi-9)
#:export (license? license-name license-uri license-comment
agpl1 agpl3 agpl3+
+ apsl2.0
asl1.1 asl2.0
boost1.0
bsd-2 bsd-3 bsd-4
@@ -129,6 +130,11 @@
"https://gnu.org/licenses/agpl.html"
"https://gnu.org/licenses/why-affero-gpl.html"))
+(define apsl2.0
+ (license "APSL 2.0"
+ "https://opensource.apple.com/apsl/"
+ "Apple Public Source License 2.0"))
+
(define asl1.1
(license "ASL 1.1"
"http://directory.fsf.org/wiki/License:Apache1.1"
--
2.21.0
P
P
Pierre Neidhardt wrote on 4 Apr 2019 18:49
[PATCH 2/2] gnu: Add hfsprogs.
(address . 35147@debbugs.gnu.org)
20190404164954.26854-1-mail@ambrevar.xyz
* gnu/packages/linux.scm (hfsprogs): New variable.
---
gnu/packages/linux.scm | 54 +++++++
.../patches/hfsplus-tools-no-blocks.patch | 147 ++++++++++++++++++
2 files changed, 201 insertions(+)
create mode 100644 gnu/packages/patches/hfsplus-tools-no-blocks.patch

Toggle diff (226 lines)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 06bf8095be..dcc9e946a2 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -80,8 +80,10 @@
#:use-module (gnu packages gnuzilla)
#:use-module (gnu packages gperf)
#:use-module (gnu packages gtk)
+ #:use-module (gnu packages libbsd)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages libusb)
+ #:use-module (gnu packages llvm)
#:use-module (gnu packages man)
#:use-module (gnu packages maths)
#:use-module (gnu packages multiprecision)
@@ -5329,3 +5331,55 @@ have to construct the archives directly, without using the archiver.")
(description "inputattach dispatches input events from several device
types and interfaces and translates so that the X server can use them.")
(license license:gpl2+)))
+
+(define-public hfsprogs
+ (package
+ (name "hfsprogs")
+ (version "540.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ ;; The tarball from
+ ;; https://opensource.apple.com/tarballs/diskdev_cmds/
+ ;; does not contain any Makefile.
+ "http://cavan.codon.org.uk/~mjg59/diskdev_cmds/diskdev_cmds-"
+ version ".linux3.tar.gz"))
+ (sha256
+ (base32
+ "15sl9z1dafykj3b249z6a82p74ljqpgkvh97l0vbz8zrjwx206xh"))
+ ;; The patch cleans up the Makefile so we don't need clang, among others.
+ (patches (search-patches "hfsplus-tools-no-blocks.patch"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; No tests.
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'build
+ (lambda _
+ ;; FIXME: Weirdly enough, PWD points to the parent directory when
+ ;; expanded in the CFLAGS, which leads the build to fail with
+ ;; "missing.h" not found.
+ (invoke "make" "CC=gcc"
+ (string-append "PWD=" (getcwd)))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin/"))
+ (doc (string-append out "/share/man/man8")))
+ (mkdir-p bin)
+ (copy-file "newfs_hfs.tproj/newfs_hfs" (string-append bin "/mkfs.hfsplus"))
+ (copy-file "fsck_hfs.tproj/fsck_hfs" (string-append bin "/fsck.hfsplus"))
+ (mkdir-p doc)
+ (copy-file "newfs_hfs.tproj/newfs_hfs.8" (string-append doc "/mkfs.hfsplus.8"))
+ (copy-file "fsck_hfs.tproj/fsck_hfs.8" (string-append doc "/fsck.hfsplus.8"))))))))
+ (inputs
+ `(("openssl" ,openssl)))
+ (native-inputs
+ `(("libbsd" ,libbsd)
+ ("util-linux" ,util-linux)))
+ (home-page "https://opensource.apple.com/")
+ (synopsis "HFS/HFS+ file system tools")
+ (description "This package provides user space tools to create and check
+Apple HFS/HFS+ filesystems.")
+ (license license:apsl2.0)))
diff --git a/gnu/packages/patches/hfsplus-tools-no-blocks.patch b/gnu/packages/patches/hfsplus-tools-no-blocks.patch
new file mode 100644
index 0000000000..2017055744
--- /dev/null
+++ b/gnu/packages/patches/hfsplus-tools-no-blocks.patch
@@ -0,0 +1,147 @@
+diff -up diskdev_cmds-540.1.linux3/fsck_hfs.tproj/dfalib/SControl.c.jx diskdev_cmds-540.1.linux3/fsck_hfs.tproj/dfalib/SControl.c
+--- diskdev_cmds-540.1.linux3/fsck_hfs.tproj/dfalib/SControl.c.jx 2012-02-02 17:16:56.000000000 -0500
++++ diskdev_cmds-540.1.linux3/fsck_hfs.tproj/dfalib/SControl.c 2014-06-18 13:01:42.716781467 -0400
+@@ -200,6 +200,22 @@ isMinorError(int msg, int *counts)
+ }
+ }
+
++static int *msgCounts = NULL;
++static jmp_buf envBuf;
++
++static fsck_block_status_t
++fsckAfterCallback(fsck_ctx_t c, int msgNum, va_list args)
++{
++ if (abs(msgNum) > E_FirstError && abs(msgNum) < E_LastError) {
++ if (isMinorError(abs(msgNum), msgCounts) == 1)
++ return fsckBlockContinue;
++ longjmp(envBuf, 1);
++ return fsckBlockAbort;
++ } else {
++ return fsckBlockContinue;
++ }
++}
++
+ /*------------------------------------------------------------------------------
+
+ External
+@@ -207,7 +223,6 @@ External
+
+ ------------------------------------------------------------------------------*/
+
+-static jmp_buf envBuf;
+ int
+ CheckHFS( const char *rdevnode, int fsReadRef, int fsWriteRef, int checkLevel,
+ int repairLevel, fsck_ctx_t fsckContext, int lostAndFoundMode,
+@@ -222,7 +237,6 @@ CheckHFS( const char *rdevnode, int fsRe
+ int isJournaled = 0;
+ Boolean autoRepair;
+ Boolean exitEarly = 0;
+- __block int *msgCounts = NULL;
+ Boolean majorErrors = 0;
+
+ if (checkLevel == kMajorCheck) {
+@@ -292,16 +306,7 @@ CheckHFS( const char *rdevnode, int fsRe
+ * the message in question corresponds to a major or a minor error. If it's
+ * major, we longjmp just above, which causes us to exit out early.
+ */
+- fsckSetBlock(fsckContext, fsckPhaseAfterMessage, (fsckBlock_t) ^(fsck_ctx_t c, int msgNum, va_list args) {
+- if (abs(msgNum) > E_FirstError && abs(msgNum) < E_LastError) {
+- if (isMinorError(abs(msgNum), msgCounts) == 1)
+- return fsckBlockContinue;
+- longjmp(envBuf, 1);
+- return fsckBlockAbort;
+- } else {
+- return fsckBlockContinue;
+- }
+- });
++ fsckSetBlock(fsckContext, fsckPhaseAfterMessage, fsckAfterCallback);
+ }
+ }
+ DoAgain:
+diff -up diskdev_cmds-540.1.linux3/fsck_hfs.tproj/fsck_messages.c.jx diskdev_cmds-540.1.linux3/fsck_hfs.tproj/fsck_messages.c
+--- diskdev_cmds-540.1.linux3/fsck_hfs.tproj/fsck_messages.c.jx 2012-02-02 17:42:58.000000000 -0500
++++ diskdev_cmds-540.1.linux3/fsck_hfs.tproj/fsck_messages.c 2014-06-18 12:57:01.110952333 -0400
+@@ -29,7 +29,6 @@
+ #include <stdarg.h>
+ #include <string.h>
+ #include <assert.h>
+-#include <Block.h>
+
+ #include "fsck_messages.h"
+ #include "fsck_keys.h"
+@@ -287,20 +286,10 @@ fsckSetBlock(fsck_ctx_t c, fsck_block_ph
+ if (c != NULL) {
+ switch (phase) {
+ case fsckPhaseBeforeMessage:
+- if (ctx->preMessage) {
+- Block_release(ctx->preMessage);
+- ctx->preMessage = NULL;
+- }
+- if (bp)
+- ctx->preMessage = (fsckBlock_t)Block_copy(bp);
++ ctx->preMessage = bp;
+ break;
+ case fsckPhaseAfterMessage:
+- if (ctx->postMessage) {
+- Block_release(ctx->postMessage);
+- ctx->postMessage = NULL;
+- }
+- if (bp)
+- ctx->postMessage = (fsckBlock_t)Block_copy(bp);
++ ctx->postMessage = bp;
+ break;
+ case fsckPhaseNone:
+ /* Just here for compiler warnings */
+@@ -591,12 +580,6 @@ fsckDestroy(fsck_ctx_t c)
+ if (ctx->flags & cfFromFD) {
+ fclose(ctx->fp);
+ }
+- if (ctx->preMessage) {
+- Block_release(ctx->preMessage);
+- }
+- if (ctx->postMessage) {
+- Block_release(ctx->postMessage);
+- }
+
+ free(ctx);
+ return;
+diff -up diskdev_cmds-540.1.linux3/fsck_hfs.tproj/fsck_messages.h.jx diskdev_cmds-540.1.linux3/fsck_hfs.tproj/fsck_messages.h
+--- diskdev_cmds-540.1.linux3/fsck_hfs.tproj/fsck_messages.h.jx 2012-02-02 17:54:40.000000000 -0500
++++ diskdev_cmds-540.1.linux3/fsck_hfs.tproj/fsck_messages.h 2014-06-18 12:31:48.602094998 -0400
+@@ -139,7 +139,7 @@ typedef enum fsck_block_phase_type fsck_
+ * the third is a va_list of the arguments for the message.
+ */
+
+-typedef fsck_block_status_t (^fsckBlock_t)(fsck_ctx_t, int, va_list);
++typedef fsck_block_status_t (*fsckBlock_t)(fsck_ctx_t, int, va_list);
+
+ extern fsckBlock_t fsckGetBlock(fsck_ctx_t, fsck_block_phase_t);
+ extern void fsckSetBlock(fsck_ctx_t, fsck_block_phase_t, fsckBlock_t);
+diff -up diskdev_cmds-540.1.linux3/fsck_hfs.tproj/Makefile.lnx.jx diskdev_cmds-540.1.linux3/fsck_hfs.tproj/Makefile.lnx
+--- diskdev_cmds-540.1.linux3/fsck_hfs.tproj/Makefile.lnx.jx 2012-02-03 11:25:21.000000000 -0500
++++ diskdev_cmds-540.1.linux3/fsck_hfs.tproj/Makefile.lnx 2014-06-18 12:52:03.146015370 -0400
+@@ -4,7 +4,7 @@ OFILES = $(CFILES:.c=.o)
+ all: fsck_hfs
+
+ fsck_hfs: $(OFILES) dfalib/libdfa.a
+- $(CC) $(CFLAGS) $(LDFLAGS) $(OFILES) dfalib/libdfa.a -o fsck_hfs -lBlocksRunTime -lpthread
++ $(CC) $(CFLAGS) $(LDFLAGS) $(OFILES) dfalib/libdfa.a -o fsck_hfs -lpthread
+
+ dfalib/libdfa.a: FORCE
+ $(MAKE) -C dfalib -f Makefile.lnx libdfa.a
+diff -up diskdev_cmds-540.1.linux3/Makefile.jx diskdev_cmds-540.1.linux3/Makefile
+--- diskdev_cmds-540.1.linux3/Makefile.jx 2012-02-16 15:00:18.000000000 -0500
++++ diskdev_cmds-540.1.linux3/Makefile 2014-06-18 12:42:59.015463500 -0400
+@@ -1,9 +1,8 @@
+ VERSION=540.1.linux3
+
+-CC := clang
+-CFLAGS := -g3 -Wall -fblocks -I$(PWD)/BlocksRunTime -I$(PWD)/include -DDEBUG_BUILD=0 -D_FILE_OFFSET_BITS=64 -D LINUX=1 -D BSD=1 -D VERSION=\"$(VERSION)\"
+-LDFLAGS := -Wl,--build-id -L$(PWD)/BlocksRunTime
+-SUBDIRS := BlocksRunTime newfs_hfs.tproj fsck_hfs.tproj
++CFLAGS += -I$(PWD)/include -DDEBUG_BUILD=0 -D_FILE_OFFSET_BITS=64 -D LINUX=1 -D BSD=1 -D VERSION=\"$(VERSION)\"
++LDFLAGS := -Wl,--build-id
++SUBDIRS := newfs_hfs.tproj fsck_hfs.tproj
+
+ all clean:
+ for d in $(SUBDIRS); do $(MAKE) -C $$d -f Makefile.lnx $@; done
--
2.21.0
P
P
Pierre Neidhardt wrote on 4 Apr 2019 18:57
Re: bug#35147: Acknowledgement ([PATCH 1/2] gnu: Add apsl2.0.)
(address . 35147@debbugs.gnu.org)
87pnq1n1xb.fsf@ambrevar.xyz
I've got a weird issue with the Makefile:

Toggle snippet (3 lines)
CFLAGS += -I$(PWD)/include -DDEBUG_BUILD=0 -D_FILE_OFFSET_BITS=64 -D LINUX=1 -D BSD=1 -D VERSION=\"$(VERSION)\"

PWD is expanded to the parent directory of the current directory (what
the hell?!?), I had to force it to the current directory for it to
work. Any clue what's going on?

It seems to work beside that.

--
Pierre Neidhardt
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEUPM+LlsMPZAEJKvom9z0l6S7zH8FAlymN4AACgkQm9z0l6S7
zH+5Xwf6A3PBkAyCMSyZMb4C+H1OPiSEw6ESAt5bQv9amuwQ9p9gVKjfQE0tNGnO
aPTdM/15B/DAa7c3ftGJpFu4Wy6Vc8zFBN6h/8/mW9G4Rq1kY0T5PPXwHHkav+lZ
SXyGb4r1JVZ3sTysNDCREiM/AJJXUZdNla8AGjPxtMhTvhHph/iOuxXnVuMPzeyX
qn/Zcr9fN680/LCtgvt34j+sGop9XvP3vviR7OLDpfT6GAoDs5uK6ZliV9+laoTh
GE+604ItGeO6xcNvhFKXSLXi5gm3/RfokpicMgNtUI+tGs3/elYK42mt/8HcLzs6
uB1NxaBGvNrRic9qYM8YXUGwxkTJSw==
=436v
-----END PGP SIGNATURE-----

Z
Z
zimoun wrote on 7 Apr 2022 14:48
Re: bug#35147: [PATCH 1/2] gnu: Add apsl2.0.
(name . Pierre Neidhardt)(address . mail@ambrevar.xyz)(address . 35147@debbugs.gnu.org)
86a6cx2h5g.fsf_-_@gmail.com
Hi,

This old submission [1] is not merged yet.



On Thu, 04 Apr 2019 at 18:57, Pierre Neidhardt <mail@ambrevar.xyz> wrote:

Toggle quote (8 lines)
> I've got a weird issue with the Makefile:
>
> CFLAGS += -I$(PWD)/include -DDEBUG_BUILD=0 -D_FILE_OFFSET_BITS=64 -D LINUX=1 -D BSD=1 -D VERSION=\"$(VERSION)\"
>
> PWD is expanded to the parent directory of the current directory (what
> the hell?!?), I had to force it to the current directory for it to
> work. Any clue what's going on?

Is it the blocker?


Toggle quote (2 lines)
> It seems to work beside

I miss how it can work beside that.


What is the next step? Especially about the addition of the Apple
license to the guix/licenses.scm file.

Do we drop this submission? If not, what is missing for merging it?


Cheers,
simon
Z
Z
zimoun wrote on 19 May 2022 23:24
(name . Pierre Neidhardt)(address . mail@ambrevar.xyz)(address . 35147@debbugs.gnu.org)
86ee0p8bco.fsf_-_@gmail.com
Hi,

On Thu, 07 Apr 2022 at 14:48, zimoun <zimon.toutoune@gmail.com> wrote:
Toggle quote (9 lines)
> On Thu, 04 Apr 2019 at 18:57, Pierre Neidhardt <mail@ambrevar.xyz> wrote:

> This old submission [1] is not merged yet.
>
> 1: <http://issues.guix.gnu.org/issue/35147>
>

> Do we drop this submission? If not, what is missing for merging it?

I am proposing to drop this submission if no objection.


Cheers,
simon
Z
Z
zimoun wrote on 23 Jun 2022 11:22
(name . Pierre Neidhardt)(address . mail@ambrevar.xyz)(address . 35147@debbugs.gnu.org)
86k09791ka.fsf@gmail.com
Hi,

On Thu, 04 Apr 2019 at 18:48, Pierre Neidhardt <mail@ambrevar.xyz> wrote:
Toggle quote (2 lines)
> * guix/licenses.scm (apsl2.0): New variable.

Similar patch applied with 9c4aaa630d97f9f29ca1b732fb265bd583e83e02.


Cheers,
simon
Z
Z
zimoun wrote on 23 Jun 2022 11:23
(name . Pierre Neidhardt)(address . mail@ambrevar.xyz)(address . 35147-done@debbugs.gnu.org)
86h74b91jb.fsf_-_@gmail.com
Hi,

On Thu, 04 Apr 2019 at 18:49, Pierre Neidhardt <mail@ambrevar.xyz> wrote:
Toggle quote (3 lines)
> * gnu/packages/linux.scm (hfsprogs): New variable.
> ---

I am closing so no news.


Cheers,
simon
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 35147@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 35147
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch