Source: openafs
Version: 1.6.20-2+deb9u2
Severity: normal
Tags: patch, ftbfs, stretch

It would be nice if openafs were to be available on ARM64 architecture 
in Debian Stretch and Ubuntu Bionic.

The OpenStack Infrastructure project in particular would benefit from 
this package suite being available.
diff --git a/debian/control b/debian/control
index 2adc3f2..171ef43 100644
--- a/debian/control
+++ b/debian/control
@@ -15,7 +15,7 @@ Vcs-Git: git://anonscm.debian.org/pkg-k5-afs/openafs.git
 Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-k5-afs/openafs.git
 
 Package: openafs-client
-Architecture: alpha amd64 arm armel armhf i386 ia64 powerpc powerpcspe ppc64 
s390 s390x sparc
+Architecture: alpha amd64 arm arm64 armel armhf i386 ia64 powerpc powerpcspe 
ppc64 s390 s390x sparc
 Depends: ${shlibs:Depends}, ${misc:Depends}, lsb-base (>= 3.0-6)
 Recommends: lsof, openafs-modules-dkms (>= ${source:Version})
  | openafs-modules-source (>= ${source:Version})
@@ -34,7 +34,7 @@ Description: AFS distributed filesystem client support
 
 Package: openafs-fuse
 Priority: extra
-Architecture: alpha amd64 arm armel armhf i386 ia64 powerpc ppc64 s390 s390x 
sparc
+Architecture: alpha amd64 arm arm64 armel armhf i386 ia64 powerpc ppc64 s390 
s390x sparc
 Depends: ${shlibs:Depends}, ${misc:Depends},
  openafs-client (= ${binary:Version})
 Description: AFS distributed file system experimental FUSE client
@@ -50,7 +50,7 @@ Description: AFS distributed file system experimental FUSE 
client
 
 Package: openafs-kpasswd
 Priority: extra
-Architecture: alpha amd64 arm armel armhf i386 ia64 powerpc powerpcspe ppc64 
s390 s390x sparc
+Architecture: alpha amd64 arm arm64 armel armhf i386 ia64 powerpc powerpcspe 
ppc64 s390 s390x sparc
 Depends: ${shlibs:Depends}, ${misc:Depends},
  openafs-client (= ${binary:Version})
 Conflicts: krb5-user, heimdal-clients, kerberos4kth-clients
@@ -65,7 +65,7 @@ Description: AFS distributed filesystem old password changing
  package for new cells or for cells using Kerberos v5.
 
 Package: openafs-fileserver
-Architecture: alpha amd64 arm armel armhf i386 ia64 powerpc powerpcspe ppc64 
s390 s390x sparc
+Architecture: alpha amd64 arm arm64 armel armhf i386 ia64 powerpc powerpcspe 
ppc64 s390 s390x sparc
 Depends: ${shlibs:Depends}, ${misc:Depends}, lsb-base (>= 3.0-6), 
openafs-client
 Recommends: ntp | time-daemon
 Suggests: openafs-doc
@@ -78,7 +78,7 @@ Description: AFS distributed filesystem file server
  installed on any machine that will export files into AFS.
 
 Package: openafs-dbserver
-Architecture: alpha amd64 arm armel armhf i386 ia64 powerpc powerpcspe ppc64 
s390 s390x sparc
+Architecture: alpha amd64 arm arm64 armel armhf i386 ia64 powerpc powerpcspe 
ppc64 s390 s390x sparc
 Depends: ${shlibs:Depends}, ${perl:Depends}, ${misc:Depends},
  openafs-fileserver
 Recommends: openafs-client
@@ -106,7 +106,7 @@ Description: AFS distributed filesystem documentation
  protocol documentation, and other OpenAFS documentation.
 
 Package: openafs-krb5
-Architecture: alpha amd64 arm armel armhf i386 ia64 powerpc powerpcspe ppc64 
s390 s390x sparc
+Architecture: alpha amd64 arm arm64 armel armhf i386 ia64 powerpc powerpcspe 
ppc64 s390 s390x sparc
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Breaks: openafs-client (<< 1.4.7.dfsg1-1)
 Description: AFS distributed filesystem Kerberos 5 integration
@@ -121,7 +121,7 @@ Description: AFS distributed filesystem Kerberos 5 
integration
 
 Package: libkopenafs1
 Section: libs
-Architecture: alpha amd64 arm armel armhf i386 ia64 powerpc ppc64 s390 s390x 
sparc
+Architecture: alpha amd64 arm arm64 armel armhf i386 ia64 powerpc ppc64 s390 
s390x sparc
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: AFS distributed file system runtime library (PAGs)
  AFS is a distributed filesystem allowing cross-platform sharing of
@@ -134,7 +134,7 @@ Description: AFS distributed file system runtime library 
(PAGs)
 
 Package: libafsauthent1
 Section: libs
