Radix cross Linux

The main Radix cross Linux repository contains the build scripts of packages, which have the most complete and common functionality for desktop machines

383 Commits   1 Branch   1 Tag
Index: X11/libs/cjs/6.0.0/Makefile
===================================================================
--- X11/libs/cjs/6.0.0/Makefile	(nonexistent)
+++ X11/libs/cjs/6.0.0/Makefile	(revision 242)
@@ -0,0 +1,371 @@
+
+COMPONENT_TARGETS  = $(HARDWARE_INTEL_PC32)
+COMPONENT_TARGETS += $(HARDWARE_INTEL_PC64)
+COMPONENT_TARGETS += $(HARDWARE_EBOX_3350DX2)
+COMPONENT_TARGETS += $(HARDWARE_CB1X)
+COMPONENT_TARGETS += $(HARDWARE_CB2X)
+COMPONENT_TARGETS += $(HARDWARE_CB3X)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PP2E)
+COMPONENT_TARGETS += $(HARDWARE_NANOPI_NEO)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PP)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PL2)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5B)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5P)
+COMPONENT_TARGETS += $(HARDWARE_ROCK_5B)
+COMPONENT_TARGETS += $(HARDWARE_WECHIP_TX6)
+COMPONENT_TARGETS += $(HARDWARE_REPKA_PI3)
+COMPONENT_TARGETS += $(HARDWARE_FFRK3288)
+COMPONENT_TARGETS += $(HARDWARE_POIN2)
+COMPONENT_TARGETS += $(HARDWARE_RK3328_CC)
+COMPONENT_TARGETS += $(HARDWARE_KHADAS_EDGE)
+COMPONENT_TARGETS += $(HARDWARE_LEEZ_P710)
+COMPONENT_TARGETS += $(HARDWARE_M201)
+COMPONENT_TARGETS += $(HARDWARE_MXV)
+COMPONENT_TARGETS += $(HARDWARE_P201)
+COMPONENT_TARGETS += $(HARDWARE_NEXBOX_A95X)
+COMPONENT_TARGETS += $(HARDWARE_ODROID_C2)
+COMPONENT_TARGETS += $(HARDWARE_P212)
+COMPONENT_TARGETS += $(HARDWARE_KHADAS_VIM)
+COMPONENT_TARGETS += $(HARDWARE_Q201)
+COMPONENT_TARGETS += $(HARDWARE_ENYBOX_X2)
+COMPONENT_TARGETS += $(HARDWARE_KHADAS_VIM2)
+COMPONENT_TARGETS += $(HARDWARE_NIT6Q)
+COMPONENT_TARGETS += $(HARDWARE_OKMX6DL_C)
+COMPONENT_TARGETS += $(HARDWARE_OKMX6Q_C)
+COMPONENT_TARGETS += $(HARDWARE_BONE_BLACK)
+COMPONENT_TARGETS += $(HARDWARE_OMAP5UEVM)
+COMPONENT_TARGETS += $(HARDWARE_DRA7XXEVM)
+COMPONENT_TARGETS += $(HARDWARE_CI20)
+COMPONENT_TARGETS += $(HARDWARE_BAIKAL_T1)
+COMPONENT_TARGETS += $(HARDWARE_BAIKAL_M1)
+COMPONENT_TARGETS += $(HARDWARE_S824L)
+COMPONENT_TARGETS += $(HARDWARE_VESNIN)
+COMPONENT_TARGETS += $(HARDWARE_S824L_LSB)
+COMPONENT_TARGETS += $(HARDWARE_VESNIN_LSB)
+COMPONENT_TARGETS += $(HARDWARE_TL2WK2)
+COMPONENT_TARGETS += $(HARDWARE_TL2SV2)
+COMPONENT_TARGETS += $(HARDWARE_TL2WK2_LSB)
+COMPONENT_TARGETS += $(HARDWARE_TL2SV2_LSB)
+COMPONENT_TARGETS += $(HARDWARE_VISIONFIVE2)
+COMPONENT_TARGETS += $(HARDWARE_SIFIVE_U740)
+
+
+NEED_ABS_PATH      = true
+COMPONENT_IS_3PP   = true
+
+
+include ../../../../build-system/constants.mk
+
+
+SOURCE_REQUIRES    = sources/packages/x/MINT/cjs
+
+REQUIRES           = X11/X.org/lib/libX11/1.8.3
+REQUIRES          += libs/gobject-introspection/1.76.1
+REQUIRES          += X11/libs/cairo/1.17.8
+REQUIRES          += libs/mozjs/102.15.0
+REQUIRES          += libs/dconf/0.40.0
+REQUIRES          += libs/libffi/3.4.4
+REQUIRES          += libs/readline/8.2
+REQUIRES          += app/dbus/1.13.18
+
+# ======= __END_OF_REQUIRES__ =======
+
+
+version            = 6.0.0
+tar_xz_archive     = $(SRC_PACKAGE_PATH)/packages/x/MINT/cjs/cjs-$(version).tar.xz
+SRC_ARCHIVE        = $(tar_xz_archive)
+SRC_DIR            = $(TARGET_BUILD_DIR)/cjs-$(version)
+src_dir_name       = cjs-$(version)
+src_done           = $(TARGET_BUILD_DIR)/.source_done
+
+PATCHES = PATCHES
+
+build_dir          = $(TARGET_BUILD_DIR)/build
+build_target       = $(TARGET_BUILD_DIR)/.build_done
+install_target     = $(TARGET_BUILD_DIR)/.install_done
+
+cross_file         = $(TARGET_BUILD_DIR)/$(TARGET)-cross
+
+
+####### Targets
+
+PKG_GROUP = xlibs
+
+#
+# *PKG_NAME & *PKG_VERSION shouldn't be a reference to value.
+#
+GNOMEKBD_PKG_NAME                = cjs
+GNOMEKBD_PKG_VERSION             = 6.0.0
+GNOMEKBD_PKG_ARCH                = $(PKGARCH)
+GNOMEKBD_PKG_DISTRO_NAME         = $(DISTRO_NAME)
+GNOMEKBD_PKG_DISTRO_VERSION      = $(DISTRO_VERSION)
+GNOMEKBD_PKG_GROUP               = $(PKG_GROUP)
+###                               |---handy-ruler-------------------------------|
+GNOMEKBD_PKG_SHORT_DESCRIPTION   = Javascript Bindings for Cinnamon
+GNOMEKBD_PKG_URL                 = $(BUG_URL)
+GNOMEKBD_PKG_LICENSE             = LGPLv2
+GNOMEKBD_PKG_DESCRIPTION_FILE    = $(TARGET_BUILD_DIR)/$(GNOMEKBD_PKG_NAME)-pkg-description
+GNOMEKBD_PKG_DESCRIPTION_FILE_IN = $(GNOMEKBD_PKG_NAME)-pkg-description.in
+GNOMEKBD_PKG_INSTALL_SCRIPT      = $(GNOMEKBD_PKG_NAME)-pkg-install.sh
+
+GNOMEKBD_PKG     = $(CURDIR)/$(TARGET_BUILD_DIR)/$(GNOMEKBD_PKG_NAME)-package
+
+pkg_basename     = $(GNOMEKBD_PKG_NAME)-$(GNOMEKBD_PKG_VERSION)-$(GNOMEKBD_PKG_ARCH)-$(GNOMEKBD_PKG_DISTRO_NAME)-$(GNOMEKBD_PKG_DISTRO_VERSION)
+
+pkg_archive      = $(TARGET_BUILD_DIR)/$(PKG_GROUP)/$(pkg_basename).$(pkg_arch_suffix)
+pkg_signature    = $(call sign-name,$(pkg_archive))
+pkg_description  = $(call desc-name,$(pkg_archive))
+products         = $(call pkg-files,$(pkg_archive))
+
+BUILD_TARGETS    = $(build_target)
+BUILD_TARGETS   += $(install_target)
+
+PRODUCT_TARGETS  = $(products)
+
+ROOTFS_TARGETS   = $(pkg_archive)
+
+
+include ../../../../build-system/core.mk
+
+
+env_sysroot = DESTDIR=$(GNOMEKBD_PKG)
+
+
+#
+# https://mesonbuild.com/Reference-tables.html :
+# =============================================
+#
+ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_A1X_GLIBC)    $(TOOLCHAIN_A2X_GLIBC)    \
+                             $(TOOLCHAIN_H3_GLIBC)     $(TOOLCHAIN_RK328X_GLIBC) \
+                             $(TOOLCHAIN_S8XX_GLIBC)   $(TOOLCHAIN_IMX6_GLIBC)   \
+                             $(TOOLCHAIN_AM335X_GLIBC) $(TOOLCHAIN_OMAP543X_GLIBC)),)
+cpu_name = arm
+endian   = little
+endif
+ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_H5_GLIBC)     $(TOOLCHAIN_RK33XX_GLIBC) \
+                             $(TOOLCHAIN_RK339X_GLIBC) $(TOOLCHAIN_RK358X_GLIBC) \
+                             $(TOOLCHAIN_S9XX_GLIBC)   \
+                             $(TOOLCHAIN_A311X_GLIBC)  $(TOOLCHAIN_M1000_GLIBC)),)
+cpu_name = aarch64
+endian   = little
+endif
+ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_JZ47XX_GLIBC) $(TOOLCHAIN_P5600_GLIBC)),)
+cpu_name = mips
+endian   = little
+endif
+ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_POWER8_GLIBC) $(TOOLCHAIN_POWER9_GLIBC)),)
+cpu_name = ppc64
+endian   = big
+endif
+ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_POWER8LE_GLIBC) $(TOOLCHAIN_POWER9LE_GLIBC)),)
+cpu_name = ppc64
+endian   = little
+endif
+ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_RISCV64_GLIBC)),)
+cpu_name = riscv64
+endian   = little
+endif
+ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_I586_GLIBC) $(TOOLCHAIN_I686_GLIBC)),)
+cpu_name = x86
+endian   = little
+endif
+ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_X86_64_GLIBC)),)
+cpu_name = x86_64
+endian   = little
+endif
+
+
+ifeq ($(__ENABLE_STATIC__),yes)
+extra_configure_switches += --default-library=both
+else
+extra_configure_switches += --default-library=shared
+endif
+
+
+extra_configure_switches += -Dcairo=enabled
+extra_configure_switches += -Dreadline=enabled
+extra_configure_switches += -Dprofiler=disabled
+
+extra_configure_switches += -Dinstalled_tests=false
+extra_configure_switches += -Ddtrace=false
+extra_configure_switches += -Dsystemtap=false
+extra_configure_switches += -Dbsymbolic_functions=true
+extra_configure_switches += -Dskip_dbus_tests=true
+extra_configure_switches += -Dskip_gtk_tests=true
+extra_configure_switches += -Dverbose_logs=false
+
+
+PYTHON3_VERSION = 3.10
+
+python_environment  = PYTHON=$(PYTHON3)
+python_environment += PYTHONPATH='$(TARGET_DEST_DIR)/usr/lib$(LIBSUFFIX)/gobject-introspection:$(TARGET_DEST_DIR)/usr/lib$(LIBSUFFIX)/python$(PYTHON3_VERSION)/lib-dynload'
+
+
+CFLAGS  += -Wno-deprecated-declarations -Wno-format-nonliteral -Wno-switch -Wno-unused-variable
+CFLAGS  += -Wno-ignored-qualifiers -Wno-undef -Wno-array-bounds -Wno-maybe-uninitialized
+
+CFLAGS  += -I$(TARGET_DEST_DIR)/usr/lib$(LIBSUFFIX)/glib-2.0/include
+
+TARGET_BIN_RPATH = /lib$(LIBSUFFIX):/usr/lib$(LIBSUFFIX)
+TARGET_LIB_RPATH = /lib$(LIBSUFFIX):/usr/lib$(LIBSUFFIX):/usr/lib/../lib$(LIBSUFFIX)
+
+LDFLAGS += -Wl,-rpath,$(TARGET_BIN_RPATH)
+
+
+####### Dependencies
+
+$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
+	$(UNPACK_SRC_ARCHIVE)
+	$(APPLY_PATCHES)
+	@touch $@
+
+$(build_target): $(src_done)
+	@mkdir -p $(build_dir)
+	@echo ""                                            >  $(cross_file)
+	@echo "[build_machine]"                             >> $(cross_file)
+	@echo "system = '$(shell uname -s | tr 'L' 'l')'"   >> $(cross_file)
+	@echo "cpu_family = '$(shell uname -m)'"            >> $(cross_file)
+	@echo "cpu = '$(shell uname -m)'"                   >> $(cross_file)
+	@echo "endian = '$(shell lscpu | grep Endian | tr -s ' ' | cut -f3 -d' ' | tr 'L' 'l')'" >> $(cross_file)
+	@echo ""                                            >> $(cross_file)
+	@echo "[host_machine]"                              >> $(cross_file)
+	@echo "system = 'linux'"                            >> $(cross_file)
+	@echo "cpu_family = '$(cpu_name)'"                  >> $(cross_file)
+	@echo "cpu = '$(cpu_name)'"                         >> $(cross_file)
+	@echo "endian = '$(endian)'"                        >> $(cross_file)
+	@echo ""                                            >> $(cross_file)
+	@echo "[target_machine]"                            >> $(cross_file)
+	@echo "system = 'linux'"                            >> $(cross_file)
+	@echo "cpu_family = '$(cpu_name)'"                  >> $(cross_file)
+	@echo "cpu = '$(cpu_name)'"                         >> $(cross_file)
+	@echo "endian = '$(endian)'"                        >> $(cross_file)
+	@echo ""                                            >> $(cross_file)
+	@echo "[properties]"                                >> $(cross_file)
+	@echo "ipc_rmid_deferred_release = true"            >> $(cross_file)
+	@echo ""                                            >> $(cross_file)
+	@echo "[binaries]"                                  >> $(cross_file)
+	@echo "c = '$(TOOLCHAIN_PATH)/bin/$(TARGET)-gcc'"   >> $(cross_file)
+	@echo "cpp = '$(TOOLCHAIN_PATH)/bin/$(TARGET)-g++'" >> $(cross_file)
+	@echo "ar = '$(AR)'"                                >> $(cross_file)
+	@echo "strip = '$(STRIP)'"                          >> $(cross_file)
+	@echo "pkgconfig = 'pkg-config'"                    >> $(cross_file)
+	@echo ""                                            >> $(cross_file)
+	@$(python_environment) \
+	   meson setup \
+	    --prefix=/usr \
+	    --libdir=lib$(LIBSUFFIX) \
+	    --libexecdir=/usr/libexec \
+	    --bindir=/usr/bin \
+	    --sbindir=/usr/sbin \
+	    --includedir=/usr/include \
+	    --datadir=/usr/share \
+	    --mandir=/usr/share/man \
+	    --sysconfdir=/etc \
+	    --localstatedir=/var \
+	    --buildtype=release    \
+	    -Dc_args="`echo -n "--sysroot=$(TARGET_DEST_DIR) $(CFLAGS)" | tr -s ' '`"         \
+	    -Dc_link_args="`echo -n "--sysroot=$(TARGET_DEST_DIR) $(LDFLAGS)" | tr -s ' '`"   \
+	    -Dcpp_args="`echo -n "--sysroot=$(TARGET_DEST_DIR) $(CFLAGS)" | tr -s ' '`"       \
+	    -Dcpp_link_args="`echo -n "--sysroot=$(TARGET_DEST_DIR) $(LDFLAGS)" | tr -s ' '`" \
+	    $(extra_configure_switches) \
+	    --cross-file=$(cross_file) $(SRC_DIR) $(build_dir)
+	@( cd $(build_dir) ; \
+	   sed -i '/COMMAND = /s, /usr/bin/g-ir-scanner , $(python_environment) $(TARGET_DEST_DIR)/usr/bin/g-ir-scanner-wrapper ,g' build.ninja ; \
+	 )
+	@( cd $(build_dir) ; env -i ninja -v )
+	@touch $@
+
+$(install_target): $(build_target)
+	@mkdir -p $(GNOMEKBD_PKG)
+	@cd $(build_dir) && $(env_sysroot) ninja install
+	# ======= Install Documentation =======
+	@if [ -d $(GNOMEKBD_PKG)/usr/share/man ]; then \
+	  ( cd $(GNOMEKBD_PKG)/usr/share/man ; \
+	    for manpagedir in `find . -type d -name "man*"` ; do \
+	      ( cd $$manpagedir ; \
+	        for eachpage in `find . -type l -maxdepth 1` ; do \
+	          ln -s `readlink $$eachpage`.gz $$eachpage.gz ; \
+	          rm $$eachpage ; \
+	        done ; \
+	        gzip -9 *.?  ; \
+	      ) \
+	    done \
+	  ) \
+	 fi
+	@mkdir -p $(GNOMEKBD_PKG)/usr/doc/$(src_dir_name)
+	@cp -a $(SRC_DIR)/COPYING \
+	       $(GNOMEKBD_PKG)/usr/doc/$(src_dir_name)
+	@mkdir -p $(GNOMEKBD_PKG)/usr/share/doc/$(src_dir_name)
+	@( cd $(SRC_DIR) ; \
+	   cp -a COPYING README.md \
+	         $(GNOMEKBD_PKG)/usr/share/doc/$(src_dir_name) ; \
+	 )
+	@( cd $(SRC_DIR) ; \
+	   if [ -r NEWS ]; then \
+	     DOCSDIR=`echo $(GNOMEKBD_PKG)/usr/share/doc/$(src_dir_name)` ; \
+	     cat NEWS | head -n 1000 > $$DOCSDIR/NEWS ; \
+	     touch -r NEWS $$DOCSDIR/NEWS ; \
+	   fi \
+	 )
+	# ======= Install the same to $(TARGET_DEST_DIR) =======
+	$(call install-into-devenv, $(GNOMEKBD_PKG))
+	# ======= tune pkg-config *.pc search path to the target destination for development =======
+	@( cd $(TARGET_DEST_DIR)/usr/lib$(LIBSUFFIX)/pkgconfig ; \
+	   sed -i "s,/usr,$(TARGET_DEST_DIR)/usr,g" cjs-1.0.pc ; \
+	 )
+	# ======= Strip binaries =======
+	@( cd $(GNOMEKBD_PKG) ; \
+	   find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs $(STRIP) --strip-unneeded 2> /dev/null ; \
+	   find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs $(STRIP) --strip-unneeded 2> /dev/null ; \
+	 )
+ifeq ($(__ENABLE_STATIC__),yes)
+	@( cd $(GNOMEKBD_PKG) ; \
+	   find . | xargs file | grep "current ar archive" | cut -f 1 -d : | xargs $(STRIP) -g 2> /dev/null ; \
+	 )
+endif
+ifneq ($(PATCHELF),)
+	# ======= Set RPATH/RUNPATH for target binaries =======
+	@( cd $(GNOMEKBD_PKG)/usr/bin ; \
+	   for file in `find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs echo` ; do \
+	     rpath=`$(PATCHELF) --print-rpath $$file 2> /dev/null` ; \
+	     if echo "$$rpath" | grep -q "$(TARGET_DEST_DIR)" ; then \
+	       $(PATCHELF) --set-rpath $(TARGET_BIN_RPATH) $$file 1> /dev/null 2> /dev/null ; \
+	     fi ; \
+	   done ; \
+	 )
+	# ======= Set RPATH/RUNPATH for target shared objects =======
+	@( cd $(GNOMEKBD_PKG)/usr/lib$(LIBSUFFIX) ; \
+	   for file in `find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs echo` ; do \
+	     rpath=`$(PATCHELF) --print-rpath $$file 2> /dev/null` ; \
+	     if echo "$$rpath" | grep -q "$(TARGET_DEST_DIR)" ; then \
+	       $(PATCHELF) --set-rpath $(TARGET_LIB_RPATH) $$file 1> /dev/null 2> /dev/null ; \
+	     fi ; \
+	   done ; \
+	 )
+endif
+	@touch $@
+
+$(GNOMEKBD_PKG_DESCRIPTION_FILE): $(GNOMEKBD_PKG_DESCRIPTION_FILE_IN)
+	@cat $< | $(SED) -e "s/@VERSION@/$(version)/g" > $@
+
+$(pkg_certificate) : $(pkg_archive) ;
+$(pkg_signature)   : $(pkg_archive) ;
+$(pkg_description) : $(pkg_archive) ;
+
+$(pkg_archive): $(install_target) $(GNOMEKBD_PKG_DESCRIPTION_FILE) $(GNOMEKBD_PKG_INSTALL_SCRIPT)
+	@cp $(GNOMEKBD_PKG_DESCRIPTION_FILE) $(GNOMEKBD_PKG)/.DESCRIPTION
+	@cp $(GNOMEKBD_PKG_INSTALL_SCRIPT) $(GNOMEKBD_PKG)/.INSTALL
+	@$(BUILD_PKG_REQUIRES) $(GNOMEKBD_PKG)/.REQUIRES
+	@echo "pkgname=$(GNOMEKBD_PKG_NAME)"                            >  $(GNOMEKBD_PKG)/.PKGINFO ; \
+	 echo "pkgver=$(GNOMEKBD_PKG_VERSION)"                          >> $(GNOMEKBD_PKG)/.PKGINFO ; \
+	 echo "arch=$(GNOMEKBD_PKG_ARCH)"                               >> $(GNOMEKBD_PKG)/.PKGINFO ; \
+	 echo "distroname=$(GNOMEKBD_PKG_DISTRO_NAME)"                  >> $(GNOMEKBD_PKG)/.PKGINFO ; \
+	 echo "distrover=$(GNOMEKBD_PKG_DISTRO_VERSION)"                >> $(GNOMEKBD_PKG)/.PKGINFO ; \
+	 echo "group=$(GNOMEKBD_PKG_GROUP)"                             >> $(GNOMEKBD_PKG)/.PKGINFO ; \
+	 echo "short_description=\"$(GNOMEKBD_PKG_SHORT_DESCRIPTION)\"" >> $(GNOMEKBD_PKG)/.PKGINFO ; \
+	 echo "url=$(GNOMEKBD_PKG_URL)"                                 >> $(GNOMEKBD_PKG)/.PKGINFO ; \
+	 echo "license=$(GNOMEKBD_PKG_LICENSE)"                         >> $(GNOMEKBD_PKG)/.PKGINFO
+	@$(PSEUDO) sh -c "cd $(GNOMEKBD_PKG) && \
+	                  chown -R root:root . && \
+	                  $(MAKE_PACKAGE) -J --linkadd=yes $(GNUPG_OPTIONS) -m -d .. ."
Index: X11/libs/cjs/6.0.0/PATCHES
===================================================================
--- X11/libs/cjs/6.0.0/PATCHES	(nonexistent)
+++ X11/libs/cjs/6.0.0/PATCHES	(revision 242)
@@ -0,0 +1,2 @@
+
+../../../../sources/packages/x/MINT/cjs/patches/cjs-6.0.0-installed-tests.patch -p0
Index: X11/libs/cjs/6.0.0/cjs-pkg-description.in
===================================================================
--- X11/libs/cjs/6.0.0/cjs-pkg-description.in	(nonexistent)
+++ X11/libs/cjs/6.0.0/cjs-pkg-description.in	(revision 242)
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.  Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in.  You must
+# make exactly 11 lines for the formatting to be correct.  It's also
+# customary to leave one space after the ':'.
+
+   |-----handy-ruler------------------------------------------------------|
+cjs: cjs @VERSION@ (Javascript Bindings for Cinnamon)
+cjs:
+cjs: CJS is a JavaScript runtime built on Firefox SpiderMonkey
+cjs: JavaScript engine.
+cjs:
+cjs:
+cjs:
+cjs:
+cjs:
+cjs:
+cjs:
Index: X11/libs/cjs/6.0.0/cjs-pkg-install.sh
===================================================================
--- X11/libs/cjs/6.0.0/cjs-pkg-install.sh	(nonexistent)
+++ X11/libs/cjs/6.0.0/cjs-pkg-install.sh	(revision 242)
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+# Preserve new files
+install_file() {
+  NEW="$1"
+  OLD="`dirname $NEW`/`basename $NEW .new`"
+  # If there's no file by that name, mv it over:
+  if [ ! -r $OLD ]; then
+    mv $NEW $OLD
+  elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
+    rm $NEW
+  fi
+  # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+
+# arg 1:  the new package version
+pre_install() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+post_install() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+pre_update() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+post_update() {
+  post_install
+}
+
+# arg 1:  the old package version
+pre_remove() {
+  /bin/true
+}
+
+# arg 1:  the old package version
+post_remove() {
+  /bin/true
+}
+
+
+operation=$1
+shift
+
+$operation $*

Property changes on: X11/libs/cjs/6.0.0/cjs-pkg-install.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: X11/libs/cjs/6.0.0
===================================================================
--- X11/libs/cjs/6.0.0	(nonexistent)
+++ X11/libs/cjs/6.0.0	(revision 242)

Property changes on: X11/libs/cjs/6.0.0
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,74 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.rk358x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: X11/libs/gjs/1.76.2/Makefile
===================================================================
--- X11/libs/gjs/1.76.2/Makefile	(nonexistent)
+++ X11/libs/gjs/1.76.2/Makefile	(revision 242)
@@ -0,0 +1,371 @@
+
+COMPONENT_TARGETS  = $(HARDWARE_INTEL_PC32)
+COMPONENT_TARGETS += $(HARDWARE_INTEL_PC64)
+COMPONENT_TARGETS += $(HARDWARE_EBOX_3350DX2)
+COMPONENT_TARGETS += $(HARDWARE_CB1X)
+COMPONENT_TARGETS += $(HARDWARE_CB2X)
+COMPONENT_TARGETS += $(HARDWARE_CB3X)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PP2E)
+COMPONENT_TARGETS += $(HARDWARE_NANOPI_NEO)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PP)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PL2)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5B)
+COMPONENT_TARGETS += $(HARDWARE_ORANGE_PI5P)
+COMPONENT_TARGETS += $(HARDWARE_ROCK_5B)
+COMPONENT_TARGETS += $(HARDWARE_WECHIP_TX6)
+COMPONENT_TARGETS += $(HARDWARE_REPKA_PI3)
+COMPONENT_TARGETS += $(HARDWARE_FFRK3288)
+COMPONENT_TARGETS += $(HARDWARE_POIN2)
+COMPONENT_TARGETS += $(HARDWARE_RK3328_CC)
+COMPONENT_TARGETS += $(HARDWARE_KHADAS_EDGE)
+COMPONENT_TARGETS += $(HARDWARE_LEEZ_P710)
+COMPONENT_TARGETS += $(HARDWARE_M201)
+COMPONENT_TARGETS += $(HARDWARE_MXV)
+COMPONENT_TARGETS += $(HARDWARE_P201)
+COMPONENT_TARGETS += $(HARDWARE_NEXBOX_A95X)
+COMPONENT_TARGETS += $(HARDWARE_ODROID_C2)
+COMPONENT_TARGETS += $(HARDWARE_P212)
+COMPONENT_TARGETS += $(HARDWARE_KHADAS_VIM)
+COMPONENT_TARGETS += $(HARDWARE_Q201)
+COMPONENT_TARGETS += $(HARDWARE_ENYBOX_X2)
+COMPONENT_TARGETS += $(HARDWARE_KHADAS_VIM2)
+COMPONENT_TARGETS += $(HARDWARE_NIT6Q)
+COMPONENT_TARGETS += $(HARDWARE_OKMX6DL_C)
+COMPONENT_TARGETS += $(HARDWARE_OKMX6Q_C)
+COMPONENT_TARGETS += $(HARDWARE_BONE_BLACK)
+COMPONENT_TARGETS += $(HARDWARE_OMAP5UEVM)
+COMPONENT_TARGETS += $(HARDWARE_DRA7XXEVM)
+COMPONENT_TARGETS += $(HARDWARE_CI20)
+COMPONENT_TARGETS += $(HARDWARE_BAIKAL_T1)
+COMPONENT_TARGETS += $(HARDWARE_BAIKAL_M1)
+COMPONENT_TARGETS += $(HARDWARE_S824L)
+COMPONENT_TARGETS += $(HARDWARE_VESNIN)
+COMPONENT_TARGETS += $(HARDWARE_S824L_LSB)
+COMPONENT_TARGETS += $(HARDWARE_VESNIN_LSB)
+COMPONENT_TARGETS += $(HARDWARE_TL2WK2)
+COMPONENT_TARGETS += $(HARDWARE_TL2SV2)
+COMPONENT_TARGETS += $(HARDWARE_TL2WK2_LSB)
+COMPONENT_TARGETS += $(HARDWARE_TL2SV2_LSB)
+COMPONENT_TARGETS += $(HARDWARE_VISIONFIVE2)
+COMPONENT_TARGETS += $(HARDWARE_SIFIVE_U740)
+
+
+NEED_ABS_PATH      = true
+COMPONENT_IS_3PP   = true
+
+
+include ../../../../build-system/constants.mk
+
+
+SOURCE_REQUIRES    = sources/GNOME/core/gjs
+
+REQUIRES           = X11/X.org/lib/libX11/1.8.3
+REQUIRES          += libs/gobject-introspection/1.76.1
+REQUIRES          += X11/libs/cairo/1.17.8
+REQUIRES          += libs/mozjs/102.15.0
+REQUIRES          += libs/dconf/0.40.0
+REQUIRES          += libs/libffi/3.4.4
+REQUIRES          += libs/readline/8.2
+REQUIRES          += app/dbus/1.13.18
+
+# ======= __END_OF_REQUIRES__ =======
+
+
+version            = 1.76.2
+tar_xz_archive     = $(SRC_PACKAGE_PATH)/GNOME/core/gjs/gjs-$(version).tar.xz
+SRC_ARCHIVE        = $(tar_xz_archive)
+SRC_DIR            = $(TARGET_BUILD_DIR)/gjs-$(version)
+src_dir_name       = gjs-$(version)
+src_done           = $(TARGET_BUILD_DIR)/.source_done
+
+PATCHES = PATCHES
+
+build_dir          = $(TARGET_BUILD_DIR)/build
+build_target       = $(TARGET_BUILD_DIR)/.build_done
+install_target     = $(TARGET_BUILD_DIR)/.install_done
+
+cross_file         = $(TARGET_BUILD_DIR)/$(TARGET)-cross
+
+
+####### Targets
+
+PKG_GROUP = xlibs
+
+#
+# *PKG_NAME & *PKG_VERSION shouldn't be a reference to value.
+#
+GNOMEKBD_PKG_NAME                = gjs
+GNOMEKBD_PKG_VERSION             = 1.76.2
+GNOMEKBD_PKG_ARCH                = $(PKGARCH)
+GNOMEKBD_PKG_DISTRO_NAME         = $(DISTRO_NAME)
+GNOMEKBD_PKG_DISTRO_VERSION      = $(DISTRO_VERSION)
+GNOMEKBD_PKG_GROUP               = $(PKG_GROUP)
+###                               |---handy-ruler-------------------------------|
+GNOMEKBD_PKG_SHORT_DESCRIPTION   = Javascript Bindings for GNOME
+GNOMEKBD_PKG_URL                 = $(BUG_URL)
+GNOMEKBD_PKG_LICENSE             = LGPLv2
+GNOMEKBD_PKG_DESCRIPTION_FILE    = $(TARGET_BUILD_DIR)/$(GNOMEKBD_PKG_NAME)-pkg-description
+GNOMEKBD_PKG_DESCRIPTION_FILE_IN = $(GNOMEKBD_PKG_NAME)-pkg-description.in
+GNOMEKBD_PKG_INSTALL_SCRIPT      = $(GNOMEKBD_PKG_NAME)-pkg-install.sh
+
+GNOMEKBD_PKG     = $(CURDIR)/$(TARGET_BUILD_DIR)/$(GNOMEKBD_PKG_NAME)-package
+
+pkg_basename     = $(GNOMEKBD_PKG_NAME)-$(GNOMEKBD_PKG_VERSION)-$(GNOMEKBD_PKG_ARCH)-$(GNOMEKBD_PKG_DISTRO_NAME)-$(GNOMEKBD_PKG_DISTRO_VERSION)
+
+pkg_archive      = $(TARGET_BUILD_DIR)/$(PKG_GROUP)/$(pkg_basename).$(pkg_arch_suffix)
+pkg_signature    = $(call sign-name,$(pkg_archive))
+pkg_description  = $(call desc-name,$(pkg_archive))
+products         = $(call pkg-files,$(pkg_archive))
+
+BUILD_TARGETS    = $(build_target)
+BUILD_TARGETS   += $(install_target)
+
+PRODUCT_TARGETS  = $(products)
+
+ROOTFS_TARGETS   = $(pkg_archive)
+
+
+include ../../../../build-system/core.mk
+
+
+env_sysroot = DESTDIR=$(GNOMEKBD_PKG)
+
+
+#
+# https://mesonbuild.com/Reference-tables.html :
+# =============================================
+#
+ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_A1X_GLIBC)    $(TOOLCHAIN_A2X_GLIBC)    \
+                             $(TOOLCHAIN_H3_GLIBC)     $(TOOLCHAIN_RK328X_GLIBC) \
+                             $(TOOLCHAIN_S8XX_GLIBC)   $(TOOLCHAIN_IMX6_GLIBC)   \
+                             $(TOOLCHAIN_AM335X_GLIBC) $(TOOLCHAIN_OMAP543X_GLIBC)),)
+cpu_name = arm
+endian   = little
+endif
+ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_H5_GLIBC)     $(TOOLCHAIN_RK33XX_GLIBC) \
+                             $(TOOLCHAIN_RK339X_GLIBC) $(TOOLCHAIN_RK358X_GLIBC) \
+                             $(TOOLCHAIN_S9XX_GLIBC)   \
+                             $(TOOLCHAIN_A311X_GLIBC)  $(TOOLCHAIN_M1000_GLIBC)),)
+cpu_name = aarch64
+endian   = little
+endif
+ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_JZ47XX_GLIBC) $(TOOLCHAIN_P5600_GLIBC)),)
+cpu_name = mips
+endian   = little
+endif
+ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_POWER8_GLIBC) $(TOOLCHAIN_POWER9_GLIBC)),)
+cpu_name = ppc64
+endian   = big
+endif
+ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_POWER8LE_GLIBC) $(TOOLCHAIN_POWER9LE_GLIBC)),)
+cpu_name = ppc64
+endian   = little
+endif
+ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_RISCV64_GLIBC)),)
+cpu_name = riscv64
+endian   = little
+endif
+ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_I586_GLIBC) $(TOOLCHAIN_I686_GLIBC)),)
+cpu_name = x86
+endian   = little
+endif
+ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_X86_64_GLIBC)),)
+cpu_name = x86_64
+endian   = little
+endif
+
+
+ifeq ($(__ENABLE_STATIC__),yes)
+extra_configure_switches += --default-library=both
+else
+extra_configure_switches += --default-library=shared
+endif
+
+
+extra_configure_switches += -Dcairo=enabled
+extra_configure_switches += -Dreadline=enabled
+extra_configure_switches += -Dprofiler=disabled
+
+extra_configure_switches += -Dinstalled_tests=false
+extra_configure_switches += -Ddtrace=false
+extra_configure_switches += -Dsystemtap=false
+extra_configure_switches += -Dbsymbolic_functions=true
+extra_configure_switches += -Dskip_dbus_tests=true
+extra_configure_switches += -Dskip_gtk_tests=true
+extra_configure_switches += -Dverbose_logs=false
+
+
+PYTHON3_VERSION = 3.10
+
+python_environment  = PYTHON=$(PYTHON3)
+python_environment += PYTHONPATH='$(TARGET_DEST_DIR)/usr/lib$(LIBSUFFIX)/gobject-introspection:$(TARGET_DEST_DIR)/usr/lib$(LIBSUFFIX)/python$(PYTHON3_VERSION)/lib-dynload'
+
+
+CFLAGS  += -Wno-deprecated-declarations -Wno-format-nonliteral -Wno-switch -Wno-unused-variable
+CFLAGS  += -Wno-ignored-qualifiers -Wno-undef -Wno-array-bounds -Wno-maybe-uninitialized
+
+CFLAGS  += -I$(TARGET_DEST_DIR)/usr/lib$(LIBSUFFIX)/glib-2.0/include
+
+TARGET_BIN_RPATH = /lib$(LIBSUFFIX):/usr/lib$(LIBSUFFIX)
+TARGET_LIB_RPATH = /lib$(LIBSUFFIX):/usr/lib$(LIBSUFFIX):/usr/lib/../lib$(LIBSUFFIX)
+
+LDFLAGS += -Wl,-rpath,$(TARGET_BIN_RPATH)
+
+
+####### Dependencies
+
+$(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
+	$(UNPACK_SRC_ARCHIVE)
+	$(APPLY_PATCHES)
+	@touch $@
+
+$(build_target): $(src_done)
+	@mkdir -p $(build_dir)
+	@echo ""                                            >  $(cross_file)
+	@echo "[build_machine]"                             >> $(cross_file)
+	@echo "system = '$(shell uname -s | tr 'L' 'l')'"   >> $(cross_file)
+	@echo "cpu_family = '$(shell uname -m)'"            >> $(cross_file)
+	@echo "cpu = '$(shell uname -m)'"                   >> $(cross_file)
+	@echo "endian = '$(shell lscpu | grep Endian | tr -s ' ' | cut -f3 -d' ' | tr 'L' 'l')'" >> $(cross_file)
+	@echo ""                                            >> $(cross_file)
+	@echo "[host_machine]"                              >> $(cross_file)
+	@echo "system = 'linux'"                            >> $(cross_file)
+	@echo "cpu_family = '$(cpu_name)'"                  >> $(cross_file)
+	@echo "cpu = '$(cpu_name)'"                         >> $(cross_file)
+	@echo "endian = '$(endian)'"                        >> $(cross_file)
+	@echo ""                                            >> $(cross_file)
+	@echo "[target_machine]"                            >> $(cross_file)
+	@echo "system = 'linux'"                            >> $(cross_file)
+	@echo "cpu_family = '$(cpu_name)'"                  >> $(cross_file)
+	@echo "cpu = '$(cpu_name)'"                         >> $(cross_file)
+	@echo "endian = '$(endian)'"                        >> $(cross_file)
+	@echo ""                                            >> $(cross_file)
+	@echo "[properties]"                                >> $(cross_file)
+	@echo "ipc_rmid_deferred_release = true"            >> $(cross_file)
+	@echo ""                                            >> $(cross_file)
+	@echo "[binaries]"                                  >> $(cross_file)
+	@echo "c = '$(TOOLCHAIN_PATH)/bin/$(TARGET)-gcc'"   >> $(cross_file)
+	@echo "cpp = '$(TOOLCHAIN_PATH)/bin/$(TARGET)-g++'" >> $(cross_file)
+	@echo "ar = '$(AR)'"                                >> $(cross_file)
+	@echo "strip = '$(STRIP)'"                          >> $(cross_file)
+	@echo "pkgconfig = 'pkg-config'"                    >> $(cross_file)
+	@echo ""                                            >> $(cross_file)
+	@$(python_environment) \
+	   meson setup \
+	    --prefix=/usr \
+	    --libdir=lib$(LIBSUFFIX) \
+	    --libexecdir=/usr/libexec \
+	    --bindir=/usr/bin \
+	    --sbindir=/usr/sbin \
+	    --includedir=/usr/include \
+	    --datadir=/usr/share \
+	    --mandir=/usr/share/man \
+	    --sysconfdir=/etc \
+	    --localstatedir=/var \
+	    --buildtype=release    \
+	    -Dc_args="`echo -n "--sysroot=$(TARGET_DEST_DIR) $(CFLAGS)" | tr -s ' '`"         \
+	    -Dc_link_args="`echo -n "--sysroot=$(TARGET_DEST_DIR) $(LDFLAGS)" | tr -s ' '`"   \
+	    -Dcpp_args="`echo -n "--sysroot=$(TARGET_DEST_DIR) $(CFLAGS)" | tr -s ' '`"       \
+	    -Dcpp_link_args="`echo -n "--sysroot=$(TARGET_DEST_DIR) $(LDFLAGS)" | tr -s ' '`" \
+	    $(extra_configure_switches) \
+	    --cross-file=$(cross_file) $(SRC_DIR) $(build_dir)
+	@( cd $(build_dir) ; \
+	   sed -i '/COMMAND = /s, /usr/bin/g-ir-scanner , $(python_environment) $(TARGET_DEST_DIR)/usr/bin/g-ir-scanner-wrapper ,g' build.ninja ; \
+	 )
+	@( cd $(build_dir) ; env -i ninja -v )
+	@touch $@
+
+$(install_target): $(build_target)
+	@mkdir -p $(GNOMEKBD_PKG)
+	@cd $(build_dir) && $(env_sysroot) ninja install
+	# ======= Install Documentation =======
+	@if [ -d $(GNOMEKBD_PKG)/usr/share/man ]; then \
+	  ( cd $(GNOMEKBD_PKG)/usr/share/man ; \
+	    for manpagedir in `find . -type d -name "man*"` ; do \
+	      ( cd $$manpagedir ; \
+	        for eachpage in `find . -type l -maxdepth 1` ; do \
+	          ln -s `readlink $$eachpage`.gz $$eachpage.gz ; \
+	          rm $$eachpage ; \
+	        done ; \
+	        gzip -9 *.?  ; \
+	      ) \
+	    done \
+	  ) \
+	 fi
+	@mkdir -p $(GNOMEKBD_PKG)/usr/doc/$(src_dir_name)
+	@cp -a $(SRC_DIR)/COPYING \
+	       $(GNOMEKBD_PKG)/usr/doc/$(src_dir_name)
+	@mkdir -p $(GNOMEKBD_PKG)/usr/share/doc/$(src_dir_name)
+	@( cd $(SRC_DIR) ; \
+	   cp -a COPYING README.md \
+	         $(GNOMEKBD_PKG)/usr/share/doc/$(src_dir_name) ; \
+	 )
+	@( cd $(SRC_DIR) ; \
+	   if [ -r NEWS ]; then \
+	     DOCSDIR=`echo $(GNOMEKBD_PKG)/usr/share/doc/$(src_dir_name)` ; \
+	     cat NEWS | head -n 1000 > $$DOCSDIR/NEWS ; \
+	     touch -r NEWS $$DOCSDIR/NEWS ; \
+	   fi \
+	 )
+	# ======= Install the same to $(TARGET_DEST_DIR) =======
+	$(call install-into-devenv, $(GNOMEKBD_PKG))
+	# ======= tune pkg-config *.pc search path to the target destination for development =======
+	@( cd $(TARGET_DEST_DIR)/usr/lib$(LIBSUFFIX)/pkgconfig ; \
+	   sed -i "s,/usr,$(TARGET_DEST_DIR)/usr,g" gjs-1.0.pc ; \
+	 )
+	# ======= Strip binaries =======
+	@( cd $(GNOMEKBD_PKG) ; \
+	   find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs $(STRIP) --strip-unneeded 2> /dev/null ; \
+	   find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs $(STRIP) --strip-unneeded 2> /dev/null ; \
+	 )
+ifeq ($(__ENABLE_STATIC__),yes)
+	@( cd $(GNOMEKBD_PKG) ; \
+	   find . | xargs file | grep "current ar archive" | cut -f 1 -d : | xargs $(STRIP) -g 2> /dev/null ; \
+	 )
+endif
+ifneq ($(PATCHELF),)
+	# ======= Set RPATH/RUNPATH for target binaries =======
+	@( cd $(GNOMEKBD_PKG)/usr/bin ; \
+	   for file in `find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs echo` ; do \
+	     rpath=`$(PATCHELF) --print-rpath $$file 2> /dev/null` ; \
+	     if echo "$$rpath" | grep -q "$(TARGET_DEST_DIR)" ; then \
+	       $(PATCHELF) --set-rpath $(TARGET_BIN_RPATH) $$file 1> /dev/null 2> /dev/null ; \
+	     fi ; \
+	   done ; \
+	 )
+	# ======= Set RPATH/RUNPATH for target shared objects =======
+	@( cd $(GNOMEKBD_PKG)/usr/lib$(LIBSUFFIX) ; \
+	   for file in `find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs echo` ; do \
+	     rpath=`$(PATCHELF) --print-rpath $$file 2> /dev/null` ; \
+	     if echo "$$rpath" | grep -q "$(TARGET_DEST_DIR)" ; then \
+	       $(PATCHELF) --set-rpath $(TARGET_LIB_RPATH) $$file 1> /dev/null 2> /dev/null ; \
+	     fi ; \
+	   done ; \
+	 )
+endif
+	@touch $@
+
+$(GNOMEKBD_PKG_DESCRIPTION_FILE): $(GNOMEKBD_PKG_DESCRIPTION_FILE_IN)
+	@cat $< | $(SED) -e "s/@VERSION@/$(version)/g" > $@
+
+$(pkg_certificate) : $(pkg_archive) ;
+$(pkg_signature)   : $(pkg_archive) ;
+$(pkg_description) : $(pkg_archive) ;
+
+$(pkg_archive): $(install_target) $(GNOMEKBD_PKG_DESCRIPTION_FILE) $(GNOMEKBD_PKG_INSTALL_SCRIPT)
+	@cp $(GNOMEKBD_PKG_DESCRIPTION_FILE) $(GNOMEKBD_PKG)/.DESCRIPTION
+	@cp $(GNOMEKBD_PKG_INSTALL_SCRIPT) $(GNOMEKBD_PKG)/.INSTALL
+	@$(BUILD_PKG_REQUIRES) $(GNOMEKBD_PKG)/.REQUIRES
+	@echo "pkgname=$(GNOMEKBD_PKG_NAME)"                            >  $(GNOMEKBD_PKG)/.PKGINFO ; \
+	 echo "pkgver=$(GNOMEKBD_PKG_VERSION)"                          >> $(GNOMEKBD_PKG)/.PKGINFO ; \
+	 echo "arch=$(GNOMEKBD_PKG_ARCH)"                               >> $(GNOMEKBD_PKG)/.PKGINFO ; \
+	 echo "distroname=$(GNOMEKBD_PKG_DISTRO_NAME)"                  >> $(GNOMEKBD_PKG)/.PKGINFO ; \
+	 echo "distrover=$(GNOMEKBD_PKG_DISTRO_VERSION)"                >> $(GNOMEKBD_PKG)/.PKGINFO ; \
+	 echo "group=$(GNOMEKBD_PKG_GROUP)"                             >> $(GNOMEKBD_PKG)/.PKGINFO ; \
+	 echo "short_description=\"$(GNOMEKBD_PKG_SHORT_DESCRIPTION)\"" >> $(GNOMEKBD_PKG)/.PKGINFO ; \
+	 echo "url=$(GNOMEKBD_PKG_URL)"                                 >> $(GNOMEKBD_PKG)/.PKGINFO ; \
+	 echo "license=$(GNOMEKBD_PKG_LICENSE)"                         >> $(GNOMEKBD_PKG)/.PKGINFO
+	@$(PSEUDO) sh -c "cd $(GNOMEKBD_PKG) && \
+	                  chown -R root:root . && \
+	                  $(MAKE_PACKAGE) -J --linkadd=yes $(GNUPG_OPTIONS) -m -d .. ."
Index: X11/libs/gjs/1.76.2/PATCHES
===================================================================
--- X11/libs/gjs/1.76.2/PATCHES	(nonexistent)
+++ X11/libs/gjs/1.76.2/PATCHES	(revision 242)
@@ -0,0 +1,2 @@
+
+../../../../sources/GNOME/core/gjs/patches/gjs-1.76.2-installed-tests.patch -p0
Index: X11/libs/gjs/1.76.2/gjs-pkg-description.in
===================================================================
--- X11/libs/gjs/1.76.2/gjs-pkg-description.in	(nonexistent)
+++ X11/libs/gjs/1.76.2/gjs-pkg-description.in	(revision 242)
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.  Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in.  You must
+# make exactly 11 lines for the formatting to be correct.  It's also
+# customary to leave one space after the ':'.
+
+   |-----handy-ruler------------------------------------------------------|
+gjs: gjs @VERSION@ (Javascript Bindings for GNOME)
+gjs:
+gjs: GJS is a JavaScript runtime built on Firefox SpiderMonkey
+gjs: JavaScript engine.
+gjs:
+gjs:
+gjs:
+gjs:
+gjs:
+gjs:
+gjs:
Index: X11/libs/gjs/1.76.2/gjs-pkg-install.sh
===================================================================
--- X11/libs/gjs/1.76.2/gjs-pkg-install.sh	(nonexistent)
+++ X11/libs/gjs/1.76.2/gjs-pkg-install.sh	(revision 242)
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+# Preserve new files
+install_file() {
+  NEW="$1"
+  OLD="`dirname $NEW`/`basename $NEW .new`"
+  # If there's no file by that name, mv it over:
+  if [ ! -r $OLD ]; then
+    mv $NEW $OLD
+  elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
+    rm $NEW
+  fi
+  # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+
+# arg 1:  the new package version
+pre_install() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+post_install() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+pre_update() {
+  /bin/true
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+post_update() {
+  post_install
+}
+
+# arg 1:  the old package version
+pre_remove() {
+  /bin/true
+}
+
+# arg 1:  the old package version
+post_remove() {
+  /bin/true
+}
+
+
+operation=$1
+shift
+
+$operation $*

Property changes on: X11/libs/gjs/1.76.2/gjs-pkg-install.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: X11/libs/gjs/1.76.2
===================================================================
--- X11/libs/gjs/1.76.2	(nonexistent)
+++ X11/libs/gjs/1.76.2	(revision 242)

Property changes on: X11/libs/gjs/1.76.2
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,74 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.rk358x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: products/X11/Makefile
===================================================================
--- products/X11/Makefile	(revision 241)
+++ products/X11/Makefile	(revision 242)
@@ -682,6 +682,9 @@
 endif
 
 
+#######
+####### Packages:
+#######
 REQUIRES += X11/libs/gtk+3/3.24.37
 ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_POWER8_GLIBC) $(TOOLCHAIN_POWER9_GLIBC)),)
 REQUIRES += X11/libs/gtk+3/3.24.37-ppc32
