--- /dev/null
+--- lshw-B.02.18/src/Makefile
++++ lshw-B.02.18/src/Makefile
+@@ -21,11 +21,11 @@
+ CXX?=c++
+ INCLUDES=-I./core/
+ DEFINES=-DPREFIX=\"$(PREFIX)\" -DSBINDIR=\"$(SBINDIR)\" -DMANDIR=\"$(MANDIR)\" -DDATADIR=\"$(DATADIR)\"
+-CXXFLAGS=-g -Wall -g $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS)
++CXXFLAGS += -Wall $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS)
+ ifeq ($(SQLITE), 1)
+ CXXFLAGS+= -DSQLITE $(shell pkg-config --cflags sqlite3)
+ endif
+-LDFLAGS=-L./core/ -g
++LDFLAGS += -L./core/
+ ifneq ($(shell $(LD) --help 2| grep -- --as-needed), )
+ LDFLAGS+= -Wl,--as-needed
+ endif
+@@ -39,27 +39,25 @@
+ export LIBS
+ export LDFLAGS
+
+-DATAFILES = pci.ids usb.ids oui.txt manuf.txt
+-
+-all: $(PACKAGENAME) $(PACKAGENAME).1 $(DATAFILES)
++all: $(PACKAGENAME) $(PACKAGENAME).1
+
+ .cc.o:
+ $(CXX) $(CXXFLAGS) -c $< -o $@
+
+ .PHONY: core
+ core:
+- +make -C core all
++ $(MAKE) -C core all
+
+ $(PACKAGENAME): core $(PACKAGENAME).o
+ $(CXX) $(LDFLAGS) -o $@ $(PACKAGENAME).o $(LIBS)
+
+ .PHONY: po
+ po:
+- +make -C po all
++ $(MAKE) -C po all
+
+ .PHONY: gui
+ gui: core
+- +make -C gui all
++ $(MAKE) -C gui all
+
+ .PHONY: nologo
+ nologo:
+@@ -70,7 +68,6 @@
+
+ $(PACKAGENAME)-static: core core/lib$(PACKAGENAME).a $(PACKAGENAME).o
+ $(CXX) $(LDSTATIC) $(LDFLAGS) -o $@ $(PACKAGENAME).o $(LIBS)
+- $(STRIP) $@
+
+ .PHONY: compressed
+ compressed: $(PACKAGENAME)-compressed
+@@ -93,14 +90,13 @@
+ manuf.txt:
+ wget -O $@ http://anonsvn.wireshark.org/wireshark/trunk/manuf
+
+-install: all
++install:
+ $(INSTALL) -d -m 0755 $(DESTDIR)/$(SBINDIR)
+ $(INSTALL) -m 0755 $(PACKAGENAME) $(DESTDIR)/$(SBINDIR)
+ $(INSTALL) -d -m 0755 $(DESTDIR)/$(MANDIR)/man1
+ $(INSTALL) -m 0644 $(PACKAGENAME).1 $(DESTDIR)/$(MANDIR)/man1
+ $(INSTALL) -d -m 0755 $(DESTDIR)/$(DATADIR)/$(PACKAGENAME)
+- $(INSTALL) -m 0644 $(DATAFILES) $(DESTDIR)/$(DATADIR)/$(PACKAGENAME)
+- make -C po install
++ $(MAKE) -C po install
+
+ install-gui: gui
+ $(INSTALL) -d -m 0755 $(DESTDIR)/$(SBINDIR)
+@@ -112,8 +108,8 @@
+
+ clean:
+ rm -f $(PACKAGENAME).o $(PACKAGENAME) $(PACKAGENAME)-static $(PACKAGENAME)-compressed
+- make -C core clean
+- make -C gui clean
++ $(MAKE) -C core clean
++ $(MAKE) -C gui clean
+
+ .timestamp:
+ date --utc +%Y%m%d%H%M%S > $@
+--- lshw-B.02.18/src/core/Makefile
++++ lshw-B.02.18/src/core/Makefile
+@@ -1,10 +1,9 @@
+ PACKAGENAME?=lshw
+
+-CXX=c++
++CXX?=c++
+ INCLUDES=
+ DEFINES=-DPREFIX=\"$(PREFIX)\" -DSBINDIR=\"$(SBINDIR)\" -DMANDIR=\"$(MANDIR)\" -DDATADIR=\"$(DATADIR)\"
+-CXXFLAGS?=-g -Wall $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS)
+-LDFLAGS=
++CXXFLAGS += -Wall $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS)
+ LDSTATIC=
+ LIBS=
+
+--- lshw-B.02.18/src/core/pci.cc
++++ lshw-B.02.18/src/core/pci.cc
+@@ -17,7 +17,7 @@
+
+ #define PROC_BUS_PCI "/proc/bus/pci"
+ #define SYS_BUS_PCI "/sys/bus/pci"
+-#define PCIID_PATH DATADIR"/pci.ids:/usr/share/lshw/pci.ids:/usr/local/share/pci.ids:/usr/share/pci.ids:/etc/pci.ids:/usr/share/hwdata/pci.ids:/usr/share/misc/pci.ids"
++#define PCIID_PATH "/usr/share/misc/pci.ids"
+
+ #define PCI_CLASS_REVISION 0x08 /* High 24 bits are class, low 8 revision */
+ #define PCI_VENDOR_ID 0x00 /* 16 bits */
+--- lshw-B.02.18/src/core/usb.cc
++++ lshw-B.02.18/src/core/usb.cc
+@@ -27,7 +27,7 @@
+
+ #define PROCBUSUSBDEVICES "/proc/bus/usb/devices"
+ #define SYSKERNELDEBUGUSBDEVICES "/sys/kernel/debug/usb/devices"
+-#define USBID_PATH DATADIR"/usb.ids:/usr/share/lshw/usb.ids:/usr/local/share/usb.ids:/usr/share/usb.ids:/etc/usb.ids:/usr/share/hwdata/usb.ids:/usr/share/misc/usb.ids"
++#define USBID_PATH "/usr/share/misc/usb.ids"
+
+ #define USB_CLASS_PER_INTERFACE 0 /* for DeviceClass */
+ #define USB_CLASS_AUDIO 1
+--- lshw-B.02.18/src/gui/Makefile
++++ lshw-B.02.18/src/gui/Makefile
+@@ -1,5 +1,7 @@
+ PACKAGENAME?=lshw
+
++SQLITE?=0
++
+ CXX?=c++
+ CC?=cc
+ STRIP?=strip
+@@ -8,14 +10,15 @@
+ DEFINES=-DPREFIX=\"$(PREFIX)\" -DSBINDIR=\"$(SBINDIR)\" -DMANDIR=\"$(MANDIR)\" -DDATADIR=\"$(DATADIR)\"
+ GTKINCLUDES=$(shell pkg-config gtk+-2.0 --cflags)
+ INCLUDES=-I../core $(GTKINCLUDES)
+-CXXFLAGS=-g -Wall $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS)
++CXXFLAGS += -Wall $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS)
+ CFLAGS=$(CXXFLAGS) $(DEFINES)
+ GTKLIBS=$(shell pkg-config gtk+-2.0 gmodule-2.0 --libs)
+-LIBS=-L../core -llshw -lresolv $(GTKLIBS)
+-LDFLAGS=
+-ifneq ($(shell $(LD) --help 2| grep -- --as-needed), )
+- LDFLAGS+= -Wl,--as-needed
+-endif
++LIBS=-L../core -llshw -lresolv $(GTKLIBS)
++
++ifeq ($(SQLITE), 1)
++ CXXFLAGS+= -DSQLITE $(shell pkg-config --cflags sqlite3)
++ LIBS+= $(shell pkg-config --libs sqlite3)
++endif
+
+ OBJS = gtk-lshw.o callbacks.o engine.o print-gui.o stock.o
+ SRCS = $(OBJS:.o=.c)
+@@ -39,7 +42,6 @@
+ $(CXX) $(LDFLAGS) -o $@ $^ $(LIBS)
+
+ install: all
+- $(STRIP) gtk-$(PACKAGENAME)
+
+ clean:
+ rm -f $(OBJS) gtk-$(PACKAGENAME) gtk-lshw.glade.bak gtk-lshw.gladep.bak callbacks.c.bak callbacks.h.bak Makefile.bak
--- /dev/null
+patch sent upstream
+
+From 1fb7ebed787ec1b73218c1f12cbb71b103433375 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Tue, 14 Mar 2017 22:25:12 -0700
+Subject: [PATCH] fix array access with string translations
+
+The code forgot to rebase the num to 0 before indexing the string array.
+It also provides 5 strings, but was only allowing 4 to be accessed.
+---
+ src/core/dmi.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/core/dmi.cc b/src/core/dmi.cc
+index 250f48572d54..0db074975f2d 100644
+--- a/src/core/dmi.cc
++++ b/src/core/dmi.cc
+@@ -510,8 +510,8 @@ static const char *dmi_memory_array_location(u8 num)
+ };
+ if (num <= 0x0A)
+ return _(memory_array_location[num]);
+- if (num >= 0xA0 && num < 0xA4)
+- return _(jp_memory_array_location[num]);
++ if (num >= 0xA0 && num <= 0xA4)
++ return _(jp_memory_array_location[num - 0xA0]);
+ return "";
+ }
+
+--
+2.12.0
+
--- /dev/null
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+PLOCALES='fr'
+
+inherit flag-o-matic eutils toolchain-funcs l10n
+
+MAJ_PV=${PV:0:${#PV}-1}
+MIN_PVE=${PV:0-1}
+MIN_PV=${MIN_PVE/b/B}
+
+MY_P="$PN-$MIN_PV.$MAJ_PV"
+DESCRIPTION="Hardware Lister"
+HOMEPAGE="http://ezix.org/project/wiki/HardwareLiSter"
+SRC_URI="http://ezix.org/software/files/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~arm-linux ~x86-linux"
+IUSE="gtk sqlite static"
+
+REQUIRED_USE="static? ( !gtk )"
+
+RDEPEND="gtk? ( x11-libs/gtk+:2 )
+ sqlite? ( dev-db/sqlite:3 )"
+DEPEND="${RDEPEND}
+ gtk? ( virtual/pkgconfig )
+ sqlite? ( virtual/pkgconfig )"
+RDEPEND="${RDEPEND}
+ sys-apps/hwids"
+
+S=${WORKDIR}/${MY_P}
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-02.18b-gentoo.patch
+ "${FILESDIR}"/${PN}-02.18b-gettext-array.patch
+)
+
+src_prepare() {
+ epatch "${PATCHES[@]}"
+
+ l10n_find_plocales_changes "src/po" "" ".po" || die
+ sed -i \
+ -e "/^LANGUAGES =/ s/=.*/= $(l10n_get_locales)/" \
+ src/po/Makefile || die
+ sed -i \
+ -e 's:\<pkg-config\>:${PKG_CONFIG}:' \
+ src/Makefile src/gui/Makefile || die
+}
+
+src_compile() {
+ tc-export CC CXX AR PKG_CONFIG
+ use static && append-ldflags -static
+
+ # Need two sep make statements to avoid parallel build issues. #588174
+ local sqlite=$(usex sqlite 1 0)
+ emake SQLITE=${sqlite} all
+ use gtk && emake SQLITE=${sqlite} gui
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install $(usex gtk 'install-gui' '')
+ dodoc README.md docs/*
+ if use gtk ; then
+ newicon -s scalable src/gui/artwork/logo.svg gtk-lshw.svg
+ make_desktop_entry \
+ "${EPREFIX}"/usr/sbin/gtk-lshw \
+ "${DESCRIPTION}"
+ fi
+}