UPDATE: devel/doxygen and devel/doxygen-gui
Hi All, straightforward update to the last doxygen version. After all problematic doxygen ports have been modified, the doxygen update is ready. The following ports still use it but there are no PLIST changes: astro/stellarium audio/liblo audio/libnjb databases/soprano devel/simulavr devel/tclap graphics/digikam-kde4 graphics/opencv math/ginac net/libktorrent productivity/kmymoney productivity/libalkimia x11/kde4/nepomuk-core x11/kde4/runtime Please find below one diff for doxygen and one for doxygen-gui. Best regards, Rafael Sadowski Index: Makefile === RCS file: /cvs/ports/devel/doxygen/Makefile,v retrieving revision 1.39 diff -u -p -u -p -r1.39 Makefile --- Makefile23 Dec 2016 15:23:11 - 1.39 +++ Makefile25 Mar 2017 08:00:30 - @@ -7,10 +7,9 @@ BROKEN-alpha= .got subsegment exceeds 64 COMMENT= source code documentation generator tool -VERSION= 1.8.12 +VERSION= 1.8.13 DISTNAME= doxygen-${VERSION}.src PKGNAME= doxygen-${VERSION} -REVISION= 1 CATEGORIES=devel textproc Index: distinfo === RCS file: /cvs/ports/devel/doxygen/distinfo,v retrieving revision 1.10 diff -u -p -u -p -r1.10 distinfo --- distinfo12 Nov 2016 20:50:41 - 1.10 +++ distinfo25 Mar 2017 08:00:30 - @@ -1,2 +1,2 @@ -SHA256 (doxygen-1.8.12.src.tar.gz) = eS1AkcvfIoVJ/yAz3XH/fqUCnGtDYxfMXshm5xMC32w= -SIZE (doxygen-1.8.12.src.tar.gz) = 4880613 +SHA256 (doxygen-1.8.13.src.tar.gz) = r2Z4h716h9wNv5rI2GyWtVLfuMqceQ7Ry/+qYTFXP2s= +SIZE (doxygen-1.8.13.src.tar.gz) = 4893912 Index: Makefile === RCS file: /cvs/ports/devel/doxygen-gui/Makefile,v retrieving revision 1.1.1.1 diff -u -p -u -p -r1.1.1.1 Makefile --- Makefile23 Dec 2016 15:29:22 - 1.1.1.1 +++ Makefile25 Mar 2017 08:00:19 - @@ -7,10 +7,9 @@ BROKEN-alpha= .got subsegment exceeds 64 COMMENT= GUI front-end for doxygen -VERSION= 1.8.12 +VERSION= 1.8.13 DISTNAME= doxygen-${VERSION}.src PKGNAME= doxygen-gui-${VERSION} -REVISION= 1 CATEGORIES=devel textproc Index: distinfo === RCS file: /cvs/ports/devel/doxygen-gui/distinfo,v retrieving revision 1.1.1.1 diff -u -p -u -p -r1.1.1.1 distinfo --- distinfo23 Dec 2016 15:29:22 - 1.1.1.1 +++ distinfo25 Mar 2017 08:00:19 - @@ -1,2 +1,2 @@ -SHA256 (doxygen-1.8.12.src.tar.gz) = eS1AkcvfIoVJ/yAz3XH/fqUCnGtDYxfMXshm5xMC32w= -SIZE (doxygen-1.8.12.src.tar.gz) = 4880613 +SHA256 (doxygen-1.8.13.src.tar.gz) = r2Z4h716h9wNv5rI2GyWtVLfuMqceQ7Ry/+qYTFXP2s= +SIZE (doxygen-1.8.13.src.tar.gz) = 4893912
[UPDATE] misc/mc to 4.8.19
Hi ports@, Here is a diff to update mc to 4.8.19 and switch HOMEPAGE to use HTTPS. Comments? OK? Index: Makefile === RCS file: /cvs/ports/misc/mc/Makefile,v retrieving revision 1.61 diff -u -p -r1.61 Makefile --- Makefile2 Nov 2016 06:46:20 - 1.61 +++ Makefile20 Mar 2017 22:29:16 - @@ -2,10 +2,10 @@ COMMENT= free Norton Commander clone with many useful features -DISTNAME= mc-4.8.18 +DISTNAME= mc-4.8.19 CATEGORIES=misc -HOMEPAGE= http://www.midnight-commander.org/ +HOMEPAGE= https://www.midnight-commander.org/ MASTER_SITES= ${HOMEPAGE}downloads/ MAINTAINER=Robert Nagy Index: distinfo === RCS file: /cvs/ports/misc/mc/distinfo,v retrieving revision 1.22 diff -u -p -r1.22 distinfo --- distinfo2 Nov 2016 06:46:20 - 1.22 +++ distinfo20 Mar 2017 22:29:16 - @@ -1,2 +1,2 @@ -SHA256 (mc-4.8.18.tar.xz) = 92NoFcmHwXGcT13i3NFWoOfQl7HRDkRm0r3q00PVvs4= -SIZE (mc-4.8.18.tar.xz) = 2462080 +SHA256 (mc-4.8.19.tar.xz) = 655Wu7WyiTYB0QDQ4Ck5gwSbMCxathv7VErQ7izB8t8= +SIZE (mc-4.8.19.tar.xz) = 2521808 Index: patches/patch-configure === RCS file: /cvs/ports/misc/mc/patches/patch-configure,v retrieving revision 1.14 diff -u -p -r1.14 patch-configure --- patches/patch-configure 12 Aug 2016 07:24:36 - 1.14 +++ patches/patch-configure 20 Mar 2017 22:29:16 - @@ -1,7 +1,7 @@ $OpenBSD: patch-configure,v 1.14 2016/08/12 07:24:36 kirby Exp $ configure.orig Sat May 7 19:13:45 2016 -+++ configure Thu May 12 00:54:21 2016 -@@ -16362,7 +16362,7 @@ if ${ac_cv_lib_slang_SLang_init_tty+:} false; then : +--- configure.orig Sat Mar 4 18:54:35 2017 configure Mon Mar 20 23:18:27 2017 +@@ -16424,7 +16424,7 @@ if ${ac_cv_lib_slang_SLang_init_tty+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -10,7 +10,7 @@ $OpenBSD: patch-configure,v 1.14 2016/08 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -@@ -27433,7 +27433,7 @@ done +@@ -27507,7 +27507,7 @@ done done IFS=$as_save_IFS @@ -19,7 +19,7 @@ $OpenBSD: patch-configure,v 1.14 2016/08 ;; esac fi -@@ -27474,7 +27474,7 @@ done +@@ -27548,7 +27548,7 @@ done done IFS=$as_save_IFS Index: pkg/PLIST === RCS file: /cvs/ports/misc/mc/pkg/PLIST,v retrieving revision 1.21 diff -u -p -r1.21 PLIST --- pkg/PLIST 2 Nov 2016 06:46:20 - 1.21 +++ pkg/PLIST 20 Mar 2017 22:29:16 - @@ -265,7 +265,13 @@ share/mc/skins/modarin256root-defbg.ini share/mc/skins/modarin256root.ini share/mc/skins/nicedark.ini share/mc/skins/sand256.ini +share/mc/skins/seasons-autumn16M.ini +share/mc/skins/seasons-spring16M.ini +share/mc/skins/seasons-summer16M.ini +share/mc/skins/seasons-winter16M.ini share/mc/skins/xoria256.ini +share/mc/skins/yadt256-defbg.ini +share/mc/skins/yadt256.ini share/mc/syntax/ share/mc/syntax/PKGBUILD.syntax share/mc/syntax/Syntax @@ -320,6 +326,8 @@ share/mc/syntax/named.syntax share/mc/syntax/nemerle.syntax share/mc/syntax/nroff.syntax share/mc/syntax/octave.syntax +share/mc/syntax/opencl.syntax +share/mc/syntax/osl.syntax share/mc/syntax/pascal.syntax share/mc/syntax/perl.syntax share/mc/syntax/php.syntax @@ -329,6 +337,7 @@ share/mc/syntax/procmail.syntax share/mc/syntax/properties.syntax share/mc/syntax/puppet.syntax share/mc/syntax/python.syntax +share/mc/syntax/r.syntax share/mc/syntax/ruby.syntax share/mc/syntax/sh.syntax share/mc/syntax/slang.syntax @@ -345,5 +354,6 @@ share/mc/syntax/unknown.syntax share/mc/syntax/verilog.syntax share/mc/syntax/vhdl.syntax share/mc/syntax/xml.syntax +share/mc/syntax/yaml.syntax share/mc/syntax/yum-repo.syntax share/mc/syntax/yxx.syntax
wxneeded for dosbox
Patch to add wxneeded to dosbox. I got a application that otherwise crashes with the following dosbox error message. >Setting excute permission on the code cache has failed >Exit to error: DRC64:Unhandled memory reference Sat Mar 25 14:59:35 CET 2017 /usr/ports/emulators/dosbox Index: Makefile === RCS file: /cvs/ports/emulators/dosbox/Makefile,v retrieving revision 1.31 diff -u -p -r1.31 Makefile --- Makefile24 Dec 2015 13:08:12 - 1.31 +++ Makefile25 Mar 2017 13:59:32 - @@ -1,11 +1,12 @@ # $OpenBSD: Makefile,v 1.31 2015/12/24 13:08:12 bentley Exp $ ONLY_FOR_ARCHS=${GCC4_ARCHS} +USE_WXNEEDED= Yes COMMENT= x86 with DOS emulator targeted at playing games DISTNAME= dosbox-0.74 -REVISION= 6 +REVISION= 7 CATEGORIES=games x11 emulators MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=dosbox/}
Re: wxneeded for dosbox
On Sat, Mar 25, 2017 at 03:24:26PM +0100, Benjamin Baier wrote: > Patch to add wxneeded to dosbox. I got a application that otherwise > crashes with the following dosbox error message. > > >Setting excute permission on the code cache has failed > >Exit to error: DRC64:Unhandled memory reference > I saw the W^X violation too and had to do this, but forgot to send the diff. FWIW, OK tsg@ if someone wants to commit.
Re: update: lang/rust to 1.16.0
Hi, Here a new diff for lang/rust with -doc subpackage. The way it is done is different from edd@ proposal. Below the explanation. On Tue, Mar 21, 2017 at 09:12:51PM +, Edd Barrett wrote: > > The diff I had been preparing today simply added back rustdoc into the > bootstrap. rustdoc is (uncompressed) an 8KB binary, so I figured it's > not really a burden upon us to have it in the bootstrap. Having rustdoc in the bootstrap is just not acceptable for me. The problem isn't related to the size, but it means the bootstrap is the same thing than the built package. At beginning, only one binary was enough in the bootstrap: rustc (statically built with various librust*) + system libraries (libc, libm, libpthread and libestdc++). The stage0 was used to build core Rust librairies, and next build a stage1, and next build a stage2 binary. The bootstrap tarball was a bootstrap tarball: only used for break a dependance cycle (because rustc needs rustc to build). Now and since few Rust releases, the requirements for building rustc are lot more important: you need rustc (but now built with dynamic librust*) + all libs of stage0 (rustbuild doesn't have built mecanism for stage0) + cargo + system libs. Packaging all of them in a tarball for building rustc starts really to be no sence : it will soon be more efficient to distribute the "bootstrap" instead of building a port with it. The reason is Rust distribution model is based on distribution of binaries (using a Rust tool named "rustup"). It is a real problem for distribution like us, because we normally don't work like that. I understand the need for some people to have a rust-doc package. The fact to drop the rust-doc generation is a ease, due to a new dependency to have in the bootstrap: the rustdoc binary. I spent some time in rustbuild to found a workaround. The purpose was to avoid to patch rustbuild: it is currently a moving target, so local patches could be problematic to maintain. For now, the following trick seems to work: I added a link at configure stage in bootstrap directory to ${WRKDIR}/stage2/rustdoc. The link is dangled at beginning. But as docs are built after binaries, a working rustdoc is here when docs are processed. It is a fragile method, but it works for now. I dunno for future Rust releases. Below an updated diff for lang/rust (with docs). Please test it, I could mess myself with the revert of -doc removal. rust-doc gains i386 fragment: compiler_builtins is different from amd64 (large integer support for 32-bits targets). Thanks. -- Sebastien Marie Index: Makefile === RCS file: /cvs/ports/lang/rust/Makefile,v retrieving revision 1.38 diff -u -p -r1.38 Makefile --- Makefile18 Feb 2017 13:15:48 - 1.38 +++ Makefile25 Mar 2017 15:38:18 - @@ -6,13 +6,12 @@ ONLY_FOR_ARCHS = amd64 i386 COMMENT-main = compiler for Rust Language COMMENT-doc = html documentation for rustc -V =1.15.1 +V =1.16.0 DISTNAME = rustc-${V}-src -REVISION = 0 # rustc bootstrap version -RBV-amd64 =1.15.0-20170203 -RBV-i386 = 1.15.0-20170204 +RBV-amd64 =1.16.0-20160315 +RBV-i386 = 1.16.0-20170312 RBV = ${RBV-${MACHINE_ARCH}} # cargo bootstrap version @@ -98,6 +97,21 @@ USE_LIBTOOL =gnu TEST_DEPENDS +=${FULLPKGNAME-main}:${BUILD_PKGPATH} \ devel/git +TEST_TARGET ?= src/test/run-pass \ + src/test/compile-fail \ + src/test/parse-fail \ + src/test/run-fail \ + src/test/mir-opt \ + src/test/incremental \ + src/test/ui \ + src/test/compile-fail-fulldeps \ + src/test/run-make \ + src/test/rustdoc \ + src/test/pretty \ + src/test/run-pass/pretty \ + src/test/run-fail/pretty \ + path/to/nowhere + # - check datasize limit before configuring (and building) pre-configure: @if [ `ulimit -d` -lt 1572864 ]; then \ @@ -121,6 +135,9 @@ do-configure: echo 'channel = "stable"' >>${WRKBUILD}/config.toml echo 'codegen-tests = false' >>${WRKBUILD}/config.toml + echo '[dist]' >>${WRKBUILD}/config.toml + echo 'src-tarball = false' >>${WRKBUILD}/config.toml + .if ${PORTS_LLVM:L:Myes} echo '[target.${TRIPLE_ARCH}]' >>${WRKBUILD}/config.toml echo 'llvm-config = "${LOCALBASE}/bin/llvm-config"' \ @@ -136,6 +153,12 @@ do-configure: cp ${LOCALBASE}/lib/libestdc++.so.${LIBESTDC_VERSION} \ ${WRKDIR}/modgcc-libs +# hack to build doc using generated stage2 instead of with stage0 +# (rustdoc isn't included in us bootstrap) +post-configure: + ln -fs ${WRKBUILD}/build/${TRIPLE_ARCH}/stage2/bin/rustdoc \ +
[UPDATE] databases/mongodb to 3.2.12
Minor update, but fixes a few WiredTiger and aggregation bugs. Also: * install manpages, * add mongobridge to PLIST, * remove duplicated line, * use BSD make loop structure rather than shell loop, so progress is reported. Thanks, Andrew Aldridge Index: Makefile === RCS file: /var/storage/andrew/openbsd/cvs/ports/databases/mongodb/Makefile,v retrieving revision 1.23 diff -u -p -r1.23 Makefile --- Makefile20 Sep 2016 15:44:57 - 1.23 +++ Makefile25 Mar 2017 16:35:05 - @@ -9,7 +9,7 @@ DPB_PROPERTIES = parallel COMMENT = scalable, high-performance document-oriented database -DISTNAME = mongodb-src-r3.2.7 +DISTNAME = mongodb-src-r3.2.12 REVISION = 0 PKGNAME = ${DISTNAME:S/src-r//} CATEGORIES = databases @@ -37,7 +37,6 @@ NO_CCACHE = Yes MODGCC4_ARCHS =* MODGCC4_LANGS =c c++ MODPY_VERSION =${MODPY_DEFAULT_VERSION_2} -ALL_TARGET = core tools MODSCONS_ENV = CC="${CC}" \ CXX="${CXX}" \ CCFLAGS="${CFLAGS} -DBOOST_NO_USER_CONFIG" \ @@ -67,9 +66,12 @@ TEST_DEPENDS = textproc/py-yaml \ BUILD_DEPENDS =textproc/icu4c do-install: - for bin in mongo mongod mongos mongosniff mongobridge mongoperf; do \ - ${INSTALL_PROGRAM} ${WRKSRC}/$$bin ${PREFIX}/bin/; \ - done +.for bin in mongo mongod mongos mongosniff mongobridge mongoperf + ${INSTALL_PROGRAM} ${WRKSRC}/${bin} ${PREFIX}/bin/ + if [ -f ${WRKSRC}/debian/${bin}.1 ]; then \ + ${INSTALL_MAN} ${WRKSRC}/debian/${bin}.1 ${PREFIX}/man/man1; \ + fi +.endfor ${INSTALL_DATA_DIR} ${PREFIX}/share/examples/mongodb ${INSTALL_DATA} ${FILESDIR}/mongodb.conf \ ${PREFIX}/share/examples/mongodb Index: distinfo === RCS file: /var/storage/andrew/openbsd/cvs/ports/databases/mongodb/distinfo,v retrieving revision 1.10 diff -u -p -r1.10 distinfo --- distinfo20 Jun 2016 09:07:43 - 1.10 +++ distinfo24 Mar 2017 20:08:14 - @@ -1,2 +1,2 @@ -SHA256 (mongodb-src-r3.2.7.tar.gz) = zYlnavb5dWFwCgi1mcKH+2OPFKahAZ75Fnz1XtajlSo= -SIZE (mongodb-src-r3.2.7.tar.gz) = 28494513 +SHA256 (mongodb-src-r3.2.12.tar.gz) = QGzthzqavoo/D5KTm/U3RmO6yGxyGByAvsFErt9s0wY= +SIZE (mongodb-src-r3.2.12.tar.gz) = 29178424 Index: pkg/PLIST === RCS file: /var/storage/andrew/openbsd/cvs/ports/databases/mongodb/pkg/PLIST,v retrieving revision 1.6 diff -u -p -r1.6 PLIST --- pkg/PLIST 6 May 2016 15:33:37 - 1.6 +++ pkg/PLIST 25 Mar 2017 16:06:38 - @@ -2,10 +2,16 @@ @newgroup _mongodb:670 @newuser _mongodb:670:670:daemon:MongoDB Account:/nonexistent:/sbin/nologin @bin bin/mongo +@bin bin/mongobridge @bin bin/mongod @bin bin/mongoperf @bin bin/mongos @bin bin/mongosniff +@man man/man1/mongo.1 +@man man/man1/mongod.1 +@man man/man1/mongoperf.1 +@man man/man1/mongos.1 +@man man/man1/mongosniff.1 share/examples/mongodb/ share/examples/mongodb/mongodb.conf @sample ${SYSCONFDIR}/mongodb.conf Index: Makefile === RCS file: /var/storage/andrew/openbsd/cvs/ports/databases/mongodb/Makefile,v retrieving revision 1.23 diff -u -p -r1.23 Makefile --- Makefile 20 Sep 2016 15:44:57 - 1.23 +++ Makefile 25 Mar 2017 16:35:05 - @@ -9,7 +9,7 @@ DPB_PROPERTIES = parallel COMMENT = scalable, high-performance document-oriented database -DISTNAME = mongodb-src-r3.2.7 +DISTNAME = mongodb-src-r3.2.12 REVISION = 0 PKGNAME = ${DISTNAME:S/src-r//} CATEGORIES = databases @@ -37,7 +37,6 @@ NO_CCACHE = Yes MODGCC4_ARCHS = * MODGCC4_LANGS = c c++ MODPY_VERSION = ${MODPY_DEFAULT_VERSION_2} -ALL_TARGET = core tools MODSCONS_ENV = CC="${CC}" \ CXX="${CXX}" \ CCFLAGS="${CFLAGS} -DBOOST_NO_USER_CONFIG" \ @@ -67,9 +66,12 @@ TEST_DEPENDS = textproc/py-yaml \ BUILD_DEPENDS = textproc/icu4c do-install: - for bin in mongo mongod mongos mongosniff mongobridge mongoperf; do \ - ${INSTALL_PROGRAM} ${WRKSRC}/$$bin ${PREFIX}/bin/; \ - done +.for bin in mongo mongod mongos mongosniff mongobridge mongoperf + ${INSTALL_PROGRAM} ${WRKSRC}/${bin} ${PREFIX}/bin/ + if [ -f ${WRKSRC}/debian/${bin}.1 ]; then \ + ${INSTALL_MAN} ${WRKSRC}/debian/${bin}.1 ${PREFIX}/man/man1; \ + fi +.endfor ${INSTALL_DATA_DIR} ${PREFIX}/share/examples/mongodb ${INSTALL_DATA} ${FILESDIR}/mongodb.conf \ ${PREFIX}/share/examples/mongodb Index: distinfo === RCS file: /var/storage/andrew/openbsd/cvs/ports/databases/mongodb/distinfo,v retrieving revision 1.10 diff -u -p -r1.10 distinfo --- distinfo 20 Jun 2016 09:07:43 - 1.10 +++ distinfo 24 Mar 2017 20:08:14 - @@ -1,2 +1,2 @@ -SHA256 (mongodb-src-r3.2.7.tar.gz) = zYlnavb5dWFwCgi1mcKH+2OPFKahAZ75Fnz1XtajlSo= -SIZE (mongodb-src-r3.2.
Re: [PATCH] lang/brandy (add an SDL flavor)
On 2017-03-24, Frederic Cambus wrote: > Here is a diff to add an SDL flavor to lang/brandy. Why make this a flavor? Why not just add it unconditionally to the port? -- Christian "naddy" Weisgerber na...@mips.inka.de
[security] [-stable] CVE-2017-2619 fixes for net/samba
CVE-2017-2619 (Symlink race allows access outside share definition) https://www.samba.org/samba/history/samba-4.4.12.html Here's a backport. Build / test reports on -stable would be appreciated. Index: Makefile === RCS file: /d/cvs/ports/net/samba/Makefile,v retrieving revision 1.227.2.2 diff -u -p -r1.227.2.2 Makefile --- Makefile18 Feb 2017 09:45:51 - 1.227.2.2 +++ Makefile25 Mar 2017 16:18:48 - @@ -15,7 +15,7 @@ PKGNAME-tevent = tevent-${TEVENT_V} PKGNAME-util = samba-util-${VERSION} PKGNAME-docs = samba-docs-${VERSION} -REVISION-main =1 +REVISION-main =2 REVISION-ldb = 0 REVISION-tevent = 0 Index: patches/patch-source3_smbd_dir_c === RCS file: patches/patch-source3_smbd_dir_c diff -N patches/patch-source3_smbd_dir_c --- /dev/null 1 Jan 1970 00:00:00 - +++ patches/patch-source3_smbd_dir_c25 Mar 2017 16:20:56 - @@ -0,0 +1,206 @@ +$OpenBSD$ + +CVE-2017-2619 (Symlink race allows access outside share definition) + +--- source3/smbd/dir.c.origSat Mar 25 17:19:25 2017 source3/smbd/dir.c Sat Mar 25 17:19:50 2017 +@@ -1588,7 +1588,8 @@ static int smb_Dir_destructor(struct smb_Dir *dirp) + Open a directory. + / + +-struct smb_Dir *OpenDir(TALLOC_CTX *mem_ctx, connection_struct *conn, ++static struct smb_Dir *OpenDir_internal(TALLOC_CTX *mem_ctx, ++ connection_struct *conn, + const char *name, + const char *mask, + uint32_t attr) +@@ -1600,27 +1601,21 @@ struct smb_Dir *OpenDir(TALLOC_CTX *mem_ctx, connectio + return NULL; + } + +- dirp->conn = conn; +- dirp->name_cache_size = lp_directory_name_cache_size(SNUM(conn)); +- +- dirp->dir_path = talloc_strdup(dirp, name); +- if (!dirp->dir_path) { +- errno = ENOMEM; ++ dirp->dir = SMB_VFS_OPENDIR(conn, name, mask, attr); ++ if (!dirp->dir) { ++ DEBUG(5,("OpenDir: Can't open %s. %s\n", name, ++ strerror(errno) )); + goto fail; + } + ++ dirp->conn = conn; ++ dirp->name_cache_size = lp_directory_name_cache_size(SNUM(conn)); ++ + if (sconn && !sconn->using_smb2) { + sconn->searches.dirhandles_open++; + } + talloc_set_destructor(dirp, smb_Dir_destructor); + +- dirp->dir = SMB_VFS_OPENDIR(conn, dirp->dir_path, mask, attr); +- if (!dirp->dir) { +- DEBUG(5,("OpenDir: Can't open %s. %s\n", dirp->dir_path, +- strerror(errno) )); +- goto fail; +- } +- + return dirp; + + fail: +@@ -1628,6 +1623,76 @@ struct smb_Dir *OpenDir(TALLOC_CTX *mem_ctx, connectio + return NULL; + } + ++/ ++ Open a directory handle by pathname, ensuring it's under the share path. ++/ ++ ++static struct smb_Dir *open_dir_safely(TALLOC_CTX *ctx, ++ connection_struct *conn, ++ const char *name, ++ const char *wcard, ++ uint32_t attr) ++{ ++ struct smb_Dir *dir_hnd = NULL; ++ char *saved_dir = vfs_GetWd(ctx, conn); ++ NTSTATUS status; ++ ++ if (saved_dir == NULL) { ++ return NULL; ++ } ++ ++ if (vfs_ChDir(conn, name) == -1) { ++ goto out; ++ } ++ ++ /* ++ * Now the directory is pinned, use ++ * REALPATH to ensure we can access it. ++ */ ++ status = check_name(conn, "."); ++ if (!NT_STATUS_IS_OK(status)) { ++ goto out; ++ } ++ ++ dir_hnd = OpenDir_internal(ctx, ++ conn, ++ ".", ++ wcard, ++ attr); ++ ++ if (dir_hnd == NULL) { ++ goto out; ++ } ++ ++ /* ++ * OpenDir_internal only gets "." as the dir name. ++ * Store the real dir name here. ++ */ ++ ++ dir_hnd->dir_path = talloc_strdup(dir_hnd, name); ++ if (!dir_hnd->dir_path) { ++ errno = ENOMEM; ++ } ++ ++ out: ++ ++ vfs_ChDir(conn, saved_dir); ++ TALLOC_FREE(saved_dir); ++ return dir_hnd; ++} ++ ++struct smb_Dir *OpenDir(TALLOC_CTX *mem_ctx, connection_struct *conn, ++ const char *name, ++ const char *mask, ++ uint32_t attr) ++{ ++ return open_dir_safely(mem_ctx, ++ conn, ++ name, ++
This is pretty evil behaviour.
pkg_add -ui You should also check /etc/cvsyncd.conf (which was modified) # more /etc/cvsync.conf # $OpenBSD: cvsync.conf,v 1.1 2013/08/29 14:28:13 naddy Exp $ # # Fetch the OpenBSD CVS repository. # config { # for a list of available servers, see # http://www.openbsd.org/cvsync.html#CVSROOT hostname cvsync.example.org base-prefix /cvs compress # the whole repository collection { name openbsd release rcs scanfile /var/cache/cvsync/openbsd } # # alternatively, fetch only selected parts # collection { # name openbsd-cvsroot release rcs # } # collection { # name openbsd-ports release rcs # } # collection { # name openbsd-src release rcs # } # collection { # name openbsd-www release rcs # } # collection { # name openbsd-xenocara release rcs # } # # # the X11 and XF4 trees are of historical interest only # collection { # name openbsd-x11 release rcs # } # collection { # name openbsd-xf4 release rcs # } } I contend modifying something to turn it into an idiot example is wrong behaviour
nevermind, I'm dumb
derp
Re: wxneeded for dosbox
On Sat, Mar 25, 2017 at 05:43:27PM +0200, Giannis Tsaraias wrote: > On Sat, Mar 25, 2017 at 03:24:26PM +0100, Benjamin Baier wrote: > > Patch to add wxneeded to dosbox. I got a application that otherwise > > crashes with the following dosbox error message. > > > > >Setting excute permission on the code cache has failed > > >Exit to error: DRC64:Unhandled memory reference > > > > I saw the W^X violation too and had to do this, but forgot to send the diff. > FWIW, OK tsg@ if someone wants to commit. > Hey, I noticed it too while playing Mortal Kombat 1 :) Some other games (skiordi, stunts) don't crash. -- Kind regards, Hiltjo
Remove emulators/spectemu?
Hi ports@, The version we have in ports (0.94) is from 1998, and has been marked as BROKEN since July 2015. The most recent release (0.99.3) is from 2004. We have an up to date port for emulators/fuse, which emulates the 48K and more, and is still being maintained. Comments? OK to remove it?
[UPDATE] emulators/vice to 3.0
Hi ports@, Here is a diff to update vice to 3.0. Notable changes: - Switch to using the SDL UI - Remove the BROKEN marker for i386, this version works fine - Remove --disable-ffmpeg in CONFIGURE_ARGS, as it's now disabled by default - Remove now useless patches, and add a patch to prevent building a redundant copy of vice.info, as doing so breaks the build Comments? OK? Index: Makefile === RCS file: /cvs/ports/emulators/vice/Makefile,v retrieving revision 1.3 diff -u -p -r1.3 Makefile --- Makefile7 May 2016 21:54:40 - 1.3 +++ Makefile25 Mar 2017 21:12:32 - @@ -1,11 +1,8 @@ # $OpenBSD: Makefile,v 1.3 2016/05/07 21:54:40 sthen Exp $ -BROKEN-i386 = platform_x86_runtime_cpu.c:203: error: 'asm' operand has impossible constraints - COMMENT = versatile Commodore emulator -DISTNAME = vice-2.4 -REVISION = 1 +DISTNAME = vice-3.0 CATEGORIES = emulators @@ -14,13 +11,14 @@ HOMEPAGE = http://vice-emu.sourceforge. # GPLv2+ PERMIT_PACKAGE_CDROM = Yes -WANTLIB += ICE SDL SM X11 Xaw Xext Xmu Xpm Xrandr Xt Xv Xxf86vm -WANTLIB += c gif jpeg png m pthread readline stdc++ termcap usbhid -WANTLIB += z +WANTLIB += FLAC GL SDL c gif jpeg m ogg png pthread readline stdc++ +WANTLIB += termcap vorbis vorbisenc vorbisfile z MASTER_SITES = ${MASTER_SITE_SOURCEFORGE:=vice-emu/} -LIB_DEPENDS = devel/sdl \ +LIB_DEPENDS = audio/flac \ + audio/libvorbis \ + devel/sdl \ graphics/giflib \ graphics/jpeg \ graphics/png @@ -31,10 +29,8 @@ AUTOCONF_VERSION = 2.68 CONFIGURE_ARGS += --without-oss \ --without-pulse \ --with-sdlsound \ - --disable-lame - -# XXX broken with ffmpeg-20131216 -CONFIGURE_ARGS += --disable-ffmpeg + --disable-lame \ + --enable-sdlui pre-configure: ${SUBST_CMD} ${WRKSRC}/man/vice.1 Index: distinfo === RCS file: /cvs/ports/emulators/vice/distinfo,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 distinfo --- distinfo20 Aug 2015 07:50:30 - 1.1.1.1 +++ distinfo25 Mar 2017 21:12:32 - @@ -1,2 +1,2 @@ -SHA256 (vice-2.4.tar.gz) = /4uNXw9JfR+OdblbvEIEmTp4koSgiopZunJ62B3KzhA= -SIZE (vice-2.4.tar.gz) = 13656511 +SHA256 (vice-3.0.tar.gz) = vFaBE4GSDUOrXy+FpeCPIatb32GQ3V3+n1AKdF0Ulys= +SIZE (vice-3.0.tar.gz) = 26513197 Index: patches/patch-acinclude_m4 === RCS file: /cvs/ports/emulators/vice/patches/patch-acinclude_m4,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 patch-acinclude_m4 --- patches/patch-acinclude_m4 20 Aug 2015 07:50:30 - 1.1.1.1 +++ patches/patch-acinclude_m4 25 Mar 2017 21:12:32 - @@ -4,12 +4,12 @@ Don't error on --disable-silent-rules. --- acinclude.m4.orig Fri Oct 26 23:33:44 2012 +++ acinclude.m4 Fri Oct 26 23:34:21 2012 -@@ -242,7 +242,7 @@ fi[]dnl - # - - AC_DEFUN([VICE_ARG_INIT], - [ --vice_arg_enable_list="dependency-tracking" -+vice_arg_enable_list="silent-rules gtk-doc dependency-tracking" - vice_arg_with_list="x" - ])# VICE_ARG_INIT - +@@ -242,7 +242,7 @@ fi[]dnl + # - + AC_DEFUN([VICE_ARG_INIT], + [ +-vice_arg_enable_list="dependency-tracking" ++vice_arg_enable_list="silent-rules gtk-doc dependency-tracking" + vice_arg_with_list="x" + ])# VICE_ARG_INIT + Index: patches/patch-configure_ac === RCS file: patches/patch-configure_ac diff -N patches/patch-configure_ac --- /dev/null 1 Jan 1970 00:00:00 - +++ patches/patch-configure_ac 25 Mar 2017 21:12:32 - @@ -0,0 +1,35 @@ +$OpenBSD$ + +Don't build a redundant copy of the documentation. +Don't run fc-cache on install. + +--- configure.ac.orig Wed Mar 1 14:59:31 2017 configure.ac Wed Mar 1 15:01:35 2017 +@@ -643,12 +643,7 @@ fi + AC_CHECK_PROGS(MAKEINFO, makeinfo, no) + + AC_CHECK_PROGS(TEXI2DVI, texi2dvi, no) +-AC_CHECK_PROGS(PDFTEX, pdftex, no) +-if test x"$TEXI2DVI" = "xno" -o x"$PDFTEX" = "xno"; then +- AM_CONDITIONAL(BUILD_PDF, false) +-else +- AM_CONDITIONAL(BUILD_PDF, true) +-fi ++AM_CONDITIONAL(BUILD_PDF, false) + + AC_CHECK_PROGS(DOS2UNIX, dos2unix, dos2unix) + +@@ -2998,12 +2993,7 @@ if test x"$enable_lame" != "xno" ; then + + fi + +-AC_PATH_PROGS(FCCACHE, fc-cache, false) +-if test x"$FCCACHE" = "xfalse"; then +- AM_CONDITIONAL(HAVE_FC_CACHE, false) +-else +- AM_CONDITIONAL(HAVE_FC_CACHE, true) +-fi ++AM_CONDITIONAL(HAVE_FC_CACHE, false) + + if test x"$is_amigaos4" = "xyes"; then + if test x"$enable_sdlui" != "xyes" -a x"$enable_sdlui2" != "xyes"; then Index: patches/patch-configure_in
remove poppler-qt (was: update print/poppler...)
Hi, On Thu, Mar 23, 2017 at 09:04:19PM +0100, Matthias Kilian wrote: > > Updated diff below, which also kills a stray tab that emacs warns about. > > I'll try it this evening in a dpb -uR run. That didn't went well, because it breaks editors/texmaker, editors/texworks, graphics/pdf2djvu, and print/texlive/base. I really don't want even try to switch those to ports gcc now. Instead, I'll try to patch away the c++11 changes to poppler, but first I'd like to get rid of the qt subpackages (that's qt3). Or backport the bugfixess from poppler-0.53 to 0.52 (which is pretty much the same). Diff below (including the stray tabs removal from jca). Any objections? Ciao, Kili Index: Makefile === RCS file: /cvs/ports/print/poppler/Makefile,v retrieving revision 1.119 diff -u -p -r1.119 Makefile --- Makefile19 Feb 2017 20:53:26 - 1.119 +++ Makefile25 Mar 2017 22:13:47 - @@ -1,7 +1,6 @@ # $OpenBSD: Makefile,v 1.119 2017/02/19 20:53:26 kili Exp $ COMMENT-main= PDF rendering library -COMMENT-qt=qt interface to PDF rendering library COMMENT-qt4= qt4 interface to PDF rendering library COMMENT-qt5= Qt5 interface to PDF rendering library COMMENT-utils= PDF conversion tools and utilities @@ -11,20 +10,17 @@ DISTNAME= poppler-$V CATEGORIES=print PKGNAME-main= poppler-$V PKGNAME-utils= poppler-utils-$V -PKGNAME-qt=poppler-qt-$V PKGNAME-qt4= poppler-qt4-$V PKGNAME-qt5= poppler-qt5-$V -OLDSHIT = poppler-0.16.7 + +EXTRACT_SUFX= .tar.xz SHARED_LIBS += poppler 43.1 # 66.0 SHARED_LIBS += poppler-glib 16.0 # 16.0 -SHARED_LIBS += poppler-qt 12.0 # 3.0 SHARED_LIBS += poppler-qt4 20.1 # 15.0 SHARED_LIBS += poppler-qt5 3.1 # 10.0 SHARED_LIBS += poppler-cpp 8.0 # 3.0 -DISTFILES = ${DISTNAME}.tar.xz ${OLDSHIT}.tar.gz - HOMEPAGE= http://poppler.freedesktop.org/ MAINTAINER=Matthias Kilian @@ -34,25 +30,19 @@ PERMIT_PACKAGE_CDROM= Yes MASTER_SITES= ${HOMEPAGE} -PSEUDO_FLAVORS=no_qt no_qt4 no_qt5 bootstrap +PSEUDO_FLAVORS=no_qt4 no_qt5 bootstrap # XXX not strictly a bootstrap loop, but on the critical path for libreoffice -FLAVOR?=no_qt no_qt4 no_qt5 bootstrap +FLAVOR?=no_qt4 no_qt5 bootstrap NOT_FOR_ARCHS-qt4 = arm NOT_FOR_ARCHS-qt5 = arm -MULTI_PACKAGES=-main -qt -qt4 -qt5 -utils +MULTI_PACKAGES=-main -qt4 -qt5 -utils .include cWANTLIB= expat freetype fontconfig jpeg m pthread tiff z -.if ${BUILD_PACKAGES:M-qt} -MODULES+= x11/qt3 -.else -CONFIGURE_ARGS+= --disable-poppler-qt -.endif - .if ${BUILD_PACKAGES:M-qt4} MODULES+= x11/qt4 .else @@ -80,9 +70,6 @@ LIB_DEPENDS-main= \ graphics/png \ graphics/tiff -LIB_DEPENDS-qt=${MODQT3_LIB_DEPENDS} \ - print/poppler - LIB_DEPENDS-qt4=${MODQT4_LIB_DEPENDS} \ print/poppler @@ -96,12 +83,6 @@ WANTLIB-main=${cWANTLIB} Xext ffi gio-2 png pthread-stubs xcb xcb-render lcms2 xcb-shm \ iconv intl stdc++ -WANTLIB-qt=${cWANTLIB} ${MODQT3_WANTLIB} lcms2 openjp2 poppler png \ - pthread-stubs stdc++ \ - GL ICE SM X11 X11-xcb Xcursor Xdamage Xext Xfixes Xft \ - Xi Xinerama Xmu Xrandr Xrender Xt Xxf86vm drm glapi \ - lcms mng xcb xcb-dri2 xcb-glx - WANTLIB-qt4=${cWANTLIB} ${MODQT4_WANTLIB} ICE QtCore QtGui QtXml \ SM X11 Xext Xi Xinerama Xrender ffi glib-2.0 \ gobject-2.0 gthread-2.0 iconv intl lcms2 openjp2 \ @@ -113,7 +94,7 @@ WANTLIB-qt5= ${cWANTLIB} estdc++ \ glib-2.0 gobject-2.0 graphite2 gthread-2.0 harfbuzz \ iconv icudata icui18n icuuc intl lcms2 openjp2 pcre \ pcre16 png poppler pthread-stubs xcb xcb-dri2 xcb-glx - + WANTLIB-utils= X11 Xext Xrender c cairo fontconfig lcms2 m pixman-1 \ png pthread-stubs stdc++ xcb xcb-render xcb-shm openjp2 \ poppler z ${cWANTLIB} @@ -130,7 +111,6 @@ CONFIGURE_ARGS+=--enable-xpdf-headers \ CONFIGURE_ENV+= CPPFLAGS="-I${X11BASE}/include -I${LOCALBASE}/include" \ LDFLAGS="-L${LOCALBASE}/lib" \ LIBJPEG_CFLAGS="-I${LOCALBASE}/include" \ - POPPLER_QT_LIBS="-L${LOCALBASE}/lib/qt3 -lqt-mt" \ ac_cv_prog_MOCQT4=${MODQT4_MOC} USE_GMAKE= Yes @@ -141,15 +121,6 @@ MAIN_CXX= /usr/bin/c++ MAIN_CC:= ccache ${MAIN_CC} MAIN_CXX:= ccache ${MAIN_CXX} .endif - -post-extract: - cd ${WRKDIST} && \ - for i in poppler-qt-uninstalled.pc.in poppler-qt.pc.cmake \ - poppler-qt.pc.in; do \ - ln -sf ../${OLDSHIT}/$$i $$i; \ - done; \ - ln -sf ../../${OLDSHIT}/m4/qt.m4 m4/qt.m4 - cd ${WRKDIST} && cp -R ../${OLDSHIT}/qt qt post-configure: fi
Re: Update: lang/ruby/2.4 2.4.0 -> 2.4.1
I'm testing on 6.0 and several regression tests seem to work well. Thank you On Wed, Mar 22, 2017 at 10:43:00AM -0700, Jeremy Evans wrote: Simple update to the latest release of Ruby 2.4. Fixes a number of interpreter crashes and other problems. Release announcement at: https://www.ruby-lang.org/en/news/2017/03/22/ruby-2-4-1-released/ The shared lib major bump is due to the removal of the ruby_vm_sysstack_error_copy function. Without that this would just be a minor bump for some new functions. Tested on amd64. I'm not sure I'll have a chance to run a bulk of all ruby ports before committing this, but I tried about 20 and they all work. I should be able to fix any fallout quickly. I'll be committing in a couple days unless I hear objections. Thanks, Jeremy Index: Makefile === RCS file: /cvs/ports/lang/ruby/2.4/Makefile,v retrieving revision 1.2 diff -u -p -r1.2 Makefile --- Makefile21 Feb 2017 17:04:45 - 1.2 +++ Makefile22 Mar 2017 15:31:30 - @@ -4,11 +4,11 @@ COMMENT-main =object oriented script l COMMENT-gdbm = gdbm interface for ruby COMMENT-ri_docs = ri documentation files for ruby -VERSION = 2.4.0 +VERSION = 2.4.1 RUBYLIBREV = 2.4 DISTNAME = ruby-${VERSION} -SHARED_LIBS = ruby24 0.0 +SHARED_LIBS = ruby24 1.0 PKGNAME-main = ruby-${VERSION} PKGNAME-gdbm = ruby24-gdbm-${VERSION} PKGNAME-ri_docs = ruby24-ri_docs-${VERSION} Index: distinfo === RCS file: /cvs/ports/lang/ruby/2.4/distinfo,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 distinfo --- distinfo6 Jan 2017 15:59:25 - 1.1.1.1 +++ distinfo22 Mar 2017 15:31:39 - @@ -1,2 +1,2 @@ -SHA256 (ruby-2.4.0.tar.gz) = FS/QvRWpC0oYITRI9IXUtT6fdmLhUIGQqltwJEaynj0= -SIZE (ruby-2.4.0.tar.gz) = 14104044 +SHA256 (ruby-2.4.1.tar.gz) = ozDhDVy15Ts6AHgybFcxiIu1XjLEq/6yfZ5/jl0AAlA= +SIZE (ruby-2.4.1.tar.gz) = 14174752 Index: patches/patch-compile_c === RCS file: /cvs/ports/lang/ruby/2.4/patches/patch-compile_c,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 patch-compile_c --- patches/patch-compile_c 6 Jan 2017 15:59:25 - 1.1.1.1 +++ patches/patch-compile_c 22 Mar 2017 15:38:15 - @@ -2,9 +2,9 @@ $OpenBSD: patch-compile_c,v 1.1.1.1 2017 Disable peephole optimizer on sparc64, since it occasionally segfaults. compile.c.orig Thu Dec 8 18:57:57 2016 -+++ compile.c Sun Dec 18 13:32:10 2016 -@@ -2046,6 +2046,9 @@ static int +--- compile.c.orig Sat Mar 11 08:29:51 2017 compile.c Wed Mar 22 08:33:15 2017 +@@ -2048,6 +2048,9 @@ static int iseq_peephole_optimize(rb_iseq_t *iseq, LINK_ELEMENT *list, const int do_tailcallopt) { INSN *iobj = (INSN *)list; Index: patches/patch-configure === RCS file: /cvs/ports/lang/ruby/2.4/patches/patch-configure,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 patch-configure --- patches/patch-configure 6 Jan 2017 15:59:25 - 1.1.1.1 +++ patches/patch-configure 22 Mar 2017 15:38:16 - @@ -5,8 +5,8 @@ Fix so name, checking for DOT and DOXYGE Override the arch setting to remove OpenBSD version from it, so ports don't have to be bumped when OpenBSD version changes. configure.orig Fri Dec 23 08:06:46 2016 -+++ configure Sat Dec 24 22:25:54 2016 +--- configure.orig Tue Mar 21 22:56:10 2017 configure Wed Mar 22 08:33:15 2017 @@ -424,7 +424,7 @@ if test -z "$2"; then : else @@ -16,7 +16,7 @@ so ports don't have to be bumped when Op if test "$FOLD"; then : echo "$2" | fold -s -w50 | -@@ -25553,7 +25553,7 @@ esac +@@ -25601,7 +25601,7 @@ esac openbsd*|mirbsd*) : SOLIBS='$(LIBS)' @@ -25,7 +25,7 @@ so ports don't have to be bumped when Op ;; #( solaris*) : -@@ -26926,7 +26926,7 @@ _ACEOF +@@ -26974,7 +26974,7 @@ _ACEOF _ACEOF else Index: patches/patch-include_ruby_ruby_h === RCS file: /cvs/ports/lang/ruby/2.4/patches/patch-include_ruby_ruby_h,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 patch-include_ruby_ruby_h --- patches/patch-include_ruby_ruby_h 6 Jan 2017 15:59:25 - 1.1.1.1 +++ patches/patch-include_ruby_ruby_h 22 Mar 2017 15:38:14 - @@ -3,9 +3,9 @@ $OpenBSD: patch-include_ruby_ruby_h,v 1. Fix GCC error: #pragma GCC diagnostic not allowed inside functions when compiling some extensions. include/ruby/ruby.h.orig Thu Dec 22 12:58:55 2016 -+++ include/ruby/ruby.hSat Dec 24 22:25:54 2016 -@@ -2192,7 +2192,7 @@ ERRORFUNC(("variable argument length doesn't match"), +--- include/ruby/ruby.h.orig Mon Mar 13 00:30:30 2017 include/ruby/ruby.hWed Mar 22 08:33:15 2017 +
Re: wxneeded for dosbox
On Sat, Mar 25, 2017 at 06:51:32PM +0100, Hiltjo Posthuma wrote: > On Sat, Mar 25, 2017 at 05:43:27PM +0200, Giannis Tsaraias wrote: > > On Sat, Mar 25, 2017 at 03:24:26PM +0100, Benjamin Baier wrote: > > > Patch to add wxneeded to dosbox. I got a application that otherwise > > > crashes with the following dosbox error message. > > > > > > >Setting excute permission on the code cache has failed > > > >Exit to error: DRC64:Unhandled memory reference > > > > > > > I saw the W^X violation too and had to do this, but forgot to send the diff. > > FWIW, OK tsg@ if someone wants to commit. > > > > Hey, > > I noticed it too while playing Mortal Kombat 1 :) > > Some other games (skiordi, stunts) don't crash. Instead of blindly setting USE_WXNEEDED, I'd prefer if someone who has a case that triggers this can try disabling the various cpu core options in configure.
Re: wxneeded for dosbox
> On Sat, Mar 25, 2017 at 06:51:32PM +0100, Hiltjo Posthuma wrote: > > On Sat, Mar 25, 2017 at 05:43:27PM +0200, Giannis Tsaraias wrote: > > > On Sat, Mar 25, 2017 at 03:24:26PM +0100, Benjamin Baier wrote: > > > > Patch to add wxneeded to dosbox. I got a application that otherwise > > > > crashes with the following dosbox error message. > > > > > > > > >Setting excute permission on the code cache has failed > > > > >Exit to error: DRC64:Unhandled memory reference > > > > > > > > > > I saw the W^X violation too and had to do this, but forgot to send the > > > diff. > > > FWIW, OK tsg@ if someone wants to commit. > > > > > > > Hey, > > > > I noticed it too while playing Mortal Kombat 1 :) > > > > Some other games (skiordi, stunts) don't crash. > > Instead of blindly setting USE_WXNEEDED, I'd prefer if someone who has > a case that triggers this can try disabling the various cpu core options > in configure. so true wxneeded was added as tooling, so that hopefully the greater community would try to fix programs instead, people are just marking the programs with it pretty sad, but I guess that's the way the world works