• devel/glib20 build fails

    From Gareth de Vaux@ports@lordcow.org to muc.lists.freebsd.ports on Fri May 15 20:26:05 2026
    From Newsgroup: muc.lists.freebsd.ports

    # freebsd-version
    14.4-RELEASE-p4

    # make -C /usr/ports/devel/glib20 install clean
    License LGPL20 accepted by the user
    glib-2.86.4,2 depends on file: /usr/local/sbin/pkg - found
    Fetching all distfiles required by glib-2.86.4,2 for building
    Extracting for glib-2.86.4,2
    SHA256 Checksum OK for gnome/glib-2.86.4.tar.xz.
    glib-2.86.4,2 depends on file: /usr/local/gobject-introspection-bootstrap/bin/g-ir-scanner - not found
    glib-2.86.4,2 depends on file: /usr/local/gobject-introspection-bootstrap/bin/g-ir-scanner - not found
    *** Error code 1

    Stop.



    (devel/glib20 and devel/gobject-introspection not installed).


    --
    Posted automagically by a mail2news gateway at muc.de e.V.
    Please direct questions, flames, donations, etc. to news-admin@muc.de
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Daniel Engberg@diizzy@FreeBSD.org to muc.lists.freebsd.ports on Fri May 15 20:36:16 2026
    From Newsgroup: muc.lists.freebsd.ports

    On 2026-05-15 20:26, Gareth de Vaux wrote:
    # freebsd-version
    14.4-RELEASE-p4

    # make -C /usr/ports/devel/glib20 install clean
    License LGPL20 accepted by the user
    glib-2.86.4,2 depends on file: /usr/local/sbin/pkg - found
    Fetching all distfiles required by glib-2.86.4,2 for building
    Extracting for glib-2.86.4,2
    SHA256 Checksum OK for gnome/glib-2.86.4.tar.xz.
    glib-2.86.4,2 depends on file: /usr/local/gobject-introspection-bootstrap/bin/g-ir-scanner - not found
    glib-2.86.4,2 depends on file: /usr/local/gobject-introspection-bootstrap/bin/g-ir-scanner - not found
    *** Error code 1

    Stop.



    (devel/glib20 and devel/gobject-introspection not installed).
    I'm going to guess that your tree has stray work-dirs left because of
    the bootstrapping which confuses the framework (these do not get removed
    by make clean or clean-depends).

    rm -rf /usr/ports/*/*/work && rm -rf /usr/ports/*/*/work-*

    Best regards,
    Daniel


    --
    Posted automagically by a mail2news gateway at muc.de e.V.
    Please direct questions, flames, donations, etc. to news-admin@muc.de
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Gareth de Vaux@ports@lordcow.org to muc.lists.freebsd.ports on Fri May 15 21:16:37 2026
    From Newsgroup: muc.lists.freebsd.ports

    On Fri 2026-05-15 (20:36), Daniel Engberg wrote:
    I'm going to guess that your tree has stray work-dirs left because of the bootstrapping which confuses the framework (these do not get removed by make clean or clean-depends).

    rm -rf /usr/ports/*/*/work && rm -rf /usr/ports/*/*/work-*

    Great thanks, that worked :) I'd done 'portsclean -C' but that evidently doesn't
    clean everything.


    --
    Posted automagically by a mail2news gateway at muc.de e.V.
    Please direct questions, flames, donations, etc. to news-admin@muc.de
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Tomoaki AOKI@junchoon@dec.sakura.ne.jp to muc.lists.freebsd.ports on Sat May 16 10:01:31 2026
    From Newsgroup: muc.lists.freebsd.ports

    This is a multi-part message in MIME format.

    --Multipart=_Sat__16_May_2026_10_01_31_+0900_GfZA4/TZ3tpNuCKi
    Content-Type: text/plain; charset=US-ASCII
    Content-Transfer-Encoding: 7bit

    On Fri, 15 May 2026 21:16:37 +0200
    Gareth de Vaux <ports@lordcow.org> wrote:

    On Fri 2026-05-15 (20:36), Daniel Engberg wrote:
    I'm going to guess that your tree has stray work-dirs left because of the bootstrapping which confuses the framework (these do not get removed by make
    clean or clean-depends).

    rm -rf /usr/ports/*/*/work && rm -rf /usr/ports/*/*/work-*

    Great thanks, that worked :) I'd done 'portsclean -C' but that evidently doesn't
    clean everything.

    Do you habitally run `portsdb -Uu`? (If you're always running
    `make index` at /usr/ports after updating ports tree, it can be
    `portsdb -u`.) portsclean requires up-to-date INDEX.db to work.

    So if any newly added ports were built without cleaning out
    work*/, portsclean wouldn't notice it, thus, won't delete it.
    And this can harm any ports depending upon it in some situations.


    Another thing to mention is that unpatched portsclean doesn't
    know how to handle flavored ports, thus, work-* like appeared
    in the second `rm` command in Daniel's suggestion are always
    ignored.

    Attached is what I have for ports-mgmt/portupgrade-devel.
    (Not perfect for FLAVOR supports and not fully adapted with
    recent ports framework, though.)

    Unfortunately, ports-mgmt/portupgrade{-devel} are unmaintained
    (except for adapting upgraded default ruby) for too long time
    and many proposed patches are NOT handled, thus, I've lost track
    with from which PR (or suggestions on MLs or somewhere else)
    I've obtained them. This is moslty because I needed to merge
    multiple patches that applies to the same file.

    And even on registered PRs, some are attached as patches,
    but some are sugested in comments.

    Anyway, portsclean is too handy and too useful to ignore,
    thus, I'm continuously reporting non-ASCII characters
    in MOVED to be removed or rewritten with ASCII only
    to make portsdb happy. Unfortunately, I'm not enough familiar
    with ruby to fix portsdb for allowing non-ASCII characters
    in MOVED.

    Regards.
    --
    Tomoaki AOKI <junchoon@dec.sakura.ne.jp>

    --Multipart=_Sat__16_May_2026_10_01_31_+0900_GfZA4/TZ3tpNuCKi
    Content-Type: text/x-diff;
    name="20260516_applied-to-ports-mgmt_portugprade-devel.diff" Content-Disposition: attachment;
    filename="20260516_applied-to-ports-mgmt_portugprade-devel.diff" Content-Transfer-Encoding: 7bit

    diff --git a/ports-mgmt/portupgrade-devel/files/extra-patch-bin_portsclean b/ports-mgmt/portupgrade-devel/files/extra-patch-bin_portsclean
    new file mode 100644
    index 000000000000..4dbad6842d4d
    --- /dev/null
    +++ b/ports-mgmt/portupgrade-devel/files/extra-patch-bin_portsclean
    @@ -0,0 +1,18 @@
    +--- bin/portsclean.orig 2018-03-09 19:59:29.000000000 +0100
    ++++ bin/portsclean 2018-08-12 19:06:56.356177000 +0200
    +@@ -177,13 +177,13 @@
    + wrkdirprefix.gsub!(%r"/(?=/|$)", '')
    +
    + if wrkdirprefix.empty?
    +- puts "Cleaning out #{$ports_dir}/*/*/work..."
    ++ puts "Cleaning out #{$ports_dir}/*/*/work*..."
    +
    + # Ruby's glob yields the given block everytime a new matching
    + # entry is found, so it doesn't overflow, and we don't have to
    + # wait until everything is found.
    +
    +- Dir.glob(File.join($ports_dir, "*/*/work")) do |dir|
    ++ Dir.glob(File.join($ports_dir, "*/*/work*")) do |dir|
    + delete_dir dir
    + end
    +
    diff --git a/ports-mgmt/portupgrade-devel/files/patch-bin_pkg__glob b/ports-mgmt/portupgrade-devel/files/patch-bin_pkg__glob
    new file mode 100644
    index 000000000000..adabd82330d6
    --- /dev/null
    +++ b/ports-mgmt/portupgrade-devel/files/patch-bin_pkg__glob
    @@ -0,0 +1,11 @@
    +--- bin/pkg_glob.orig 2018-10-10 16:03:41.664989000 +0900
    ++++ bin/pkg_glob 2018-10-10 16:23:44.589276000 +0900
    +@@ -398,7 +398,7 @@ def deinstall_pkg(pkgname)
    +
    + next if $noexecute
    +
    +- if system('/bin/cp', '-Rpf', file, dest)
    ++ if system('/bin/cp', '-pf', file, dest)
    + preserved_files << dest
    + else
    + STDERR.puts "Copy failed!"
    diff --git a/ports-mgmt/portupgrade-devel/files/patch-bin_portsclean b/ports-mgmt/portupgrade-devel/files/patch-bin_portsclean
    new file mode 100644
    index 000000000000..cd85135da55b
    --- /dev/null
    +++ b/ports-mgmt/portupgrade-devel/files/patch-bin_portsclean
    @@ -0,0 +1,26 @@
    +--- bin/portsclean.orig 2024-02-29 19:03:26 UTC
    ++++ bin/portsclean
    +@@ -177,12 +177,12 @@
    + wrkdirprefix.gsub!(%r"/(?=/|$)", '')
    +
    + if wrkdirprefix.empty?
    +- puts "Cleaning out #{$ports_dir}/*/*/work..."
    ++ puts "Cleaning out #{$ports_dir}/*/*/work*..."
    +
    + # Ruby's glob yields the given block everytime a new matching
    + # entry is found, so it doesn't overflow, and we don't have to
    + # wait until everything is found.
    +
    +- Dir.glob(File.join($ports_dir, "*/*/work")) do |dir|
    ++ Dir.glob(File.join($ports_dir, "*/*/work*")) do |dir|
    + delete_dir dir
    + end
    +@@ -282,7 +282,7 @@ def ldconfig_m(*dirs)
    + msg = " --> Running ldconfig -m"
    +
    + dirs.each do |d|
    +- dirs.delete(d) if ! (File.exists?(d) && File.stat(d).directory?)
    ++ dirs.delete(d) if ! (File.exist?(d) && File.stat(d).directory?)
    + end
    +
    + case dirs.size
    diff --git a/ports-mgmt/portupgrade-devel/files/patch-bin_portupgrade b/ports-mgmt/portupgrade-devel/files/patch-bin_portupgrade
    new file mode 100644
    index 000000000000..d2e31abfe199
    --- /dev/null
    +++ b/ports-mgmt/portupgrade-devel/files/patch-bin_portupgrade
    @@ -0,0 +1,57 @@
    +--- bin/portupgrade.orig 2018-04-24 15:55:20.997322000 +0200
    ++++ bin/portupgrade 2023-01-31 07:25:10.064426000 +0200
    +@@ -199,6 +199,7 @@
    + $logfilename_format = nil
    + $make_args = ""
    + $make_env = []
    ++ $flavor = ""
    + $new = MYNAME == 'portinstall'
    + $noexecute = false
    + $noconfig = false
    +@@ -1179,6 +1180,10 @@
    + make_env << 'env'
    + end
    +
    ++ unless $flavor.empty?
    ++ make_env << 'FLAVOR=' + $flavor
    ++ end
    ++
    + unless is_new or $without_env_upgrade
    + make_env.concat(get_upgrade_env_vars($current_pkgname))
    + end
    +@@ -1264,6 +1269,18 @@
    +
    + oldpkgname = oldpkg.fullname
    + origin ||= oldpkg.origin
    ++# old flavor
    ++ $flavor = backquote!(PkgDB::command(:pkg), 'annotate', '-Sq', "#{oldpkgname}", 'flavor').chomp
    ++# new flavor
    ++ portdir = $portsdb.portdir(origin)
    ++ newflavor = `cd #{portdir} && make pretty-flavors-package-names | sed -ne 's!^\\([A-Za-z0-9_]*\\): *#{oldpkgname}$!\\1!p'`
    ++ newflavor.chomp!
    ++ if $flavor.empty? and !newflavor.empty?
    ++ $flavor = newflavor
    ++ progress_message "adding flavor #{oldpkgname} #{$flavor}" unless $flavor.empty?
    ++ else
    ++ progress_message "preserving flavor #{oldpkgname} #{$flavor}" unless $flavor.empty?
    ++ end
    +
    + if origin && config_held?(origin)
    + if $force
    +@@ -2195,12 +2195,12 @@
    +
    + name = pkgname.sub(/-[^\-]+$/, '')
    +
    +- glob_pkgfile = name + '-*.t[bgx]z'
    +- re_pkgfile = /^#{Regexp.quote(name)}-[^\-]+\.t[bgx]z$/
    ++ glob_pkgfile = name + '-*.pkg'
    ++ re_pkgfile = /^#{Regexp.quote(name)}-[^\-]+\.pkg$/
    +
    + if latest_link = $portsdb.latest_link(origin)
    +- glob_pkgfile = "{#{glob_pkgfile},#{latest_link}.t[bgx]z}"
    +- re_pkgfile = /(?:#{re_pkgfile.source}|^#{Regexp.quote(latest_link)}\.t[bgx]z$)/
    ++ glob_pkgfile = "{#{glob_pkgfile},#{latest_link}.pkg}"
    ++ re_pkgfile = /(?:#{re_pkgfile.source}|^#{Regexp.quote(latest_link)}\.pkg$)/
    + end
    +
    + pkglist = []
    diff --git a/ports-mgmt/portupgrade-devel/files/patch-lib_pkgtools_pkgtools.rb b/ports-mgmt/portupgrade-devel/files/patch-lib_pkgtools_pkgtools.rb
    new file mode 100644
    index 000000000000..d1cf333def64
    --- /dev/null
    +++ b/ports-mgmt/portupgrade-devel/files/patch-lib_pkgtools_pkgtools.rb
    @@ -0,0 +1,65 @@
    +--- lib/pkgtools/pkgtools.rb.orig 2024-02-29 19:03:26 UTC
    ++++ lib/pkgtools/pkgtools.rb
    +@@ -315,7 +315,7 @@ end
    + def yesno_str(yes)
    + if yes then 'yes' else 'no' end
    + end
    +-
    ++
    + def prompt_yesno(message = "OK?", yes_by_default = false)
    + if $automatic
    + input = yesno_str(yes_by_default)
    +@@ -524,7 +524,7 @@ def script_path
    + # If a fixed/custom script(1) is installed by the port, use that version.
    + # See #8
    + custom_script = "#{PREFIX}/libexec/pkgtools/script"
    +- if File.exists?(custom_script)
    ++ if File.exist?(custom_script)
    + $script_path = custom_script
    + else
    + $script_path = '/usr/bin/script'
    +@@ -533,7 +533,7 @@ def logged_command(file, args)
    + end
    +
    + def logged_command(file, args)
    +- if !file
    ++ if !file
    + args
    + else
    + [script_path(), '-qa', file, *args]
    +@@ -780,7 +780,7 @@ def modify_pkgdep(pkgname, dep, newdep, neworigin = ni
    + if newdep == :add
    + keyword = $1
    + data = $2
    +- if keyword == "pkgdep " &&
    ++ if keyword == "pkgdep " &&
    + data.sub(pkgver_re,'') == dep.sub(pkgver_re,'')
    + depends_lines << "@pkgdep #{dep}\n"
    + pkgdep_undeleted = true
    +@@ -981,7 +981,7 @@ class PkgResult
    + def done?
    + @result == :done
    + end
    +-
    ++
    + def ignored?
    + @result == :ignored
    + end
    +@@ -1068,7 +1068,7 @@ class PkgResult
    +
    + io.puts line
    + end
    +-
    ++
    + def self.legend(long = false)
    + if long
    + [:done, :ignored, :skipped, :error]
    +@@ -1102,7 +1102,7 @@ class PkgResultSet < SimpleDelegator
    +
    + def summary
    + count = Hash.new(0)
    +-
    ++
    + each do |result|
    + if result.done?
    + count[:done] += 1

    --Multipart=_Sat__16_May_2026_10_01_31_+0900_GfZA4/TZ3tpNuCKi--


    --
    Posted automagically by a mail2news gateway at muc.de e.V.
    Please direct questions, flames, donations, etc. to news-admin@muc.de
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Gareth de Vaux@ports@lordcow.org to muc.lists.freebsd.ports on Sat May 16 13:19:19 2026
    From Newsgroup: muc.lists.freebsd.ports

    On Sat 2026-05-16 (10:01), Tomoaki AOKI wrote:
    Do you habitally run `portsdb -Uu`? (If you're always running
    `make index` at /usr/ports after updating ports tree, it can be
    `portsdb -u`.) portsclean requires up-to-date INDEX.db to work.

    I thought portsdb was obsoleted years ago, though I'm not sure what's
    updating my INDEX, eg. INDEX-14* was last updated on 1 April
    but I last updated the ports tree on 13 May and have upgraded ports
    (with portupgrade) since then.


    --
    Posted automagically by a mail2news gateway at muc.de e.V.
    Please direct questions, flames, donations, etc. to news-admin@muc.de
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Piotr Smyrak@ps.ports@smyrak.com to muc.lists.freebsd.ports on Sat May 16 16:37:01 2026
    From Newsgroup: muc.lists.freebsd.ports

    On Sat, 16 May 2026 13:19:19 +0200
    Gareth de Vaux <ports@lordcow.org> wrote:

    On Sat 2026-05-16 (10:01), Tomoaki AOKI wrote:
    Do you habitally run `portsdb -Uu`? (If you're always running
    `make index` at /usr/ports after updating ports tree, it can be
    `portsdb -u`.) portsclean requires up-to-date INDEX.db to work.

    I thought portsdb was obsoleted years ago, though I'm not sure what's updating my INDEX, eg. INDEX-14* was last updated on 1 April
    but I last updated the ports tree on 13 May and have upgraded ports
    (with portupgrade) since then.

    You can update both the ports tree and fetch a pre-generated INDEX file
    which was gathered according to default port option values, in one go
    with:

    % make fetchindex update

    If you have chosen a different set of defaults for your packages built
    locally (ie. a different Python version), the fetched INDEX will not be
    fully equivalent to you installed package suite, still you shall be
    able to make a picture.
    --
    Piotr Smyrak


    --
    Posted automagically by a mail2news gateway at muc.de e.V.
    Please direct questions, flames, donations, etc. to news-admin@muc.de
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Tomoaki AOKI@junchoon@dec.sakura.ne.jp to muc.lists.freebsd.ports on Sun May 17 09:26:56 2026
    From Newsgroup: muc.lists.freebsd.ports

    On Sat, 16 May 2026 13:19:19 +0200
    Gareth de Vaux <ports@lordcow.org> wrote:

    On Sat 2026-05-16 (10:01), Tomoaki AOKI wrote:
    Do you habitally run `portsdb -Uu`? (If you're always running
    `make index` at /usr/ports after updating ports tree, it can be
    `portsdb -u`.) portsclean requires up-to-date INDEX.db to work.

    I thought portsdb was obsoleted years ago, though I'm not sure what's updating my INDEX, eg. INDEX-14* was last updated on 1 April
    but I last updated the ports tree on 13 May and have upgraded ports
    (with portupgrade) since then.

    portsdb and portsclean are parts of ports-mgmt/portupgrade{-devel}.
    What was obsoleted by `pkg check` is pkgdb. Not portsdb.

    Maybe you've been confused as the names are similar.

    Regards.
    --
    Tomoaki AOKI <junchoon@dec.sakura.ne.jp>


    --
    Posted automagically by a mail2news gateway at muc.de e.V.
    Please direct questions, flames, donations, etc. to news-admin@muc.de
    --- Synchronet 3.22a-Linux NewsLink 1.2