Skip to contentSkip to conversation

block: Drop unmaintained 'archipelago' driver

PATCH Applied Eric Blake 4 participants 6 messages Mar 8, 2017 – Mar 9, 2017 Block layer

lore
Share & tools
lore

Eric Blake

author
#0 lore raw

PATCH 1/1 block: Drop unmaintained 'archipelago' driver

The driver has failed to build since commit da34e65, in qemu 2.6, due to a missing include of qapi/error.h for error_setg(). Since no one has complained in three releases, it is easier to remove the dead code than to keep it around, especially since it is not being built by default and therefore prone to bitrot.

---

My proposed alternative for Max's "block/archipelago: Make it compile"

 qapi/block-core.json             |   33 +-
 block/archipelago.c              | 1079 --------------------------------------
 MAINTAINERS                      |    8 -
 block/Makefile.objs              |    2 -
 configure                        |   43 --
 tests/qemu-iotests/025           |    2 +-
 tests/qemu-iotests/common        |    6 -
 tests/qemu-iotests/common.filter |    4 +-
 tests/qemu-iotests/common.rc     |    8 -
 9 files changed, 4 insertions(+), 1181 deletions(-)
 delete mode 100644 block/archipelago.c
qapi/block-core.json +2 -31
index e8aeb8e..8c15107 100644
@@ -251,6 +251,7 @@
 #       2.5: 'host_floppy' dropped
 #       2.6: 'luks' added
 #       2.8: 'replication' added, 'tftp' dropped
+#       2.9: 'archipelago' dropped
 #
 # @backing_file: #optional the name of the backing file (for copy-on-write)
 #
