pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/wm/fvwm3



Module Name:    pkgsrc
Committed By:   vins
Date:           Fri Dec  6 21:10:16 UTC 2024

Modified Files:
        pkgsrc/wm/fvwm3: Makefile distinfo options.mk
Added Files:
        pkgsrc/wm/fvwm3/patches: patch-doc_meson.build patch-meson.build
            patch-meson.options

Log Message:
wm/fvwm3: switch build system to meson.

fvwm3 migration to meson [0] marks te deprecation of the historical
infrastucture based on autotools. Apparently, switching to a different
and more flexible framework was easier than patching for autoconf 2.70.
As of 2024-09-30, there is a six-month timer on autools support in
fvwm3 [1].

In addition, we turn the go option on by default, since it's required by
FvwmPrompt, and will probably be required by any new Fvwm module.

Revision bumped.

[0] https://github.com/fvwmorg/fvwm3/discussions/1068
[1] https://mastodon.social/@thomasadam@bsd.network/113573995984463278


To generate a diff of this commit:
cvs rdiff -u -r1.43 -r1.44 pkgsrc/wm/fvwm3/Makefile
cvs rdiff -u -r1.15 -r1.16 pkgsrc/wm/fvwm3/distinfo
cvs rdiff -u -r1.5 -r1.6 pkgsrc/wm/fvwm3/options.mk
cvs rdiff -u -r0 -r1.1 pkgsrc/wm/fvwm3/patches/patch-doc_meson.build \
    pkgsrc/wm/fvwm3/patches/patch-meson.build \
    pkgsrc/wm/fvwm3/patches/patch-meson.options

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/wm/fvwm3/Makefile
diff -u pkgsrc/wm/fvwm3/Makefile:1.43 pkgsrc/wm/fvwm3/Makefile:1.44
--- pkgsrc/wm/fvwm3/Makefile:1.43       Sun Dec  1 17:41:15 2024
+++ pkgsrc/wm/fvwm3/Makefile    Fri Dec  6 21:10:16 2024
@@ -1,6 +1,7 @@
-# $NetBSD: Makefile,v 1.43 2024/12/01 17:41:15 vins Exp $
+# $NetBSD: Makefile,v 1.44 2024/12/06 21:10:16 vins Exp $
 
 DISTNAME=      fvwm3-1.1.1
+PKGREVISION=   1
 CATEGORIES=    wm x11
 MASTER_SITES=  ${MASTER_SITE_GITHUB:=fvwmorg/}
 GITHUB_RELEASE=        ${PKGVERSION_NOREV}
@@ -13,53 +14,48 @@ LICENSE=    gnu-gpl-v2 AND mit
 
 CONFLICTS=     fvwm-[0-9]* fvwm1-[0-9]* fvwm2-[0-9]* metisse-[0-9]*
 
-GNU_CONFIGURE=         yes
-
-USE_TOOLS+=    pkg-config perl:run
-USE_TOOLS+=    msgfmt msgmerge xgettext
-USE_TOOLS+=    autoconf automake autoreconf
-USE_TOOLS+=    gmake                                           # needed for manpages installation
+USE_TOOLS+=            grep pkg-config perl sed
+USE_TOOLS+=            msgfmt msgmerge xgettext
+USE_PKGLOCALEDIR=      yes
 
 DEPENDS+=      ${PYPKGPREFIX}-xdg-[0-9]*:../../devel/py-xdg    # needed by fvwm-menu-desktop
 
+PYTHON_FOR_BUILD_ONLY=         tool
 PYTHON_VERSIONS_INCOMPATIBLE=  27                              # wants python3
 
 .include "../../lang/go/go-vars.mk"                            # required by go linker
 
-#REPLACE_SH=   utils/*.sh
 REPLACE_PERL=  perllib/FVWM/create-commands
 
 SUBST_CLASSES+=                paths
 SUBST_STAGE.paths=     pre-configure
 SUBST_MESSAGE.paths=   Replacing hard-coded paths.
-SUBST_FILES.paths=     fvwm/fvwm3.c doc/fvwm3_manpage_source.adoc bin/fvwm-menu-desktop.in
-SUBST_VARS.paths=      PKG_SYSCONFDIR
+SUBST_FILES.paths=     bin/fvwm-menu-desktop.in doc/fvwm3_manpage_source.adoc
+SUBST_FILES.paths+=    fvwm/fvwm3.c meson.build
+SUBST_VARS.paths=      PKG_SYSCONFDIR SED BUILDLINK_PREFIX.readline
 SUBST_SED.paths=       -e "s:/etc/system.fvwm2rc:${PKG_SYSCONFDIR}/fvwm/system.fvwm2rc:g"
 SUBST_SED.paths+=      -e "s:/usr/local/share/fvwm:${PREFIX}/share/fvwm:g"
 