@@ -746,6 +749,8 @@
 REQUIRES += X11/libs/timezonemap/0.4.5.2
 REQUIRES += X11/libs/libgsf/1.14.51
 REQUIRES += X11/libs/libgtop/2.41.2
+REQUIRES += X11/libs/gjs/1.76.2
+REQUIRES += X11/libs/cjs/6.0.0
 
 REQUIRES += X11/app/cups-filters/1.28.16
 ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_POWER8_GLIBC) $(TOOLCHAIN_POWER9_GLIBC)),)
Index: sources/GNOME/core/gjs/Makefile
===================================================================
--- sources/GNOME/core/gjs/Makefile	(nonexistent)
+++ sources/GNOME/core/gjs/Makefile	(revision 242)
@@ -0,0 +1,56 @@
+
+COMPONENT_TARGETS = $(HARDWARE_NOARCH)
+
+
+include ../../../../build-system/constants.mk
+
+
+url         = $(DOWNLOAD_SERVER)/sources/GNOME/core/gjs
+
+versions    = 1.76.2
+pkgname     = gjs
+suffix      = tar.xz
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+patches     = $(CURDIR)/patches/gjs-1.76.2-installed-tests.patch
+
+.NOTPARALLEL: $(patches)
+
+
+BUILD_TARGETS = $(tarballs) $(sha1s) $(patches)
+
+
+include ../../../../build-system/core.mk
+
+
+.PHONY: download_clean
+
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs =======" ; \
+	 for tarball in $(tarballs) ; do \
+	   echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
+	 done ; wait
+
+$(sha1s): $(tarballs)
+	@for sha in $@ ; do \
+	   echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
+	   echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
+	   touch $$sha ; \
+	   echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
+	   sha1sum --check $$sha ; ret="$$?" ; \
+	   if [ "$$ret" == "1" ]; then \
+	     echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
+	     exit 1 ; \
+	   fi ; \
+	 done
+
+$(patches): $(sha1s)
+	@echo -e "\n======= Create Patches =======\n" ; \
+	 ( cd create-1.76.2-installed-tests-patch ; ./create.patch.sh ) ; \
+	 echo -e "\n"
+
+download_clean:
+	@rm -f $(tarballs) $(sha1s) $(patches)
Index: sources/GNOME/core/gjs/create-1.76.2-installed-tests-patch/create.patch.sh
===================================================================
--- sources/GNOME/core/gjs/create-1.76.2-installed-tests-patch/create.patch.sh	(nonexistent)
+++ sources/GNOME/core/gjs/create-1.76.2-installed-tests-patch/create.patch.sh	(revision 242)
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+VERSION=1.76.2
+
+tar --files-from=file.list -xJvf ../gjs-$VERSION.tar.xz
+mv gjs-$VERSION gjs-$VERSION-orig
+
+cp -rf ./gjs-$VERSION-new ./gjs-$VERSION
+
+diff --unified -Nr  gjs-$VERSION-orig  gjs-$VERSION > gjs-$VERSION-installed-tests.patch
+
+mv gjs-$VERSION-installed-tests.patch ../patches
+
+rm -rf ./gjs-$VERSION
+rm -rf ./gjs-$VERSION-orig