@@ -2129,7 +2130,7 @@
 # Since: 2.0
 ##
 { 'enum': 'BlockdevDriver',
-  'data': [ 'archipelago', 'blkdebug', 'blkverify', 'bochs', 'cloop',
+  'data': [ 'blkdebug', 'blkverify', 'bochs', 'cloop',
             'dmg', 'file', 'ftp', 'ftps', 'gluster', 'host_cdrom',
             'host_device', 'http', 'https', 'iscsi', 'luks', 'nbd', 'nfs',
             'null-aio', 'null-co', 'parallels', 'qcow', 'qcow2', 'qed',
@@ -2343,35 +2344,6 @@
 
 
 ##
-# @BlockdevOptionsArchipelago:
-#
-# Driver specific block device options for Archipelago.
-#
-# @volume:              Name of the Archipelago volume image
-#
-# @mport:               #optional The port number on which mapperd is
-#                       listening. This is optional
-#                       and if not specified, QEMU will make Archipelago
-#                       use the default port (1001).
-#
-# @vport:               #optional The port number on which vlmcd is
-#                       listening. This is optional
-#                       and if not specified, QEMU will make Archipelago
-#                       use the default port (501).
-#
-# @segment:             #optional The name of the shared memory segment
-#                       Archipelago stack is using. This is optional
-#                       and if not specified, QEMU will make Archipelago
-#                       use the default value, 'archipelago'.
-# Since: 2.2
-##
-{ 'struct': 'BlockdevOptionsArchipelago',
-  'data': { 'volume': 'str',
-            '*mport': 'int',
-            '*vport': 'int',
-            '*segment': 'str' } }
-
-##
 # @BlockdevOptionsSsh:
 #
 # @server:              host address
@@ -2911,7 +2883,6 @@
             '*detect-zeroes': 'BlockdevDetectZeroesOptions' },
   'discriminator': 'driver',
   'data': {
-      'archipelago':'BlockdevOptionsArchipelago',
       'blkdebug':   'BlockdevOptionsBlkdebug',
       'blkverify':  'BlockdevOptionsBlkverify',
       'bochs':      'BlockdevOptionsGenericFormat',
block/archipelago.c deleted +0 -1079

1,079 lines not on this page · raw message

MAINTAINERS +0 -8
index e3edd04..bf1aafb 100644
@@ -1674,14 +1674,6 @@ S: Supported
 F: block/ssh.c
 T: git git://github.com/codyprime/qemu-kvm-jtc.git block
 
-ARCHIPELAGO
-M: Chrysostomos Nanakos <[email protected]>
-M: Jeff Cody <[email protected]>
-L: [email protected]
-S: Maintained
-F: block/archipelago.c
-T: git git://github.com/codyprime/qemu-kvm-jtc.git block
-
 CURL
 M: Jeff Cody <[email protected]>
 L: [email protected]
block/Makefile.objs +0 -2
index c6bd14e..de96f8ee 100644
@@ -19,7 +19,6 @@ block-obj-$(CONFIG_LIBNFS) += nfs.o
 block-obj-$(CONFIG_CURL) += curl.o
 block-obj-$(CONFIG_RBD) += rbd.o
 block-obj-$(CONFIG_GLUSTERFS) += gluster.o
-block-obj-$(CONFIG_ARCHIPELAGO) += archipelago.o
 block-obj-$(CONFIG_LIBSSH2) += ssh.o
 block-obj-y += accounting.o dirty-bitmap.o
 block-obj-y += write-threshold.o
@@ -41,7 +40,6 @@ gluster.o-cflags   := $(GLUSTERFS_CFLAGS)
 gluster.o-libs     := $(GLUSTERFS_LIBS)
 ssh.o-cflags       := $(LIBSSH2_CFLAGS)
 ssh.o-libs         := $(LIBSSH2_LIBS)
-archipelago.o-libs := $(ARCHIPELAGO_LIBS)
 block-obj-$(if $(CONFIG_BZIP2),m,n) += dmg-bz2.o
 dmg-bz2.o-libs     := $(BZIP2_LIBS)
 qcow.o-libs        := -lz
configure +0 -43

79 lines not on this page · raw message

tests/qemu-iotests/025 +1 -1
index c41370f..f5e672e 100755
@@ -39,7 +39,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
 . ./common.pattern
 
 _supported_fmt raw qcow2 qed
-_supported_proto file sheepdog rbd nfs archipelago
+_supported_proto file sheepdog rbd nfs
 _supported_os Linux
 
 echo "=== Creating image"
tests/qemu-iotests/common +0 -6
index b6274be..4d5650d 100644
@@ -156,7 +156,6 @@ check options
     -nbd                test nbd
     -ssh                test ssh
     -nfs                test nfs
-    -archipelago        test archipelago
     -luks               test luks
     -xdiff              graphical mode diff
     -nocache            use O_DIRECT on backing file
@@ -271,11 +270,6 @@ testlist options
             xpand=false
             ;;
 
-        -archipelago)
-            IMGPROTO=archipelago
-            xpand=false
-            ;;
-
         -nocache)
             CACHEMODE="none"
             CACHEMODE_IS_DEFAULT=false
tests/qemu-iotests/common.filter +1 -3
index 4befd86..1040013 100644
@@ -112,7 +112,6 @@ _filter_img_create()
         -e "s# block_size=[0-9]\\+##g" \
         -e "s# block_state_zero=\\(on\\|off\\)##g" \
         -e "s# log_size=[0-9]\\+##g" \
-        -e "s/archipelago:a/TEST_DIR\//g" \
         -e "s# refcount_bits=[0-9]\\+##g" \
         -e "s# key-secret=[a-zA-Z0-9]\\+##g"
 }
@@ -136,8 +135,7 @@ _filter_img_info()
         -e "/lazy_refcounts: \\(on\\|off\\)/d" \
         -e "/block_size: [0-9]\\+/d" \
         -e "/block_state_zero: \\(on\\|off\\)/d" \
-        -e "/log_size: [0-9]\\+/d" \
-        -e "s/archipelago:a/TEST_DIR\//g"
+        -e "/log_size: [0-9]\\+/d"
 }
 
 # filter out offsets and file names from qemu-img map
