Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
gnome-builder
gnome-builder
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 499
    • Issues 499
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 20
    • Merge Requests 20
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • GNOME
  • gnome-buildergnome-builder
  • Issues
  • #361

Closed
Open
Opened Jan 24, 2018 by Ting-Wei Lan@lantwDeveloper

ptsname_r is a non-portable GNU extension

Unfortunately, POSIX doesn't seem to have a thread-safe version of ptsname, and ptsname_r is not available on FreeBSD. I am not sure how should we fix the issue. Should we simply fallback to the thread-unsafe ptsname, or implement an equivalent of ptsname_r for FreeBSD and leave an #error in the #else block for other operating systems? ptsname on FreeBSD is a simple wrapper of fdevname_r, so it is possible to implement a thread-safe ptsname_r with fdevname_r.

I found there is fallback code in src/libide/util/ptyintercept.c using F_SETFD to set O_NONBLOCK. I haven't checked whether it works, but the man page says FD_CLOEXEC is the only flag that can be used with F_SETFD. Other O_* flags should be set by F_SETFL.

There are still a few problems which prevent GNOME Builder from working properly on FreeBSD. This is just a quick note because I haven't spend time making patches for them.

  1. ctags should be moved to the bottom of the list of possible names in find_program call in data/gsettings/meson.build, so exctags can be found before ctags.
  2. autoreconf is usually installed in /usr/local/bin instead of /usr/bin, so autotools projects cannot be built because of 'command not found' error.
  3. The default grep command is too old and it doesn't support --exclude-dir. We may want to add a meson option for specifying the path to a recent version of GNU grep.
  4. GNOME Builder hangs in 'Caching build commands' step. I haven't debugged this issue.
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: GNOME/gnome-builder#361