Property changes on: sources/GNOME/core/gjs/create-1.76.2-installed-tests-patch/create.patch.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: sources/GNOME/core/gjs/create-1.76.2-installed-tests-patch/file.list
===================================================================
--- sources/GNOME/core/gjs/create-1.76.2-installed-tests-patch/file.list	(nonexistent)
+++ sources/GNOME/core/gjs/create-1.76.2-installed-tests-patch/file.list	(revision 242)
@@ -0,0 +1 @@
+gjs-1.76.2/meson.build
Index: sources/GNOME/core/gjs/create-1.76.2-installed-tests-patch/gjs-1.76.2-new/meson.build
===================================================================
--- sources/GNOME/core/gjs/create-1.76.2-installed-tests-patch/gjs-1.76.2-new/meson.build	(nonexistent)
+++ sources/GNOME/core/gjs/create-1.76.2-installed-tests-patch/gjs-1.76.2-new/meson.build	(revision 242)
@@ -0,0 +1,788 @@
+# SPDX-License-Identifier: MIT OR LGPL-2.0-or-later
+# SPDX-FileCopyrightText: 2019 Philip Chimento <philip.chimento@gmail.com>
+# SPDX-FileCopyrightText: 2019 Chun-wei Fan <fanchunwei@src.gnome.org>
+
+project('gjs', 'cpp', 'c', version: '1.76.2', license: ['MIT', 'LGPL2+'],
+    meson_version: '>= 0.54.0',
+    default_options: ['cpp_std=c++17', 'cpp_rtti=false', 'c_std=c99',
+        'warning_level=2', 'b_pch=true' ])
+
+# cpp_rtti: SpiderMonkey can be compiled with or without runtime type
+# information, and the default is without. We must match that option because we
+# need to derive from SpiderMonkey classes.
+
+api_version = '1.0'
+api_name = '@0@-@1@'.format(meson.project_name(), api_version)
+
+gnome = import('gnome')
+pkg = import('pkgconfig')
+
+top_include = include_directories('.')
+
+### Check for conflicting build options ########################################
+
+if get_option('systemtap') and not get_option('dtrace')
+    error('-Ddtrace=true is required for -Dsystemtap=true')
+endif
+
+release_build = get_option('buildtype').startswith('release')
+if release_build and get_option('verbose_logs')
+    error('-Dverbose_logs=true is not allowed with --buildtype=release')
+endif
+
+### Check for compiler args ####################################################
+
+cxx = meson.get_compiler('cpp')
+cc = meson.get_compiler('c')
+
+if cc.get_id() == 'msvc'
+    add_project_arguments(cxx.get_supported_arguments([
+        '-utf-8',  # Use UTF-8 mode
+        '/Zc:externConstexpr',  # Required for 'extern constexpr' on MSVC
+        '/Zc:preprocessor',     # Required to consume the mozjs-102 headers on MSVC
+
+        # Ignore spurious compiler warnings for things that GLib and SpiderMonkey
+        # header files commonly do
+        '-FImsvc_recommended_pragmas.h',
+        '-EHsc',
+        '-D_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS', # Don't worry about the C++17 deprecations
+        '-D__PRETTY_FUNCTION__=__FUNCSIG__',
+        '-wd4099',
+        '-wd4251',
+        '-wd4291',
+        '-wd4800',
+        '-wd5030',
+    ]), language: ['cpp', 'c'])
+else
+    # Ignore spurious compiler warnings for things that GLib and SpiderMonkey
+    # header files commonly do
+    add_project_arguments(cxx.get_supported_arguments([
+        '-fno-strict-aliasing',
+        '-Wno-variadic-macros',  # GLib uses these in header files
+        '-Wno-missing-field-initializers',  # SpiderMonkey JSClass, among others
+        '-Wno-dangling-pointer',  # Root list in JS::Rooted<T> with GCC 12
+    ]), language: 'cpp')
+
+    add_project_arguments(cc.get_supported_arguments([
+        '-Wno-typedef-redefinition',  # GLib does this in header files
+    ]), language: 'c')
+endif
+
+if cc.get_argument_syntax() == 'msvc'
+    add_project_arguments(cxx.get_supported_arguments([
+        '-Dssize_t=gssize',  # Windows SDK/MSVC headers do not come with ssize_t
+        '-DNOMINMAX',  # We don't want 'min' or 'max' to interfere
+        '-DSSIZE_MAX=G_MAXSSIZE',  # Windows SDK/MSVC headers do not come with SSIZE_MAX
+        ]), language: ['cpp', 'c'])
+else
+    if get_option('bsymbolic_functions')
+        if not cxx.has_link_argument('-Bsymbolic-functions')
+            error('''-Bsymbolic-functions not supported, configure with
+-Dbsymbolic_functions=false''')
+        endif
+        add_project_link_arguments('-Bsymbolic-functions', language: ['cpp', 'c'])
+        if cc.has_argument('-fno-semantic-interposition')
+            add_project_arguments('-fno-semantic-interposition', language: 'c')
+        endif
+        if cxx.has_argument('-fno-semantic-interposition')
+            add_project_arguments('-fno-semantic-interposition', language: 'cpp')
+        endif
+    endif
+endif
+
+# -fno-rtti is not compatible with the vptr sanitizer (part of ubsan)
+if not get_option('cpp_rtti') and get_option('b_sanitize') != 'none' and \
+    cxx.has_argument('-fno-sanitize=vptr')
+    add_project_arguments('-fno-sanitize=vptr', language: 'cpp')
+endif
+
+if get_option('verbose_logs')
+    add_project_arguments([
+        '-DGJS_VERBOSE_ENABLE_PROPS=1',
+        '-DGJS_VERBOSE_ENABLE_MARSHAL=1',
+        '-DGJS_VERBOSE_ENABLE_LIFECYCLE=1',
+        '-DGJS_VERBOSE_ENABLE_GI_USAGE=1',
+        '-DGJS_VERBOSE_ENABLE_GCLOSURE=1',
+        '-DGJS_VERBOSE_ENABLE_GSIGNAL=1',
+    ], language: 'cpp')
+endif
+
+if release_build
+    add_project_arguments('-DG_DISABLE_CAST_CHECKS', language: ['c', 'cpp'])
+endif
+
+### Check for required libraries ###############################################
+
+null_dep = dependency('', required : false)
+
+# Note: Notify GNOME release team when adding or updating dependencies
+glib_required_version = '>= 2.66.0'
+glib = dependency('glib-2.0', version: glib_required_version,
+    fallback: ['glib', 'libglib_dep'])
+gthread = dependency('gthread-2.0', version: glib_required_version,
+    fallback: ['glib', 'libgthread_dep'])
+gobject = dependency('gobject-2.0', version: glib_required_version,
+    fallback: ['glib', 'libgobject_dep'])
+gio = dependency('gio-2.0', version: glib_required_version,
+    fallback: ['glib', 'libgio_dep'])
+ffi = dependency('libffi', fallback: ['libffi', 'ffi_dep'])
+gi = dependency('gobject-introspection-1.0', version: '>= 1.66.0',
+    fallback: ['gobject-introspection', 'girepo_dep'])
+spidermonkey = dependency('mozjs-102')
+
+# We might need to look for the headers and lib's for Cairo
+# manually on MSVC/clang-cl builds...
+cairo = dependency('cairo', required: get_option('cairo').enabled() and cxx.get_argument_syntax() != 'msvc')
+cairo_gobject = dependency('cairo-gobject', required: cairo.found() and cxx.get_argument_syntax() != 'msvc')
+cairo_xlib = dependency('cairo-xlib', required: false)
+
+if cxx.get_argument_syntax() == 'msvc'
+    if not cairo.found()
+        cairo = cc.find_library('cairo', has_headers: ['cairo.h'], required: get_option('cairo').enabled())
+    endif
+    if not cairo_gobject.found()
+        cairo_gobject = cc.find_library('cairo-gobject', has_headers: ['cairo-gobject.h'], required: cairo.found())
+    endif
+endif
+
+sysprof_capture = dependency('sysprof-capture-4',
+    required: get_option('profiler'), include_type: 'system',
+    fallback: ['sysprof', 'libsysprof_capture_dep'],
+    default_options: [
+        'agent=false',
+        'examples=false',
+        'gtk=false',
+        'tests=false',
+        'tools=false',
+        'libsysprof=false',
+        'sysprofd=none',
+        'help=false',
+    ])
+
+readline = cxx.find_library('readline', required: get_option('readline'))
+# On some systems we need to link readline to a termcap compatible library
+readline_code = '''
+#include <cstdio>
+#include <readline/readline.h>
+int main(void) {
+    readline("foo");
+    return 0;
+}'''
+readline_deps = [readline]
+if readline.found() and not cxx.links(readline_code, dependencies: readline)
+    extra_readline_libs = ['ncursesw', 'ncurses', 'curses', 'termcap']
+    found = false
+    foreach lib : extra_readline_libs
+        termcap = cxx.find_library(lib, required: false)
+        if cxx.links(readline_code, dependencies: [readline, termcap])
+            found = true
+            readline_deps += termcap
+            break
+        endif
+    endforeach
+    if not found
+        error('''Couldn't figure out how to link
+readline library. Configure with -Dreadline=disabled to skip the readline
+features.''')
+    endif
+endif
+
+if cxx.links('''
+#include <atomic>
+
+int main(void)
+{
+  std::atomic_int64_t value = ATOMIC_VAR_INIT(0);
+  return value.load();
+}
+''', name: '64-bit atomics built-in')
+    libatomic = null_dep
+else
+    libatomic = cc.find_library('atomic', required: false)
+endif
+
+build_profiler = sysprof_capture.found() and not get_option('profiler').disabled()
+profiler_deps = [sysprof_capture]
+if build_profiler and not cxx.has_function('timer_settime')
+    extra_timer_libs = ['rt', 'posix4']
+    found = false
+    foreach lib : extra_timer_libs
+        timer_lib = cxx.find_library(lib, required: false)
+        if cxx.has_function('timer_settime', dependencies: timer_lib)
+            found = true
+            profiler_deps += timer_lib
+            break
+        endif
+    endforeach
+    if not found or not cxx.has_header_symbol('signal.h', 'SIGEV_THREAD_ID')
+        if get_option('profiler').enabled()
+            error('''The profiler is currently only
+supported on Linux. The standard library must support timer_settime() and
+SIGEV_THREAD_ID. Configure with -Dprofiler=auto or -Dprofiler=disabled to skip
+it on other platforms.''')
+        endif
+        build_profiler = false
+    endif
+endif
+
+build_cairo = cairo.found() and not get_option('cairo').disabled()
+build_readline = readline.found() and not get_option('readline').disabled()
+
+### Check for library features #################################################
+
+# Check if SpiderMonkey was compiled with --enable-debug. If this is the case,
+# you must compile all your sources with -DDEBUG=1
+# See https://bugzilla.mozilla.org/show_bug.cgi?id=1261161
+debug_arg = []
+nondebug_spidermonkey = cxx.compiles('''
+#include <js-config.h>
+#ifdef JS_DEBUG
+#error debug yes, if we did not already error out due to DEBUG not being defined
+#endif
+''',
+    dependencies: spidermonkey,
+    name: 'SpiderMonkey is a non-debug build')
+
+if not nondebug_spidermonkey
+    debug_arg = ['-DDEBUG']  # for compile tests
+endif
+
+if release_build and not nondebug_spidermonkey
+    error('''You are trying to make a release
+build with a debug-enabled copy of SpiderMonkey. This is probably not what you
+want, since it will have bad performance and is not binary-compatible with
+release builds of SpiderMonkey. Try configuring SpiderMonkey with
+--disable-debug.''')
+endif
+
+have_printf_alternative_int = cc.compiles('''
+#include <stdio.h>
+int main(void) {
+    printf("%Id", (int)0);
+    return 0;
+}
+''',
+    args: ['-Werror', '-Wformat'],
+    name: 'printf() supports %I alternative int syntax')
+
+### Check for external programs ################################################
+
+dtrace = find_program('dtrace', required: get_option('dtrace'))
+dbus_run_session = find_program('dbus-run-session',
+    required: not get_option('skip_dbus_tests'))
+glib_compile_schemas = find_program('glib-compile-schemas')
+
+### Generate config.h ##########################################################
+
+header_conf = configuration_data()
+
+versions = meson.project_version().split('.')
+major_version = versions[0].to_int()
+minor_version = versions[1].to_int()
+micro_version = versions[2].to_int()
+int_version = (major_version * 100 + minor_version) * 100 + micro_version
+header_conf.set_quoted('VERSION', meson.project_version())
+header_conf.set('GJS_VERSION', int_version,
+    description: 'The GJS version as an integer')
+header_conf.set_quoted('PACKAGE_STRING', '@0@ @1@'.format(meson.project_name(),
+    meson.project_version()))
+
+header_conf.set('ENABLE_CAIRO', build_cairo,
+    description: 'Build with Cairo support')
+header_conf.set('ENABLE_PROFILER', build_profiler,
+    description: 'Build the profiler')
+# COMPAT: SpiderMonkey headers in some places use DEBUG instead of JS_DEBUG
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1261161 */
+header_conf.set('DEBUG', not nondebug_spidermonkey,
+    description: 'SpiderMonkey was compiled with --enable-debug')
+header_conf.set('HAVE_DTRACE', get_option('dtrace'),
+    description: 'Using dtrace probes')
+header_conf.set('HAVE_PRINTF_ALTERNATIVE_INT', have_printf_alternative_int,
+    description: 'printf() accepts "%Id" for alternative integer output')
+if build_readline
+    header_conf.set('HAVE_READLINE_READLINE_H',
+        cxx.check_header('readline/readline.h', prefix: '#include <cstdio>',
+            required: readline.found()))
+endif
+header_conf.set('USE_UNITY_BUILD', get_option('unity'))
+header_conf.set('HAVE_SYS_SYSCALL_H', cxx.check_header('sys/syscall.h'))
+header_conf.set('HAVE_UNISTD_H', cxx.check_header('unistd.h'))
+header_conf.set('HAVE_SIGNAL_H', cxx.check_header('signal.h',
+    required: build_profiler))
+
+# enable GNU extensions on systems that have them
+header_conf.set('_GNU_SOURCE', 1)
+
+configure_file(output: 'config.h', configuration: header_conf)
+
+### Check for environment ######################################################
+
+gjsjsdir = get_option('datadir') / api_name
+abs_datadir = get_option('prefix') / get_option('datadir')
+pkglibdir = get_option('libdir') / meson.project_name()
+
+### Build dtrace probes ########################################################
+
+if get_option('dtrace')
+    probes_header_gen = generator(dtrace, output: '@BASENAME@.h',
+        arguments: ['-C', '-h', '-s', '@INPUT@', '-o', '@OUTPUT@'])
+    probes_objfile_gen = generator(dtrace, output: '@BASENAME@.o',
+        arguments: ['-G', '-s', '@INPUT@', '-o', '@OUTPUT@'])
+    probes_header = probes_header_gen.process('gi/gjs_gi_probes.d')
+    probes_objfile = probes_objfile_gen.process('gi/gjs_gi_probes.d')
+else
+    probes_header = []
+    probes_objfile = []
+endif
+
+tapset_subst = configuration_data({
+    'EXPANDED_LIBDIR': get_option('libdir'),
+})
+tapset = configure_file(input: 'gjs/gjs.stp.in', output: 'gjs.stp',
+    configuration: tapset_subst)
+if get_option('systemtap')
+    install_data(tapset,
+        install_dir: get_option('datadir') / 'systemtap/tapset')
+endif
+
+### Build library ##############################################################
+
+directory_defines = [
+    '-DGJS_JS_DIR="@0@"'.format(get_option('prefix') / gjsjsdir),
+    '-DPKGLIBDIR="@0@"'.format(get_option('prefix') / pkglibdir),
+]
+
+gjs_public_headers = [
+    'gjs/context.h',
+    'gjs/coverage.h',
+    'gjs/error-types.h',
+    'gjs/gjs.h',
+    'gjs/macros.h',
+    'gjs/mem.h',
+    'gjs/profiler.h',
+]
+
+# For historical reasons, some files live in gi/
+# Some headers in the following list were formerly public
+
+libgjs_sources = [
+    'gi/arg.cpp', 'gi/arg.h', 'gi/arg-inl.h',
+    'gi/arg-cache.cpp', 'gi/arg-cache.h',
+    'gi/boxed.cpp', 'gi/boxed.h',
+    'gi/closure.cpp', 'gi/closure.h',
+    'gi/cwrapper.cpp', 'gi/cwrapper.h',
+    'gi/enumeration.cpp', 'gi/enumeration.h',
+    'gi/foreign.cpp', 'gi/foreign.h',
+    'gi/fundamental.cpp', 'gi/fundamental.h',
+    'gi/function.cpp', 'gi/function.h',
+    'gi/gerror.cpp', 'gi/gerror.h',
+    'gi/gjs_gi_trace.h',
+    'gi/gobject.cpp', 'gi/gobject.h',
+    'gi/gtype.cpp', 'gi/gtype.h',
+    'gi/interface.cpp', 'gi/interface.h',
+    'gi/ns.cpp', 'gi/ns.h',
+    'gi/object.cpp', 'gi/object.h',
+    'gi/param.cpp', 'gi/param.h',
+    'gi/private.cpp', 'gi/private.h',
+    'gi/repo.cpp', 'gi/repo.h',
+    'gi/toggle.cpp', 'gi/toggle.h',
+    'gi/union.cpp', 'gi/union.h',
+    'gi/utils-inl.h',
+    'gi/value.cpp', 'gi/value.h',
+    'gi/wrapperutils.cpp', 'gi/wrapperutils.h',
+    'gjs/atoms.cpp', 'gjs/atoms.h',
+    'gjs/byteArray.cpp', 'gjs/byteArray.h',
+    'gjs/context.cpp', 'gjs/context-private.h',
+    'gjs/coverage.cpp',
+    'gjs/debugger.cpp',
+    'gjs/deprecation.cpp', 'gjs/deprecation.h',
+    'gjs/engine.cpp', 'gjs/engine.h',
+    'gjs/error-types.cpp',
+    'gjs/global.cpp', 'gjs/global.h',
+    'gjs/importer.cpp', 'gjs/importer.h',
+    'gjs/internal.cpp', 'gjs/internal.h',
+    'gjs/mainloop.cpp', 'gjs/mainloop.h',
+    'gjs/mem.cpp', 'gjs/mem-private.h',
+    'gjs/module.cpp', 'gjs/module.h',
+    'gjs/native.cpp', 'gjs/native.h',
+    'gjs/objectbox.cpp', 'gjs/objectbox.h',
+    'gjs/profiler.cpp', 'gjs/profiler-private.h',
+    'gjs/text-encoding.cpp', 'gjs/text-encoding.h',
+    'gjs/promise.cpp', 'gjs/promise.h',
+    'gjs/stack.cpp',
+    'modules/console.cpp', 'modules/console.h',
+    'modules/modules.cpp', 'modules/modules.h',
+    'modules/print.cpp', 'modules/print.h',
+    'modules/system.cpp', 'modules/system.h',
+]
+
+# GjsPrivate introspection sources
+libgjs_private_sources = [
+    'libgjs-private/gjs-gdbus-wrapper.c', 'libgjs-private/gjs-gdbus-wrapper.h',
+    'libgjs-private/gjs-util.c', 'libgjs-private/gjs-util.h',
+]
+
+libgjs_jsapi_sources = [
+    'gjs/jsapi-class.h',
+    'gjs/jsapi-dynamic-class.cpp',
+    'gjs/jsapi-util-args.h',
+    'gjs/jsapi-util-error.cpp',
+    'gjs/jsapi-util-root.h',
+    'gjs/jsapi-util-string.cpp',
+    'gjs/jsapi-util.cpp', 'gjs/jsapi-util.h',
+    'util/console.cpp', 'util/console.h',
+    'util/log.cpp', 'util/log.h',
+    'util/misc.cpp', 'util/misc.h',
+]
+
+module_cairo_srcs = [
+    'modules/cairo-private.h',
+    'modules/cairo-module.h',
+    'modules/cairo-region.cpp',
+    'modules/cairo-context.cpp',
+    'modules/cairo-path.cpp',
+    'modules/cairo-surface.cpp',
+    'modules/cairo-image-surface.cpp',
+    'modules/cairo-ps-surface.cpp',
+    'modules/cairo-pdf-surface.cpp',
+    'modules/cairo-svg-surface.cpp',
+    'modules/cairo-pattern.cpp',
+    'modules/cairo-gradient.cpp',
+    'modules/cairo-linear-gradient.cpp',
+    'modules/cairo-radial-gradient.cpp',
+    'modules/cairo-surface-pattern.cpp',
+    'modules/cairo-solid-pattern.cpp',
+    'modules/cairo.cpp',
+]
+
+module_resource_srcs = gnome.compile_resources('js-resources',
+    'js.gresource.xml',
+    c_name: 'js_resources')
+
+libgjs_dependencies = [glib, gobject, gthread, gio, gi, ffi, spidermonkey,
+    readline, libatomic]
+pkg_dependencies = [glib, gobject, gthread, gio, gi, ffi, spidermonkey]
+libraries_private = []
+
+if build_cairo
+    libgjs_sources += module_cairo_srcs
+    libgjs_dependencies += [cairo, cairo_gobject]
+    if cairo.type_name() == 'pkgconfig'
+        pkg_dependencies += [cairo]
+    elif cairo.type_name() == 'library'
+        libraries_private += cairo
+    endif
+    if cairo_gobject.type_name() == 'pkgconfig'
+        pkg_dependencies += [cairo_gobject]
+    elif cairo_gobject.type_name() == 'library'
+        libraries_private += cairo_gobject
+    endif
+    if cairo_xlib.found()
+        libgjs_dependencies += cairo_xlib
+        pkg_dependencies += cairo_xlib
+    endif
+endif
+
+if build_readline
+    libgjs_dependencies += readline_deps
+endif
+
+libgjs_cpp_args = ['-DGJS_COMPILATION'] + directory_defines
+
+# Check G-I and/or Meson on this one.
+libgjs_cpp_args += ['-DG_LOG_DOMAIN="Gjs"']
+
+if host_machine.system() == 'windows'
+    # We need these defines to build properly for all Windows builds
+    libgjs_cpp_args += ['-DWIN32', '-DXP_WIN', '-DWIN32_LEAN_AND_MEAN']
+endif
+
+# This dependency should provide everything that is needed to compile gjs except
+# the sources themselves, is used to copmile both the static libraries and the
+# tests
+base_build_dep = declare_dependency(
+    compile_args: libgjs_cpp_args,
+    dependencies: libgjs_dependencies)
+
+internal_build_dep = declare_dependency(
+    compile_args: (release_build ? ['-DG_DISABLE_ASSERT'] : []),
+    dependencies: [
+        base_build_dep,
+        build_profiler ? profiler_deps : [],
+    ])
+
+libgjs_jsapi = static_library(meson.project_name() + '-jsapi',
+    libgjs_jsapi_sources, probes_header, probes_objfile,
+    cpp_pch: 'gjs/gjs_pch.hh',
+    dependencies: internal_build_dep,
+    install: false)
+
+# We need to create an internal static library to be able to link with the tests
+# that may use internal APIs. This is also used to generate the actual shared
+# library so that we compile its sources just once.
+libgjs_internal = static_library('gjs-internal',
+    libgjs_sources, probes_header, probes_objfile,
+    cpp_pch: 'gjs/gjs_pch.hh',
+    dependencies: internal_build_dep,
+    link_with: libgjs_jsapi)
+
+link_args = []
+symbol_map = files('libgjs.map')
+symbol_list = files('libgjs.symbols')
+link_args += cxx.get_supported_link_arguments([
+    '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(),
+        symbol_map[0]),
+    '-Wl,-exported_symbols_list,@0@/@1@'.format(meson.current_source_dir(),
+        symbol_list[0]),  # macOS linker
+])
+
+libgjs = shared_library(meson.project_name(),
+    sources: [ libgjs_private_sources, module_resource_srcs ],
+    link_args: link_args, link_depends: [symbol_map, symbol_list],
+    link_whole: libgjs_internal,
+    dependencies: base_build_dep,
+    version: '0.0.0', soversion: '0',
+    gnu_symbol_visibility: 'hidden',
+    install: true)
+
+install_headers(gjs_public_headers, subdir: api_name / 'gjs')
+
+# Allow using libgjs as a subproject
+libgjs_dep = declare_dependency(link_with: [libgjs, libgjs_jsapi],
+    dependencies: base_build_dep, include_directories: top_include)
+
+### Build GjsPrivate introspection library #####################################
+
+gjs_private_gir = gnome.generate_gir(libgjs,
+    includes: ['GObject-2.0', 'Gio-2.0'], sources: libgjs_private_sources,
+    namespace: 'GjsPrivate', nsversion: '1.0', identifier_prefix: 'Gjs',
+    symbol_prefix: 'gjs_', extra_args: '--warn-error', install: true,
+    install_dir_gir: false, install_dir_typelib: pkglibdir / 'girepository-1.0')
+gjs_private_typelib = gjs_private_gir[1]
+
+### Build gjs-console interpreter ##############################################
+
+gjs_console_srcs = ['gjs/console.cpp']
+
+gjs_console = executable('gjs-console', gjs_console_srcs,
+    dependencies: libgjs_dep, install: true)
+
+meson.add_install_script('build/symlink-gjs.py', get_option('bindir'))
+
+### Install data files #########################################################
+
+install_data('installed-tests/extra/gjs.supp',
+    install_dir: get_option('datadir') / api_name / 'valgrind')
+install_data('installed-tests/extra/lsan.supp',
+    install_dir: get_option('datadir') / api_name / 'lsan')
+
+if get_option('installed_tests')
+    schemadir = abs_datadir / 'glib-2.0' / 'schemas'
+    install_data('installed-tests/js/org.gnome.GjsTest.gschema.xml', install_dir: schemadir)
+    meson.add_install_script('build/compile-gschemas.py', schemadir)
+endif
+
+### Generate pkg-config file ###################################################
+
+pkg.generate(libgjs, name: api_name, description: 'JS bindings for GObjects',
+    requires: [glib, gobject, gio], requires_private: pkg_dependencies,
+    libraries_private: libraries_private,
+    subdirs: api_name,
+    variables: [
+        'exec_prefix=${prefix}',
+        'bindir=${exec_prefix}' / get_option('bindir'),
+        'datarootdir=${prefix}' / get_option('datadir'),
+        'datadir=${datarootdir}',
+        'gjs_console=${bindir}/gjs-console',
+    ])
+
+### Test environment ###########################################################
+
+tests_environment = environment()
+js_tests_builddir = meson.current_build_dir() / 'installed-tests' / 'js'
+libgjs_test_tools_builddir = js_tests_builddir / 'libgjstesttools'
+# GJS_PATH is empty here since we want to force the use of our own
+# resources. G_FILENAME_ENCODING ensures filenames are not UTF-8
+tests_environment.set('TOP_BUILDDIR', meson.build_root())
+tests_environment.set('GJS_USE_UNINSTALLED_FILES', '1')
+tests_environment.set('GJS_PATH', '')
+tests_environment.set('GJS_DEBUG_OUTPUT', 'stderr')
+tests_environment.prepend('GI_TYPELIB_PATH', meson.current_build_dir(),
+    js_tests_builddir, libgjs_test_tools_builddir)
+tests_environment.prepend('LD_LIBRARY_PATH', meson.current_build_dir(),
+    js_tests_builddir, libgjs_test_tools_builddir)
+tests_environment.prepend('DYLD_FALLBACK_LIBRARY_PATH', meson.current_build_dir(),
+    js_tests_builddir, libgjs_test_tools_builddir)
+tests_environment.set('G_FILENAME_ENCODING', 'latin1')
+# Workaround for https://github.com/google/sanitizers/issues/1322
+tests_environment.set('ASAN_OPTIONS', 'intercept_tls_get_addr=0')
+tests_environment.set('LSAN_OPTIONS',
+    'fast_unwind_on_malloc=0,exitcode=23,suppressions=@0@'.format(
+        meson.current_source_dir() / 'installed-tests' / 'extra' / 'lsan.supp'))
+tests_environment.set('TSAN_OPTIONS',
+    'history_size=5,force_seq_cst_atomics=1,suppressions=@0@'.format(
+        meson.current_source_dir() / 'installed-tests' / 'extra' / 'tsan.supp'))
+tests_environment.set('NO_AT_BRIDGE', '1')
+tests_environment.set('GSETTINGS_SCHEMA_DIR', js_tests_builddir)
+tests_environment.set('GSETTINGS_BACKEND', 'memory')
+tests_environment.set('G_DEBUG', 'fatal-warnings,fatal-criticals')
+
+tests_locale = 'N/A'
+if cxx.get_argument_syntax() != 'msvc'
+    result = run_command('build/choose-tests-locale.sh', check: false)
+    if result.returncode() == 0
+        tests_locale = result.stdout().strip()
+        tests_environment.set('LC_ALL', tests_locale)
+    endif
+endif
+
+if not get_option('skip_gtk_tests')
+    tests_environment.set('ENABLE_GTK', 'yes')
+endif
+
+if get_option('b_coverage')
+    tests_environment.set('GJS_UNIT_COVERAGE_OUTPUT', 'lcov')
+    tests_environment.set('GJS_UNIT_COVERAGE_PREFIX',
+        'resource:///org/gnome/gjs')
+endif
+
+### Tests and test setups ######################################################
+
+if not get_option('skip_gtk_tests')
+    have_gtk4 = dependency('gtk4', required: false).found()
+endif
+
+if get_option('installed_tests')
+    subdir('installed-tests')
+endif
+
+# Note: The test program in test/ needs to be ported
+#       to Windows before we can build it on Windows.
+if host_machine.system() != 'windows'
+if get_option('installed_tests')
+    subdir('test')
+endif
+endif
+
+valgrind_environment = environment()
+valgrind_environment.set('G_SLICE', 'always-malloc,debug-blocks')
+valgrind_environment.set('G_DEBUG',
+    'fatal-warnings,fatal-criticals,gc-friendly')
+valgrind_environment.set('VALGRIND', 'valgrind')
+
+glib_prefix = glib.get_variable(pkgconfig: 'prefix', default_value: '/usr')
+glib_suppresssions = (glib_prefix / 'share' / 'glib-2.0' / 'valgrind' /
+    'glib.supp')
+gjs_suppressions = (meson.current_source_dir() / 'installed-tests' / 'extra' /
+    'gjs.supp')
+valgrind_args = [
+    '--suppressions=@0@'.format(glib_suppresssions),
+    '--suppressions=@0@'.format(gjs_suppressions),
+    '--leak-check=full',
+    '--num-callers=15',
+    '--trace-children=yes',
+    '--trace-children-skip=*basename,*cat,*diff,*echo,*grep,*rm,*sed,*stat,*true',
+    '--error-exitcode=1'
+]
+
+add_test_setup('quiet', env: ['GJS_DEBUG_TOPICS='], is_default: true)
+add_test_setup('verbose')
+
+add_test_setup('valgrind', timeout_multiplier: 40, env: valgrind_environment,
+    exe_wrapper: ['valgrind'] + valgrind_args)
+
+zeal2_environment = environment()
+zeal2_environment.set('JS_GC_ZEAL', '2,10')
+add_test_setup('extra_gc', timeout_multiplier: 40, env: zeal2_environment)
+
+zeal4_environment = environment()
+zeal4_environment.set('JS_GC_ZEAL', '4')
+add_test_setup('pre_verify', timeout_multiplier: 40, env: zeal4_environment)
+
+zeal11_environment = environment()
+zeal11_environment.set('JS_GC_ZEAL', '11')
+add_test_setup('post_verify', timeout_multiplier: 2, env: zeal11_environment)
+
+### Warn about conditions that may affect runtime ##############################
+
+if gi.version().version_compare('<1.71.0')
+    warning('''You do not have a new enough version of
+gobject-introspection to run the tests. You can still build GJS, but some
+tests will fail.''')
+endif
+
+if tests_locale == 'C' or tests_locale == 'N/A'
+    warning('''Your libc does not have the C.UTF-8 locale and no other
+suitable UTF-8 fallback locale could be found. You can still build GJS, but
+some tests will fail.''')
+endif
+
+if get_option('buildtype').startswith('debug') and nondebug_spidermonkey
+    warning('''Your copy of SpiderMonkey is not debug-enabled, but you are
+building a debug or debugoptimized build. This will make development more
+difficult. Consider reconfiguring SpiderMonkey with --enable-debug.''')
+endif
+
+if not build_cairo
+    warning('Building without Cairo support, not all tests will be run.')
+endif
+
+if get_option('skip_gtk_tests')
+    warning('Not using GTK, not all tests will be run.')
+endif
+
+if get_option('skip_dbus_tests')
+    warning('Not using DBus, not all tests will be run.')
+endif
+
+### Summarize options ##########################################################
+
+prefix = get_option('prefix')
+bindir = get_option('bindir')
+libdir = get_option('libdir')
+datadir = get_option('datadir')
+summary({
+    'prefix': prefix,
+    'bindir': prefix / bindir,
+    'libdir': prefix / libdir,
+    'datadir': prefix / datadir,
+}, section: 'Directories')
+locations = []
+foreach dep: [ffi, glib, gi, spidermonkey, readline, sysprof_capture]
+    if dep.type_name() == 'pkgconfig'
+        locations += 'in @0@'.format(dep.get_variable(pkgconfig: 'prefix'))
+    else
+        locations += dep.type_name()
+    endif
+endforeach
+summary({
+    'libffi': '@0@ (@1@)'.format(ffi.version(), locations[0]),
+    'GLib': '@0@ (@1@)'.format(glib.version(), locations[1]),
+    'GObject introspection': '@0@ (@1@)'.format(gi.version(), locations[2]),
+    'SpiderMonkey': '@0@ (@1@, @2@ build)'.format(spidermonkey.version(),
+        locations[3], nondebug_spidermonkey ? 'release' : 'debug'),
+}, section: 'Dependencies')
+if build_readline
+    summary('Readline', '(@0@)'.format(locations[4]), section: 'Dependencies')
+endif
+if build_profiler
+    summary('Sysprof',
+        '@0@ (@1@)'.format(sysprof_capture.version(), locations[5]),
+        section: 'Dependencies')
+endif
+summary({
+    'Build type': get_option('buildtype'),
+    'Installed tests': get_option('installed_tests'),
+    '-Bsymbolic-functions': get_option('bsymbolic_functions'),
+    'Skip DBus tests': get_option('skip_dbus_tests'),
+    'Skip GTK tests': get_option('skip_gtk_tests'),
+    'Extra debug logs': get_option('verbose_logs'),
+    'Precompiled headers': get_option('b_pch'),
+}, section: 'Build options', bool_yn: true)
+summary({
+    'Cairo module': build_cairo,
+    'Use readline for input': build_readline,
+    'Profiler (Linux only)': build_profiler,
+    'Dtrace debugging': get_option('dtrace'),
+    'Systemtap debugging': get_option('systemtap'),
+}, section: 'Optional features', bool_yn: true)
Index: sources/GNOME/core/gjs/patches/README
===================================================================
--- sources/GNOME/core/gjs/patches/README	(nonexistent)
+++ sources/GNOME/core/gjs/patches/README	(revision 242)
@@ -0,0 +1,6 @@
+
+/* begin *
+
+   TODO: Leave some comment here.
+
+ * end */
Index: sources/GNOME/core/gjs/patches
===================================================================
--- sources/GNOME/core/gjs/patches	(nonexistent)
+++ sources/GNOME/core/gjs/patches	(revision 242)

