Package Details: surf-git 2.0.r82.g7dcce9e-1

Git Clone URL: (read-only, click to copy)
Package Base: surf-git
Description: a WebKit based browser
Upstream URL:
Keywords: browser suckless web webkit
Licenses: custom:MIT/X
Conflicts: surf
Provides: surf
Submitter: None
Maintainer: cdude
Last Packager: cdude
Votes: 34
Popularity: 0.004745
First Submitted: 2013-03-06 09:28 (UTC)
Last Updated: 2020-12-11 21:54 (UTC)

Latest Comments

cdude commented on 2020-12-11 22:03 (UTC) (edited on 2020-12-11 22:10 (UTC) by cdude)

Sorry for the delay. Th package should be fixed now. Note: the warnings are in the upstream source code. You can safely ignore them.

I also made custom config.h optional. To use one, put it in the main source directory and edit the appropriate PKGBUILD section:

source=("$_pkgname::git+" 'config.h')
md5sums=('SKIP' 'SKIP')`

mao2047 commented on 2020-12-11 00:19 (UTC)

I tried what erb suggests but it didn't work. It gave me this:

surf.c: In function ‘newview’:
surf.c:1179:11: error: ‘plugindirs’ undeclared (first use in this function); did you mean ‘Plugins’?
 1179 |   for (; *plugindirs; ++plugindirs)
      |           ^~~~~~~~~~
      |           Plugins
surf.c:1179:11: note: each undeclared identifier is reported only once for each function it appears in
surf.c: In function ‘createwindow’:
surf.c:1448:3: warning: ‘gtk_window_set_wmclass’ is deprecated [-Wdeprecated-declarations]
 1448 |   gtk_window_set_wmclass(GTK_WINDOW(w), wmstr, "Surf");
      |   ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/gtk-3.0/gtk/gtkdialog.h:32,
                 from /usr/include/gtk-3.0/gtk/gtkaboutdialog.h:30,
                 from /usr/include/gtk-3.0/gtk/gtk.h:31,
                 from surf.c:25:
/usr/include/gtk-3.0/gtk/gtkwindow.h:154:12: note: declared here
  154 | void       gtk_window_set_wmclass              (GtkWindow           *window,
      |            ^~~~~~~~~~~~~~~~~~~~~~
make: *** [Makefile:31: surf.o] Error 1
==> ERROR: A failure occurred in build().

erb commented on 2020-05-25 08:35 (UTC) (edited on 2020-05-25 08:41 (UTC) by erb)

Getting an error when building, looks like an upstream issue?

Edit: Nvm, looks like an issue in config.h

Edit 2: Fixed by replacing all instances of 'scroll' with 'scrollh' in config.h and building with makepkg -si --skipchecksums.

c99 `pkg-config --cflags x11` `pkg-config --cflags gtk+-3.0 gcr-3 webkit2gtk-4.0` -DVERSION=\"2.0\" -DWEBEXTDIR=\"/usr/lib/surf\"  -D_DEFAULT_SOURCE -DGCR_API_SUBJECT_TO_CHANGE -fPIC -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -c common.c
c99 -shared -Wl,-soname, -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -o \
    libsurf-webext.o common.o `pkg-config --libs webkit2gtk-4.0 webkit2gtk-web-extension-4.0`
c99 `pkg-config --cflags x11` `pkg-config --cflags gtk+-3.0 gcr-3 webkit2gtk-4.0` -DVERSION=\"2.0\" -DWEBEXTDIR=\"/usr/lib/surf\"  -D_DEFAULT_SOURCE -DGCR_API_SUBJECT_TO_CHANGE -fPIC -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -c surf.c
In file included from surf.c:302:
config.h:149:43: error: ‘scroll’ undeclared here (not in a function); did you mean ‘scrollh’?
  149 |  { MODKEY,                GDK_KEY_j,      scroll,     { .i = 'd' } },
      |                                           ^~~~~~
      |                                           scrollh
surf.c: In function ‘createwindow’:
surf.c:1421:3: warning: ‘gtk_window_set_wmclass’ is deprecated [-Wdeprecated-declarations]
 1421 |   gtk_window_set_wmclass(GTK_WINDOW(w), wmstr, "Surf");
      |   ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/gtk-3.0/gtk/gtkdialog.h:32,
                 from /usr/include/gtk-3.0/gtk/gtkaboutdialog.h:30,
                 from /usr/include/gtk-3.0/gtk/gtk.h:31,
                 from surf.c:23:
/usr/include/gtk-3.0/gtk/gtkwindow.h:154:12: note: declared here
  154 | void       gtk_window_set_wmclass              (GtkWindow           *window,
      |            ^~~~~~~~~~~~~~~~~~~~~~
make: *** [Makefile:24: surf.o] Error 1
==> ERROR: A failure occurred in build().
Error making: surf-git

christoph.gysin commented on 2019-12-17 08:31 (UTC)

Deleting the prepare() section and remove src/surf/config.h will fix the build.

himorithm commented on 2019-03-14 18:16 (UTC) (edited on 2019-03-14 18:18 (UTC) by himorithm)

Same issue with me. Finally did diff config.h diff with repository. Changed config.h then it started compiling with makepkg --skipchecksums.

Package got built but looks like Dmenu functionality broken . Ctrl+g don't show any text.

copperteal commented on 2019-01-13 19:12 (UTC)

I git-clone'd the repo, but makepkg is aborting the build. Here's my log:

Any suggestions?

sekret commented on 2018-04-28 20:04 (UTC)

Nicely done! :-) I'd vote however to make the PKGBUILD skip the checksum test for the config.h At least on my workflow this is the better way to handle it.

And thanks for this link! :-)

cdude commented on 2018-04-28 20:03 (UTC)

If you are not aware of it already, here is a highly recommended read about suckless surf:

cdude commented on 2018-04-28 19:58 (UTC)

Thank you sekret.

I have adopted the package.

  • Added tabbed (you could also use tabbed-git) as an optional dependency.
  • PKGBUILD now supports patches: simply include the patch in the main directory, add the name to the source array in PKGBUILD, run updpkgsums, and then build. The patch should apply automatically, provided that it is a git version patch.


sekret commented on 2018-03-20 21:31 (UTC)

Somehow surf isn't usable for me anymore. I actually don't even use it, so it's best if somebody with more interest takes care of this package.


sekret commented on 2017-05-12 09:59 (UTC)

Big update, now surf uses webkit2gtk. You'll also see that things changed on the surface :-) Enjoy!

zcal commented on 2015-12-10 19:01 (UTC)

Ah, silly me. Thanks!

sekret commented on 2015-12-10 17:30 (UTC)

Yes it does. By default the config.h is being ignored. But if you take a look at the prepare() function you'll see that I commented the line which changes this behavior.

zcal commented on 2015-12-10 16:59 (UTC)

config.h appears to get ignored when the package is built.

sekret commented on 2014-07-02 07:43 (UTC)

Changed the pkgver to something more appropriate and changed the prepare function, because the previous one was ugly and failed if SRCDEST was set in /etc/makepkg.conf to a custom directory (which I have now, that's why I noticed).

sekret commented on 2013-08-13 17:50 (UTC)

Adopted and changed optional dependency xterm to st, since that's the default now. I'm not sure about the prepare function, but it seems to work fine, so I'll leave it as it is for now.

commented on 2013-07-13 19:06 (UTC)

Added xorg-xprop to the dependencies, because of the report in this thread Apparently namcap isn't always right ;)

commented on 2013-04-05 21:35 (UTC)

Oh and I changed the way it applies patches. Now it does it how upstream wants it to be done, see

commented on 2013-04-05 21:35 (UTC)

Ok, I gave my best changing this package to how pacman 4.1 wants it. Please test it and report issues, especially if there's something I can improve on the PKGBUILD, since there's no prototype PKGBUILD in the abs package.

commented on 2013-03-22 23:58 (UTC)

Well I could comment the lines which do the patching. Fact is, I won't be able to make a PKGBUILD which works for everybody. The easiest thing would be, if everyone took the PKGBUILD from here and adjusts it to his needs. I won't do a lot of updates, since it's a git package and the build mechanism is very strait forward, it won't change much, or won't change at all.

eworm commented on 2013-03-22 15:17 (UTC)

For me using SRCDEST is really a bad idea... Your PKGBUILD tries to apply any patch found there - and that's a lot for me.

gtmanfred commented on 2013-03-20 22:03 (UTC)

it would be suffecient to use $SRCDEST... because if you redefine $BUILDDIR in makepkg.conf ... $srcdir and $pkgdir are off at $BUILDDIR, while $startdir is only where PKGBUILD is, if source files are downloaded, via a url, they are saved in $SRCDEST which again could be anywhere

commented on 2013-03-20 21:13 (UTC)

Is this the intended way to handle such files? In this case here, would it be ok to use $srcdir/../config.h rather than $startdir/config.h?

gtmanfred commented on 2013-03-20 20:27 (UTC)

please do not use $startdir, if anything use $SRCDIR, but even then it should still be in the source=() array and if someone has a custom one, they can run --skipinteg with makepkg

commented on 2013-03-06 09:29 (UTC)

Hi, I made a request on the aur-general mailing list, see , to remove or merge every hg package for suckless projects, because suckless switched to git. I created a package surf-git, so yours and mine can get merged. This way the 79 votes don't get lost. I'd be happy to orphan surf-git so you can adopt it afterwards. Please leave a comment about this here or join the thread on the mailing list.

gtmanfred commented on 2012-12-04 01:41 (UTC)

please make this surf-git and i will merge all comments and votes over

lfleischer commented on 2010-09-08 17:25 (UTC)

alexandrite, totoloco: Ack. Should be either a dependency or an optdep.

commented on 2010-08-18 03:36 (UTC)

Spoen here (forgot my login info so I made Spoen) Actually, I think xorg-utils should go in Depends=() not makedepends=().

totoloco commented on 2010-08-13 01:38 (UTC)

Thx spoen :D

commented on 2010-08-13 01:04 (UTC)

Looks like this package is missing a depdendency for xorg-utils, which contains xprop. The fix is trivial, but here it is nontheless: