CybOXProject / schemas

CybOX Schemas and Schema Development
42 stars 17 forks source link

Update ArchitectureTypeEnum in Linux Package Object #49

Closed ikiril01 closed 10 years ago

ikiril01 commented 11 years ago

Linux_Package_Object has a fairly limited ArchitectureTypeEnum, distinct from CodeObj:ProcessorTypeEnum. While these clearly serve separate purposes, having them in different XSD files will make it harder to ensure that they are up-to-date. Speaking of which, ArchitectureTypeEnum could do with i586, i686, x64_64, and armel - all architectures used in Linux packages. There may even be alpha and m68k boxes still out there.

bworrell commented 11 years ago

@ikiril01, are you proposing the combination of the ArchitectureTypeEnum and the ProcessorTypeEnum, putting them in the same schema file (common?) or just updating the ArchitectureTypeEnum to be more thorough?

I would imagine the enumeration including terms like this: http://en.wikipedia.org/wiki/List_of_Linux_supported_architectures

bworrell commented 11 years ago

Maybe better ideas for the enumeration:

Running dpkg-architecture -L generates the following output, though we probably don't want all of these:

uclibc-linux-armel
uclibc-linux-i386
uclibc-linux-ia64
uclibc-linux-alpha
uclibc-linux-amd64
uclibc-linux-armeb
uclibc-linux-arm
uclibc-linux-arm64
uclibc-linux-avr32
uclibc-linux-hppa
uclibc-linux-m32r
uclibc-linux-m68k
uclibc-linux-mips
uclibc-linux-mipsel
uclibc-linux-powerpc
uclibc-linux-ppc64
uclibc-linux-s390
uclibc-linux-s390x
uclibc-linux-sh3
uclibc-linux-sh3eb
uclibc-linux-sh5
uclibc-linux-sh4eb
uclibc-linux-sparc
uclibc-linux-sparc64
armhf
armel
powerpcspe
x32
lpia
i386
ia64
alpha
amd64
armeb
arm
arm64
avr32
hppa
m32r
m68k
mips
mipsel
powerpc
ppc64
s390
s390x
sh3
sh3eb
sh4
sh4eb
sparc
sparc64
kfreebsd-i386
kfreebsd-ia64
kfreebsd-alpha
kfreebsd-amd64
kfreebsd-armeb
kfreebsd-arm
kfreebsd-arm64
kfreebsd-avr32
kfreebsd-hppa
kfreebsd-m32r
kfreebsd-m68k
kfreebsd-mips
kfreebsd-mipsel
kfreebsd-powerpc
kfreebsd-ppc64
kfreebsd-s390
kfreebsd-s390x
kfreebsd-sh3
kfreebsd-sh3eb
kfreebsd-sh4
kfreebsd-sh4eb
kfreebsd-sparc
kfreebsd-sparc64
knetbsd-i386
knetbsd-ia64
knetbsd-alpha
knetbsd-amd64
knetbsd-armeb
knetbsd-arm
knetbsd-arm64
knetbsd-avr32
knetbsd-hppa
knetbsd-m32r
knetbsd-m68k
knetbsd-mips
knetbsd-mipsel
knetbsd-powerpc
knetbsd-ppc64
knetbsd-s390
knetbsd-s390x
knetbsd-sh3
knetbsd-sh3eb
knetbsd-sh4
knetbsd-sh4eb
knetbsd-sparc
knetbsd-sparc64
kopensolaris-i386
kopensolaris-ia64
kopensolaris-alpha
kopensolaris-amd64
kopensolaris-armeb
kopensolaris-arm
kopensolaris-arm64
kopensolaris-avr32
kopensolaris-hppa
kopensolaris-m32r
kopensolaris-m68k
kopensolaris-mips
kopensolaris-mipsel
kopensolaris-powerpc
kopensolaris-ppc64
kopensolaris-s390
kopensolaris-s390x
kopensolaris-sh3
kopensolaris-sh3eb
kopensolaris-sh4
kopensolaris-sh4eb
kopensolaris-sparc
kopensolaris-sparc64
hurd-i386
hurd-ia64
hurd-alpha
hurd-amd64
hurd-armeb
hurd-arm
hurd-arm64
hurd-avr32
hurd-hppa
hurd-m32r
hurd-m68k
hurd-mips
hurd-mipsel
hurd-powerpc
hurd-ppc64
hurd-s390
hurd-s390x
hurd-sh3
hurd-sh3eb
hurd-sh4
hurd-sh4eb
hurd-sparc
hurd-sparc64
darwin-i386
darwin-ia64
darwin-alpha
darwin-amd64
darwin-armeb
darwin-arm
darwin-arm64
darwin-avr32
darwin-hppa
darwin-m32r
darwin-m68k
darwin-mips
darwin-mipsel
darwin-powerpc
darwin-ppc64
darwin-s390
darwin-s390x
darwin-sh3
darwin-sh3eb
darwin-sh4
darwin-sh4eb
darwin-sparc
darwin-sparc64
freebsd-i386
freebsd-ia64
freebsd-alpha
freebsd-amd64
freebsd-armeb
freebsd-arm
freebsd-arm64
freebsd-avr32
freebsd-hppa
freebsd-m32r
freebsd-m68k
freebsd-mips
freebsd-mipsel
freebsd-powerpc
freebsd-ppc64
freebsd-s390
freebsd-s390x
freebsd-sh3
freebsd-sh3eb
freebsd-sh4
freebsd-sh4eb
freebsd-sparc
freebsd-sparc64
netbsd-i386
netbsd-ia64
netbsd-alpha
netbsd-amd64
netbsd-armeb
netbsd-arm
netbsd-arm64
netbsd-avr32
netbsd-hppa
netbsd-m32r
netbsd-m68k
netbsd-mips
netbsd-mipsel
netbsd-powerpc
netbsd-ppc64
netbsd-s390
netbsd-s390x
netbsd-sh3
netbsd-sh3eb
netbsd-sh4
netbsd-sh4eb
netbsd-sparc
netbsd-sparc64
openbsd-i386
openbsd-ia64
openbsd-alpha
openbsd-amd64
openbsd-armeb
openbsd-arm
openbsd-arm64
openbsd-avr32
openbsd-hppa
openbsd-m32r
openbsd-m68k
openbsd-mips
openbsd-mipsel
openbsd-powerpc
openbsd-ppc64
openbsd-s390
openbsd-s390x
openbsd-sh3
openbsd-sh3eb
openbsd-sh4
openbsd-sh4eb
openbsd-sparc
openbsd-sparc64
solaris-i386
solaris-ia64
solaris-alpha
solaris-amd64
solaris-armeb
solaris-arm
solaris-arm64
solaris-avr32
solaris-hppa
solaris-m32r
solaris-m68k
solaris-mips
solaris-mipsel
solaris-powerpc
solaris-ppc64
solaris-s390
solaris-s390x
solaris-sh3
solaris-sh3eb
solaris-sh4
solaris-sh4eb
solaris-sparc
solaris-sparc64
uclinux-armel
uclinux-i386
uclinux-ia64
uclinux-alpha
uclinux-amd64
uclinux-armeb
uclinux-arm
uclinux-arm64
uclinux-avr32
uclinux-hppa
uclinux-m32r
uclinux-m68k
uclinux-mips
uclinux-mipsel
uclinux-powerpc
uclinux-ppc64
uclinux-s390
uclinux-s390x
uclinux-sh3
uclinux-sh3eb
uclinux-sh4
uclinux-sh4eb
uclinux-sparc
uclinux-sparc64
mint-m68k
ikiril01 commented 11 years ago