Property changes on: sources/GNOME/core/gjs/patches
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,74 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.rk358x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: sources/GNOME/core/gjs
===================================================================
--- sources/GNOME/core/gjs	(nonexistent)
+++ sources/GNOME/core/gjs	(revision 242)

Property changes on: sources/GNOME/core/gjs
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,74 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.rk358x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: sources/packages/x/MINT/Makefile
===================================================================
--- sources/packages/x/MINT/Makefile	(nonexistent)
+++ sources/packages/x/MINT/Makefile	(revision 242)
@@ -0,0 +1,13 @@
+
+COMPONENT_TARGETS = $(HARDWARE_NOARCH)
+
+SOURCE_REQUIRES += ALL_DIRS
+
+
+include ../../../../build-system/core.mk
+
+
+download_clean:
+	@true
+
+.PHONY: download_clean
Index: sources/packages/x/MINT/cjs/Makefile
===================================================================
--- sources/packages/x/MINT/cjs/Makefile	(nonexistent)
+++ sources/packages/x/MINT/cjs/Makefile	(revision 242)
@@ -0,0 +1,56 @@
+
+COMPONENT_TARGETS = $(HARDWARE_NOARCH)
+
+
+include ../../../../../build-system/constants.mk
+
+
+url         = $(DOWNLOAD_SERVER)/sources/packages/x/MINT/cjs
+
+versions    = 6.0.0
+pkgname     = cjs
+suffix      = tar.xz
+
+tarballs    = $(addsuffix .$(suffix), $(addprefix $(pkgname)-, $(versions)))
+sha1s       = $(addsuffix .sha1sum, $(tarballs))
+
+patches     = $(CURDIR)/patches/cjs-6.0.0-installed-tests.patch
+
+.NOTPARALLEL: $(patches)
+
+
+BUILD_TARGETS = $(tarballs) $(sha1s) $(patches)
+
+
+include ../../../../../build-system/core.mk
+
+
+.PHONY: download_clean
+
+
+$(tarballs):
+	@echo -e "\n======= Downloading source tarballs =======" ; \
+	 for tarball in $(tarballs) ; do \
+	   echo "$(url)/$$tarball" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & \
+	 done ; wait
+
+$(sha1s): $(tarballs)
+	@for sha in $@ ; do \
+	   echo -e "\n======= Downloading '$$sha' signature =======\n" ; \
+	   echo "$(url)/$$sha" | xargs -n 1 -P 100 wget $(WGET_OPTIONS) - & wait %1 ; \
+	   touch $$sha ; \
+	   echo -e "\n======= Check the '$$sha' sha1sum =======\n" ; \
+	   sha1sum --check $$sha ; ret="$$?" ; \
+	   if [ "$$ret" == "1" ]; then \
+	     echo -e "\n======= ERROR: Bad '$$sha' sha1sum =======\n" ; \
+	     exit 1 ; \
+	   fi ; \
+	 done
+
+$(patches): $(sha1s)
+	@echo -e "\n======= Create Patches =======\n" ; \
+	 ( cd create-6.0.0-installed-tests-patch ; ./create.patch.sh ) ; \
+	 echo -e "\n"
+
+download_clean:
+	@rm -f $(tarballs) $(sha1s) $(patches)
Index: sources/packages/x/MINT/cjs/create-6.0.0-installed-tests-patch/cjs-6.0.0-new/meson.build
===================================================================
--- sources/packages/x/MINT/cjs/create-6.0.0-installed-tests-patch/cjs-6.0.0-new/meson.build	(nonexistent)
+++ sources/packages/x/MINT/cjs/create-6.0.0-installed-tests-patch/cjs-6.0.0-new/meson.build	(revision 242)
@@ -0,0 +1,784 @@
+# SPDX-License-Identifier: MIT OR LGPL-2.0-or-later
+# SPDX-FileCopyrightText: 2019 Philip Chimento <philip.chimento@gmail.com>
+# SPDX-FileCopyrightText: 2019 Chun-wei Fan <fanchunwei@src.gnome.org>
+
+project('cjs', 'cpp', 'c', version: '6.0.0', license: ['MIT', 'LGPL2+'],
+    meson_version: '>=0.56.0',
+    default_options: ['cpp_std=c++17', 'cpp_rtti=false', 'c_std=c99',
+        'warning_level=2', 'b_pch=true' ])
+
+# cpp_rtti: SpiderMonkey can be compiled with or without runtime type
+# information, and the default is without. We must match that option because we
+# need to derive from SpiderMonkey classes.
+
+api_version = '1.0'
+api_name = '@0@-@1@'.format(meson.project_name(), api_version)
+
+gnome = import('gnome')
+pkg = import('pkgconfig')
+
+top_include = include_directories('.')
+
+### Check for conflicting build options ########################################
+
+if get_option('systemtap') and not get_option('dtrace')
+    error('-Ddtrace=true is required for -Dsystemtap=true')
+endif
+
+release_build = get_option('buildtype').startswith('release')
+if release_build and get_option('verbose_logs')
+    error('-Dverbose_logs=true is not allowed with --buildtype=release')
+endif
+
+### Check for compiler args ####################################################
+
+cxx = meson.get_compiler('cpp')
+cc = meson.get_compiler('c')
+
+if cc.get_id() == 'msvc'
+    add_project_arguments(cxx.get_supported_arguments([
+        '-utf-8',  # Use UTF-8 mode
+        '/Zc:externConstexpr',  # Required for 'extern constexpr' on MSVC
+        '/Zc:preprocessor',     # Required to consume the mozjs-102 headers on MSVC
+
+        # Ignore spurious compiler warnings for things that GLib and SpiderMonkey
+        # header files commonly do
+        '-FImsvc_recommended_pragmas.h',
+        '-EHsc',
+        '-D_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS', # Don't worry about the C++17 deprecations
+        '-D__PRETTY_FUNCTION__=__FUNCSIG__',
+        '-wd4099',
+        '-wd4251',
+        '-wd4291',
+        '-wd4800',
+        '-wd5030',
+    ]), language: ['cpp', 'c'])
+else
+    # Ignore spurious compiler warnings for things that GLib and SpiderMonkey
+    # header files commonly do
+    add_project_arguments(cxx.get_supported_arguments([
+        '-fno-strict-aliasing',
+        '-Wno-variadic-macros',  # GLib uses these in header files
+        '-Wno-missing-field-initializers',  # SpiderMonkey JSClass, among others
+        '-Wno-dangling-pointer',  # Root list in JS::Rooted<T> with GCC 12
+    ]), language: 'cpp')
+
+    add_project_arguments(cc.get_supported_arguments([
+        '-Wno-typedef-redefinition',  # GLib does this in header files
+    ]), language: 'c')
+endif
+
+if cc.get_argument_syntax() == 'msvc'
+    add_project_arguments(cxx.get_supported_arguments([
+        '-Dssize_t=gssize',  # Windows SDK/MSVC headers do not come with ssize_t
+        '-DNOMINMAX',  # We don't want 'min' or 'max' to interfere
+        '-DSSIZE_MAX=G_MAXSSIZE',  # Windows SDK/MSVC headers do not come with SSIZE_MAX
+        ]), language: ['cpp', 'c'])
+else
+    if get_option('bsymbolic_functions')
+        if not cxx.has_link_argument('-Bsymbolic-functions')
+            error('''-Bsymbolic-functions not supported, configure with
+-Dbsymbolic_functions=false''')
+        endif
+        add_project_link_arguments('-Bsymbolic-functions', language: ['cpp', 'c'])
+        if cc.has_argument('-fno-semantic-interposition')
+            add_project_arguments('-fno-semantic-interposition', language: 'c')
+        endif
+        if cxx.has_argument('-fno-semantic-interposition')
+            add_project_arguments('-fno-semantic-interposition', language: 'cpp')
+        endif
+    endif
+endif
+
+# -fno-rtti is not compatible with the vptr sanitizer (part of ubsan)
+if not get_option('cpp_rtti') and get_option('b_sanitize') != 'none' and \
+    cxx.has_argument('-fno-sanitize=vptr')
+    add_project_arguments('-fno-sanitize=vptr', language: 'cpp')
+endif
+
+if get_option('verbose_logs')
+    add_project_arguments([
+        '-DGJS_VERBOSE_ENABLE_PROPS=1',
+        '-DGJS_VERBOSE_ENABLE_MARSHAL=1',
+        '-DGJS_VERBOSE_ENABLE_LIFECYCLE=1',
+        '-DGJS_VERBOSE_ENABLE_GI_USAGE=1',
+        '-DGJS_VERBOSE_ENABLE_GCLOSURE=1',
+        '-DGJS_VERBOSE_ENABLE_GSIGNAL=1',
+    ], language: 'cpp')
+endif
+
+if release_build
+    add_project_arguments('-DG_DISABLE_CAST_CHECKS', language: ['c', 'cpp'])
+endif
+
+### Check for required libraries ###############################################
+
+null_dep = dependency('', required : false)
+
+# Note: Notify GNOME release team when adding or updating dependencies
+glib_required_version = '>= 2.66.0'
+glib = dependency('glib-2.0', version: glib_required_version,
+    fallback: ['glib', 'libglib_dep'])
+gthread = dependency('gthread-2.0', version: glib_required_version,
+    fallback: ['glib', 'libgthread_dep'])
+gobject = dependency('gobject-2.0', version: glib_required_version,
+    fallback: ['glib', 'libgobject_dep'])
+gio = dependency('gio-2.0', version: glib_required_version,
+    fallback: ['glib', 'libgio_dep'])
+ffi = dependency('libffi', fallback: ['libffi', 'ffi_dep'])
+gi = dependency('gobject-introspection-1.0', version: '>= 1.66.0',
+    fallback: ['gobject-introspection', 'girepo_dep'])
+spidermonkey = dependency('mozjs-102')
+
+# We might need to look for the headers and lib's for Cairo
+# manually on MSVC/clang-cl builds...
+cairo = dependency('cairo', required: get_option('cairo').enabled() and cxx.get_argument_syntax() != 'msvc')
+cairo_gobject = dependency('cairo-gobject', required: cairo.found() and cxx.get_argument_syntax() != 'msvc')
+cairo_xlib = dependency('cairo-xlib', required: false)
+
+if cxx.get_argument_syntax() == 'msvc'
+    if not cairo.found()
+        cairo = cc.find_library('cairo', has_headers: ['cairo.h'], required: get_option('cairo').enabled())
+    endif
+    if not cairo_gobject.found()
+        cairo_gobject = cc.find_library('cairo-gobject', has_headers: ['cairo-gobject.h'], required: cairo.found())
+    endif
+endif
+
+sysprof_capture = dependency('sysprof-capture-4',
+    required: get_option('profiler'), include_type: 'system',
+    fallback: ['sysprof', 'libsysprof_capture_dep'],
+    default_options: [
+        'agent=false',
+        'examples=false',
+        'gtk=false',
+        'tests=false',
+        'tools=false',
+        'libsysprof=false',
+        'sysprofd=none',
+        'help=false',
+    ])
+
+readline = cxx.find_library('readline', required: get_option('readline'))
+# On some systems we need to link readline to a termcap compatible library
+readline_code = '''
+#include <cstdio>
+#include <readline/readline.h>
+int main(void) {
+    readline("foo");
+    return 0;
+}'''
+readline_deps = [readline]
+if readline.found() and not cxx.links(readline_code, dependencies: readline)
+    extra_readline_libs = ['ncursesw', 'ncurses', 'curses', 'termcap']
+    found = false
+    foreach lib : extra_readline_libs
+        termcap = cxx.find_library(lib, required: false)
+        if cxx.links(readline_code, dependencies: [readline, termcap])
+            found = true
+            readline_deps += termcap
+            break
+        endif
+    endforeach
+    if not found
+        error('''Couldn't figure out how to link
+readline library. Configure with -Dreadline=disabled to skip the readline
+features.''')
+    endif
+endif
+
+if cxx.links('''
+#include <atomic>
+
+int main(void)
+{
+  std::atomic_int64_t value = ATOMIC_VAR_INIT(0);
+  return value.load();
+}
+''', name: '64-bit atomics built-in')
+    libatomic = null_dep
+else
+    libatomic = cc.find_library('atomic', required: false)
+endif
+
+build_profiler = sysprof_capture.found() and not get_option('profiler').disabled()
+profiler_deps = [sysprof_capture]
+if build_profiler and not cxx.has_function('timer_settime')
+    extra_timer_libs = ['rt', 'posix4']
+    found = false
+    foreach lib : extra_timer_libs
+        timer_lib = cxx.find_library(lib, required: false)
+        if cxx.has_function('timer_settime', dependencies: timer_lib)
+            found = true
+            profiler_deps += timer_lib
+            break
+        endif
+    endforeach
+    if not found or not cxx.has_header_symbol('signal.h', 'SIGEV_THREAD_ID')
+        if get_option('profiler').enabled()
+            error('''The profiler is currently only
+supported on Linux. The standard library must support timer_settime() and
+SIGEV_THREAD_ID. Configure with -Dprofiler=auto or -Dprofiler=disabled to skip
+it on other platforms.''')
+        endif
+        build_profiler = false
+    endif
+endif
+
+build_cairo = cairo.found() and not get_option('cairo').disabled()
+build_readline = readline.found() and not get_option('readline').disabled()
+
+### Check for library features #################################################
+
+# Check if SpiderMonkey was compiled with --enable-debug. If this is the case,
+# you must compile all your sources with -DDEBUG=1
+# See https://bugzilla.mozilla.org/show_bug.cgi?id=1261161
+debug_arg = []
+nondebug_spidermonkey = cxx.compiles('''
+#include <js-config.h>
+#ifdef JS_DEBUG
+#error debug yes, if we did not already error out due to DEBUG not being defined
+#endif
+''',
+    dependencies: spidermonkey,
+    name: 'SpiderMonkey is a non-debug build')
+
+if not nondebug_spidermonkey
+    debug_arg = ['-DDEBUG']  # for compile tests
+endif
+
+if release_build and not nondebug_spidermonkey
+    error('''You are trying to make a release
+build with a debug-enabled copy of SpiderMonkey. This is probably not what you
+want, since it will have bad performance and is not binary-compatible with
+release builds of SpiderMonkey. Try configuring SpiderMonkey with
+--disable-debug.''')
+endif
+
+have_printf_alternative_int = cc.compiles('''
+#include <stdio.h>
+int main(void) {
+    printf("%Id", (int)0);
+    return 0;
+}
+''',
+    args: ['-Werror', '-Wformat'],
+    name: 'printf() supports %I alternative int syntax')
+
+### Check for external programs ################################################
+
+dtrace = find_program('dtrace', required: get_option('dtrace'))
+dbus_run_session = find_program('dbus-run-session',
+    required: not get_option('skip_dbus_tests'))
+glib_compile_schemas = find_program('glib-compile-schemas')
+
+### Generate config.h ##########################################################
+
+header_conf = configuration_data()
+
+versions = meson.project_version().split('.')
+major_version = versions[0].to_int()
+minor_version = versions[1].to_int()
+micro_version = versions[2].to_int()
+int_version = (major_version * 100 + minor_version) * 100 + micro_version
+header_conf.set_quoted('VERSION', meson.project_version())
+header_conf.set('GJS_VERSION', int_version,
+    description: 'The GJS version as an integer')
+header_conf.set_quoted('PACKAGE_STRING', '@0@ @1@'.format(meson.project_name(),
+    meson.project_version()))
+
+header_conf.set('ENABLE_CAIRO', build_cairo,
+    description: 'Build with Cairo support')
+header_conf.set('ENABLE_PROFILER', build_profiler,
+    description: 'Build the profiler')
+# COMPAT: SpiderMonkey headers in some places use DEBUG instead of JS_DEBUG
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1261161 */
+header_conf.set('DEBUG', not nondebug_spidermonkey,
+    description: 'SpiderMonkey was compiled with --enable-debug')
+header_conf.set('HAVE_DTRACE', get_option('dtrace'),
+    description: 'Using dtrace probes')
+header_conf.set('HAVE_PRINTF_ALTERNATIVE_INT', have_printf_alternative_int,
+    description: 'printf() accepts "%Id" for alternative integer output')
+if build_readline
+    header_conf.set('HAVE_READLINE_READLINE_H',
+        cxx.check_header('readline/readline.h', prefix: '#include <cstdio>',
+            required: readline.found()))
+endif
+header_conf.set('USE_UNITY_BUILD', get_option('unity'))
+header_conf.set('HAVE_SYS_SYSCALL_H', cxx.check_header('sys/syscall.h'))
+header_conf.set('HAVE_UNISTD_H', cxx.check_header('unistd.h'))
+header_conf.set('HAVE_SIGNAL_H', cxx.check_header('signal.h',
+    required: build_profiler))
+
+# enable GNU extensions on systems that have them
+header_conf.set('_GNU_SOURCE', 1)
+
+configure_file(output: 'config.h', configuration: header_conf)
+
+### Check for environment ######################################################
+
+gjsjsdir = get_option('datadir') / api_name
+abs_datadir = get_option('prefix') / get_option('datadir')
+pkglibdir = get_option('libdir') / meson.project_name()
+
+### Build dtrace probes ########################################################
+
+if get_option('dtrace')
+    probes_header_gen = generator(dtrace, output: '@BASENAME@.h',
+        arguments: ['-C', '-h', '-s', '@INPUT@', '-o', '@OUTPUT@'])
+    probes_objfile_gen = generator(dtrace, output: '@BASENAME@.o',
+        arguments: ['-G', '-s', '@INPUT@', '-o', '@OUTPUT@'])
+    probes_header = probes_header_gen.process('gi/gjs_gi_probes.d')
+    probes_objfile = probes_objfile_gen.process('gi/gjs_gi_probes.d')
+else
+    probes_header = []
+    probes_objfile = []
+endif
+
+tapset_subst = configuration_data({
+    'EXPANDED_LIBDIR': get_option('libdir'),
+})
+tapset = configure_file(input: 'cjs/gjs.stp.in', output: 'gjs.stp',
+    configuration: tapset_subst)
+if get_option('systemtap')
+    install_data(tapset,
+        install_dir: get_option('datadir') / 'systemtap/tapset')
+endif
+
+### Build library ##############################################################
+
+directory_defines = [
+    '-DGJS_JS_DIR="@0@"'.format(get_option('prefix') / gjsjsdir),
+    '-DPKGLIBDIR="@0@"'.format(get_option('prefix') / pkglibdir),
+]
+
+gjs_public_headers = [
+    'cjs/context.h',
+    'cjs/coverage.h',
+    'cjs/error-types.h',
+    'cjs/gjs.h',
+    'cjs/macros.h',
+    'cjs/mem.h',
+    'cjs/profiler.h',
+]
+
+# For historical reasons, some files live in gi/
+# Some headers in the following list were formerly public
+
+libgjs_sources = [
+    'gi/arg.cpp', 'gi/arg.h', 'gi/arg-inl.h',
+    'gi/arg-cache.cpp', 'gi/arg-cache.h',
+    'gi/boxed.cpp', 'gi/boxed.h',
+    'gi/closure.cpp', 'gi/closure.h',
+    'gi/cwrapper.cpp', 'gi/cwrapper.h',
+    'gi/enumeration.cpp', 'gi/enumeration.h',
+    'gi/foreign.cpp', 'gi/foreign.h',
+    'gi/fundamental.cpp', 'gi/fundamental.h',
+    'gi/function.cpp', 'gi/function.h',
+    'gi/gerror.cpp', 'gi/gerror.h',
+    'gi/gjs_gi_trace.h',
+    'gi/gobject.cpp', 'gi/gobject.h',
+    'gi/gtype.cpp', 'gi/gtype.h',
+    'gi/interface.cpp', 'gi/interface.h',
+    'gi/ns.cpp', 'gi/ns.h',
+    'gi/object.cpp', 'gi/object.h',
+    'gi/param.cpp', 'gi/param.h',
+    'gi/private.cpp', 'gi/private.h',
+    'gi/repo.cpp', 'gi/repo.h',
+    'gi/toggle.cpp', 'gi/toggle.h',
+    'gi/union.cpp', 'gi/union.h',
+    'gi/utils-inl.h',
+    'gi/value.cpp', 'gi/value.h',
+    'gi/wrapperutils.cpp', 'gi/wrapperutils.h',
+    'cjs/atoms.cpp', 'cjs/atoms.h',
+    'cjs/byteArray.cpp', 'cjs/byteArray.h',
+    'cjs/context.cpp', 'cjs/context-private.h',
+    'cjs/coverage.cpp',
+    'cjs/debugger.cpp',
+    'cjs/deprecation.cpp', 'cjs/deprecation.h',
+    'cjs/engine.cpp', 'cjs/engine.h',
+    'cjs/error-types.cpp',
+    'cjs/global.cpp', 'cjs/global.h',
+    'cjs/importer.cpp', 'cjs/importer.h',
+    'cjs/internal.cpp', 'cjs/internal.h',
+    'cjs/mainloop.cpp', 'cjs/mainloop.h',
+    'cjs/mem.cpp', 'cjs/mem-private.h',
+    'cjs/module.cpp', 'cjs/module.h',
+    'cjs/native.cpp', 'cjs/native.h',
+    'cjs/objectbox.cpp', 'cjs/objectbox.h',
+    'cjs/profiler.cpp', 'cjs/profiler-private.h',
+    'cjs/text-encoding.cpp', 'cjs/text-encoding.h',
+    'cjs/promise.cpp', 'cjs/promise.h',
+    'cjs/stack.cpp',
+    'modules/console.cpp', 'modules/console.h',
+    'modules/modules.cpp', 'modules/modules.h',
+    'modules/print.cpp', 'modules/print.h',
+    'modules/system.cpp', 'modules/system.h',
+]
+
+# CjsPrivate introspection sources
+libgjs_private_sources = [
+    'libgjs-private/gjs-gdbus-wrapper.c', 'libgjs-private/gjs-gdbus-wrapper.h',
+    'libgjs-private/gjs-util.c', 'libgjs-private/gjs-util.h',
+]
+
+libgjs_jsapi_sources = [
+    'cjs/jsapi-class.h',
+    'cjs/jsapi-dynamic-class.cpp',
+    'cjs/jsapi-util-args.h',
+    'cjs/jsapi-util-error.cpp',
+    'cjs/jsapi-util-root.h',
+    'cjs/jsapi-util-string.cpp',
+    'cjs/jsapi-util.cpp', 'cjs/jsapi-util.h',
+    'util/console.cpp', 'util/console.h',
+    'util/log.cpp', 'util/log.h',
+    'util/misc.cpp', 'util/misc.h',
+]
+
+module_cairo_srcs = [
+    'modules/cairo-private.h',
+    'modules/cairo-module.h',
+    'modules/cairo-region.cpp',
+    'modules/cairo-context.cpp',
+    'modules/cairo-path.cpp',
+    'modules/cairo-surface.cpp',
+    'modules/cairo-image-surface.cpp',
+    'modules/cairo-ps-surface.cpp',
+    'modules/cairo-pdf-surface.cpp',
+    'modules/cairo-svg-surface.cpp',
+    'modules/cairo-pattern.cpp',
+    'modules/cairo-gradient.cpp',
+    'modules/cairo-linear-gradient.cpp',
+    'modules/cairo-radial-gradient.cpp',
+    'modules/cairo-surface-pattern.cpp',
+    'modules/cairo-solid-pattern.cpp',
+    'modules/cairo.cpp',
+]
+
+module_resource_srcs = gnome.compile_resources('js-resources',
+    'js.gresource.xml',
+    c_name: 'js_resources')
+
+libgjs_dependencies = [glib, gobject, gthread, gio, gi, ffi, spidermonkey,
+    readline, libatomic]
+pkg_dependencies = [glib, gobject, gthread, gio, gi, ffi, spidermonkey]
+libraries_private = []
+
+if build_cairo
+    libgjs_sources += module_cairo_srcs
+    libgjs_dependencies += [cairo, cairo_gobject]
+    if cairo.type_name() == 'pkgconfig'
+        pkg_dependencies += [cairo]
+    elif cairo.type_name() == 'library'
+        libraries_private += cairo
+    endif
+    if cairo_gobject.type_name() == 'pkgconfig'
+        pkg_dependencies += [cairo_gobject]
+    elif cairo_gobject.type_name() == 'library'
+        libraries_private += cairo_gobject
+    endif
+    if cairo_xlib.found()
+        libgjs_dependencies += cairo_xlib
+        pkg_dependencies += cairo_xlib
+    endif
+endif
+
+if build_readline
+    libgjs_dependencies += readline_deps
+endif
+
+libgjs_cpp_args = ['-DGJS_COMPILATION'] + directory_defines
+
+# Check G-I and/or Meson on this one.
+libgjs_cpp_args += ['-DG_LOG_DOMAIN="Gjs"']
+
+if host_machine.system() == 'windows'
+    # We need these defines to build properly for all Windows builds
+    libgjs_cpp_args += ['-DWIN32', '-DXP_WIN', '-DWIN32_LEAN_AND_MEAN']
+endif
+
+# This dependency should provide everything that is needed to compile gjs except
+# the sources themselves, is used to copmile both the static libraries and the
+# tests
+base_build_dep = declare_dependency(
+    compile_args: libgjs_cpp_args,
+    dependencies: libgjs_dependencies)
+
+internal_build_dep = declare_dependency(
+    compile_args: (release_build ? ['-DG_DISABLE_ASSERT'] : []),
+    dependencies: [
+        base_build_dep,
+        build_profiler ? profiler_deps : [],
+    ])
+
+libgjs_jsapi = static_library(meson.project_name() + '-jsapi',
+    libgjs_jsapi_sources, probes_header, probes_objfile,
+    cpp_pch: 'cjs/gjs_pch.hh',
+    dependencies: internal_build_dep,
+    install: false)
+
+# We need to create an internal static library to be able to link with the tests
+# that may use internal APIs. This is also used to generate the actual shared
+# library so that we compile its sources just once.
+libgjs_internal = static_library('gjs-internal',
+    libgjs_sources, probes_header, probes_objfile,
+    cpp_pch: 'cjs/gjs_pch.hh',
+    dependencies: internal_build_dep,
+    link_with: libgjs_jsapi)
+
+link_args = []
+symbol_map = files('libgjs.map')
+symbol_list = files('libgjs.symbols')
+link_args += cxx.get_supported_link_arguments([
+    '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(),
+        symbol_map[0]),
+    '-Wl,-exported_symbols_list,@0@/@1@'.format(meson.current_source_dir(),
+        symbol_list[0]),  # macOS linker
+])
+
+libgjs = shared_library(meson.project_name(),
+    sources: [ libgjs_private_sources, module_resource_srcs ],
+    link_args: link_args, link_depends: [symbol_map, symbol_list],
+    link_whole: libgjs_internal,
+    dependencies: base_build_dep,
+    version: '0.0.0', soversion: '0',
+    gnu_symbol_visibility: 'hidden',
+    install: true)
+
+install_headers(gjs_public_headers, subdir: api_name / 'cjs')
+
+# Allow using libgjs as a subproject
+libgjs_dep = declare_dependency(link_with: [libgjs, libgjs_jsapi],
+    dependencies: base_build_dep, include_directories: top_include)
+
+### Build CjsPrivate introspection library #####################################
+
+gjs_private_gir = gnome.generate_gir(libgjs,
+    includes: ['GObject-2.0', 'Gio-2.0'], sources: libgjs_private_sources,
+    namespace: 'CjsPrivate', nsversion: '1.0', identifier_prefix: 'Gjs',
+    symbol_prefix: 'gjs_', fatal_warnings: get_option('werror'), install: true,
+    install_dir_gir: false, install_dir_typelib: pkglibdir / 'girepository-1.0')
+gjs_private_typelib = gjs_private_gir[1]
+
+### Build cjs-console interpreter ##############################################
+
+gjs_console_srcs = ['cjs/console.cpp']
+
+gjs_console = executable('cjs-console', gjs_console_srcs,
+    dependencies: libgjs_dep, install: true)
+
+meson.add_install_script('build/symlink-gjs.py', get_option('bindir'))
+
+### Install data files #########################################################
+
+install_data('installed-tests/extra/gjs.supp',
+    install_dir: get_option('datadir') / api_name / 'valgrind')
+install_data('installed-tests/extra/lsan.supp',
+    install_dir: get_option('datadir') / api_name / 'lsan')
+
+if get_option('installed_tests')
+    schemadir = abs_datadir / 'glib-2.0' / 'schemas'
+    install_data('installed-tests/js/org.cinnamon.CjsTest.gschema.xml', install_dir: schemadir)
+    meson.add_install_script('build/compile-gschemas.py', schemadir)
+endif
+
+### Generate pkg-config file ###################################################
+
+pkg.generate(libgjs, name: api_name, description: 'JS bindings for GObjects',
+    requires: [glib, gobject, gio], requires_private: pkg_dependencies,
+    libraries_private: libraries_private,
+    subdirs: api_name,
+    variables: [
+        'exec_prefix=${prefix}',
+        'bindir=${exec_prefix}' / get_option('bindir'),
+        'datarootdir=${prefix}' / get_option('datadir'),
+        'datadir=${datarootdir}',
+        'gjs_console=${bindir}/cjs-console',
+    ])
+
+### Test environment ###########################################################
+
+tests_environment = environment()
+js_tests_builddir = meson.current_build_dir() / 'installed-tests' / 'js'
+libgjs_test_tools_builddir = js_tests_builddir / 'libgjstesttools'
+# GJS_PATH is empty here since we want to force the use of our own
+# resources. G_FILENAME_ENCODING ensures filenames are not UTF-8
+tests_environment.set('TOP_BUILDDIR', meson.project_build_root())
+tests_environment.set('GJS_USE_UNINSTALLED_FILES', '1')
+tests_environment.set('GJS_PATH', '')
+tests_environment.set('GJS_DEBUG_OUTPUT', 'stderr')
+tests_environment.prepend('GI_TYPELIB_PATH', meson.current_build_dir(),
+    js_tests_builddir, libgjs_test_tools_builddir)
+tests_environment.prepend('LD_LIBRARY_PATH', meson.current_build_dir(),
+    js_tests_builddir, libgjs_test_tools_builddir)
+tests_environment.prepend('DYLD_FALLBACK_LIBRARY_PATH', meson.current_build_dir(),
+    js_tests_builddir, libgjs_test_tools_builddir)
+tests_environment.set('G_FILENAME_ENCODING', 'latin1')
+# Workaround for https://github.com/google/sanitizers/issues/1322
+tests_environment.set('ASAN_OPTIONS', 'intercept_tls_get_addr=0')
+tests_environment.set('LSAN_OPTIONS',
+    'fast_unwind_on_malloc=0,exitcode=23,suppressions=@0@'.format(
+        meson.current_source_dir() / 'installed-tests' / 'extra' / 'lsan.supp'))
+tests_environment.set('TSAN_OPTIONS',
+    'history_size=5,force_seq_cst_atomics=1,suppressions=@0@'.format(
+        meson.current_source_dir() / 'installed-tests' / 'extra' / 'tsan.supp'))
+tests_environment.set('NO_AT_BRIDGE', '1')
+tests_environment.set('GSETTINGS_SCHEMA_DIR', js_tests_builddir)
+tests_environment.set('GSETTINGS_BACKEND', 'memory')
+tests_environment.set('G_DEBUG', 'fatal-warnings,fatal-criticals')
+
+tests_locale = 'N/A'
+if cxx.get_argument_syntax() != 'msvc'
+    result = run_command('build/choose-tests-locale.sh', check: false)
+    if result.returncode() == 0
+        tests_locale = result.stdout().strip()
+        tests_environment.set('LC_ALL', tests_locale)
+    endif
+endif
+
+if not get_option('skip_gtk_tests')
+    tests_environment.set('ENABLE_GTK', 'yes')
+endif
+
+if get_option('b_coverage')
+    tests_environment.set('GJS_UNIT_COVERAGE_OUTPUT', 'lcov')
+    tests_environment.set('GJS_UNIT_COVERAGE_PREFIX',
+        'resource:///org/gnome/gjs')
+endif
+
+### Tests and test setups ######################################################
+
+if get_option('installed_tests')
+    subdir('installed-tests')
+endif
+
+# Note: The test program in test/ needs to be ported
+#       to Windows before we can build it on Windows.
+if host_machine.system() != 'windows'
+if get_option('installed_tests')
+    subdir('test')
+endif
+endif
+
+valgrind_environment = environment()
+valgrind_environment.set('G_SLICE', 'always-malloc,debug-blocks')
+valgrind_environment.set('G_DEBUG',
+    'fatal-warnings,fatal-criticals,gc-friendly')
+valgrind_environment.set('VALGRIND', 'valgrind')
+
+glib_prefix = glib.get_variable(pkgconfig: 'prefix', default_value: '/usr')
+glib_suppresssions = (glib_prefix / 'share' / 'glib-2.0' / 'valgrind' /
+    'glib.supp')
+gjs_suppressions = (meson.current_source_dir() / 'installed-tests' / 'extra' /
+    'cjs.supp')
+valgrind_args = [
+    '--suppressions=@0@'.format(glib_suppresssions),
+    '--suppressions=@0@'.format(gjs_suppressions),
+    '--leak-check=full',
+    '--num-callers=15',
+    '--trace-children=yes',
+    '--trace-children-skip=*basename,*cat,*diff,*echo,*grep,*rm,*sed,*stat,*true',
+    '--error-exitcode=1'
+]
+
+add_test_setup('quiet', env: ['GJS_DEBUG_TOPICS='], is_default: true)
+add_test_setup('verbose')
+
+add_test_setup('valgrind', timeout_multiplier: 40, env: valgrind_environment,
+    exe_wrapper: ['valgrind'] + valgrind_args)
+
+zeal2_environment = environment()
+zeal2_environment.set('JS_GC_ZEAL', '2,10')
+add_test_setup('extra_gc', timeout_multiplier: 40, env: zeal2_environment)
+
+zeal4_environment = environment()
+zeal4_environment.set('JS_GC_ZEAL', '4')
+add_test_setup('pre_verify', timeout_multiplier: 40, env: zeal4_environment)
+
+zeal11_environment = environment()
+zeal11_environment.set('JS_GC_ZEAL', '11')
+add_test_setup('post_verify', timeout_multiplier: 2, env: zeal11_environment)
+
+### Warn about conditions that may affect runtime ##############################
+
+if gi.version().version_compare('<1.71.0')
+    warning('''You do not have a new enough version of
+gobject-introspection to run the tests. You can still build GJS, but some
+tests will fail.''')
+endif
+
+if tests_locale == 'C' or tests_locale == 'N/A'
+    warning('''Your libc does not have the C.UTF-8 locale and no other
+suitable UTF-8 fallback locale could be found. You can still build GJS, but
+some tests will fail.''')
+endif
+
+if get_option('buildtype').startswith('debug') and nondebug_spidermonkey
+    warning('''Your copy of SpiderMonkey is not debug-enabled, but you are
+building a debug or debugoptimized build. This will make development more
+difficult. Consider reconfiguring SpiderMonkey with --enable-debug.''')
+endif
+
+if not build_cairo
+    warning('Building without Cairo support, not all tests will be run.')
+endif
+
+if get_option('skip_gtk_tests')
+    warning('Not using GTK, not all tests will be run.')
+endif
+
+if get_option('skip_dbus_tests')
+    warning('Not using DBus, not all tests will be run.')
+endif
+
+### Summarize options ##########################################################
+
+prefix = get_option('prefix')
+bindir = get_option('bindir')
+libdir = get_option('libdir')
+datadir = get_option('datadir')
+summary({
+    'prefix': prefix,
+    'bindir': prefix / bindir,
+    'libdir': prefix / libdir,
+    'datadir': prefix / datadir,
+}, section: 'Directories')
+locations = []
+foreach dep: [ffi, glib, gi, spidermonkey, readline, sysprof_capture]
+    if dep.type_name() == 'pkgconfig'
+        locations += 'in @0@'.format(dep.get_variable(pkgconfig: 'prefix'))
+    else
+        locations += dep.type_name()
+    endif
+endforeach
+summary({
+    'libffi': '@0@ (@1@)'.format(ffi.version(), locations[0]),
+    'GLib': '@0@ (@1@)'.format(glib.version(), locations[1]),
+    'GObject introspection': '@0@ (@1@)'.format(gi.version(), locations[2]),
+    'SpiderMonkey': '@0@ (@1@, @2@ build)'.format(spidermonkey.version(),
+        locations[3], nondebug_spidermonkey ? 'release' : 'debug'),
+}, section: 'Dependencies')
+if build_readline
+    summary('Readline', '(@0@)'.format(locations[4]), section: 'Dependencies')
+endif
+if build_profiler
+    summary('Sysprof',
+        '@0@ (@1@)'.format(sysprof_capture.version(), locations[5]),
+        section: 'Dependencies')
+endif
+summary({
+    'Build type': get_option('buildtype'),
+    'Installed tests': get_option('installed_tests'),
+    '-Bsymbolic-functions': get_option('bsymbolic_functions'),
+    'Skip DBus tests': get_option('skip_dbus_tests'),
+    'Skip GTK tests': get_option('skip_gtk_tests'),
+    'Extra debug logs': get_option('verbose_logs'),
+    'Precompiled headers': get_option('b_pch'),
+}, section: 'Build options', bool_yn: true)
+summary({
+    'Cairo module': build_cairo,
+    'Use readline for input': build_readline,
+    'Profiler (Linux only)': build_profiler,
+    'Dtrace debugging': get_option('dtrace'),
+    'Systemtap debugging': get_option('systemtap'),
+}, section: 'Optional features', bool_yn: true)
Index: sources/packages/x/MINT/cjs/create-6.0.0-installed-tests-patch/create.patch.sh
===================================================================
--- sources/packages/x/MINT/cjs/create-6.0.0-installed-tests-patch/create.patch.sh	(nonexistent)
+++ sources/packages/x/MINT/cjs/create-6.0.0-installed-tests-patch/create.patch.sh	(revision 242)
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+VERSION=6.0.0
+
+tar --files-from=file.list -xJvf ../cjs-$VERSION.tar.xz
+mv cjs-$VERSION cjs-$VERSION-orig
+
+cp -rf ./cjs-$VERSION-new ./cjs-$VERSION
+
+diff --unified -Nr  cjs-$VERSION-orig  cjs-$VERSION > cjs-$VERSION-installed-tests.patch
+
+mv cjs-$VERSION-installed-tests.patch ../patches
+
+rm -rf ./cjs-$VERSION
+rm -rf ./cjs-$VERSION-orig

