Created attachment 225000 [details] Port diff NsCDE is a retro but powerful UNIX desktop environment which resembles CDE look (and partially feel) but with a more powerful and flexible framework beneath-the-surface, more suited for 21st century unix-like and Linux systems and user requirements than original CDE. See also https://github.com/NsCDE/NsCDE
Hello Chris, Thanks for adding a new port. Makefile needs better organization between sections: `portclippy Makefile`: # PORTNAME block PORTNAME DISTVERSION CATEGORIES # Maintainer block MAINTAINER COMMENT # License block LICENSE # Dependencies -RUN_DEPENDS PATCH_DEPENDS BUILD_DEPENDS +RUN_DEPENDS # USES block USES -USE_XORG USE_GITHUB GH_ACCOUNT +USE_XORG # USES=shebangfix related variables SHEBANG_FILES # Standard bsd.port.mk variables DOCSDIR -NSCDE_HELPERS # Options definitions OPTIONS_DEFINE +OPTIONS_DEFAULT OPTIONS_GROUP OPTIONS_GROUP_INTEGRATION -OPTIONS_DEFAULT # Options descriptions +AUDIO_DESC +BROWSER_DESC CALC_DESC -CALC_RUN_DEPENDS +ED_DESC FM_DESC +XSCR_DESC # Options helpers -FM_RUN_DEPENDS -ED_DESC -ED_RUN_DEPENDS -AUDIO_DESC AUDIO_RUN_DEPENDS -BROWSER_DESC BROWSER_RUN_DEPENDS +CALC_RUN_DEPENDS +ED_RUN_DEPENDS +FM_RUN_DEPENDS +XSCR_RUN_DEPENDS # Unknown variables # WARNING: # Portclippy did not recognize the following variables. # They could be local variables only, misspellings of # framework variables, or Portclippy needs to be made aware # of them. Please double check them. # # Prefix them with an _ to tell Portclippy to ignore them. # This is also an important signal for other contributors # who are working on your port. It removes any doubt of # whether they are framework variables or not and whether # they are safe to remove/rename or not. +NSCDE_HELPERS RANDR_DESC RANDR_RUN_DEPENDS -XSCR_DESC -XSCR_RUN_DEPENDS Please update you diff. Thanks
Hello! Nice that you created a second new port! Thanks To start this port needs a better organization, `portclippy Makefile`: # PORTNAME block PORTNAME DISTVERSION CATEGORIES # Maintainer block MAINTAINER COMMENT # License block LICENSE # Dependencies -RUN_DEPENDS PATCH_DEPENDS BUILD_DEPENDS +RUN_DEPENDS # USES block USES -USE_XORG USE_GITHUB GH_ACCOUNT +USE_XORG # USES=shebangfix related variables SHEBANG_FILES # Standard bsd.port.mk variables DOCSDIR -NSCDE_HELPERS # Options definitions OPTIONS_DEFINE +OPTIONS_DEFAULT OPTIONS_GROUP OPTIONS_GROUP_INTEGRATION -OPTIONS_DEFAULT # Options descriptions +AUDIO_DESC +BROWSER_DESC CALC_DESC -CALC_RUN_DEPENDS +ED_DESC FM_DESC +XSCR_DESC # Options helpers -FM_RUN_DEPENDS -ED_DESC -ED_RUN_DEPENDS -AUDIO_DESC AUDIO_RUN_DEPENDS -BROWSER_DESC BROWSER_RUN_DEPENDS +CALC_RUN_DEPENDS +ED_RUN_DEPENDS +FM_RUN_DEPENDS +XSCR_RUN_DEPENDS # Unknown variables # WARNING: # Portclippy did not recognize the following variables. # They could be local variables only, misspellings of # framework variables, or Portclippy needs to be made aware # of them. Please double check them. # # Prefix them with an _ to tell Portclippy to ignore them. # This is also an important signal for other contributors # who are working on your port. It removes any doubt of # whether they are framework variables or not and whether # they are safe to remove/rename or not. +NSCDE_HELPERS RANDR_DESC RANDR_RUN_DEPENDS -XSCR_DESC -XSCR_RUN_DEPENDS Please use portclippy tool to fix it
(In reply to Nuno Teixeira from comment #2) Duplicate info, ignore
Created attachment 225070 [details] Updated port diff Thanks for the feedback; somehow portclippy/portfmt slipped by me. Checked with portlint but that didn't give me all these details. Will keep that ready for the future. corrected Makefile and cross checked with portclippy
(In reply to Chris Moerz from comment #4) Looks good. I will now do poudriere testport in 8 jails (140amd64|i386, 130amd64|i386, 122amd64|122i386 and 114amd64|i386) and if builds are ok, I will create a review in Phabricator. I will send you a link of that review so you can see the progress.
BUILD_DEPENDS= gcc:lang/gcc \ [1] pkg-config:devel/pkgconf \ [2] docbook-xsl>0:textproc/docbook-xsl \ xsltproc:textproc/libxslt [1] Does it really needs gcc? did you try with FreeBSD default llvm in base? Can you try build without calling gcc? [2] "USES pkgconfig:build" instead of BUILD_DEPENDS, this list must be alphabetacly ordered, e.g., USES= pkgconfig:build python:3.7+ shebangfix xorg https://docs.freebsd.org/en/books/porters-handbook/uses/#uses-pkgconfig
Created attachment 225130 [details] Updated port diff Thanks for the additional feedback. Sorry about missing the USES issue and gcc. Really should have realized that myself. Looks like I was on autopilot and just went with the easy way out... Both are fixed. I've switched to clang now as well and confirmed on 12.2-p6 that it's working. I'm working on a poudriere setup for 13.0-RELEASE. If you want me to complete this check first, please let me know and I'll post an update when it completes.
(In reply to Chris Moerz from comment #7) Hello, You don't need to post your poudriere testport log. But is always good to make this tests in clean enviromnent. I've started poudriere tests on this port today because I have builded some big updates in all 8 jails: gcc10, llvm12 and rust! Lots of hours compiling :-) One think that I noticed is that you use absolute path "/usr/local" in your files/patches-*, e.g.: --- -#!/usr/bin/env ksh93 +#!/usr/local/bin/ksh93 # # This file is a part of the NsCDE - Not so Common Desktop Environment @@ -7,7 +7,7 @@ # VERBOSE=0 -export TEXTDOMAINDIR="$NSCDE_ROOT/share/locale" +export TEXTDOMAINDIR="/usr/local/share/nscde/locale" --- When tests are finished I will substitute "/usr/local" with "${PREFIX} to see what happens. Cheers
I've completed poudriere testport for 140amd64: --- ====> Running Q/A tests (stage-qa) Error: '/usr/bin/env python3' is an invalid shebang you need USES=shebangfix for 'sbin/nscde_usleep' Warning: 'lib/nscde/XOverrideFontCursor.so' is not stripped consider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD} Error: /usr/local/bin/pclock is linked to /usr/local/lib/libXext.so.6 from x11/libXext but it is not declared as a dependency Warning: you need USE_XORG+=xext Warning: Possible REINPLACE_CMD issues: - - REINPLACE_CMD ran, but did not modify file contents: NsCDE/config/NsCDE-Font-75dpi.conf - - REINPLACE_CMD ran, but did not modify file contents: NsCDE/config/NsCDE-Mousebindings.conf ---
Created attachment 225195 [details] Updated port diff Thanks for the additional feedback. I've fixed those - at least those, which I could confirm as broken. Those sed replacements really aren't matching all files. Unfortunately, I didn't figure out the proper way to exclude single files. I'd otherwise have to pre-compile a manual list of ${REPLACE_CMD} calls but that would likely quickly break things when new versions come along and introduce new files. I also realized, I was missing a gettext dependency. There are multiple gettext calls in the ksh scripts. So I also added that into the USES clause. Furthermore, I cleaned up the Makefile to reference ${PREFIX}, ${DATADIR} etc. instead of the absolute paths for the replacements. Unfortunately, this still leaves a bunch of static replacements in python files, as you already pointed out (those patches in files/). These would be a though nut to crack with sed replacements. Not sure, what the best practice is to handle this? Right now, I basically changed that to the usual /usr/local prefix. If you have any suggestions on how further to improve, I'm happy to hear it.
Gaah, damn. I screwed something up. Please ignore previously posted attachment. I'll post another fixed diff.
Created attachment 225197 [details] Updated port diff Ok, please use this one. Previous upload was broken.
(In reply to Chris Moerz from comment #10) Actually, it just dawned on me on how to fix those static patches. I'm still in the middle of it and it'll need more testing, but I'm fairly confident this new approach will fix it. I've replaced all /usr/local with ${PREFIX} as you originally suggested. I simply added more replacements in my Makefile for replacing the static '${PREFIX}' strings with the actual variable content. Not sure why I didn't get this earlier. The human brain works in mysterious ways... So, would appreciate it, if you could hold off with any further tests for the moment until I've completed this work. Thanks for the patience.
Created attachment 225205 [details] Updated port diff Well, went quicker then I thought. Then again, I did not think I'd learn this much in the process...
Created attachment 225245 [details] Updated port diff My own poudriere run highlighted one more missing strip on a library. Included that now as well.
Hello Chris! I will test latest patch tomorrow and see if it fixes: --- ====> Running Q/A tests (stage-qa) Warning: 'lib/nscde/XOverrideFontCursor.so' is not stripped consider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD} --- Related to using REINPLACE_CMD multiple times in the same file(s), could you follow freebsd-ports@freebsd.org? [Lot's of REINPLACE_CMD versus patch] And I'm about to test this port in RL because I really like whatched upstream videos :-) BTW, I've searched upstream docs and FAQ but I didn't find out how to run this wm. .xinitrc: --- exec nscde --- ?
Created attachment 225317 [details] Updated port diff Ok, I believe I've finally got it. I fixed the replacements to focus only on the affected files. I've rerun poudriere for 12.2p6 without any errors. Confident this should work the same for later releases. portlint and portclippy were ok. portlint wrongfully reported some "absolute paths", which are actually replacement strings - so I'm reading those as misinterpreted strings. So far, I've only run nscde via xrdp on a terminal server. Starting it basically works like any other window manager - simply using an exec /usr/local/sbin/nscde should do the trick. There's a lot of hidden functionality in this setup; apart from the CDE look, there's a lot of keyboard shortcuts to explore. I haven't grasped the whole thing myself yet. I hope that, once I get a better understanding of the inner workings, I'll be able to build in further port customizations (separating NLS, other integrations, etc.).
Hello Chris! Nice work that you've done on this port. Poudriere testport logs looks nice and I did a runtime test and nscde wm works fine. I will create a review in Phabricator and when ready I will post review kink here. Cheers
https://reviews.freebsd.org/D30591 Feel free to participate on this review
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=02f8e1555773479cbe369e8db67821acdae238a5 commit 02f8e1555773479cbe369e8db67821acdae238a5 Author: Chris Moerz <freebsd@ny-central.org> AuthorDate: 2021-08-09 14:53:25 +0000 Commit: Nuno Teixeira <eduardo@FreeBSD.org> CommitDate: 2021-08-09 14:56:30 +0000 x11-wm/nscde: New port: modern and functional CDE * Submitter becomes maintainer sCDE is a retro but powerful UNIX desktop environment which resembles CDE look (and partially feel) but with a more powerful and flexible framework beneath-the-surface, more suited for 21st century unix-like and Linux systems and user requirements than original CDE. See also https://github.com/NsCDE/NsCDE PR: 255929 Differential Revision: https://reviews.freebsd.org/D30591 x11-wm/Makefile | 1 + x11-wm/nscde/Makefile (new) | 306 + x11-wm/nscde/distinfo (new) | 3 + x11-wm/nscde/files/patch-NsCDE_bin_fpclock (new) | 44 + .../patch-NsCDE_bin_get__fvwm__infostore (new) | 11 + x11-wm/nscde/files/patch-NsCDE_bin_getfont (new) | 41 + .../nscde/files/patch-NsCDE_bin_mkpagemenu (new) | 29 + x11-wm/nscde/files/patch-NsCDE_bin_nscde (new) | 30 + .../files/patch-NsCDE_bin_nscde__colorpicker (new) | 13 + .../nscde/files/patch-NsCDE_bin_xdowrapper (new) | 11 + .../patch-NsCDE_config_NsCDE-FrontPanel.conf (new) | 182 + .../files/patch-NsCDE_config_NsCDE-Main.conf (new) | 32 + .../files/patch-NsCDE_libexec_Splash.sh (new) | 16 + .../nscde/files/patch-NsCDE_libexec_colormgr (new) | 11 + .../nscde/files/patch-NsCDE_libexec_fontmgr (new) | 26 + .../patch-NsCDE_libexec_fp__manage__subpanel (new) | 28 + ...tch-NsCDE_libexec_fvwm-modules_FvwmScript (new) | 43 + .../files/patch-NsCDE_libexec_nscde__setup (new) | 372 + .../patch-NsCDE_libexec_strip__icon__path (new) | 21 + ...patch-NsCDE_libexec_style__managers.shlib (new) | 38 + ...h-NsCDE_libexec_subpanel__menuitem__props (new) | 21 + .../files/patch-NsCDE_libexec_themegen.py (new) | 45 + ...e_config__templates_NsCDE-Functions.local (new) | 19 + ...amples_lxsession-integration_desktop.conf (new) | 11 + ...es_mate-session-integration_nscde.desktop (new) | 11 + ...share_doc_examples_sudo_006__PowerManager (new) | 19 + ...amples_xsession-integration_nscde.desktop (new) | 11 + x11-wm/nscde/files/patch-docbook_NsCDE.xml (new) | 1162 ++ x11-wm/nscde/files/patch-docbook_NsCDE.xsl (new) | 10 + .../patch-src_XOverrideFontCursor_Makefile (new) | 9 + .../files/patch-src_colorpicker_Makefile (new) | 8 + .../patch-src_pclock-0.13.1_src_Makefile (new) | 11 + x11-wm/nscde/pkg-descr (new) | 9 + x11-wm/nscde/pkg-message (new) | 16 + x11-wm/nscde/pkg-plist (new) | 10596 +++++++++++++++++++ 35 files changed, 13216 insertions(+)
Committed thanks!