Good question @bworrell ! I'm actually no longer quite sure of this one - ProcessorTypeEnum seems to be capturing Instruction Set Architectures, whereas the ArchitectureTypeEnum seems to be some combination of ISA and Processors (which may implement an ISA). Thus we should probably just update the ArchitectureTypeEnum in the Package Object to keep things consistent. The list you provided above would probably be a good start, I think the one from here could be useful too: http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch01s03.html

Platform     Architectures
Intel-compatible 32-bit  i386, i486, i586, i686, athlon, geode, pentium3, pentium4
Intel-compatible 64-bit  x86_64, amd64
Intel Itanium    ia64
HPAlpha (formerly Digital, Compaq)   alpha, alphaev5, alphaev56, alphapca56, alphaev6, alphaev67
Sparc/Ultra Sparc (Sun)  sparc, sparcv8, sparcv9, sparc64, sparc64v, sun4, sun4c, sun4d, sun4m, sun4u,
ARM  armv3l, armv4b, armv4l, armv5tel, armv5tejl, armv6l,armv7l
MIPS     mips, mipsel
Power PC     ppc, ppciseries, ppcpseries, ppc64, ppc8260, ppc8560, ppc32dy4
Motorola 68000 series    m68k, m68kmint, atarist, atariste, ataritt, falcon, atariclone, milan, hades
SGI MIPS     Sgi
IBM RS6000   rs6000
IBM S/390    i370, s390x, s390
Platform independent     noarch
bworrell commented 10 years ago

This issue is now open to community feedback. Please see the associated proposal: https://github.com/CybOXProject/schemas/wiki/Proposal:-Change-LinuxPackageObjectType-Architecture-Field-To-ControlledVocabularyStringType

bworrell commented 10 years ago

Closed by #204