Slackware This Forum is for the discussion of Slackware Linux.
|
Notices |
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
|
View Poll Results: When will you switch to Wayland in Slackware?
|
As soon as it works
|
  
|
7 |
3.24% |
As soon as it's stable
|
  
|
26 |
12.04% |
Not before it is included by the dev team
|
  
|
115 |
53.24% |
No plans to switch
|
  
|
68 |
31.48% |
 |
|
07-09-2013, 06:14 AM
|
#76
|
Member
Registered: May 2013
Location: Massachusetts
Distribution: Slackware, NetBSD, Debian, Sourcemage, 9front
Posts: 386
Rep: 
|
Quote:
Originally Posted by qweasd
Can't tell you much, only played with it for a few hours.
|
How do selections work? Do you still get an X style PRIMARY selection in addition to CLIPBOARD (select with left button, paste with middle with no intervening ctrl-C or whatever)? This was a concern in a thread about Wayland a couple of years ago, that we'd have to give up certain aspects of X's user interface.
|
|
|
07-09-2013, 07:14 AM
|
#77
|
Member
Registered: May 2010
Posts: 621
Original Poster
Rep: 
|
With the setup I have, which is as vanilla as it gets, the mouse copy/paste works only for X clients running on xwayland. The PRIMARY selection appears to work great: I am able to copy and paste with shortcuts between weston-terminal (no X connection) and kate (X client).
My paper-napkin speed tests do not show any difference in startup times (X versus xwayland). I timed X clients like firefox and inkscape by mashing ctrl-w as soon as the window appears.
Another awesome thing is, I am able to run X on terminal 7 and wayland on terminal 8 at the same time. Wooosh.
Last edited by qweasd; 07-09-2013 at 07:19 AM.
|
|
|
07-11-2013, 11:34 AM
|
#78
|
Member
Registered: May 2010
Posts: 621
Original Poster
Rep: 
|
I have a question related to libraries. No matter what I try, wayland seems to use the stock cairo library, which is too old as of 14.0. LD_LIBRARY_PATH and LD_PRELOAD have no effect, even though I built recent cairo, just as wayland build instructions say. I was able to sidestep this problem by pulling cairo from Slackware current and installing it systemwide.
If I can solve this little hiccup, I can post here a slackbuild for 14.0+ which will pull and build wayland+xwayland+weston.
edit: I think I found the culprit, and it's pango. I have no idea what really is going on, but it feels like the stock pango is pulling up the stock cairo, which makes things fail. This shouldn't be a problem in current, as cairo is sufficiently new, but I'll try to build pango in 14.0.
edit 2: Hehe I give up. When they say upstream it's not easy to build pango, they are not kidding: I can't seem to build it correctly, and I find myself fixing build bugs in Xft. Who knows what else I am missing.
edit 3: Holy crap, I can't build it anymore. I have it running, but when I try repeating the build process, I see a whole new error.
Last edited by qweasd; 07-13-2013 at 01:57 PM.
|
|
|
07-14-2013, 11:47 AM
|
#79
|
Member
Registered: May 2010
Posts: 621
Original Poster
Rep: 
|
wayland build script
I tried to make it as painless as possible. The first file is a build script, intended to be run as non-root. It will pull sources and install everything in the current directory. The second file is a minimal pam configuration. The script will tell you what you must do to set things up. I only tested this in Slackware 14.0 x64, and only with intel graphics. I managed also to build the ati driver, but not others.
wayland.SlackBuild
Code:
#!/bin/sh
# SlackBuild script for wayland, by melikamp.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful, but
# without any warranty; without even the implied warranty of
# merchantability or fitness for a particular purpose. Compiling,
# interpreting, executing or merely reading the text of the program
# may result in lapses of consciousness and/or very being, up to and
# including the end of all existence and the Universe as we know it.
# See the GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program (most likely, a file named COPYING). If
# not, see <http://www.gnu.org/licenses/>.
WLD_BUILD=$(pwd)
WLD=$WLD_BUILD/install
LD_LIBRARY_PATH=$WLD/lib
PKG_CONFIG_PATH=$WLD/lib/pkgconfig/:$WLD/share/pkgconfig/
ACLOCAL="aclocal -I $WLD/share/aclocal"
export WLD LD_LIBRARY_PATH PKG_CONFIG_PATH ACLOCAL
set -e
cat <<EOF
This script will pull the sources into $WLD_BUILD, then build and
install wayland, weston, and xwayland into $WLD. It is intended to be
run as non-root (as is weston). It was tested only in Slackware 14.0
x64, and only with intel driver, so your mileage may vary. We also
assume you have a full install of Slackware 14.0.
Before you can run wayland + weston, you must take care of configuration
and dependencies. (1) is required to build weston, as weird as it
sounds (we blame pango), and the rest are required to run, just as the
upstream documentation says. If you find a way not to bump cairo,
please drop us a line.
(1) You need to upgrade cairo before you build. Run this to download
it, edit the slackbuild to configure with --enable-gl, then upgrade as
usual.
mkdir cairo ; cd cairo
wget http://mirrors.slackware.com/slackware/slackware64-current/source/l/cairo/cairo-1.12.14.tar.xz
wget http://mirrors.slackware.com/slackware/slackware64-current/source/l/cairo/cairo.SlackBuild
wget http://mirrors.slackware.com/slackware/slackware64-current/source/l/cairo/paredown.sh
wget http://mirrors.slackware.com/slackware/slackware64-current/source/l/cairo/slack-desc
(2) You will need Linux-PAM, which you can build with a script. Run
this to pull the source and the slackbuild, then install as usual.
wget --reject="index.html*" --level 1 -r -nH --cut-dirs 5 --no-parent \\
http://slackbuilds.org/mirror/slackware/slackware-14.0/extra/source/pam \\
http://slackbuilds.org/mirror/slackware/slackware-14.0/extra/source/pam/patches
(3) You will also probably need a config file for pam. At least, we
couldn't make it work without it, so we stole one from Debian 7. Put
the file "other" into /etc/pam.d/
(4) You will need to create a group and add yourself to it:
su -
groupadd weston-launch
usermod -a -G weston-launch YOUR_NAME_HERE
(5) You will need to add this to your .bash_profile or whatever is
your login shell start-up file (no need to re-log, and no point doing
this in a running session, as weston starts a brand-new login shell):
if test -z "\${XDG_RUNTIME_DIR}"; then
export XDG_RUNTIME_DIR=/tmp/\${UID}-runtime-dir
if ! test -d "\${XDG_RUNTIME_DIR}"; then
mkdir "\${XDG_RUNTIME_DIR}"
chmod 0700 "\${XDG_RUNTIME_DIR}"
fi
fi
Proceed? (y/n)
EOF
read -N 1 foo ; echo
if [[ $foo != y ]] ; then exit ; fi
rm -rf $WLD || true
mkdir -p $WLD/share/aclocal
# parameters: dir name, url, [options other than --prefix]*
git_make_install() { (
cd $WLD_BUILD
rm -rf $1 || true
git clone --depth 1 $2
cd $1
shift 2
./autogen.sh --prefix=$WLD $@
make
make install
) }
# Wayland libraries
git_make_install wayland git://anongit.freedesktop.org/wayland/wayland
# Mesa
git_make_install drm git://anongit.freedesktop.org/git/mesa/drm
git_make_install mesa git://anongit.freedesktop.org/mesa/mesa \
--enable-gles2 --disable-gallium-egl \
--with-egl-platforms=x11,wayland,drm --enable-gbm --enable-shared-glapi \
--with-gallium-drivers=r300,r600,swrast,nouveau
# libxkbcommon
git_make_install libxkbcommon git://github.com/xkbcommon/libxkbcommon \
--with-xkb-config-root=/usr/share/X11/xkb
# cairo-gl
git_make_install pixman git://anongit.freedesktop.org/pixman
git_make_install cairo git://anongit.freedesktop.org/cairo --enable-gl --enable-xcb
# libunwind
( cd $WLD_BUILD
rm -rf libunwind || true
git clone --depth 1 git://git.sv.gnu.org/libunwind
cd libunwind
autoreconf -i
./configure --prefix=$WLD
make
make install
)
# Weston and demo applications
( cd $WLD_BUILD
rm -rf weston || true
git clone --depth 1 git://anongit.freedesktop.org/wayland/weston
cd weston
./autogen.sh --prefix=$WLD --enable-clients
make
# We don't want to chown root in this install, as it will break things
# for non-root installers.
sed -i 's/chown root/#chown root/' src/Makefile
sed -i 's/chmod u+s/#chmod u+s/' src/Makefile
make install
)
# X.org
git_make_install xserver "git://anongit.freedesktop.org/xorg/xserver -b xwayland-1.12"
# DDX - Any non-empty subset should be OK. We only tested intel.
git_make_install xf86-video-intel "git://anongit.freedesktop.org/xorg/driver/xf86-video-intel -b xwayland"
git_make_install xf86-video-ati "https://github.com/RAOF/xf86-video-ati -b xwayland"
# wlshm and nouveau didn't build right away, so we gave up.
#git_make_install xf86-video-wlshm git://people.freedesktop.org/~iksaif/xf86-video-wlshm
#git_make_install xf86-video-nouveau "https://github.com/RAOF/xf86-video-nouveau -b xwayland"
# Paths
mkdir -p $WLD/share/X11/xkb/rules
ln -s /usr/share/X11/xkb/rules/evdev $WLD/share/X11/xkb/rules/
ln -s /usr/bin/xkbcomp $WLD/bin/
# Ta-daa
cd $WLD_BUILD
gencfg() {
cat > $HOME/.config/weston.ini <<EOF
[core]
modules=desktop-shell.so,xwayland.so
[shell]
background-image=/usr/share/wallpapers/Blue_Curl/contents/images/1920x1200.jpg
background-color=0xff002244
#background-type=tile
panel-color=0x500000ff
locking=true
animation=zoom
#binding-modifier=ctrl
#num-workspaces=6
cursor-theme=whiteglass
cursor-size=24
#lockscreen-icon=/usr/share/icons/gnome/256x256/actions/lock.png
#lockscreen=/usr/share/backgrounds/gnome/Garden.jpg
#homescreen=/usr/share/backgrounds/gnome/Blinds.jpg
#animation=fade
[launcher]
icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png
path=$WLD/bin/weston-terminal
[screensaver]
# Uncomment path to disable[SIC] screensaver
path=$WLD/libexec/weston-screensaver
duration=600
[input-method]
path=$WLD/libexec/weston-keyboard
#[output]
#name=LVDS1
#mode=1680x1050
#transform=90
#icc_profile=/usr/share/color/icc/colord/Bluish.icc
#[output]
#name=VGA1
#mode=173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
#transform=flipped
#[output]
#name=X1
#mode=1024x768
#transform=flipped-270
EOF
}
cat <<EOF
There is one more thing we need to do.
Sample weston configuration is in $WLD_BUILD/weston/weston.ini, but it almost
certainly needs editing. Do you want us to generate and install a config file
~/.config/weston.ini? (y/n)
EOF
read -N 1 foo ; echo
if [[ $foo == y ]] ; then gencfg ; fi
cat <<EOF
Before you can start weston with
$WLD/bin/weston-launch
you need to change permissions on weston-launch:
su -
chown root $WLD/bin/weston-launch
chmod +s $WLD/bin/weston-launch
Clients are in $WLD/bin and $WLD_BUILD/weston/clients
Enjoy!
EOF
other (that's the name of the file!)
Code:
#
# /etc/pam.d/other - specify the PAM fallback behaviour
#
# Note that this file is used for any unspecified service; for example
#if /etc/pam.d/cron specifies no session modules but cron calls
#pam_open_session, the session module out of /etc/pam.d/other is
#used. If you really want nothing to happen then use pam_permit.so or
#pam_deny.so as appropriate.
# We fall back to the system default in /etc/pam.d/common-*
#
#
# /etc/pam.d/common-auth - authentication settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authentication modules that define
# the central authentication scheme for use on the system
# (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the
# traditional Unix authentication mechanisms.
#
# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
# To take advantage of this, it is recommended that you configure any
# local modules either before or after the default block, and use
# pam-auth-update to manage selection of other modules. See
# pam-auth-update(8) for details.
# here are the per-package modules (the "Primary" block)
auth [success=1 default=ignore] pam_unix.so nullok_secure
# here's the fallback if no module succeeds
auth requisite pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
auth required pam_permit.so
# and here are more per-package modules (the "Additional" block)
# end of pam-auth-update config
#
# /etc/pam.d/common-account - authorization settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authorization modules that define
# the central access policy for use on the system. The default is to
# only deny service to users whose accounts are expired in /etc/shadow.
#
# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
# To take advantage of this, it is recommended that you configure any
# local modules either before or after the default block, and use
# pam-auth-update to manage selection of other modules. See
# pam-auth-update(8) for details.
#
# here are the per-package modules (the "Primary" block)
account [success=1 new_authtok_reqd=done default=ignore] pam_unix.so
# here's the fallback if no module succeeds
account requisite pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
account required pam_permit.so
# and here are more per-package modules (the "Additional" block)
# end of pam-auth-update config
#
# /etc/pam.d/common-password - password-related modules common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define the services to be
# used to change user passwords. The default is pam_unix.
# Explanation of pam_unix options:
#
# The "sha512" option enables salted SHA512 passwords. Without this option,
# the default is Unix crypt. Prior releases used the option "md5".
#
# The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in
# login.defs.
#
# See the pam_unix manpage for other options.
# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
# To take advantage of this, it is recommended that you configure any
# local modules either before or after the default block, and use
# pam-auth-update to manage selection of other modules. See
# pam-auth-update(8) for details.
# here are the per-package modules (the "Primary" block)
password [success=1 default=ignore] pam_unix.so obscure sha512
# here's the fallback if no module succeeds
password requisite pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
password required pam_permit.so
# and here are more per-package modules (the "Additional" block)
password optional pam_gnome_keyring.so
# end of pam-auth-update config
#
# /etc/pam.d/common-session - session-related modules common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define tasks to be performed
# at the start and end of sessions of *any* kind (both interactive and
# non-interactive).
#
# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
# To take advantage of this, it is recommended that you configure any
# local modules either before or after the default block, and use
# pam-auth-update to manage selection of other modules. See
# pam-auth-update(8) for details.
# here are the per-package modules (the "Primary" block)
session [default=1] pam_permit.so
# here's the fallback if no module succeeds
session requisite pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
session required pam_permit.so
# and here are more per-package modules (the "Additional" block)
session required pam_unix.so
session optional pam_ck_connector.so nox11
# end of pam-auth-update config
Last edited by qweasd; 07-14-2013 at 11:58 AM.
|
|
1 members found this post helpful.
|
07-14-2013, 12:13 PM
|
#80
|
Member
Registered: Sep 2011
Posts: 925
|
Wayland requires PAM?
|
|
|
07-14-2013, 12:35 PM
|
#81
|
Member
Registered: May 2010
Posts: 621
Original Poster
Rep: 
|
Apparently.
Edit: rvdboom appears to be right: LinuxPAM is required for weston, but not wayland, at least judging by ./configure and the cursing. Should be in the build instructions, but it ain't.
Last edited by qweasd; 07-16-2013 at 12:24 PM.
|
|
|
07-14-2013, 01:53 PM
|
#82
|
Member
Registered: Sep 2011
Posts: 925
|
Then the chances that it makes it into Slackware are suddenly very slim. 
|
|
|
07-14-2013, 01:59 PM
|
#83
|
Member
Registered: May 2010
Posts: 621
Original Poster
Rep: 
|
Yeah, I am not holding my breath. None of the "real" desktop environments are working yet, and that's pretty much a must before it can be included anywhere, let alone Slackware.
|
|
|
07-15-2013, 10:21 PM
|
#84
|
LQ Guru
Registered: Jul 2011
Location: California
Distribution: Slackware64-15.0 Multilib
Posts: 6,564
|
I'd rather be PAM-less...
|
|
|
07-16-2013, 01:13 AM
|
#85
|
Member
Registered: Jul 2007
Distribution: Slackware
Posts: 235
Rep:
|
It's apparently Weston, the compositor, that requires PAM, not Wayland itself.
Meaning Slackware can just install Wayland and run compositors that do not require PAM. Hopefully Kwin and Xfwm will be among them.
|
|
|
07-16-2013, 03:05 AM
|
#86
|
Senior Member
Registered: Dec 2008
Posts: 1,201
|
Will xfig and gv work with Wayland?
|
|
|
07-16-2013, 07:43 AM
|
#87
|
Moderator
Registered: Dec 2009
Location: Germany
Distribution: Whatever fits the task best
Posts: 17,148
|
Quote:
Originally Posted by guanx
Will xfig and gv work with Wayland?
|
They will work in XWayland, a compatibility layer, which is feature complete when Xserver 1.15 is released.
|
|
|
07-16-2013, 08:26 AM
|
#88
|
Senior Member
Registered: Dec 2008
Posts: 1,201
|
Quote:
Originally Posted by TobiSGD
They will work in XWayland, a compatibility layer, which is feature complete when Xserver 1.15 is released.
|
Sounds good!
|
|
|
07-16-2013, 10:29 AM
|
#89
|
Member
Registered: May 2010
Posts: 621
Original Poster
Rep: 
|
Quote:
Originally Posted by guanx
Sounds good!
|
It looks good too, although there are some glitches with drop-down menus and such (they sometimes appear detached, which is being fixed afaik). Not only it runs every X app, it just works(tm) for running them over ssh.
|
|
|
07-16-2013, 08:41 PM
|
#90
|
LQ Guru
Registered: Jul 2011
Location: California
Distribution: Slackware64-15.0 Multilib
Posts: 6,564
|
Quote:
Originally Posted by qweasd
It looks good too, although there are some glitches with drop-down menus and such (they sometimes appear detached, which is being fixed afaik). Not only it runs every X app, it just works(tm) for running them over ssh.
|
Do any of the current desktop environments work at all with Wayland and/or XWayland?
|
|
|
All times are GMT -5. The time now is 11:39 PM.
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|