-Architecture: alpha amd64 arm armel armhf i386 ia64 powerpc ppc64 s390 s390x 
sparc
+Architecture: alpha amd64 arm arm64 armel armhf i386 ia64 powerpc ppc64 s390 
s390x sparc
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: AFS distributed file system runtime library (authentication)
  AFS is a distributed filesystem allowing cross-platform sharing of
@@ -146,7 +146,7 @@ Description: AFS distributed file system runtime library 
(authentication)
 
 Package: libafsrpc1
 Section: libs
-Architecture: alpha amd64 arm armel armhf i386 ia64 powerpc ppc64 s390 s390x 
sparc
+Architecture: alpha amd64 arm arm64 armel armhf i386 ia64 powerpc ppc64 s390 
s390x sparc
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: AFS distributed file system runtime library (RPC layer)
  AFS is a distributed filesystem allowing cross-platform sharing of
@@ -159,7 +159,7 @@ Description: AFS distributed file system runtime library 
(RPC layer)
 Package: libopenafs-dev
 Section: libdevel
 Priority: extra
-Architecture: alpha amd64 arm armel armhf i386 ia64 powerpc powerpcspe ppc64 
s390 s390x sparc
+Architecture: alpha amd64 arm arm64 armel armhf i386 ia64 powerpc powerpcspe 
ppc64 s390 s390x sparc
 Depends: ${shlibs:Depends}, ${misc:Depends},
  libafsauthent1 (= ${binary:Version}), libafsrpc1 (= ${binary:Version}),
  libkopenafs1 (= ${binary:Version}),
@@ -203,7 +203,7 @@ Description: AFS distributed filesystem kernel module DKMS 
source
  appropriate configuration for DKMS to build new modules dynamically.
 
 Package: libpam-openafs-kaserver
-Architecture: alpha amd64 arm armel armhf i386 ia64 powerpc powerpcspe ppc64 
s390 s390x sparc
+Architecture: alpha amd64 arm arm64 armel armhf i386 ia64 powerpc powerpcspe 
ppc64 s390 s390x sparc
 Section: admin
 Priority: extra
 Depends: ${shlibs:Depends}, ${misc:Depends},
diff --git a/debian/module/sysname b/debian/module/sysname
index b686ae8..e089dac 100755
--- a/debian/module/sysname
+++ b/debian/module/sysname
@@ -31,6 +31,13 @@ arm|armel|armhf|armv5tel)
         ;;
     esac
     ;;
+arm64)
+    case $KVERS in
+    2.6*)
+        echo arm64_linux26
+        ;;
+    esac
+    ;;
 i[3456]86)
     case $KVERS in
     2.2*)
diff --git a/debian/patches/arm64-build.patch b/debian/patches/arm64-build.patch
new file mode 100644
index 0000000..560596e
--- /dev/null
+++ b/debian/patches/arm64-build.patch
@@ -0,0 +1,35 @@
+--- a/src/packaging/Debian/sysname
++++ b/src/packaging/Debian/sysname
+@@ -12,6 +12,9 @@
+ arm|armel|armv5tel)
+     echo arm_linux26
+     ;;
++arm64)
++    echo arm64_linux26
++    ;;
+ amd64)
+     echo amd64_linux26
+     ;;
+--- a/src/config/afs_sysnames.h
++++ b/src/config/afs_sysnames.h
+@@ -370,6 +370,9 @@
+ #define SYS_NAME_ID_amd64_obsd53        4022
+ #define SYS_NAME_ID_amd64_obsd54        4023
+ 
++#define SYS_NAME_ID_arm64_linux2        4100
++#define SYS_NAME_ID_arm64_linux26       4103
++
+ /*
+  * Placeholder to keep system-wide standard flags since this file is included 
by all
+  * files (i.e in afs/param.h)
+--- a/src/cf/osconf.m4
++++ b/src/cf/osconf.m4
+@@ -76,7 +76,7 @@
+               SHLIB_LINKER="${MT_CC} -shared"
+               ;;
+ 
+-      arm_linux24 | arm_linux26)
++      arm_linux24 | arm_linux26 | arm64_linux26)
+               CCOBJ="${CC} -fPIC"
+               KERN_OPTMZ=-O2
+               MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
diff --git a/debian/patches/series b/debian/patches/series
index f88c86a..07209e8 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -11,3 +11,4 @@ AFS_component_version_number.c-Respect-SOURCE_DATE_E.patch
 openafs-sa-2018-001-stable16.patch
 openafs-sa-2018-002-stable16.patch
 openafs-sa-2018-003-stable16.patch
+arm64-build.patch
diff --git a/debian/sysname b/debian/sysname
index f6b2a51..a7181f5 100755
--- a/debian/sysname
+++ b/debian/sysname
@@ -12,6 +12,9 @@ alpha)
 arm|armel|armhf|armv5tel)
     echo arm_linux26
     ;;
+arm64)
+    echo arm64_linux26
+    ;;
 amd64)
     echo amd64_linux26
     ;;

Reply via email to