From 6e530bae6d9433b56836a832a61bd69ada02bcd9 Mon Sep 17 00:00:00 2001 From: "alan (NyxTrail)" Date: Sat, 3 Feb 2024 11:56:05 +0000 Subject: [PATCH] Remove DESTDIR patch for Makefile There is no need to patch upstream Makefile. We can achieve similar results by modifiying PREFIX in debian/rules to include the DESTDIR --- patches/000-destdir.patch | 99 ------------------- ...move-libwlroots-to-hyprland-location.patch | 46 +++++---- patches/002-disable-udis86.patch | 6 ++ .../003-use-system-hyprland-protocols.patch | 5 + patches/series | 2 +- rules | 7 +- 6 files changed, 44 insertions(+), 121 deletions(-) delete mode 100644 patches/000-destdir.patch diff --git a/patches/000-destdir.patch b/patches/000-destdir.patch deleted file mode 100644 index 8f2bc67..0000000 --- a/patches/000-destdir.patch +++ /dev/null @@ -1,99 +0,0 @@ ---- a/Makefile -+++ b/Makefile -@@ -34,38 +34,38 @@ - @if [ ! -f ./build/Hyprland ]; then echo -en "You need to run $(MAKE) all first.\n" && exit 1; fi - @echo -en "!NOTE: Please note make install does not compile Hyprland and only installs the already built files." - -- mkdir -p ${PREFIX}/share/wayland-sessions -- mkdir -p ${PREFIX}/bin -- cp -f ./build/Hyprland ${PREFIX}/bin -- cp -f ./build/hyprctl/hyprctl ${PREFIX}/bin -- cp -f ./build/hyprpm/hyprpm ${PREFIX}/bin -- chmod 755 ${PREFIX}/bin/Hyprland -- chmod 755 ${PREFIX}/bin/hyprctl -- chmod 755 ${PREFIX}/bin/hyprpm -- ln -s -r ${PREFIX}/bin/Hyprland ${PREFIX}/bin/hyprland -- if [ ! -f ${PREFIX}/share/wayland-sessions/hyprland.desktop ]; then cp ./example/hyprland.desktop ${PREFIX}/share/wayland-sessions; fi -- mkdir -p ${PREFIX}/share/hyprland -- cp ./assets/wall_* ${PREFIX}/share/hyprland -- mkdir -p ${PREFIX}/share/xdg-desktop-portal -- cp ./assets/hyprland-portals.conf ${PREFIX}/share/xdg-desktop-portal -+ mkdir -p ${DESTDIR}${PREFIX}/share/wayland-sessions -+ mkdir -p ${DESTDIR}${PREFIX}/bin -+ cp -f ./build/Hyprland ${DESTDIR}${PREFIX}/bin -+ cp -f ./build/hyprctl/hyprctl ${DESTDIR}${PREFIX}/bin -+ cp -f ./build/hyprpm/hyprpm ${DESTDIR}${PREFIX}/bin -+ chmod 755 ${DESTDIR}${PREFIX}/bin/Hyprland -+ chmod 755 ${DESTDIR}${PREFIX}/bin/hyprctl -+ chmod 755 ${DESTDIR}${PREFIX}/bin/hyprpm -+ ln -s -r ${DESTDIR}${PREFIX}/bin/Hyprland ${DESTDIR}${PREFIX}/bin/hyprland -+ if [ ! -f ${DESTDIR}${PREFIX}/share/wayland-sessions/hyprland.desktop ]; then cp ./example/hyprland.desktop ${DESTDIR}${PREFIX}/share/wayland-sessions; fi -+ mkdir -p ${DESTDIR}${PREFIX}/share/hyprland -+ cp ./assets/wall_* ${DESTDIR}${PREFIX}/share/hyprland -+ mkdir -p ${DESTDIR}${PREFIX}/share/xdg-desktop-portal -+ cp ./assets/hyprland-portals.conf ${DESTDIR}${PREFIX}/share/xdg-desktop-portal - -- mkdir -p ${PREFIX}/share/man/man1 -- install -m644 ./docs/*.1 ${PREFIX}/share/man/man1 -+ mkdir -p ${DESTDIR}${PREFIX}/share/man/man1 -+ install -m644 ./docs/*.1 ${DESTDIR}${PREFIX}/share/man/man1 - -- mkdir -p ${PREFIX}/lib/ -- cp ./subprojects/wlroots/build/libwlroots.so.13032 ${PREFIX}/lib/ -+ mkdir -p ${DESTDIR}${PREFIX}/lib/ -+ cp ./subprojects/wlroots/build/libwlroots.so.13032 ${DESTDIR}${PREFIX}/lib/ - - $(MAKE) installheaders - - uninstall: -- rm -f ${PREFIX}/share/wayland-sessions/hyprland.desktop -- rm -f ${PREFIX}/bin/Hyprland -- rm -f ${PREFIX}/bin/hyprctl -- rm -f ${PREFIX}/bin/hyprpm -- rm -f ${PREFIX}/lib/libwlroots.so.13032 -- rm -rf ${PREFIX}/share/hyprland -- rm -f ${PREFIX}/share/man/man1/Hyprland.1 -- rm -f ${PREFIX}/share/man/man1/hyprctl.1 -+ rm -f ${DESTDIR}${PREFIX}/share/wayland-sessions/hyprland.desktop -+ rm -f ${DESTDIR}${PREFIX}/bin/Hyprland -+ rm -f ${DESTDIR}${PREFIX}/bin/hyprctl -+ rm -f ${DESTDIR}${PREFIX}/bin/hyprpm -+ rm -f ${DESTDIR}${PREFIX}/lib/libwlroots.so.13032 -+ rm -rf ${DESTDIR}${PREFIX}/share/hyprland -+ rm -f ${DESTDIR}${PREFIX}/share/man/man1/Hyprland.1 -+ rm -f ${DESTDIR}${PREFIX}/share/man/man1/hyprctl.1 - - pluginenv: - @echo -en "$(MAKE) pluginenv has been deprecated.\nPlease run $(MAKE) all && sudo $(MAKE) installheaders\n" -@@ -74,20 +74,20 @@ - installheaders: - @if [ ! -f ./src/version.h ]; then echo -en "You need to run $(MAKE) all first.\n" && exit 1; fi - -- mkdir -p ${PREFIX}/include/hyprland -- mkdir -p ${PREFIX}/include/hyprland/protocols -- mkdir -p ${PREFIX}/include/hyprland/wlroots -- mkdir -p ${PREFIX}/share/pkgconfig -+ mkdir -p ${DESTDIR}${PREFIX}/include/hyprland -+ mkdir -p ${DESTDIR}${PREFIX}/include/hyprland/protocols -+ mkdir -p ${DESTDIR}${PREFIX}/include/hyprland/wlroots -+ mkdir -p ${DESTDIR}${PREFIX}/share/pkgconfig - -- find src -name '*.h*' -print0 | cpio --quiet -0dump ${PREFIX}/include/hyprland -- cd subprojects/wlroots/include && find . -name '*.h*' -print0 | cpio --quiet -0dump ${PREFIX}/include/hyprland/wlroots && cd ../../.. -- cd subprojects/wlroots/build/include && find . -name '*.h*' -print0 | cpio --quiet -0dump ${PREFIX}/include/hyprland/wlroots && cd ../../../.. -- cp ./protocols/*-protocol.h ${PREFIX}/include/hyprland/protocols -- cp ./build/hyprland.pc ${PREFIX}/share/pkgconfig -+ find src -name '*.h*' -print0 | cpio --quiet -0dump ${DESTDIR}${PREFIX}/include/hyprland -+ cd subprojects/wlroots/include && find . -name '*.h*' -print0 | cpio --quiet -0dump ${DESTDIR}${PREFIX}/include/hyprland/wlroots && cd ../../.. -+ cd subprojects/wlroots/build/include && find . -name '*.h*' -print0 | cpio --quiet -0dump ${DESTDIR}${PREFIX}/include/hyprland/wlroots && cd ../../../.. -+ cp ./protocols/*-protocol.h ${DESTDIR}${PREFIX}/include/hyprland/protocols -+ cp ./build/hyprland.pc ${DESTDIR}${PREFIX}/share/pkgconfig - if [ -d /usr/share/pkgconfig ]; then cp ./build/hyprland.pc /usr/share/pkgconfig 2>/dev/null || true; fi - -- chmod -R 755 ${PREFIX}/include/hyprland -- chmod 755 ${PREFIX}/share/pkgconfig -+ chmod -R 755 ${DESTDIR}${PREFIX}/include/hyprland -+ chmod 755 ${DESTDIR}${PREFIX}/share/pkgconfig - - man: - pandoc ./docs/Hyprland.1.rst \ diff --git a/patches/001-move-libwlroots-to-hyprland-location.patch b/patches/001-move-libwlroots-to-hyprland-location.patch index 89180b8..d74eff1 100644 --- a/patches/001-move-libwlroots-to-hyprland-location.patch +++ b/patches/001-move-libwlroots-to-hyprland-location.patch @@ -1,24 +1,30 @@ -Index: hyprland-0.34.0/Makefile -=================================================================== ---- hyprland-0.34.0.orig/Makefile -+++ hyprland-0.34.0/Makefile -@@ -52,8 +52,8 @@ install: - mkdir -p ${DESTDIR}${PREFIX}/share/man/man1 - install -m644 ./docs/*.1 ${DESTDIR}${PREFIX}/share/man/man1 +Description: Move libwlroots to private directory + Hyprland builds a custom version of wlroots that is based + on the latter's latest commit. This library is placed under + /usr/lib/ which pollutes the shared library space. We will + instead, install the library to the 'hyprland' directory + under /usr/lib/. +Author: Alan M Varghese +Last-Update: 2024-02-02 +--- a/Makefile ++++ b/Makefile +@@ -52,8 +52,8 @@ + mkdir -p ${PREFIX}/share/man/man1 + install -m644 ./docs/*.1 ${PREFIX}/share/man/man1 -- mkdir -p ${DESTDIR}${PREFIX}/lib/ -- cp ./subprojects/wlroots/build/libwlroots.so.13032 ${DESTDIR}${PREFIX}/lib/ -+ mkdir -p ${DESTDIR}${PREFIX}/lib/hyprland -+ cp ./subprojects/wlroots/build/libwlroots.so.13032 ${DESTDIR}${PREFIX}/lib/hyprland/ +- mkdir -p ${PREFIX}/lib/ +- cp ./subprojects/wlroots/build/libwlroots.so.13032 ${PREFIX}/lib/ ++ mkdir -p ${PREFIX}/lib/hyprland ++ cp ./subprojects/wlroots/build/libwlroots.so.13032 ${PREFIX}/lib/hyprland/ $(MAKE) installheaders -@@ -62,7 +62,7 @@ uninstall: - rm -f ${DESTDIR}${PREFIX}/bin/Hyprland - rm -f ${DESTDIR}${PREFIX}/bin/hyprctl - rm -f ${DESTDIR}${PREFIX}/bin/hyprpm -- rm -f ${DESTDIR}${PREFIX}/lib/libwlroots.so.13032 -+ rm -rf ${DESTDIR}${PREFIX}/lib/hyprland - rm -rf ${DESTDIR}${PREFIX}/share/hyprland - rm -f ${DESTDIR}${PREFIX}/share/man/man1/Hyprland.1 - rm -f ${DESTDIR}${PREFIX}/share/man/man1/hyprctl.1 +@@ -62,7 +62,7 @@ + rm -f ${PREFIX}/bin/Hyprland + rm -f ${PREFIX}/bin/hyprctl + rm -f ${PREFIX}/bin/hyprpm +- rm -f ${PREFIX}/lib/libwlroots.so.13032 ++ rm -rf ${PREFIX}/lib/hyprland + rm -rf ${PREFIX}/share/hyprland + rm -f ${PREFIX}/share/man/man1/Hyprland.1 + rm -f ${PREFIX}/share/man/man1/hyprctl.1 diff --git a/patches/002-disable-udis86.patch b/patches/002-disable-udis86.patch index 0d3986b..ff3102c 100644 --- a/patches/002-disable-udis86.patch +++ b/patches/002-disable-udis86.patch @@ -1,3 +1,9 @@ +Description: Use system version of udis86 + Hyprland sources are shipped with a copy of udis86, against + which the binaries are built. We will instead build against + the Debian version of the library. +Author: Alan M Varghese +Last-Update: 2024-02-02 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,9 +26,6 @@ diff --git a/patches/003-use-system-hyprland-protocols.patch b/patches/003-use-system-hyprland-protocols.patch index 86f1bbb..7a72532 100644 --- a/patches/003-use-system-hyprland-protocols.patch +++ b/patches/003-use-system-hyprland-protocols.patch @@ -1,3 +1,8 @@ +Description: Use system version of hyprland-protocols + Hyprland sources include a copy of hyprland-protocols. We will, + instead, use the system version of this package. +Author: Alan M Varghese +Last-Update: 2024-02-02 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -231,8 +231,8 @@ diff --git a/patches/series b/patches/series index 36493cb..9eee4e2 100644 --- a/patches/series +++ b/patches/series @@ -1,4 +1,4 @@ -000-destdir.patch 001-move-libwlroots-to-hyprland-location.patch 002-disable-udis86.patch 003-use-system-hyprland-protocols.patch +004-fix-pkg-conf-prefix.patch diff --git a/rules b/rules index 3e26305..a6e1aa1 100755 --- a/rules +++ b/rules @@ -8,11 +8,16 @@ %: dh $@ +override_dh_auto_build: + dh_auto_build -- PREFIX=/usr override_dh_makeshlibs: : override_dh_auto_install: chrpath -r /usr/lib/hyprland build/Hyprland - dh_auto_install -- PREFIX=/usr + # dh_auto_install auto detects the correct DESTDIR. + # Modify PREFIX so that this DESTDIR is actually taken into account. + # (Upstream Makefile supports PREFIX, but not DESTDIR) + dh_auto_install -- PREFIX='$${DESTDIR}/usr' override_dh_clean: dh_clean # call clear target provided by Hyprland