tests/qemu-iotests/common.rc +0 -8
index 08065dc..7d4781d 100644
@@ -70,8 +70,6 @@ if [ "$IMGOPTSSYNTAX" = "true" ]; then
     elif [ "$IMGPROTO" = "nfs" ]; then
         TEST_DIR="$DRIVER,file.driver=nfs,file.filename=nfs://127.0.0.1/$TEST_DIR"
         TEST_IMG=$TEST_DIR/t.$IMGFMT
-    elif [ "$IMGPROTO" = "archipelago" ]; then
-        TEST_IMG="$DRIVER,file.driver=archipelago,file.volume=:at.$IMGFMT"
     else
         TEST_IMG="$DRIVER,file.driver=$IMGPROTO,file.filename=$TEST_DIR/t.$IMGFMT"
     fi
@@ -87,8 +85,6 @@ else
     elif [ "$IMGPROTO" = "nfs" ]; then
         TEST_DIR="nfs://127.0.0.1/$TEST_DIR"
         TEST_IMG=$TEST_DIR/t.$IMGFMT
-    elif [ "$IMGPROTO" = "archipelago" ]; then
-        TEST_IMG="archipelago:at.$IMGFMT"
     else
         TEST_IMG=$IMGPROTO:$TEST_DIR/t.$IMGFMT
     fi
@@ -215,10 +211,6 @@ _cleanup_test_img()
             rbd --no-progress rm "$TEST_DIR/t.$IMGFMT" > /dev/null
             ;;
 
-        archipelago)
-            vlmc remove "at.$IMGFMT" > /dev/null
-            ;;
-
         sheepdog)
             collie vdi delete "$TEST_DIR/t.$IMGFMT"
             ;;
Signature · 1 line
2.9.3
Reviewed-by on v1 1/1
#1 lore raw
Quoted 11 lines · Eric Blake

The driver has failed to build since commit da34e65, in qemu 2.6, due to a missing include of qapi/error.h for error_setg(). Since no one has complained in three releases, it is easier to remove the dead code than to keep it around, especially since it is not being built by default and therefore prone to bitrot.

---

My proposed alternative for Max's "block/archipelago: Make it compile"

Quoted 11 lines
 qapi/block-core.json             |   33 +-
 block/archipelago.c              | 1079 --------------------------------------
 MAINTAINERS                      |    8 -
 block/Makefile.objs              |    2 -
 configure                        |   43 --
 tests/qemu-iotests/025           |    2 +-
 tests/qemu-iotests/common        |    6 -
 tests/qemu-iotests/common.filter |    4 +-
 tests/qemu-iotests/common.rc     |    8 -
 9 files changed, 4 insertions(+), 1181 deletions(-)
 delete mode 100644 block/archipelago.c

But I'd like someone to confirm that I'm not the only one who can't compile archipelago. ;-)

Max

author
#2 lore raw
Quoted 24 lines · Max Reitz
Quoted 11 lines · Eric Blake

The driver has failed to build since commit da34e65, in qemu 2.6, due to a missing include of qapi/error.h for error_setg(). Since no one has complained in three releases, it is easier to remove the dead code than to keep it around, especially since it is not being built by default and therefore prone to bitrot.

---

My proposed alternative for Max's "block/archipelago: Make it compile"

Quoted 11 lines
 qapi/block-core.json             |   33 +-
 block/archipelago.c              | 1079 --------------------------------------
 MAINTAINERS                      |    8 -
 block/Makefile.objs              |    2 -
 configure                        |   43 --
 tests/qemu-iotests/025           |    2 +-
 tests/qemu-iotests/common        |    6 -
 tests/qemu-iotests/common.filter |    4 +-
 tests/qemu-iotests/common.rc     |    8 -
 9 files changed, 4 insertions(+), 1181 deletions(-)
 delete mode 100644 block/archipelago.c
Quoted 4 lines

But I'd like someone to confirm that I'm not the only one who can't compile archipelago. ;-)

With my proposed patch not installed, I tried:

./config.status --enable-archipelago

but got the error:

ERROR: User requested feature Archipelago backend support
configure was not able to find it. Install libxseg devel

