Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Sep 2023 11:37:52 GMT
From:      Ed Maste <emaste@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 84696cf10c73 - main - makefs: remove ISO9660 Archimedes extension support
Message-ID:  <202309201137.38KBbqRl003500@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by emaste:

URL: https://cgit.FreeBSD.org/src/commit/?id=84696cf10c7391651198294676e9227ec01440bb

commit 84696cf10c7391651198294676e9227ec01440bb
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2023-03-30 16:30:44 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2023-09-20 11:37:19 +0000

    makefs: remove ISO9660 Archimedes extension support
    
    We have no need to create ISO images with RISC OS specific metadata.
    
    Reviewed by:    imp
    Relnotes:       yes
    Obtained from:  OpenBSD a435da44c07f
    Sponsored by:   The FreeBSD Foundation
    Differential Revision: https://reviews.freebsd.org/D39344
---
 usr.sbin/makefs/cd9660.c                   |  20 +----
 usr.sbin/makefs/cd9660.h                   |   1 -
 usr.sbin/makefs/cd9660/Makefile.inc        |   2 +-
 usr.sbin/makefs/cd9660/cd9660_archimedes.c | 124 -----------------------------
 usr.sbin/makefs/cd9660/cd9660_archimedes.h |  50 ------------
 usr.sbin/makefs/makefs.8                   |   9 +--
 6 files changed, 4 insertions(+), 202 deletions(-)

diff --git a/usr.sbin/makefs/cd9660.c b/usr.sbin/makefs/cd9660.c
index cc56421a873c..3429e2a33b4c 100644
--- a/usr.sbin/makefs/cd9660.c
+++ b/usr.sbin/makefs/cd9660.c
@@ -108,7 +108,6 @@
 #include "makefs.h"
 #include "cd9660.h"
 #include "cd9660/iso9660_rrip.h"
-#include "cd9660/cd9660_archimedes.h"
 
 static void cd9660_finalize_PVD(iso9660_disk *);
 static cd9660node *cd9660_allocate_cd9660node(void);
@@ -201,7 +200,6 @@ cd9660_set_defaults(iso9660_disk *diskStructure)
 	diskStructure->rock_ridge_move_count = 0;
 	diskStructure->rr_moved_dir = 0;
 
-	diskStructure->archimedes_enabled = 0;
 	diskStructure->chrp_boot = 0;
 
 	diskStructure->include_padding_areas = 1;
@@ -281,8 +279,6 @@ cd9660_prep_opts(fsinfo_t *fsopts)
 		    "Omit trailing periods in filenames"),
 		OPT_BOOL('\0', "allow-lowercase", allow_lowercase,
 		    "Allow lowercase characters in filenames"),
-		OPT_BOOL('\0', "archimedes", archimedes_enabled,
-		    "Enable Archimedes structure"),
 		OPT_BOOL('\0', "no-trailing-padding", include_padding_areas,
 		    "Include padding areas"),
 
