diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9eb9a79ec..d0653f3ee 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -27,9 +27,9 @@ repos: - id: check-yaml - id: check-merge-conflict - id: end-of-file-fixer - exclude: "^omnibus/config/patches/" + exclude: "^omnibus/config/patches/*" - id: trailing-whitespace - exclude: "^omnibus/config/patches/" + exclude: "^omnibus/config/patches/*" - id: check-merge-conflict - id: no-commit-to-branch args: [-b, master, -b, develop] diff --git a/omnibus/config/patches/bzip2/aix_makefile.patch b/omnibus/config/patches/bzip2/aix_makefile.patch new file mode 100644 index 000000000..e562728c6 --- /dev/null +++ b/omnibus/config/patches/bzip2/aix_makefile.patch @@ -0,0 +1,11 @@ +--- bzip2-1.0.8/Makefile-libbz2_so.orig 2019-07-24 10:33:36.184131389 -0400 ++++ bzip2-1.0.8/Makefile-libbz2_so 2019-07-24 10:35:20.564277676 -0400 +@@ -35,7 +35,7 @@ + bzlib.o + + all: $(OBJS) +- $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.8 $(OBJS) ++ $(CC) -qmkshrobj -Wl,-soname -o libbz2.so.1.0.8 $(OBJS) + $(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.8 + rm -f libbz2.so.1.0 + ln -s libbz2.so.1.0.8 libbz2.so.1.0 diff --git a/omnibus/config/patches/bzip2/makefile_no_bins.patch b/omnibus/config/patches/bzip2/makefile_no_bins.patch new file mode 100644 index 000000000..b6cf5e1d5 --- /dev/null +++ b/omnibus/config/patches/bzip2/makefile_no_bins.patch @@ -0,0 +1,77 @@ +--- bzip2-1.0.8/Makefile-orig 2019-07-13 10:50:05.000000000 -0700 ++++ bzip2-1.0.8/Makefile 2020-08-14 16:35:23.000000000 -0700 +@@ -35,14 +35,11 @@ + decompress.o \ + bzlib.o + +-all: libbz2.a bzip2 bzip2recover test ++all: libbz2.a bzip2 test + + bzip2: libbz2.a bzip2.o + $(CC) $(CFLAGS) $(LDFLAGS) -o bzip2 bzip2.o -L. -lbz2 + +-bzip2recover: bzip2recover.o +- $(CC) $(CFLAGS) $(LDFLAGS) -o bzip2recover bzip2recover.o +- + libbz2.a: $(OBJS) + rm -f libbz2.a + $(AR) cq libbz2.a $(OBJS) +@@ -69,47 +66,19 @@ + cmp sample3.tst sample3.ref + @cat words3 + +-install: bzip2 bzip2recover ++install: bzip2 + if ( test ! -d $(PREFIX)/bin ) ; then mkdir -p $(PREFIX)/bin ; fi + if ( test ! -d $(PREFIX)/lib ) ; then mkdir -p $(PREFIX)/lib ; fi + if ( test ! -d $(PREFIX)/man ) ; then mkdir -p $(PREFIX)/man ; fi + if ( test ! -d $(PREFIX)/man/man1 ) ; then mkdir -p $(PREFIX)/man/man1 ; fi + if ( test ! -d $(PREFIX)/include ) ; then mkdir -p $(PREFIX)/include ; fi +- cp -f bzip2 $(PREFIX)/bin/bzip2 +- cp -f bzip2 $(PREFIX)/bin/bunzip2 +- cp -f bzip2 $(PREFIX)/bin/bzcat +- cp -f bzip2recover $(PREFIX)/bin/bzip2recover +- chmod a+x $(PREFIX)/bin/bzip2 +- chmod a+x $(PREFIX)/bin/bunzip2 +- chmod a+x $(PREFIX)/bin/bzcat +- chmod a+x $(PREFIX)/bin/bzip2recover +- cp -f bzip2.1 $(PREFIX)/man/man1 +- chmod a+r $(PREFIX)/man/man1/bzip2.1 + cp -f bzlib.h $(PREFIX)/include + chmod a+r $(PREFIX)/include/bzlib.h + cp -f libbz2.a $(PREFIX)/lib + chmod a+r $(PREFIX)/lib/libbz2.a +- cp -f bzgrep $(PREFIX)/bin/bzgrep +- ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzegrep +- ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzfgrep +- chmod a+x $(PREFIX)/bin/bzgrep +- cp -f bzmore $(PREFIX)/bin/bzmore +- ln -s -f $(PREFIX)/bin/bzmore $(PREFIX)/bin/bzless +- chmod a+x $(PREFIX)/bin/bzmore +- cp -f bzdiff $(PREFIX)/bin/bzdiff +- ln -s -f $(PREFIX)/bin/bzdiff $(PREFIX)/bin/bzcmp +- chmod a+x $(PREFIX)/bin/bzdiff +- cp -f bzgrep.1 bzmore.1 bzdiff.1 $(PREFIX)/man/man1 +- chmod a+r $(PREFIX)/man/man1/bzgrep.1 +- chmod a+r $(PREFIX)/man/man1/bzmore.1 +- chmod a+r $(PREFIX)/man/man1/bzdiff.1 +- echo ".so man1/bzgrep.1" > $(PREFIX)/man/man1/bzegrep.1 +- echo ".so man1/bzgrep.1" > $(PREFIX)/man/man1/bzfgrep.1 +- echo ".so man1/bzmore.1" > $(PREFIX)/man/man1/bzless.1 +- echo ".so man1/bzdiff.1" > $(PREFIX)/man/man1/bzcmp.1 + + clean: +- rm -f *.o libbz2.a bzip2 bzip2recover \ ++ rm -f *.o libbz2.a bzip2 \ + sample1.rb2 sample2.rb2 sample3.rb2 \ + sample1.tst sample2.tst sample3.tst + +@@ -130,8 +99,6 @@ + $(CC) $(CFLAGS) -c bzlib.c + bzip2.o: bzip2.c + $(CC) $(CFLAGS) -c bzip2.c +-bzip2recover.o: bzip2recover.c +- $(CC) $(CFLAGS) -c bzip2recover.c + + + distclean: clean diff --git a/omnibus/config/patches/bzip2/makefile_take_env_vars.patch b/omnibus/config/patches/bzip2/makefile_take_env_vars.patch new file mode 100644 index 000000000..982f03b5a --- /dev/null +++ b/omnibus/config/patches/bzip2/makefile_take_env_vars.patch @@ -0,0 +1,31 @@ +--- bzip2-1.0.6/Makefile-orig 2010-09-10 17:46:02.000000000 -0500 ++++ bzip2-1.0.6/Makefile 2013-11-21 13:55:11.000000000 -0600 +@@ -15,13 +15,13 @@ + + SHELL=/bin/sh + + # To assist in cross-compiling +-CC=gcc ++CC?=gcc + AR=ar + RANLIB=ranlib +-LDFLAGS= ++LDFLAGS+= + +-BIGFILES=-D_FILE_OFFSET_BITS=64 ++BIGFILES?=-D_FILE_OFFSET_BITS=64 +-CFLAGS=-Wall -Winline -O2 -g $(BIGFILES) ++CFLAGS+=-Wall -Winline -O2 -g $(BIGFILES) + + # Where you want it installed when you do 'make install' + PREFIX=/usr/local +--- bzip2-1.0.6/Makefile-libbz2_so-orig 2017-03-21 19:43:16.706849481 +0000 ++++ bzip2-1.0.6/Makefile-libbz2_so 2017-03-21 19:43:01.187851955 +0000 +@@ -22,7 +22,7 @@ + + + SHELL=/bin/sh +-CC=gcc ++CC?=gcc + BIGFILES=-D_FILE_OFFSET_BITS=64 + CFLAGS=-fpic -fPIC -Wall -Winline -O2 -g $(BIGFILES) diff --git a/omnibus/config/patches/bzip2/soname_install_dir.patch b/omnibus/config/patches/bzip2/soname_install_dir.patch new file mode 100644 index 000000000..599682bff --- /dev/null +++ b/omnibus/config/patches/bzip2/soname_install_dir.patch @@ -0,0 +1,11 @@ +--- bzip2-1.0.8/Makefile-libbz2_so.orig 2019-07-24 10:33:36.184131389 -0400 ++++ bzip2-1.0.8/Makefile-libbz2_so 2019-07-24 10:38:15.700843785 -0400 +@@ -35,7 +35,7 @@ + bzlib.o + + all: $(OBJS) +- $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.8 $(OBJS) ++ $(CC) -shared -Wl,-install_name -Wl,libbz2.so.1.0 -o libbz2.so.1.0.8 $(OBJS) + $(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.8 + rm -f libbz2.so.1.0 + ln -s libbz2.so.1.0.8 libbz2.so.1.0 diff --git a/omnibus/config/patches/readline/8.1.patch b/omnibus/config/patches/readline/8.1.patch new file mode 100644 index 000000000..70a67aae5 --- /dev/null +++ b/omnibus/config/patches/readline/8.1.patch @@ -0,0 +1,75 @@ +*** ../readline-8.1-patched/bind.c 2020-10-26 10:03:14.000000000 -0400 +--- bind.c 2021-01-18 16:38:48.000000000 -0500 +*************** +*** 1235,1239 **** + else if (_rl_strnicmp (args, "version", 7) == 0) + { +! int rlversion, versionarg, op, previ, major, minor; + + _rl_parsing_conditionalized_out = 1; +--- 1235,1239 ---- + else if (_rl_strnicmp (args, "version", 7) == 0) + { +! int rlversion, versionarg, op, previ, major, minor, opresult; + + _rl_parsing_conditionalized_out = 1; +*************** +*** 1295,1316 **** + { + case OP_EQ: +! _rl_parsing_conditionalized_out = rlversion == versionarg; + break; + case OP_NE: +! _rl_parsing_conditionalized_out = rlversion != versionarg; + break; + case OP_GT: +! _rl_parsing_conditionalized_out = rlversion > versionarg; + break; + case OP_GE: +! _rl_parsing_conditionalized_out = rlversion >= versionarg; + break; + case OP_LT: +! _rl_parsing_conditionalized_out = rlversion < versionarg; + break; + case OP_LE: +! _rl_parsing_conditionalized_out = rlversion <= versionarg; + break; + } + } + /* Check to see if the first word in ARGS is the same as the +--- 1295,1317 ---- + { + case OP_EQ: +! opresult = rlversion == versionarg; + break; + case OP_NE: +! opresult = rlversion != versionarg; + break; + case OP_GT: +! opresult = rlversion > versionarg; + break; + case OP_GE: +! opresult = rlversion >= versionarg; + break; + case OP_LT: +! opresult = rlversion < versionarg; + break; + case OP_LE: +! opresult = rlversion <= versionarg; + break; + } ++ _rl_parsing_conditionalized_out = 1 - opresult; + } + /* Check to see if the first word in ARGS is the same as the + +*** ../readline-8.1/patchlevel 2013-11-15 08:11:11.000000000 -0500 +--- patchlevel 2014-03-21 08:28:40.000000000 -0400 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 0 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 1 diff --git a/omnibus/config/software/autoconf.rb b/omnibus/config/software/autoconf.rb index 10948e7b2..473ffe8fe 100644 --- a/omnibus/config/software/autoconf.rb +++ b/omnibus/config/software/autoconf.rb @@ -16,7 +16,7 @@ # expeditor/ignore: deprecated 2021-04 name "autoconf" -default_version "2.69" +default_version "2.71" license "GPL-3.0" license_file "COPYING" @@ -26,6 +26,7 @@ skip_transitive_dependency_licensing true dependency "m4" version("2.69") { source sha256: "954bd69b391edc12d6a4a51a2dd1476543da5c6bbf05a95b59dc0dd6fd4c2969" } +version("2.71") { source sha256: "431075ad0bf529ef13cb41e9042c542381103e80015686222b8a9d4abef42a1c" } source url: "https://ftp.gnu.org/gnu/autoconf/autoconf-#{version}.tar.gz" diff --git a/omnibus/config/software/automake.rb b/omnibus/config/software/automake.rb index a59544d79..0e944c4b7 100644 --- a/omnibus/config/software/automake.rb +++ b/omnibus/config/software/automake.rb @@ -16,7 +16,7 @@ # expeditor/ignore: deprecated 2021-04 name "automake" -default_version "1.16" +default_version "1.16.4" dependency "autoconf" dependency "perl-thread-queue" @@ -25,6 +25,7 @@ license "GPL-2.0" license_file "COPYING" skip_transitive_dependency_licensing true +version("1.16.4") { source sha256: "8a0f0be7aaae2efa3a68482af28e5872d8830b9813a6a932a2571eac63ca1794" } version("1.16") { source sha256: "80da43bb5665596ee389e6d8b64b4f122ea4b92a685b1dbd813cd1f0e0c2d83f" } version("1.15") { source sha256: "7946e945a96e28152ba5a6beb0625ca715c6e32ac55f2e353ef54def0c8ed924" } version("1.11.2") { source sha256: "c339e3871d6595620760725da61de02cf1c293af8a05b14592d6587ac39ce546" } diff --git a/omnibus/config/software/bzip2.rb b/omnibus/config/software/bzip2.rb new file mode 100644 index 000000000..afa2ef606 --- /dev/null +++ b/omnibus/config/software/bzip2.rb @@ -0,0 +1,55 @@ +# +# Copyright 2013-2018 Chef Software, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Install bzip2 and its shared library, libbz2.so +# This library object is required for building Python with the bz2 module, +# and should be picked up automatically when building Python. + +name "bzip2" +default_version "1.0.8" + +license "BSD-2-Clause" +license_file "LICENSE" +skip_transitive_dependency_licensing true + +dependency "zlib" +dependency "openssl" + +# version_list: url=https://sourceware.org/pub/bzip2/ filter=*.tar.gz +version("1.0.8") { source sha256: "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269" } + +source url: "https://fossies.org/linux/misc/#{name}-#{version}.tar.gz" + +relative_path "#{name}-#{version}" + +build do + env = with_standard_compiler_flags(with_embedded_path) + + # Avoid warning where .rodata cannot be used when making a shared object + env["CFLAGS"] << " -fPIC" unless aix? + + # The list of arguments to pass to make + args = "PREFIX='#{install_dir}/embedded' VERSION='#{version}'" + args << " CFLAGS='-qpic=small -qpic=large -O2 -g -D_ALL_SOURCE -D_LARGE_FILES'" if aix? + + patch source: "makefile_take_env_vars.patch", plevel: 1, env: env + patch source: "makefile_no_bins.patch", plevel: 1, env: env # removes various binaries we don't want to ship + patch source: "soname_install_dir.patch", env: env if mac_os_x? + patch source: "aix_makefile.patch", env: env if aix? + + make "#{args}", env: env + make "#{args} -f Makefile-libbz2_so", env: env + make "#{args} install", env: env +end diff --git a/omnibus/config/software/compile_release.rb b/omnibus/config/software/compile_release.rb index 2b2715ed6..69d928067 100644 --- a/omnibus/config/software/compile_release.rb +++ b/omnibus/config/software/compile_release.rb @@ -19,19 +19,24 @@ name "compile_release" description "the steps required to compile the firezone elixir application" default_version "1.0.0" +dependency "postgresql" +dependency "nodejs" dependency "elixir" -source path: File.expand_path("../", Omnibus::Config.project_root), - options: { exclude: [ - ".env", - ".git", - ".ci", - ".vagrant", - ".github", - "_build", - "deps", - "apps/fz_http/assets/node_modules" - ] } +version("1.0.0") do + source path: File.expand_path("../", Omnibus::Config.project_root), + options: { exclude: [ + ".env", + ".git", + ".ci", + ".vagrant", + ".github", + "_build", + "deps", + "omnibus", + "apps/fz_http/assets/node_modules" + ] } +end license :project_license skip_transitive_dependency_licensing true diff --git a/omnibus/config/software/gettext.rb b/omnibus/config/software/gettext.rb index cf5852457..ef77075c0 100644 --- a/omnibus/config/software/gettext.rb +++ b/omnibus/config/software/gettext.rb @@ -20,6 +20,20 @@ license_file "COPYING" default_version "0.21" +dependency "m4" +dependency "autoconf" +dependency "automake" +dependency "bison" +dependency "perl" +dependency "libiconv" +dependency "ncurses" +dependency "bzip2" +dependency "zlib" +dependency "libxml2" +dependency "liblzma" +dependency "icu" +dependency "pkg-config" + source url: "https://ftp.gnu.org/pub/gnu/gettext/gettext-#{version}.tar.gz" version("0.21") do source sha256: "c77d0da3102aec9c07f43671e60611ebff89a996ef159497ce8e59d075786b12" @@ -29,8 +43,14 @@ relative_path "#{name}-#{version}" build do env = with_standard_compiler_flags(with_embedded_path) + configure_command = [ + "./configure", + # Enabling OpenMP requires libgomp, which requires building gcc which is very slow. + "--disable-openmp", + "--prefix=#{install_dir}/embedded" + ] - command "./configure --prefix=#{install_dir}/embedded", env: env + command configure_command, env: env make "-j #{workers}", env: env make "-j #{workers} install", env: env end diff --git a/omnibus/config/software/icu.rb b/omnibus/config/software/icu.rb new file mode 100644 index 000000000..c31bf5659 --- /dev/null +++ b/omnibus/config/software/icu.rb @@ -0,0 +1,20 @@ +name "icu" +license_file "LICENSE" +skip_transitive_dependency_licensing true +default_version "69.1" + +source url: "https://github.com/unicode-org/icu/releases/download/release-#{version.gsub(".", "-")}/icu4c-#{version.gsub(".", "_")}-src.tgz" +version("69.1") do + source sha256: "4cba7b7acd1d3c42c44bb0c14be6637098c7faf2b330ce876bc5f3b915d09745" +end + +relative_path "icu/source" + +build do + env = with_standard_compiler_flags(with_embedded_path) + + command "./configure --prefix=#{install_dir}/embedded", env: env + + make "-j #{workers}", env: env + make "-j #{workers} install", env: env +end diff --git a/omnibus/config/software/libedit.rb b/omnibus/config/software/libedit.rb index 2a1403361..01cbec4cc 100644 --- a/omnibus/config/software/libedit.rb +++ b/omnibus/config/software/libedit.rb @@ -15,7 +15,7 @@ # name "libedit" -default_version "20120601-3.0" +default_version "20210419-3.1" license "BSD-3-Clause" license_file "COPYING" diff --git a/omnibus/config/software/liblzma.rb b/omnibus/config/software/liblzma.rb new file mode 100644 index 000000000..2b7813556 --- /dev/null +++ b/omnibus/config/software/liblzma.rb @@ -0,0 +1,58 @@ +# +# Copyright 2014-2018 Chef Software, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +name "liblzma" +default_version "5.2.5" + +license "Public-Domain" +license_file "COPYING" +skip_transitive_dependency_licensing true + +# version_list: url=http://tukaani.org/xz/ filer=*.tar.gz + +version("5.2.5") { source sha256: "f6f4910fd033078738bd82bfba4f49219d03b17eb0794eb91efbae419f4aba10" } +version("5.2.4") { source sha256: "b512f3b726d3b37b6dc4c8570e137b9311e7552e8ccbab4d39d47ce5f4177145" } +version("5.2.3") { source sha256: "71928b357d0a09a12a4b4c5fafca8c31c19b0e7d3b8ebb19622e96f26dbf28cb" } +version("5.2.2") { source sha256: "73df4d5d34f0468bd57d09f2d8af363e95ed6cc3a4a86129d2f2c366259902a2" } + +source url: "http://tukaani.org/xz/xz-#{version}.tar.gz" + +relative_path "xz-#{version}" + +build do + env = with_standard_compiler_flags(with_embedded_path) + # liblzma properly uses CFLAGS for C compilation and CPPFLAGS for common + # flags used across tools such as windres. Don't put anything in it + # that can be misinterpreted by windres. + env["CPPFLAGS"] = "-I#{install_dir}/embedded/include" if windows? + + config_command = [ + "--disable-debug", + "--disable-dependency-tracking", + "--disable-doc", + "--disable-scripts", + "--disable-lzma-links", + "--disable-lzmainfo", + "--disable-lzmadec", + "--disable-xzdec", + "--disable-xz", + ] + config_command << "--disable-nls" if windows? + + configure(*config_command, env: env) + + make "install", env: env +end diff --git a/omnibus/config/software/libxml2.rb b/omnibus/config/software/libxml2.rb new file mode 100644 index 000000000..6c6e966e8 --- /dev/null +++ b/omnibus/config/software/libxml2.rb @@ -0,0 +1,61 @@ +# +# Copyright:: Chef Software Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +name "libxml2" +default_version "2.9.10" # 2.9.12 is not properly building as of 5.20.21 + +license "MIT" +license_file "COPYING" +skip_transitive_dependency_licensing true + +dependency "zlib" +dependency "liblzma" +dependency "config_guess" + +# version_list: url=ftp://xmlsoft.org/libxml2/ filter=libxml2-*.tar.gz +version("2.9.12") { source sha256: "c8d6681e38c56f172892c85ddc0852e1fd4b53b4209e7f4ebf17f7e2eae71d92" } +version("2.9.10") { source sha256: "aafee193ffb8fe0c82d4afef6ef91972cbaf5feea100edc2f262750611b4be1f" } +version("2.9.9") { source sha256: "94fb70890143e3c6549f265cee93ec064c80a84c42ad0f23e85ee1fd6540a871" } + +source url: "ftp://xmlsoft.org/libxml2/libxml2-#{version}.tar.gz" + +relative_path "libxml2-#{version}" + +build do + env = with_standard_compiler_flags(with_embedded_path) + + configure_command = [ + "--with-zlib=#{install_dir}/embedded", + "--with-lzma=#{install_dir}/embedded", + "--with-sax1", # required for nokogiri to compile + "--without-iconv", + "--without-python", + "--without-icu", + "--without-debug", + "--without-mem-debug", + "--without-run-debug", + "--without-legacy", # we don't need legacy interfaces + "--without-catalog", + "--without-docbook", + ] + + update_config_guess + + configure(*configure_command, env: env) + + make "-j #{workers}", env: env + make "install", env: env +end diff --git a/omnibus/config/software/readline.rb b/omnibus/config/software/linenoise.rb similarity index 60% rename from omnibus/config/software/readline.rb rename to omnibus/config/software/linenoise.rb index 2980acfb6..2e660d366 100644 --- a/omnibus/config/software/readline.rb +++ b/omnibus/config/software/linenoise.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -# Copyright FireZone +# Copyright 2012-2014 FireZone # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,23 +15,21 @@ # limitations under the License. # -name "readline" -default_version "8.1" +name "linenoise" +description "A small self-contained alternative to readline and libedit" -license "GPL-3.0" -license_file "COPYING" +license_file "LICENSE" skip_transitive_dependency_licensing true -version("8.1") { source sha256: "f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" } - -source url: "https://ftp.gnu.org/gnu/readline/readline-#{version}.tar.gz" - -relative_path "#{name}-#{version}" +source github: "antirez/linenoise" +default_version "master" build do env = with_standard_compiler_flags(with_embedded_path) - command "./configure --prefix=#{install_dir}/embedded", env: env - make "-j #{workers}", env: env - make "-j #{workers} install", env: env + command "gcc -c linenoise.c -o linenoise.o -fPIC", env: env + command "gcc -shared -o liblinenoise.so linenoise.o -lm", env: env + + copy "liblinenoise.so", "#{install_dir}/embedded/lib/" + copy "linenoise.h", "#{install_dir}/embedded/include/" end diff --git a/omnibus/config/software/nftables.rb b/omnibus/config/software/nftables.rb index 3a6d98300..019735130 100644 --- a/omnibus/config/software/nftables.rb +++ b/omnibus/config/software/nftables.rb @@ -15,11 +15,15 @@ # limitations under the License. # name "nftables" -default_version "0.9.9" -source url: "https://www.netfilter.org/pub/nftables/nftables-#{version}.tar.bz2" +license_file "COPYING" -version("0.9.9") { source sha256: "76ef2dc7fd0d79031a8369487739a217ca83996b3a746cec5bda79da11e3f1b4" } +# Some weirdness in the official release package so use git and switch to tag +# default_version "0.9.9" +# source url: "https://www.netfilter.org/pub/nftables/nftables-#{version}.tar.bz2" +# version("0.9.9") { source sha256: "76ef2dc7fd0d79031a8369487739a217ca83996b3a746cec5bda79da11e3f1b4" } +source git: "git://git.netfilter.org/nftables" +default_version "v0.9.9" relative_path "#{name}-#{version}" @@ -29,15 +33,21 @@ dependency "bison" dependency "flex" dependency "libmnl" dependency "libnftnl" -dependency "ncurses" dependency "libtool" -dependency "readline" +dependency "linenoise" dependency "pkg-config" build do env = with_standard_compiler_flags(with_embedded_path) - update_config_guess - command "./configure --prefix=#{install_dir}/embedded", env: env + configure_cmd = [ + "./configure", + "--prefix=#{install_dir}/embedded", + "--disable-debug", + "--disable-man-doc", + "--with-cli=linenoise" # readline seems to fail to be detected and libedit fails with missing "editline/history.h" + ] + command "./autogen.sh", env: env + command configure_cmd.join(" "), env: env make "-j #{workers}", env: env make "-j #{workers} install", env: env end diff --git a/omnibus/config/software/nodejs.rb b/omnibus/config/software/nodejs.rb new file mode 100644 index 000000000..79a94aae5 --- /dev/null +++ b/omnibus/config/software/nodejs.rb @@ -0,0 +1,22 @@ +name "nodejs" +description "NodeJS" +default_version "16.6.2" +license_file "LICENSE" + +source url: "https://github.com/nodejs/node/archive/refs/tags/v#{version}.tar.gz" + +version("16.6.2") do + source sha256: "9b539b1ea5e3fbd173fcbaae97088401b228c36c2076c98d04c73802713bbb73" +end + +dependency "python" + +relative_path "node-#{version}" + +build do + env = with_standard_compiler_flags(with_embedded_path) + + command "./configure --prefix=#{install_dir}/embedded", env: env + make "-j #{workers}", env: env + make "-j #{workers} install", env: env +end diff --git a/omnibus/config/software/python.rb b/omnibus/config/software/python.rb new file mode 100644 index 000000000..f170603cb --- /dev/null +++ b/omnibus/config/software/python.rb @@ -0,0 +1,26 @@ +name "python" +description "Python" +default_version "3.9.6" +license_file "LICENSE" +skip_transitive_dependency_licensing true + +source url: "https://www.python.org/ftp/python/#{version}/Python-#{version}.tgz" + +version("3.9.6") do + source sha256: "d0a35182e19e416fc8eae25a3dcd4d02d4997333e4ad1f2eee6010aadc3fe866" +end + +dependency "bzip2" +dependency "zlib" +dependency "openssl" +dependency "ncurses" + +relative_path "Python-#{version}" + +build do + env = with_standard_compiler_flags(with_embedded_path) + + command "./configure --prefix=#{install_dir}/embedded", env: env + make "-j #{workers}", env: env + make "-j #{workers} install", env: env +end diff --git a/omnibus/omnibus.rb b/omnibus/omnibus.rb index 758d2c190..a6ac50a23 100644 --- a/omnibus/omnibus.rb +++ b/omnibus/omnibus.rb @@ -14,7 +14,7 @@ # # Uncomment this line to change the default base directory to "local" # ------------------------------------------------------------------- -base_dir("./local") +base_dir("/tmp/omnibus-local") # # Alternatively you can tune the individual values # ------------------------------------------------