-# otherwise we get installed scripts that point to the tools directory.
-CONFIGURE_ENV+=                ac_cv_path_PYTHON=${PYTHONBIN}
-CONFIGURE_ENV+=                ac_cv_path_PERL=${PERL5}
-
-CONFIGURE_ARGS+=       --sysconfdir=${PKG_SYSCONFDIR}/fvwm
-CONFIGURE_ARGS+=       --with-x
-CONFIGURE_ARGS+=       --with-imagepath=${X11BASE}/include/X11/bitmaps:${X11BASE}/include/X11/pixmaps:${PREFIX}/share/pixmaps
-CONFIGURE_ARGS+=       --with-iconv-library=${BUILDLINK_PREFIX.iconv}/lib
-CONFIGURE_ARGS+=       --with-readline-library=${BUILDLINK_PREFIX.readline}/lib
-CONFIGURE_ARGS+=       --with-iconv-includes=${BUILDLINK_PREFIX.iconv}/${BUILDLINK_INCDIRS.iconv:Q}
+MESON_ARGS+=   --sysconfdir=${PKG_SYSCONFDIR}/fvwm
+MESON_ARGS+=   -Dreadline=enabled                              # required by FvwmConsole
+MESON_ARGS+=   -Dgolang=disabled                               # handled locally by options.mk
+MESON_ARGS+=   -Dlocaledir=${PKGLOCALEDIR}/fvwm3/locale
+MESON_ARGS+=   -Dnls=enabled
+MESON_ARGS+=   -Dpython=${PYTHONBIN:Q}
+MESON_ARGS+=   -Dperl=${PERL5:Q}
 
 .include "options.mk"
 
-pre-configure:
-       set -e; cd ${WRKSRC} && autoreconf -fiv
-
 .include "../../converters/libiconv/buildlink3.mk"
 .include "../../converters/fribidi/buildlink3.mk"
 BUILDLINK_API_DEPENDS.libevent+=       libevent>=2.0
+.include "../../devel/gettext-lib/buildlink3.mk"
 .include "../../devel/libevent/buildlink3.mk"
+.include "../../devel/meson/build.mk"
 .include "../../graphics/png/buildlink3.mk"
 .include "../../lang/python/pyversion.mk"
 .include "../../x11/xtrans/buildlink3.mk"
+.include "../../x11/libxkbcommon/buildlink3.mk"
 .include "../../x11/libXcursor/buildlink3.mk"
 .include "../../x11/libXft/buildlink3.mk"
 .include "../../x11/libXi/buildlink3.mk"

Index: pkgsrc/wm/fvwm3/distinfo
diff -u pkgsrc/wm/fvwm3/distinfo:1.15 pkgsrc/wm/fvwm3/distinfo:1.16
--- pkgsrc/wm/fvwm3/distinfo:1.15       Sun Dec  1 17:41:15 2024
+++ pkgsrc/wm/fvwm3/distinfo    Fri Dec  6 21:10:16 2024
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.15 2024/12/01 17:41:15 vins Exp $
+$NetBSD: distinfo,v 1.16 2024/12/06 21:10:16 vins Exp $
 
 BLAKE2s (fvwm3-1.1.1/fvwm3-1.1.1.tar.gz) = 4b85d786bb7a2c8492f9ba67cb3cd067a9115a04073ccbff1d1d8a7030cb0031
 SHA512 (fvwm3-1.1.1/fvwm3-1.1.1.tar.gz) = 66b044a2c463d56573c68f4cdd222a39a667a4acf3425d448c7e1c105e67a9d00abafff1e94c066f0781b4546d1b2b84bc9c20798a0b9ef4b0f673e743a2d4d0