@@ -528,10 +524,6 @@ cd9660_makefs(const char *image, const char *dir, fsnode *root,
 	if (diskStructure->verbose_level > 0)
 		printf("%s: done converting tree\n", __func__);
 
-	/* non-SUSP extensions */
-	if (diskStructure->archimedes_enabled)
-		archimedes_convert_tree(diskStructure->rootNode);
-
 	/* Rock ridge / SUSP init pass */
 	if (diskStructure->rock_ridge_enabled) {
 		cd9660_susp_initialize(diskStructure, diskStructure->rootNode,
@@ -1599,11 +1591,6 @@ cd9660_level1_convert_filename(iso9660_disk *diskStructure, const char *oldname,
 				found_ext = 1;
 			}
 		} else {
-			/* cut RISC OS file type off ISO name */
-			if (diskStructure->archimedes_enabled &&
-			    *oldname == ',' && strlen(oldname) == 4)
-				break;
-
 			/* Enforce 12.3 / 8 */
 			if (namelen == 8 && !found_ext)
 				break;
@@ -1666,12 +1653,7 @@ cd9660_level2_convert_filename(iso9660_disk *diskStructure, const char *oldname,
 				found_ext = 1;
 			}
 		} else {
-			/* cut RISC OS file type off ISO name */
-			if (diskStructure->archimedes_enabled &&
-			    *oldname == ',' && strlen(oldname) == 4)
-				break;
-
-			 if (islower((unsigned char)*oldname))
+			if (islower((unsigned char)*oldname))
 				*newname++ = toupper((unsigned char)*oldname);
 			else if (isupper((unsigned char)*oldname) ||
 			    isdigit((unsigned char)*oldname))
diff --git a/usr.sbin/makefs/cd9660.h b/usr.sbin/makefs/cd9660.h
index b7324322d383..bc826a414a6d 100644
--- a/usr.sbin/makefs/cd9660.h
+++ b/usr.sbin/makefs/cd9660.h
@@ -250,7 +250,6 @@ typedef struct _iso9660_disk {
 	unsigned rock_ridge_move_count;
 	cd9660node *rr_moved_dir;
 
-	int archimedes_enabled;
 	int chrp_boot;
 
 	/* Spec breaking options */
diff --git a/usr.sbin/makefs/cd9660/Makefile.inc b/usr.sbin/makefs/cd9660/Makefile.inc
index e596309a6243..ec949f1413dc 100644
--- a/usr.sbin/makefs/cd9660/Makefile.inc
+++ b/usr.sbin/makefs/cd9660/Makefile.inc
@@ -3,4 +3,4 @@
 CFLAGS+=-I${SRCTOP}/sys/fs/cd9660/
 
 SRCS+=	cd9660_strings.c cd9660_debug.c cd9660_eltorito.c \
-	cd9660_write.c cd9660_conversion.c iso9660_rrip.c cd9660_archimedes.c
+	cd9660_write.c cd9660_conversion.c iso9660_rrip.c
diff --git a/usr.sbin/makefs/cd9660/cd9660_archimedes.c b/usr.sbin/makefs/cd9660/cd9660_archimedes.c
deleted file mode 100644
index 93560da40d54..000000000000
--- a/usr.sbin/makefs/cd9660/cd9660_archimedes.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/* $NetBSD: cd9660_archimedes.c,v 1.1 2009/01/10 22:06:29 bjh21 Exp $ */
-
-/*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
- * Copyright (c) 1998, 2009 Ben Harris
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-/*
- * cd9660_archimedes.c - support for RISC OS "ARCHIMEDES" extension
- *
- * RISC OS CDFS looks for a special block at the end of the System Use
- * Field for each file.  If present, this contains the RISC OS load
- * and exec address (used to hold the file timestamp and type), the
- * file attributes, and a flag indicating whether the first character
- * of the filename should be replaced with '!' (since many special
- * RISC OS filenames do).
- */
-
-#include <sys/cdefs.h>
-#include <assert.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <string.h>
-#include <util.h>
-
-#include "makefs.h"
-#include "cd9660.h"
-#include "cd9660_archimedes.h"
-
-/*
- * Convert a Unix time_t (non-leap seconds since 1970-01-01) to a RISC
- * OS time (non-leap(?) centiseconds since 1900-01-01(?)).
- */
-
-static u_int64_t
-riscos_date(time_t unixtime)
-{
-	u_int64_t base;
-
-	base = 31536000ULL * 70 + 86400 * 17;
-	return (((u_int64_t)unixtime) + base)*100;
-}
-
-/*
- * Add "ARCHIMEDES" metadata to a node if that seems appropriate.
- *
- * We touch regular files with names matching /,[0-9a-f]{3}$/ and
- * directories matching /^!/.
- */
-static void
-archimedes_convert_node(cd9660node *node)
-{
-	struct ISO_ARCHIMEDES *arc;
-	size_t len;
-	int type = -1;
-	uint64_t stamp;
-
-	if (node->su_tail_data != NULL)
-		/* Something else already has the tail. */
-		return;
-
-	len = strlen(node->node->name);
-	if (len < 1) return;
-
-	if (len >= 4 && node->node->name[len-4] == ',')
-		/* XXX should support ,xxx and ,lxa */
-		type = strtoul(node->node->name + len - 3, NULL, 16);
-	if (type == -1 && node->node->name[0] != '!')
-		return;
-	if (type == -1) type = 0;
-
-	assert(sizeof(*arc) == 32);
-	arc = ecalloc(1, sizeof(*arc));
-
-	stamp = riscos_date(node->node->inode->st.st_mtime);
-
-	memcpy(arc->magic, "ARCHIMEDES", 10);
-	cd9660_731(0xfff00000 | (type << 8) | (stamp >> 32), arc->loadaddr);
-	cd9660_731(stamp & 0x00ffffffffULL, arc->execaddr);
-	arc->ro_attr = RO_ACCESS_UR | RO_ACCESS_OR;
-	arc->cdfs_attr = node->node->name[0] == '!' ? CDFS_PLING : 0;
-	node->su_tail_data = (void *)arc;
-	node->su_tail_size = sizeof(*arc);
-}
-
-/*
- * Add "ARCHIMEDES" metadata to an entire tree recursively.
- */
-void
-archimedes_convert_tree(cd9660node *node)
-{
-	cd9660node *cn;
-
-	assert(node != NULL);
-
-	archimedes_convert_node(node);
-
-		/* Recurse on children. */
-	TAILQ_FOREACH(cn, &node->cn_children, cn_next_child)
-		archimedes_convert_tree(cn);
-}
diff --git a/usr.sbin/makefs/cd9660/cd9660_archimedes.h b/usr.sbin/makefs/cd9660/cd9660_archimedes.h
deleted file mode 100644
index 0766a940bb35..000000000000
--- a/usr.sbin/makefs/cd9660/cd9660_archimedes.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* $NetBSD: cd9660_archimedes.h,v 1.1 2009/01/10 22:06:29 bjh21 Exp $ */
-
-/*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
- * Copyright (c) 1998, 2009 Ben Harris
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-/*
- * cd9660_archimedes.c - support for RISC OS "ARCHIMEDES" extension
- */
-
-struct ISO_ARCHIMEDES {
-	char		magic[10];	/* "ARCHIMEDES" */
-	unsigned char	loadaddr[4];	/* Load address, little-endian */
-	unsigned char	execaddr[4];	/* Exec address, little-endian */
-	unsigned char	ro_attr;	/* RISC OS attributes */
-#define RO_ACCESS_UR	0x01 /* Owner read */
-#define RO_ACCESS_UW	0x02 /* Owner write */
-#define RO_ACCESS_L	0x04 /* Locked */
-#define RO_ACCESS_OR	0x10 /* Public read */
-#define RO_ACCESS_OW	0x20 /* Public write */
-	unsigned char	cdfs_attr;	/* Extra attributes for CDFS */
-#define CDFS_PLING	0x01	/* Filename begins with '!' */
-	char		reserved[12];
-};
-
-extern void archimedes_convert_tree(cd9660node *);
diff --git a/usr.sbin/makefs/makefs.8 b/usr.sbin/makefs/makefs.8
index 2ffa512a3b9e..eaa0ab2955df 100644
--- a/usr.sbin/makefs/makefs.8
+++ b/usr.sbin/makefs/makefs.8
@@ -33,7 +33,8 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\" POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd August 5, 2022
+.Dd March 31, 2023
+
 .Dt MAKEFS 8
 .Os
 .Sh NAME
@@ -365,12 +366,6 @@ version id.
 Allow multiple dots in a filename.
 .It Sy applicationid
 Application ID of the image.
-.It Sy archimedes
-Use the
-.Ql ARCHIMEDES
-extension to encode
-.Tn RISC OS
-metadata.
 .It Sy bootimagedir
 Boot image directory.
 This option is not implemented.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202309201137.38KBbqRl003500>