diff options
-rw-r--r-- | gui-wm/hikari/Manifest | 1 | ||||
-rw-r--r-- | gui-wm/hikari/files/hikari-2.1.1-gnu-make.patch | 332 | ||||
-rw-r--r-- | gui-wm/hikari/hikari-2.1.1.ebuild | 57 | ||||
-rw-r--r-- | gui-wm/hikari/metadata.xml | 1 |
4 files changed, 391 insertions, 0 deletions
diff --git a/gui-wm/hikari/Manifest b/gui-wm/hikari/Manifest index 4a0d036c0f83..0da13980b1b1 100644 --- a/gui-wm/hikari/Manifest +++ b/gui-wm/hikari/Manifest @@ -1,2 +1,3 @@ DIST hikari-1.2.0.tar.gz 98941 BLAKE2B 0b882d483143e307d4b173560f335e85b4c5613b75c51c6b70b68df9b4f70f9a009d95cb8eda1c211f4968b5c8600e7113bca5e014cecfb1917db2acae7e6f3d SHA512 2bd0b6032541ca63a2bd12aee9155e9b0d08e4c541ec2f837073f1498ecb39df969f8821fcbd066e44c5ddaf658e4875bea25f344226b7ea97fe008a0db4d328 DIST hikari-2.0.2.tar.gz 1003593 BLAKE2B 89a2ec29673e7ac371a7e4f179b3dc398fbacb3daf859a9f1a53cf74aac9dc36ca33f3dc1878360fdae80ef39315a0b06d0988d897c9ce58693404fd3099d6bf SHA512 12e6cf2f1f24a4c0b64e6c035c518bdc5dbfa094a220147c374f599df8b52a4ee4c1f3cdffe1080fe87c665841a6ca018de4a48ec65aaa5b60e9e968087d83d6 +DIST hikari-2.1.1.tar.gz 1012598 BLAKE2B 189e7bd9271ed5af89f5039288334c16a33c049c504f57e05cfa11b20098650165bb655023d016a14f2b13ed94e819bece088ef8517b9114b80d6a5921000780 SHA512 6da547d957cc65ab040647209a865550b0cc2b3d79040fae507591c41e938826861e27034379c21a1b7ce18afa35dbb813e96e661f4bd1232eb932f032271dff diff --git a/gui-wm/hikari/files/hikari-2.1.1-gnu-make.patch b/gui-wm/hikari/files/hikari-2.1.1-gnu-make.patch new file mode 100644 index 000000000000..4fd6d468d481 --- /dev/null +++ b/gui-wm/hikari/files/hikari-2.1.1-gnu-make.patch @@ -0,0 +1,332 @@ +explain steps to guide future me and other patchers +(1) define common variables on top +(2) remove conditions for doc and others to define VERSION +(3) replace all ${*} by $(*) +(4) replace pkg-config by $(PKG_CONFIG) +(6) remove .PATH: src +(5) remove main.c from OBJS because it is in different directory + - we will define a separate target for it +(6) add $(OBJS) target + main.o target and add then to the end + of dependencies for hikari +(7) add main.o to be cleaned-up +(8) reorder the library orders in the $(CC) steps because gcc +diff --git a/Makefile b/Makefile +index cab013a..b72e74c 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,7 +1,22 @@ ++TARGET = hikari ++ ++DESTDIR ?= ++ ++prefix ?= /usr/local ++exec_prefix ?= $(prefix) ++bindir ?= $(exec_prefix)/bin ++sysconfdir ?= $(prefix)/etc ++ ++PKG_CONFIG ?= pkg-config ++ ++VERSION ?= "CURRENT" ++ ++### Upstream variables ++PREFIX ?= $(DESTDIR)$(prefix) ++ETC_PREFIX ?= $(DESTDIR)$(sysconfdir) ++ + OS != uname +-VERSION ?= "CURRENT" +-PREFIX ?= /usr/local +-ETC_PREFIX ?= ${PREFIX} ++INSTALL_GROUP != id -gn + + OBJS = \ + action.o \ +@@ -33,7 +48,6 @@ OBJS = \ + layout_select_mode.o \ + lock_indicator.o \ + lock_mode.o \ +- main.o \ + mark.o \ + mark_assign_mode.o \ + mark_select_mode.o \ +@@ -64,109 +78,124 @@ OBJS = \ + + WAYLAND_PROTOCOLS != pkg-config --variable pkgdatadir wayland-protocols + +-.PHONY: distclean clean clean-doc doc dist install uninstall +-.PATH: src +- + # Allow specification of /extra/ CFLAGS and LDFLAGS +-CFLAGS += ${CFLAGS_EXTRA} +-LDFLAGS += ${LDFLAGS_EXTRA} ++CFLAGS += $(CFLAGS_EXTRA) ++LDFLAGS += $(LDFLAGS_EXTRA) + +-.ifdef DEBUG ++ifeq ($(DEBUG),1) + CFLAGS += -g -O0 -fsanitize=address +-.else ++else + CFLAGS += -DNDEBUG +-.endif ++endif + +-.ifdef WITH_POSIX_C_SOURCE ++ifeq ($(WITH_POSIX_C_SOURCE),1) + CFLAGS += -D_POSIX_C_SOURCE=200809L +-.endif ++endif + +-.ifdef WITH_XWAYLAND ++ifeq ($(WITH_XWAYLAND),1) + CFLAGS += -DHAVE_XWAYLAND=1 +-.endif ++endif + +-.ifdef WITH_GAMMACONTROL ++ifeq ($(WITH_GAMMACONTROL),1) + CFLAGS += -DHAVE_GAMMACONTROL=1 +-.endif ++endif + +-.ifdef WITH_SCREENCOPY ++ifeq ($(WITH_SCREENCOPY),1) + CFLAGS += -DHAVE_SCREENCOPY=1 +-.endif ++endif + +-.ifdef WITH_LAYERSHELL ++ifeq ($(WITH_LAYERSHELL),1) + CFLAGS += -DHAVE_LAYERSHELL=1 +-.endif ++endif ++ ++ifeq ($(WITH_VIRTUAL_INPUT),1) ++CFLAGS += -DHAVE_VIRTUAL_INPUT=1 ++endif + +-.ifdef WITHOUT_SUID ++ifeq ($(WITHOUT_SUID),1) + PERMS = 555 +-.else ++else + PERMS = 4555 +-.endif ++endif + +-CFLAGS += -Wall -I. -Iinclude -DHIKARI_ETC_PREFIX=${ETC_PREFIX} ++CFLAGS += -Wall -I. -Iinclude -DHIKARI_ETC_PREFIX=$(ETC_PREFIX) + +-WLROOTS_CFLAGS != pkg-config --cflags wlroots +-WLROOTS_LIBS != pkg-config --libs wlroots ++WLROOTS_CFLAGS != $(PKG_CONFIG) --cflags wlroots ++WLROOTS_LIBS != $(PKG_CONFIG) --libs wlroots + + WLROOTS_CFLAGS += -DWLR_USE_UNSTABLE=1 + +-PANGO_CFLAGS != pkg-config --cflags pangocairo +-PANGO_LIBS != pkg-config --libs pangocairo ++PANGO_CFLAGS != $(PKG_CONFIG) --cflags pangocairo ++PANGO_LIBS != $(PKG_CONFIG) --libs pangocairo + +-CAIRO_CFLAGS != pkg-config --cflags cairo +-CAIRO_LIBS != pkg-config --libs cairo ++CAIRO_CFLAGS != $(PKG_CONFIG) --cflags cairo ++CAIRO_LIBS != $(PKG_CONFIG) --libs cairo + +-PIXMAN_CFLAGS != pkg-config --cflags pixman-1 +-PIXMAN_LIBS != pkg-config --libs pixman-1 ++PIXMAN_CFLAGS != $(PKG_CONFIG) --cflags pixman-1 ++PIXMAN_LIBS != $(PKG_CONFIG) --libs pixman-1 + +-XKBCOMMON_CFLAGS != pkg-config --cflags xkbcommon +-XKBCOMMON_LIBS != pkg-config --libs xkbcommon ++XKBCOMMON_CFLAGS != $(PKG_CONFIG) --cflags xkbcommon ++XKBCOMMON_LIBS != $(PKG_CONFIG) --libs xkbcommon + +-WAYLAND_CFLAGS != pkg-config --cflags wayland-server +-WAYLAND_LIBS != pkg-config --libs wayland-server ++WAYLAND_CFLAGS != $(PKG_CONFIG) --cflags wayland-server ++WAYLAND_LIBS != $(PKG_CONFIG) --libs wayland-server + +-LIBINPUT_CFLAGS != pkg-config --cflags libinput +-LIBINPUT_LIBS != pkg-config --libs libinput ++LIBINPUT_CFLAGS != $(PKG_CONFIG) --cflags libinput ++LIBINPUT_LIBS != $(PKG_CONFIG) --libs libinput + +-UCL_CFLAGS != pkg-config --cflags libucl +-UCL_LIBS != pkg-config --libs libucl ++UCL_CFLAGS != $(PKG_CONFIG) --cflags libucl ++UCL_LIBS != $(PKG_CONFIG) --libs libucl + + CFLAGS += \ +- ${WLROOTS_CFLAGS} \ +- ${PANGO_CFLAGS} \ +- ${CAIRO_CFLAGS} \ +- ${PIXMAN_CFLAGS} \ +- ${XKBCOMMON_CFLAGS} \ +- ${WAYLAND_CFLAGS} \ +- ${LIBINPUT_CFLAGS} \ +- ${UCL_CFLAGS} ++ $(WLROOTS_CFLAGS) \ ++ $(PANGO_CFLAGS) \ ++ $(CAIRO_CFLAGS) \ ++ $(PIXMAN_CFLAGS) \ ++ $(XKBCOMMON_CFLAGS) \ ++ $(WAYLAND_CFLAGS) \ ++ $(LIBINPUT_CFLAGS) \ ++ $(UCL_CFLAGS) + + LIBS = \ +- ${WLROOTS_LIBS} \ +- ${PANGO_LIBS} \ +- ${CAIRO_LIBS} \ +- ${PIXMAN_LIBS} \ +- ${XKBCOMMON_LIBS} \ +- ${WAYLAND_LIBS} \ +- ${LIBINPUT_LIBS} \ +- ${UCL_LIBS} ++ $(WLROOTS_LIBS) \ ++ $(PANGO_LIBS) \ ++ $(CAIRO_LIBS) \ ++ $(PIXMAN_LIBS) \ ++ $(XKBCOMMON_LIBS) \ ++ $(WAYLAND_LIBS) \ ++ $(LIBINPUT_LIBS) \ ++ $(UCL_LIBS) + +-all: hikari hikari-unlocker ++.PHONY: distclean clean clean-doc doc dist install uninstall + + version.h: +- echo "#define HIKARI_VERSION \"${VERSION}\"" >> version.h ++ echo "#define HIKARI_VERSION \"$(VERSION)\"" >> version.h + +-hikari: version.h xdg-shell-protocol.h wlr-layer-shell-unstable-v1-protocol.h ${OBJS} +- ${CC} ${LDFLAGS} ${CFLAGS} ${INCLUDES} -o ${.TARGET} ${OBJS} ${LIBS} ++$(OBJS): %.o: src/%.c ++ $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@ ++ ++main.o: ++ $(CC) $(CFLAGS) $(INCLUDES) -c main.c -o main.o + + xdg-shell-protocol.h: +- wayland-scanner server-header ${WAYLAND_PROTOCOLS}/stable/xdg-shell/xdg-shell.xml ${.TARGET} ++ wayland-scanner server-header $(WAYLAND_PROTOCOLS)/stable/xdg-shell/xdg-shell.xml xdg-shell-protocol.h + + wlr-layer-shell-unstable-v1-protocol.h: +- wayland-scanner server-header protocol/wlr-layer-shell-unstable-v1.xml ${.TARGET} ++ wayland-scanner server-header protocol/wlr-layer-shell-unstable-v1.xml wlr-layer-shell-unstable-v1-protocol.h ++ ++hikari: version.h xdg-shell-protocol.h wlr-layer-shell-unstable-v1-protocol.h $(OBJS) main.o ++ $(CC) $(LDFLAGS) $(CFLAGS) $(INCLUDES) $(OBJS) main.o $(LIBS) -o $(TARGET) + + hikari-unlocker: hikari_unlocker.c +- ${CC} ${CFLAGS_EXTRA} ${LDFLAGS_EXTRA} -o hikari-unlocker hikari_unlocker.c -lpam ++ $(CC) $(LDFLAGS) $(CFLAGS) $(INCLUDES) hikari_unlocker.c -lpam $(LIBS) -o hikari-unlocker ++ ++share/man/man1/hikari.1: ++ pandoc -M title:"HIKARI(1) $(VERSION) | hikari - Wayland Compositor" -s \ ++ --to man -o share/man/man1/hikari.1 share/man/man1/hikari.md ++ ++doc: share/man/man1/hikari.1 ++ ++all: hikari hikari-unlocker + + clean-doc: + @test -e _darcs && echo "cleaning manpage" ||: +@@ -178,66 +207,38 @@ clean: clean-doc + @rm xdg-shell-protocol.h 2> /dev/null ||: + @rm wlr-layer-shell-unstable-v1-protocol.h 2> /dev/null ||: + @echo "cleaning object files" +- @rm ${OBJS} 2> /dev/null ||: ++ @rm $(OBJS) 2> /dev/null ||: ++ @rm main.o 2> /dev/null ||: + @echo "cleaning executables" + @rm hikari 2> /dev/null ||: + @rm hikari-unlocker 2> /dev/null ||: + +-share/man/man1/hikari.1: +- pandoc -M title:"HIKARI(1) ${VERSION} | hikari - Wayland Compositor" -s \ +- --to man -o share/man/man1/hikari.1 share/man/man1/hikari.md +- +-doc: share/man/man1/hikari.1 +- +-hikari-${VERSION}.tar.gz: version.h share/man/man1/hikari.1 +- @darcs revert +- @tar -s "#^#hikari-${VERSION}/#" -czf hikari-${VERSION}.tar.gz \ +- version.h \ +- main.c \ +- hikari_unlocker.c \ +- include/hikari/*.h \ +- src/*.c \ +- protocol/*.xml \ +- Makefile \ +- LICENSE \ +- README.md \ +- CHANGELOG.md \ +- share/man/man1/hikari.md \ +- share/man/man1/hikari.1 \ +- share/backgrounds/hikari/hikari_wallpaper.png \ +- share/wayland-sessions/hikari.desktop \ +- etc/hikari/hikari.conf \ +- etc/pam.d/hikari-unlocker.* +- +-distclean: clean-doc +- @test -e _darcs && echo "cleaning version.h" ||: +- @test -e _darcs && rm version.h ||: +- +-dist: distclean hikari-${VERSION}.tar.gz +- +-install: hikari hikari-unlocker share/man/man1/hikari.1 +- mkdir -p ${DESTDIR}/${PREFIX}/bin +- mkdir -p ${DESTDIR}/${PREFIX}/share/man/man1 +- mkdir -p ${DESTDIR}/${PREFIX}/share/backgrounds/hikari +- mkdir -p ${DESTDIR}/${PREFIX}/share/wayland-sessions +- mkdir -p ${DESTDIR}/${ETC_PREFIX}/etc/hikari +- mkdir -p ${DESTDIR}/${ETC_PREFIX}/etc/pam.d +- sed "s,PREFIX,${PREFIX}," etc/hikari/hikari.conf > ${DESTDIR}/${ETC_PREFIX}/etc/hikari/hikari.conf +- chmod 644 ${DESTDIR}/${ETC_PREFIX}/etc/hikari/hikari.conf +- install -m ${PERMS} hikari ${DESTDIR}/${PREFIX}/bin +- install -m 4555 hikari-unlocker ${DESTDIR}/${PREFIX}/bin +- install -m 644 share/man/man1/hikari.1 ${DESTDIR}/${PREFIX}/share/man/man1 +- install -m 644 share/backgrounds/hikari/hikari_wallpaper.png ${DESTDIR}/${PREFIX}/share/backgrounds/hikari/hikari_wallpaper.png +- install -m 644 share/wayland-sessions/hikari.desktop ${DESTDIR}/${PREFIX}/share/wayland-sessions/hikari.desktop +- install -m 644 etc/pam.d/hikari-unlocker.${OS} ${DESTDIR}/${ETC_PREFIX}/etc/pam.d/hikari-unlocker ++install-doc: ++ install -m 644 share/man/man1/hikari.1 $(PREFIX)/share/man/man1 ++ ++install: ++ mkdir -p $(PREFIX)/bin ++ mkdir -p $(PREFIX)/share/man/man1 ++ mkdir -p $(PREFIX)/share/backgrounds/hikari ++ mkdir -p $(PREFIX)/share/wayland-sessions ++ mkdir -p $(ETC_PREFIX)/etc/hikari ++ mkdir -p $(ETC_PREFIX)/etc/pam.d ++ sed "s,PREFIX,$(prefix)," etc/hikari/hikari.conf > $(ETC_PREFIX)/etc/hikari/hikari.conf ++ chmod 644 $(ETC_PREFIX)/etc/hikari/hikari.conf ++ install -m $(PERMS) hikari $(PREFIX)/bin ++ install -m 4555 hikari-unlocker $(PREFIX)/bin ++ install -m 644 share/backgrounds/hikari/hikari_wallpaper.png $(PREFIX)/share/backgrounds/hikari/hikari_wallpaper.png ++ install -m 644 share/wayland-sessions/hikari.desktop $(PREFIX)/share/wayland-sessions/hikari.desktop ++ install -m 644 etc/pam.d/hikari-unlocker.$(OS) $(ETC_PREFIX)/etc/pam.d/hikari-unlocker + + uninstall: +- -rm ${DESTDIR}/${PREFIX}/bin/hikari +- -rm ${DESTDIR}/${PREFIX}/bin/hikari-unlocker +- -rm ${DESTDIR}/${PREFIX}/share/man/man1/hikari.1 +- -rm ${DESTDIR}/${PREFIX}/share/backgrounds/hikari/hikari_wallpaper.png +- -rm ${DESTDIR}/${PREFIX}/share/wayland-sessions/hikari.desktop +- -rm ${DESTDIR}/${ETC_PREFIX}/etc/pam.d/hikari-unlocker +- -rm ${DESTDIR}/${ETC_PREFIX}/etc/hikari/hikari.conf +- -rmdir ${DESTDIR}/${ETC_PREFIX}/etc/hikari +- -rmdir ${DESTDIR}/${PREFIX}/share/backgrounds/hikari ++ -rm $(PREFIX)/bin/hikari ++ -rm $(PREFIX)/bin/hikari-unlocker ++ -rm $(PREFIX)/share/man/man1/hikari.1 ++ -rm $(PREFIX)/share/backgrounds/hikari/hikari_wallpaper.png ++ -rm $(PREFIX)/share/wayland-sessions/hikari.desktop ++ -rm $(ETC_PREFIX)/etc/pam.d/hikari-unlocker ++ -rm $(ETC_PREFIX)/etc/hikari/hikari.conf ++ -rmdir $(ETC_PREFIX)/etc/hikari ++ -rmdir $(PREFIX)/share/backgrounds/hikari ++ diff --git a/gui-wm/hikari/hikari-2.1.1.ebuild b/gui-wm/hikari/hikari-2.1.1.ebuild new file mode 100644 index 000000000000..b8ef028dff7f --- /dev/null +++ b/gui-wm/hikari/hikari-2.1.1.ebuild @@ -0,0 +1,57 @@ +# Copyright 2019-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DESCRIPTION="Wayland compositor inspired by CWM" +HOMEPAGE="https://hikari.acmelabs.space/" +SRC_URI="https://hikari.acmelabs.space/releases/${P}.tar.gz" +KEYWORDS="~amd64 ~x86" + +LICENSE="MIT" +SLOT="0" +IUSE="gamma layershell screencopy suid virtual-io +X" + +DEPEND=" + dev-libs/libinput:= + dev-libs/libucl + >=gui-libs/wlroots-0.11.0 + media-libs/libglvnd + x11-libs/cairo[X?,svg] + x11-libs/libxkbcommon[X?] + x11-libs/pango[X?] + x11-libs/pixman + sys-libs/pam +" + +RDEPEND=" + ${DEPEND} + x11-misc/xkeyboard-config +" + +BDEPEND=" + dev-libs/wayland-protocols + virtual/pkgconfig +" + +# keep this as others OS's are using this as reference +PATCHES=( + "${FILESDIR}/${P}-gnu-make.patch" +) + +src_compile() { + emake VERSION="{PV}" \ + WITH_POSIX_C_SOURCE=1 \ + WITH_GAMMACONTROL=$(usex gamma 1 0) \ + WITH_LAYERSHELL=$(usex layershell 1 0) \ + WITH_SCREENCOPY=$(usex screencopy 1 0) \ + WITH_SUID=$(usex suid 1 0) \ + WITH_VIRTUAL_INPUT=$(usex virtual-io 1 0) \ + WITH_XWAYLAND=$(usex X 1 0) \ + all +} + +src_install() { + emake PREFIX="${D}/usr" ETC_PREFIX="${D}" prefix="${SYSROOT}/usr" install install-doc + doman share/man/man1/hikari.1 +} diff --git a/gui-wm/hikari/metadata.xml b/gui-wm/hikari/metadata.xml index c932df87cce3..369ad100778a 100644 --- a/gui-wm/hikari/metadata.xml +++ b/gui-wm/hikari/metadata.xml @@ -20,5 +20,6 @@ <flag name="layershell">add support for wayland apps using layer shell</flag> <flag name="screencopy">add support for screen grabbing</flag> <flag name="man">build and install man pages</flag> + <flag name="virtual-io">enable virtual input/output support, needed for remote I/O in VNC</flag> </use> </pkgmetadata> |