@@ -190,3 +190,6 @@ BLAKE2s (fvwm3-1.1.1/gopkg.in_yaml.v3_@v
 SHA512 (fvwm3-1.1.1/gopkg.in_yaml.v3_@v_v3.0.0.zip) = 28237ca1abc2a7712d05a4b684e2088a1354bf7b474c6fe36dd2286a0fa96ff78679269ad183901973bba7ba44c7db07aa4d6f32dfe80650e57499ea38efaedc
 Size (fvwm3-1.1.1/gopkg.in_yaml.v3_@v_v3.0.0.zip) = 104597 bytes
 SHA1 (patch-bin_fvwm-menu-desktop.in) = 233e16992dbf81efdb4d41421a2904bc24463c16
+SHA1 (patch-doc_meson.build) = 4fa0d191c79356b4b1c40305f1051d93f6fee247
+SHA1 (patch-meson.build) = 4687894a5ff9f337ff8bedb3c11833220aab645f
+SHA1 (patch-meson.options) = 7326f6904901994df5009c114c8c813feece2c03

Index: pkgsrc/wm/fvwm3/options.mk
diff -u pkgsrc/wm/fvwm3/options.mk:1.5 pkgsrc/wm/fvwm3/options.mk:1.6
--- pkgsrc/wm/fvwm3/options.mk:1.5      Sun Jun  9 10:06:30 2024
+++ pkgsrc/wm/fvwm3/options.mk  Fri Dec  6 21:10:16 2024
@@ -1,8 +1,8 @@
-# $NetBSD: options.mk,v 1.5 2024/06/09 10:06:30 vins Exp $
+# $NetBSD: options.mk,v 1.6 2024/12/06 21:10:16 vins Exp $
 
 PKG_OPTIONS_VAR=       PKG_OPTIONS.fvwm3
 PKG_SUPPORTED_OPTIONS= doc go svg
-PKG_SUGGESTED_OPTIONS= doc
+PKG_SUGGESTED_OPTIONS= doc go
 
 .include "../../mk/bsd.options.mk"
 
@@ -13,20 +13,22 @@ PLIST_VARS+=                doc go
 #
 .if !empty(PKG_OPTIONS:Msvg)
 .  include "../../graphics/librsvg/buildlink3.mk"
+MESON_ARGS+=    -Dsvg=enabled
+.else
+MESON_ARGS+=    -Dsvg=disabled
 .endif
 
 #
-# Build documentation (requires asciidoctor)
+# Build man pages (requires asciidoctor)
 #
 .if !empty(PKG_OPTIONS:Mdoc)
-CONFIGURE_ARGS+=       --enable-mandoc
+MESON_ARGS+=   -Dmandoc=true
 TOOL_DEPENDS+=         ${RUBY_PKGPREFIX}-asciidoctor-[0-9]*:../../textproc/ruby-asciidoctor
 ASCIIDOC=               ${PREFIX}/bin/asciidoctor${RUBY_VER}
-CONFIGURE_ENV+=                ac_cv_prog_ASCIIDOC=${ASCIIDOC:Q}
 .  include "../../lang/ruby/rubyversion.mk"
 PLIST.doc=             yes
 .else
-CONFIGURE_ARGS+=       --disable-mandoc
+MESON_ARGS+=    -Dmandoc=false
 .endif
 
 #
@@ -80,13 +82,13 @@ post-extract:
 
 post-build:
 .  for d in ${GO_MOD_DIRS}
-       ${RUN} ${PRINTF} '%s\n' "Making fvwm Go modules in ${d} ... "
+       @${STEP_MSG} "Making fvwm Go modules in ${d} ... "
        ${RUN} cd ${WRKSRC}/${d} && ${_ULIMIT_CMD} ${PKGSRC_SETENV} ${MAKE_ENV} \
                ${GO} ${GOFLAGS} install -v ${GO_BUILD_PATTERN}
 .  endfor
 .  if !empty(PKG_OPTIONS:Mdoc)
 .    for i in ${GO_MOD_DOCS}
-       ${RUN} ${PRINTF} '%s\n' "Building documentation for ${i} ... "
+       @${STEP_MSG} "Building documentation for ${i} ... "
        ${RUN} cd ${WRKSRC}/doc && ${ASCIIDOC} -b manpage -a ${i} ${i}.adoc -o ${i}.1
 .    endfor
 .  endif
@@ -100,5 +102,5 @@ post-install:
 pre-clean:
        ${RUN} [ -d ${WRKDIR}/.gopath ] && chmod -R +w ${WRKDIR}/.gopath ||  ${TRUE}
 
-PLIST.go=              yes
+PLIST.go=      yes
 .endif

Added files:

Index: pkgsrc/wm/fvwm3/patches/patch-doc_meson.build
diff -u /dev/null pkgsrc/wm/fvwm3/patches/patch-doc_meson.build:1.1
--- /dev/null   Fri Dec  6 21:10:16 2024
+++ pkgsrc/wm/fvwm3/patches/patch-doc_meson.build       Fri Dec  6 21:10:16 2024
@@ -0,0 +1,43 @@
+$NetBSD: patch-doc_meson.build,v 1.1 2024/12/06 21:10:16 vins Exp $
+
+* Always generate FvwmConsole man page.
+* Let pkgsrc handle documentation of go modules.
+
+--- doc/meson.build.orig       2024-11-30 20:43:16.000000000 +0000
++++ doc/meson.build
+@@ -12,6 +12,7 @@ adoc_sources = [
+     'FvwmBacker.adoc',
+     'FvwmButtons.adoc',
+     'FvwmCommand.adoc',
++    'FvwmConsole.adoc',
+     'FvwmEvent.adoc',
+     'FvwmForm.adoc',
+     'FvwmIconMan.adoc',
+@@ -77,27 +78,6 @@ if get_option('htmldoc')
+     # This is done by using sed to remove the lines that contain the module names.
+     index_src = 'index.adoc.in'
+     index_dst = 'index.adoc'
+-    if golang.found()
+-        index = configure_file(
+-            input: index_src,
+-            output: index_dst,
+-            command: [
+-                sed,
+-                '-e', '/FvwmConsole.adoc/d',
+-                '@INPUT@',
+-            ],
+-            capture: true,
+-        )
+-        adoc_sources += ['FvwmPrompt.adoc']
+-    else
+-        index = configure_file(
+-            input: index_src,
+-            output: index_dst,
+-            command: [sed, '-e', '/FvwmPrompt.adoc/d', '@INPUT@'],
+-            capture: true,
+-        )
+-        adoc_sources += ['FvwmConsole.adoc']
+-    endif
+ 
+     html_sources = adoc_sources
+ 
Index: pkgsrc/wm/fvwm3/patches/patch-meson.build
diff -u /dev/null pkgsrc/wm/fvwm3/patches/patch-meson.build:1.1
--- /dev/null   Fri Dec  6 21:10:16 2024
+++ pkgsrc/wm/fvwm3/patches/patch-meson.build   Fri Dec  6 21:10:16 2024
@@ -0,0 +1,53 @@
+$NetBSD: patch-meson.build,v 1.1 2024/12/06 21:10:16 vins Exp $
+
+* Prevent reference to build directory in perl scripts
+* Fix detection of readline library
+
+--- meson.build.orig   2024-11-30 20:43:16.000000000 +0000
++++ meson.build
+@@ -221,7 +221,7 @@ else
+ endif
+ 
+ # Perl is a required dependency, we generate shebangs at buildtime
+-perl = find_program('perl', required: true)
++perl = find_program(get_option('perl'), required: true)
+ 
+ golang = find_program('go', required: get_option('golang'))
+ if golang.found()
+@@ -236,19 +236,28 @@ if golang.found()
+     endif
+ else
+     # the readline dependency is only required for FvwmConsole so let's only check for it if we're not building FvwmPrompt
+-    readline = dependency('readline', required: get_option('readline'))
+-    if readline.found()
+-        all_found_deps += readline
+-        conf.set10('HAVE_READLINE', true)
+-        # Check for append_history to determine if we have GNU readline
+-        if cc.has_function('append_history', dependencies: readline)
+-            conf.set10('HAVE_GNU_READLINE', true)
++    readline = cc.find_library(
++              'edit', 
++              dirs: '@BUILDLINK_PREFIX.readline@/lib', 
++              has_headers: 'readline.h')
++    if readline.found() == false
++      readline = cc.find_library(
++                  'readline', 
++                  dirs: '@BUILDLINK_PREFIX.readline@/lib', 
++                  required: get_option('readline'))
++      if readline.found()
++          all_found_deps += readline
++          conf.set10('HAVE_READLINE', true)
++          # Check for append_history to determine if we have GNU readline
++            if cc.has_function('append_history', dependencies: readline)
++              conf.set10('HAVE_GNU_READLINE', true)
++          endif
+         endif
+     endif
+ endif
+ 
+ # Sed is used for substitution in several configure_file calls
+-sed = find_program('sed', required: true)
++sed = find_program('@SED@', required: true)
+ 
+ # Optional dependencies
+ # Tip: 'Feature' types always report 'not found' if disabled
Index: pkgsrc/wm/fvwm3/patches/patch-meson.options
diff -u /dev/null pkgsrc/wm/fvwm3/patches/patch-meson.options:1.1
--- /dev/null   Fri Dec  6 21:10:16 2024
+++ pkgsrc/wm/fvwm3/patches/patch-meson.options Fri Dec  6 21:10:16 2024
@@ -0,0 +1,18 @@
+$NetBSD: patch-meson.options,v 1.1 2024/12/06 21:10:16 vins Exp $
+
+Add option to set preferred perl intepreter.
+
+--- meson.options.orig 2024-11-30 20:43:16.000000000 +0000
++++ meson.options
+@@ -65,6 +65,11 @@ option(
+     description: 'Select python implementation',
+ )
+ option(
++    'perl',
++    type: 'string',
++    description: 'Select perl implementation',
++)
++option(
+     'readline',
+     type: 'feature',
+     value: 'auto',



Home | Main Index | Thread Index | Old Index