1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
7 SDESC[standard]= C++ lib for building platform-independent programs
8 HOMEPAGE= https://lib.filezilla-project.org
9 CONTACT= Michael_Reim[kraileth@elderlinux.org]
12 SITES[main]= https://download.filezilla-project.org/libfilezilla/
13 DISTFILE[1]= libfilezilla-0.36.0.tar.bz2:main
15 SPKGS[standard]= complete
19 OPTIONS_AVAILABLE= none
20 OPTIONS_STANDARD= none
22 BUILD_DEPENDS= gmp:static:standard
23 gnutls-devel:primary:standard
24 BUILDRUN_DEPENDS= gnutls-devel:library:standard
25 nettle:primary:standard
27 USES= gettext-tools gmake iconv:wchar_t libtool pkgconfig
30 LICENSE= GPLv2+:complete
31 LICENSE_TERMS= complete:{{WRKDIR}}/TERMS
32 LICENSE_FILE= GPLv2+:{{WRKSRC}}/COPYING
33 LICENSE_AWK= TERMS:"^Documentation"
34 LICENSE_SOURCE= TERMS:{{WRKSRC}}/README
37 FPC_EQUIVALENT= ftp/libfilezilla
41 INSTALL_TARGET= install-strip
44 [FILE:673:descriptions/desc.primary]
45 libfilezilla is a small and modern C++ library, offering some basic
46 functionality to build high-performing, platform-independent programs.
47 Some of the highlights include:
49 - A typesafe, multi-threaded event system that's very simple to use yet
51 - Timers for periodic events
52 - A datetime class that not only tracks timestamp but also their
53 accuracy, which simplifies dealing with timestamps originating from
55 - Simple process handling for spawning child processes with redirected
58 libfilezilla is a cross-platform library for all major operating systems,
59 including but not limited to Linux, *BSD, OS X and Windows.
63 c0271c18ede7fbbc826b21c972c2cb0ff96744ee5a15c91d8d74e9bc3853a872 598327 libfilezilla-0.36.0.tar.bz2
66 [FILE:910:manifests/plist.primary]
92 rate_limited_layer.hpp
105 tls_system_trust_store.hpp
110 visibility_helper.hpp
111 include/libfilezilla/glue/
116 include/libfilezilla/private/
122 libfilezilla.so.%%SOMAJOR%%
123 libfilezilla.so.%%SOVERSION%%
124 lib/pkgconfig/libfilezilla.pc
127 [FILE:2470:manifests/plist.nls]
128 share/locale/an/LC_MESSAGES/libfilezilla.mo
129 share/locale/ar/LC_MESSAGES/libfilezilla.mo
130 share/locale/az/LC_MESSAGES/libfilezilla.mo
131 share/locale/bg_BG/LC_MESSAGES/libfilezilla.mo
132 share/locale/ca/LC_MESSAGES/libfilezilla.mo
133 share/locale/ca_ES@valencia/LC_MESSAGES/libfilezilla.mo
134 share/locale/co/LC_MESSAGES/libfilezilla.mo
135 share/locale/cs_CZ/LC_MESSAGES/libfilezilla.mo
136 share/locale/cy/LC_MESSAGES/libfilezilla.mo
137 share/locale/da/LC_MESSAGES/libfilezilla.mo
138 share/locale/de/LC_MESSAGES/libfilezilla.mo
139 share/locale/el/LC_MESSAGES/libfilezilla.mo
140 share/locale/es/LC_MESSAGES/libfilezilla.mo
141 share/locale/et/LC_MESSAGES/libfilezilla.mo
142 share/locale/eu/LC_MESSAGES/libfilezilla.mo
143 share/locale/fa_IR/LC_MESSAGES/libfilezilla.mo
144 share/locale/fi_FI/LC_MESSAGES/libfilezilla.mo
145 share/locale/fr/LC_MESSAGES/libfilezilla.mo
146 share/locale/gl_ES/LC_MESSAGES/libfilezilla.mo
147 share/locale/he_IL/LC_MESSAGES/libfilezilla.mo
148 share/locale/hr/LC_MESSAGES/libfilezilla.mo
149 share/locale/hu_HU/LC_MESSAGES/libfilezilla.mo
150 share/locale/hy/LC_MESSAGES/libfilezilla.mo
151 share/locale/id_ID/LC_MESSAGES/libfilezilla.mo
152 share/locale/is/LC_MESSAGES/libfilezilla.mo
153 share/locale/it/LC_MESSAGES/libfilezilla.mo
154 share/locale/ja_JP/LC_MESSAGES/libfilezilla.mo
155 share/locale/kab/LC_MESSAGES/libfilezilla.mo
156 share/locale/ko_KR/LC_MESSAGES/libfilezilla.mo
157 share/locale/ky/LC_MESSAGES/libfilezilla.mo
158 share/locale/lo_LA/LC_MESSAGES/libfilezilla.mo
159 share/locale/lt_LT/LC_MESSAGES/libfilezilla.mo
160 share/locale/lv_LV/LC_MESSAGES/libfilezilla.mo
161 share/locale/mk_MK/LC_MESSAGES/libfilezilla.mo
162 share/locale/nb_NO/LC_MESSAGES/libfilezilla.mo
163 share/locale/ne/LC_MESSAGES/libfilezilla.mo
164 share/locale/nl/LC_MESSAGES/libfilezilla.mo
165 share/locale/nn_NO/LC_MESSAGES/libfilezilla.mo
166 share/locale/oc/LC_MESSAGES/libfilezilla.mo
167 share/locale/pl_PL/LC_MESSAGES/libfilezilla.mo
168 share/locale/pt_BR/LC_MESSAGES/libfilezilla.mo
169 share/locale/pt_PT/LC_MESSAGES/libfilezilla.mo
170 share/locale/ro_RO/LC_MESSAGES/libfilezilla.mo
171 share/locale/ru/LC_MESSAGES/libfilezilla.mo
172 share/locale/sk_SK/LC_MESSAGES/libfilezilla.mo
173 share/locale/sl_SI/LC_MESSAGES/libfilezilla.mo
174 share/locale/sr/LC_MESSAGES/libfilezilla.mo
175 share/locale/sv/LC_MESSAGES/libfilezilla.mo
176 share/locale/th_TH/LC_MESSAGES/libfilezilla.mo
177 share/locale/tr/LC_MESSAGES/libfilezilla.mo
178 share/locale/uk_UA/LC_MESSAGES/libfilezilla.mo
179 share/locale/vi_VN/LC_MESSAGES/libfilezilla.mo
180 share/locale/zh_CN/LC_MESSAGES/libfilezilla.mo
181 share/locale/zh_TW/LC_MESSAGES/libfilezilla.mo
184 [FILE:1886:patches/patch-lib_impersonation.cpp]
185 --- lib/impersonation.cpp.orig 2021-12-08 15:10:58 UTC
186 +++ lib/impersonation.cpp
192 +#if defined(__linux__)
193 +#define SHADOW_SUPPORTED
196 +#ifdef SHADOW_SUPPORTED
200 @@ -58,7 +62,7 @@ passwd_holder get_passwd(fz::native_stri
205 +#ifdef SHADOW_SUPPORTED
206 struct shadow_holder {
207 shadow_holder() = default;
208 shadow_holder(shadow_holder const&) = delete;
209 @@ -150,7 +154,7 @@ std::vector<gid_t> get_supplementary(std
211 bool check_auth(fz::native_string const& username, fz::native_string const& password)
214 +#ifdef SHADOW_SUPPORTED
215 auto shadow = get_shadow(username);
216 if (shadow.shadow_) {
217 struct crypt_data data{};
218 @@ -196,6 +200,7 @@ bool check_auth(fz::native_string const&
219 impersonation_token::impersonation_token(fz::native_string const& username, fz::native_string const& password)
221 auto pwd = get_passwd(username);
222 +#ifdef SHADOW_SUPPORTED
224 if (check_auth(username, password)) {
225 impl_ = std::make_unique<impersonation_token_impl>();
226 @@ -208,6 +213,22 @@ impersonation_token::impersonation_token
227 impl_->sup_groups_ = get_supplementary(username, pwd.pwd_->pw_gid);
233 + c = crypt(password.c_str(), pwd.pwd_->pw_passwd);
234 + if ((c != NULL) && (strcmp(c, pwd.pwd_->pw_passwd) == 0)) {
235 + impl_ = std::make_unique<impersonation_token_impl>();
236 + impl_->name_ = username;
237 + if (pwd.pwd_->pw_dir) {
238 + impl_->home_ = pwd.pwd_->pw_dir;
240 + impl_->uid_ = pwd.pwd_->pw_uid;
241 + impl_->gid_ = pwd.pwd_->pw_gid;
242 + impl_->sup_groups_ = get_supplementary(username, pwd.pwd_->pw_gid);
245 +#endif /* SHADOW_SUPPORTED */
248 impersonation_token::impersonation_token(fz::native_string const& username, impersonation_flag flag)