Property changes on: sources/packages/x/MINT/cjs/create-6.0.0-installed-tests-patch/create.patch.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: sources/packages/x/MINT/cjs/create-6.0.0-installed-tests-patch/file.list
===================================================================
--- sources/packages/x/MINT/cjs/create-6.0.0-installed-tests-patch/file.list	(nonexistent)
+++ sources/packages/x/MINT/cjs/create-6.0.0-installed-tests-patch/file.list	(revision 242)
@@ -0,0 +1 @@
+cjs-6.0.0/meson.build
Index: sources/packages/x/MINT/cjs/patches/README
===================================================================
--- sources/packages/x/MINT/cjs/patches/README	(nonexistent)
+++ sources/packages/x/MINT/cjs/patches/README	(revision 242)
@@ -0,0 +1,6 @@
+
+/* begin *
+
+   TODO: Leave some comment here.
+
+ * end */
Index: sources/packages/x/MINT/cjs/patches
===================================================================
--- sources/packages/x/MINT/cjs/patches	(nonexistent)
+++ sources/packages/x/MINT/cjs/patches	(revision 242)

Property changes on: sources/packages/x/MINT/cjs/patches
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,74 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.rk358x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: sources/packages/x/MINT/cjs
===================================================================
--- sources/packages/x/MINT/cjs	(nonexistent)
+++ sources/packages/x/MINT/cjs	(revision 242)

