Git Product home page Git Product logo

yad's Introduction

Yet Another Dialog -- GTK+-2 Maintenance Branch

Use yad (yet another dialog) in shell scripts to displays GTK+ dialogs involving messages, lists, forms and several other commonly-used interface elements.

Summary

This project is an independent fork of the parent project.

This project is licensed under the GNU GPL3 license, see License and copyright section in this page.

Project goals:

  • Overwhelmingly, maintain compatibility with GTK+-2.
  • Build against either GTK+-2 or GTK+-3. The two builds provide the same features.
  • Backport features from the parent project.
  • Introduce original features.

100% compatibility with the parent project is not a goal but keeping reasonably compatible still informs my decisions. Feature comparison

Several Linux distributions that still depend on GTK+-2 include a binary derived from this fork.

History

The parent project removed GTK+-2 support in version 1.0. This repository was forked from the 0.42.0 release (d0021d0 February 2019) with the goal to continue GTK+-2 support, mainly for the benefit of the Fatdog64 Linux distribution. With time this fork has reached several other Linux distributions that need a GTK+-2 yad package.

Scope

In the spirit of a maintainance project, fixing bugs takes precedence. New features can be added as my time permits but only if they are tested with, and work equally well for, GTK+-2 and GTK+-3. New features are introduced as either backports from the parent project or, more rarely, as original features. You can read all about this in the feature comparison page.

Contributions and pull requests (PR) are always welcome!

Naming Hell

This repository is named yad, same as its parent project's. Both projects build a binary file named yad. Fatdog64 renames the binary yad_gtk2 or yad_gtk3, according to the build, and only ships yad_gtk2, with a symbolic link in /usr/bin from name yad to target yad_gtk2. The Fatdog64 package repository provides packages yad_gtk2, yad_gtk3, yad_doc and yad_ultimate, which is Fatdog64's package name for the parent project (and the parent project's binary is named yadu).

For short I will use yadL for the products of this fork, and yadU for the parent project.

Building yadL from Git

This fork's default branch is named maintain-gtk2. All development takes place in the default branch.

Get the latest source code with command:

git clone https://github.com/step-/yad.git maintain-gtk2

Generate build scripts, configure and build the project:

cd maintain-gtk2 &&
git checkout maintain-gtk2 &&
autoreconf -ivf &&
intltoolize &&
./configure &&
make &&
: install with: make install

To build successfully you may need to install the following packages:

with appropriate -dev packages depending on your distro.

When you run configure you can pass some options to build yad with the following libraries:

Distributions

Distributions known to package this fork: read distributions.

Links

yad's People

Contributors

brlin-tw avatar dimkr avatar sonyahay avatar step- avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

yad's Issues

Last changes crashes yad

When trying to run it, It simply crashes with many (not all) options, actually it crashes on a Live system but not in my main computer, which is strange

This is the GDB result from a segfault running simply "yad":

#0  0x00007ffff7418d76 in  () at /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff75e6d68 in g_strconcat () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x000055555557dc9f in set_comment (s=<optimized out>, key=0x5555555863f0 "width", kf=0x5555555e3850) at util.c:108
        comment = <optimized out>
        kf = 0x5555555e3850
        context = <optimized out>
#3  write_settings () at util.c:122
        kf = 0x5555555e3850
        context = <optimized out>
#4  0x000055555557e355 in read_settings () at util.c:99
        kf = <optimized out>
        filename = 0x55555561c800 "/home/eliveuser/.config/yad.conf"
#5  0x0000555555569c9e in main (argc=<optimized out>, argv=<optimized out>) at main.c:776
        ctx = <optimized out>
        err = 0x0
        w = 0x7fff
        h = 0xffffe1b8
        str = <optimized out>


registers:
rax            0x1                 0x1
rbx            0x7fffffffdf90      0x7fffffffdf90
rcx            0x1                 0x1
rdx            0x7fffffffdfa0      0x7fffffffdfa0
rsi            0x5555555863e1      0x5555555863e1
rdi            0x1                 0x1
rbp            0x555555582e2f      0x555555582e2f
rsp            0x7fffffffdf68      0x7fffffffdf68
r8             0x800               0x800
r9             0x0                 0x0
r10            0x555555558ee2      0x555555558ee2
r11            0x7ffff75e6ce0      0x7ffff75e6ce0
r12            0x16                0x16
r13            0x0                 0x0
r14            0x7fffffffe040      0x7fffffffe040
r15            0x7fffffffe078      0x7fffffffe078
rip            0x7ffff7418d76      0x7ffff7418d76
eflags         0x10293             [ CF AF SF IF RF ]
cs             0x33                0x33
ss             0x2b                0x2b
ds             0x0                 0x0
es             0x0                 0x0
fs             0x0                 0x0
gs             0x0                 0x0


current instructions:
=> 0x7ffff7418d76:      movdqu xmm4,XMMWORD PTR [rax]
   0x7ffff7418d7a:      pcmpeqb xmm4,xmm0
   0x7ffff7418d7e:      pmovmskb edx,xmm4
   0x7ffff7418d82:      test   edx,edx
   0x7ffff7418d84:      je     0x7ffff7418d8a
   0x7ffff7418d86:      bsf    eax,edx
   0x7ffff7418d89:      ret
   0x7ffff7418d8a:      and    rax,0xfffffffffffffff0
   0x7ffff7418d8e:      pcmpeqb xmm1,XMMWORD PTR [rax+0x10]
   0x7ffff7418d93:      pcmpeqb xmm2,XMMWORD PTR [rax+0x20]
   0x7ffff7418d98:      pcmpeqb xmm3,XMMWORD PTR [rax+0x30]
   0x7ffff7418d9d:      pmovmskb edx,xmm1
   0x7ffff7418da1:      pmovmskb r8d,xmm2
   0x7ffff7418da6:      pmovmskb ecx,xmm3
   0x7ffff7418daa:      shl    rdx,0x10
   0x7ffff7418dae:      shl    rcx,0x10


threads backtrace:

Thread 1 (Thread 0x7ffff63ffa00 (LWP 23374) "yad"):
#0  0x00007ffff7418d76 in  () at /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff75e6d68 in g_strconcat () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x000055555557dc9f in set_comment (s=<optimized out>, key=0x5555555863f0 "width", kf=0x5555555e3850) at util.c:108
#3  write_settings () at util.c:122
#4  0x000055555557e355 in read_settings () at util.c:99
#5  0x0000555555569c9e in main (argc=<optimized out>, argv=<optimized out>) at main.c:776

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.