summaryrefslogtreecommitdiff
path: root/dev-ruby/ruby-ldap
diff options
context:
space:
mode:
Diffstat (limited to 'dev-ruby/ruby-ldap')
-rw-r--r--dev-ruby/ruby-ldap/Manifest1
-rw-r--r--dev-ruby/ruby-ldap/files/ruby-ldap-0.9.20-clang16-fix.patch12
-rw-r--r--dev-ruby/ruby-ldap/files/ruby-ldap-0.9.20-ruby32.patch24
-rw-r--r--dev-ruby/ruby-ldap/files/ruby-ldap-0.9.20-tainted.patch28
-rw-r--r--dev-ruby/ruby-ldap/metadata.xml9
-rw-r--r--dev-ruby/ruby-ldap/ruby-ldap-0.9.20-r5.ebuild41
6 files changed, 115 insertions, 0 deletions
diff --git a/dev-ruby/ruby-ldap/Manifest b/dev-ruby/ruby-ldap/Manifest
new file mode 100644
index 000000000000..b8adbc6011a3
--- /dev/null
+++ b/dev-ruby/ruby-ldap/Manifest
@@ -0,0 +1 @@
+DIST ruby-ldap-0.9.20.gem 67072 BLAKE2B 626a35ab764dacfb37c727d867e1d435222730a3e7ea745ee4e7ec051ce3a822cc5a1230b463bc12f4a2390db667ed3b61deceb9842c014f64cdf43a26d285f9 SHA512 4f4902e7eaf4fe0cd421d58c73ce4e625d61ee20ef02363d3cf5754c66237e0f378ac433b234c2b86d5f5284ae03b7ae6c46d3575c512487bc1a931d021c9517
diff --git a/dev-ruby/ruby-ldap/files/ruby-ldap-0.9.20-clang16-fix.patch b/dev-ruby/ruby-ldap/files/ruby-ldap-0.9.20-clang16-fix.patch
new file mode 100644
index 000000000000..580584c61994
--- /dev/null
+++ b/dev-ruby/ruby-ldap/files/ruby-ldap-0.9.20-clang16-fix.patch
@@ -0,0 +1,12 @@
+Bug: https://bugs.gentoo.org/884405
+--- a/ldap.c
++++ b/ldap.c
+@@ -201,7 +201,7 @@ rb_ldap_hash2mods (VALUE self, VALUE op, VALUE hash)
+ VALUE tmp;
+
+ tmp = rb_assoc_new (op, rb_ary_new ());
+- rb_iterate (rb_each, hash, rb_ldap_hash2mods_i, tmp);
++ rb_iterate (rb_each, hash, (rb_block_call_func_t)rb_ldap_hash2mods_i, tmp);
+
+ return rb_ary_entry (tmp, 1);
+ }
diff --git a/dev-ruby/ruby-ldap/files/ruby-ldap-0.9.20-ruby32.patch b/dev-ruby/ruby-ldap/files/ruby-ldap-0.9.20-ruby32.patch
new file mode 100644
index 000000000000..b7b101db2f30
--- /dev/null
+++ b/dev-ruby/ruby-ldap/files/ruby-ldap-0.9.20-ruby32.patch
@@ -0,0 +1,24 @@
+From aa43040eb6b6d591e42a19ee385fc1ba17c7202b Mon Sep 17 00:00:00 2001
+From: Jeremy Evans <code@jeremyevans.net>
+Date: Tue, 27 Dec 2022 17:19:45 -0800
+Subject: [PATCH] Don't use rb_cData
+
+This fixes ruby-ldap on Ruby 3.2+
+---
+ conn.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/conn.c b/conn.c
+index e628695..39eeb5f 100644
+--- a/conn.c
++++ b/conn.c
+@@ -1855,7 +1855,8 @@ Init_ldap_conn ()
+ {
+ rb_ldap_sort_obj = Qnil;
+
+- rb_cLDAP_Conn = rb_define_class_under (rb_mLDAP, "Conn", rb_cData);
++ rb_cLDAP_Conn = rb_define_class_under (rb_mLDAP, "Conn", rb_cObject);
++ rb_undef_alloc_func(rb_cLDAP_Conn);
+ rb_define_attr (rb_cLDAP_Conn, "referrals", 1, 0);
+ rb_define_attr (rb_cLDAP_Conn, "controls", 1, 0);
+ rb_define_attr (rb_cLDAP_Conn, "sasl_quiet", 1, 1);
diff --git a/dev-ruby/ruby-ldap/files/ruby-ldap-0.9.20-tainted.patch b/dev-ruby/ruby-ldap/files/ruby-ldap-0.9.20-tainted.patch
new file mode 100644
index 000000000000..84c9ee29610d
--- /dev/null
+++ b/dev-ruby/ruby-ldap/files/ruby-ldap-0.9.20-tainted.patch
@@ -0,0 +1,28 @@
+From 849ca6bb46bf4826d51648feddd453142281e541 Mon Sep 17 00:00:00 2001
+From: Hisashi MINAMINO <minamino@iij.ad.jp>
+Date: Thu, 28 May 2020 14:04:05 +0900
+Subject: [PATCH] for ruby-2.7
+
+---
+ rbldap.h | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/rbldap.h b/rbldap.h
+index 1fa04e1..b7b1765 100644
+--- a/rbldap.h
++++ b/rbldap.h
+@@ -205,3 +205,14 @@ VALUE rb_ldap_mod_vals (VALUE);
+ rb_define_method(rb_cLDAP_Mod,method,cfunc,argc)
+
+ #endif
++
++#if RUBY_VERSION_CODE >= 270
++# if defined rb_tainted_str_new
++# undef rb_tainted_str_new
++# endif
++# if defined rb_tainted_str_new2
++# undef rb_tainted_str_new2
++# endif
++# define rb_tainted_str_new(p,l) rb_str_new((p),(l))
++# define rb_tainted_str_new2(p) rb_str_new_cstr((p))
++#endif
diff --git a/dev-ruby/ruby-ldap/metadata.xml b/dev-ruby/ruby-ldap/metadata.xml
new file mode 100644
index 000000000000..c685ebad7e3a
--- /dev/null
+++ b/dev-ruby/ruby-ldap/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>ruby@gentoo.org</email>
+ <name>Gentoo Ruby Project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/dev-ruby/ruby-ldap/ruby-ldap-0.9.20-r5.ebuild b/dev-ruby/ruby-ldap/ruby-ldap-0.9.20-r5.ebuild
new file mode 100644
index 000000000000..7d55dcde1027
--- /dev/null
+++ b/dev-ruby/ruby-ldap/ruby-ldap-0.9.20-r5.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+inherit ruby-fakegem
+
+RUBY_FAKEGEM_TASK_TEST=""
+RUBY_FAKEGEM_EXTENSIONS=(./extconf.rb)
+RUBY_FAKEGEM_EXTRADOC="ChangeLog FAQ NOTES README TODO"
+
+DESCRIPTION="A Ruby interface to some LDAP libraries"
+HOMEPAGE="https://github.com/bearded/ruby-ldap"
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc x86"
+IUSE="ssl"
+DEPEND=">=net-nds/openldap-2:=
+ dev-libs/cyrus-sasl
+ ssl? ( dev-libs/openssl:0= )"
+RDEPEND="${DEPEND}"
+
+# Current test set is interactive due to certificate generation and requires
+# running LDAP daemon
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.9.20-clang16-fix.patch
+ "${FILESDIR}"/${PN}-0.9.20-ruby32.patch
+ "${FILESDIR}"/${PN}-0.9.20-tainted.patch
+)
+
+each_ruby_configure() {
+ local myconf="--with-openldap2"
+ if ! use ssl ; then
+ myconf="${myconf} --without-libcrypto --without-libssl"
+ fi
+ RUBY_FAKEGEM_EXTENSION_OPTIONS=${myconf} each_fakegem_configure
+}