Property changes on: sources/packages/x/MINT/cjs
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,74 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.rk358x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~
Index: sources/packages/x/MINT
===================================================================
--- sources/packages/x/MINT	(nonexistent)
+++ sources/packages/x/MINT	(revision 242)

Property changes on: sources/packages/x/MINT
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,74 ##
+
+# install dir
+dist
+
+# Target build dirs
+.a1x-newlib
+.a2x-newlib
+.at91sam7s-newlib
+
+.build-machine
+
+.a1x-glibc
+.a2x-glibc
+.h3-glibc
+.h5-glibc
+.i586-glibc
+.i686-glibc
+.imx6-glibc
+.jz47xx-glibc
+.makefile
+.am335x-glibc
+.omap543x-glibc
+.p5600-glibc
+.power8-glibc
+.power8le-glibc
+.power9-glibc
+.power9le-glibc
+.m1000-glibc
+.riscv64-glibc
+.rk328x-glibc
+.rk33xx-glibc
+.rk339x-glibc
+.rk358x-glibc
+.s8xx-glibc
+.s9xx-glibc
+.x86_64-glibc
+
+# Hidden files (each file)
+.makefile
+.dist
+.rootfs
+
+# src & hw requires
+.src_requires
+.src_requires_depend
+.requires
+.requires_depend
+
+# Tarballs
+*.gz
+*.bz2
+*.lz
+*.xz
+*.tgz
+*.txz
+
+# Signatures
+*.asc
+*.sig
+*.sign
+*.sha1sum
+
+# Patches
+*.patch
+
+# Descriptions
+*.dsc
+*.txt
+
+# Default linux config files
+*.defconfig
+
+# backup copies
+*~