I don't see libxseg-devel available for Fedora; where does one get it to even attempt compilation?

Signature · 2 lines
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org
#3 lore raw
Quoted 36 lines · Eric Blake
Quoted 24 lines · Max Reitz
Quoted 11 lines · Eric Blake

The driver has failed to build since commit da34e65, in qemu 2.6, due to a missing include of qapi/error.h for error_setg(). Since no one has complained in three releases, it is easier to remove the dead code than to keep it around, especially since it is not being built by default and therefore prone to bitrot.

---

My proposed alternative for Max's "block/archipelago: Make it compile"

Quoted 11 lines
 qapi/block-core.json             |   33 +-
 block/archipelago.c              | 1079 --------------------------------------
 MAINTAINERS                      |    8 -
 block/Makefile.objs              |    2 -
 configure                        |   43 --
 tests/qemu-iotests/025           |    2 +-
 tests/qemu-iotests/common        |    6 -
 tests/qemu-iotests/common.filter |    4 +-
 tests/qemu-iotests/common.rc     |    8 -
 9 files changed, 4 insertions(+), 1181 deletions(-)
 delete mode 100644 block/archipelago.c
Quoted 4 lines

But I'd like someone to confirm that I'm not the only one who can't compile archipelago. ;-)

With my proposed patch not installed, I tried:

./config.status --enable-archipelago

but got the error:

Quoted 7 lines

ERROR: User requested feature Archipelago backend support
configure was not able to find it. Install libxseg devel

I don't see libxseg-devel available for Fedora; where does one get it to even attempt compilation?

I got it from https://github.com/grnet/libxseg, and got it to compile by removing all "python" instances from CMakeLists.txt (including the find_program() blocks).

Max

Reviewed-by
#4 lore raw
Quoted 42 lines · Max Reitz
Quoted 41 lines · Eric Blake
Quoted 24 lines · Max Reitz
Quoted 11 lines · Eric Blake

The driver has failed to build since commit da34e65, in qemu 2.6, due to a missing include of qapi/error.h for error_setg(). Since no one has complained in three releases, it is easier to remove the dead code than to keep it around, especially since it is not being built by default and therefore prone to bitrot.

---

My proposed alternative for Max's "block/archipelago: Make it compile"

Quoted 11 lines
 qapi/block-core.json             |   33 +-
 block/archipelago.c              | 1079 --------------------------------------
 MAINTAINERS                      |    8 -
 block/Makefile.objs              |    2 -
 configure                        |   43 --
 tests/qemu-iotests/025           |    2 +-
 tests/qemu-iotests/common        |    6 -
 tests/qemu-iotests/common.filter |    4 +-
 tests/qemu-iotests/common.rc     |    8 -
 9 files changed, 4 insertions(+), 1181 deletions(-)
 delete mode 100644 block/archipelago.c
Quoted 4 lines

But I'd like someone to confirm that I'm not the only one who can't compile archipelago. ;-)

With my proposed patch not installed, I tried:

./config.status --enable-archipelago

but got the error:

ERROR: User requested feature Archipelago backend support
configure was not able to find it. Install libxseg devel

Quoted 6 lines
Quoted 2 lines

I don't see libxseg-devel available for Fedora; where does one get it to even attempt compilation?

I got it from https://github.com/grnet/libxseg, and got it to compile by removing all "python" instances from CMakeLists.txt (including the find_program() blocks).

Well, if a dependent library is not found in any mainstream repo (including user contributed repos such as AUR and copr), I'm all for not maintaining it in QEMU.

Applied
#5 lore raw
In reply to Eric Blake

Am 08.03.2017 um 21:02 hat Eric Blake geschrieben:

Quoted 7 lines

The driver has failed to build since commit da34e65, in qemu 2.6, due to a missing include of qapi/error.h for error_setg(). Since no one has complained in three releases, it is easier to remove the dead code than to keep it around, especially since it is not being built by default and therefore prone to bitrot.

Thanks, applied to the block branch.

Kevin