diff options
author | CoprDistGit <copr-devel@lists.fedorahosted.org> | 2023-03-06 05:27:39 +0000 |
---|---|---|
committer | CoprDistGit <copr-devel@lists.fedorahosted.org> | 2023-03-06 05:27:39 +0000 |
commit | 1b641b66b06714c254aa0c391c6d53d1e698d494 (patch) | |
tree | 6a377f41f1d24604ed6f2675c1f6ac8d152cc595 | |
parent | 1b8aacda70280b5e1c9b7104b0c7feb227533a57 (diff) |
automatic import of lizardfs
-rw-r--r-- | lizardfs-3.13.0.tar.gz | 576 | ||||
-rw-r--r-- | lizardfs.spec | 620 | ||||
-rw-r--r-- | sources | 0 |
3 files changed, 1196 insertions, 0 deletions
diff --git a/lizardfs-3.13.0.tar.gz b/lizardfs-3.13.0.tar.gz new file mode 100644 index 0000000..2c8fdd0 --- /dev/null +++ b/lizardfs-3.13.0.tar.gz @@ -0,0 +1,576 @@ +<!DOCTYPE html> +<html lang='zh-CN'> +<head> +<title>登录 - Gitee.com</title> +<meta content='on' http-equiv='x-dns-prefetch-control'> +<link href='//e.gitee.com' rel='dns-prefetch'> +<link href='//files.gitee.com' rel='dns-prefetch'> +<link href='//toscode.gitee.com' rel='dns-prefetch'> +<link href='https://cn-assets.gitee.com' rel='dns-prefetch'> +<link href='https://portrait.gitee.com' rel='dns-prefetch'> +<link rel="shortcut icon" type="image/vnd.microsoft.icon" href="https://cn-assets.gitee.com/assets/favicon-9007bd527d8a7851c8330e783151df58.ico" /> + +<meta charset='utf-8'> +<meta content='always' name='referrer'> +<meta content='Gitee' property='og:site_name'> +<meta content='Object' property='og:type'> +<meta content='https://gitee.com/login?redirect_to_url=%2Fkjpioo2006%2Flizardfs%2Fraw%2Fmaster%2Flizardfs-3.13.0.tar.gz' property='og:url'> +<meta content='https://gitee.com/static/images/logo_themecolor.png' itemprop='image' property='og:image'> +<meta content='登录 - Gitee.com' itemprop='name' property='og:title'> +<meta content='Gitee.com(码云) 是 OSCHINA.NET 推出的代码托管平台,支持 Git 和 SVN,提供免费的私有仓库托管。目前已有超过 1000 万的开发者选择 Gitee。' property='og:description'> +<meta content='码云,Gitee,代码托管,Git,Git@OSC,Gitee.com,开源,内源,项目管理,版本控制,开源代码,代码分享,项目协作,开源项目托管,免费代码托管,Git代码托管,Git托管服务' name='Keywords'> +<meta content='Gitee.com(码云) 是 OSCHINA.NET 推出的代码托管平台,支持 Git 和 SVN,提供免费的私有仓库托管。目前已有超过 1000 万的开发者选择 Gitee。' itemprop='description' name='Description'> +<meta content='pc,mobile' name='applicable-device'> + +<meta content="IE=edge" http-equiv="X-UA-Compatible" /> +<meta name="csrf-param" content="authenticity_token" /> +<meta name="csrf-token" content="r1DacIk73iJklSwMYytDebOEDT2BnAhoQxmGhG383/dhPKbnVb/DFjD8uEJls9Crq56gr1mOpd+cBTjhTZWmHg==" /> + +<link rel="stylesheet" media="all" href="https://cn-assets.gitee.com/assets/application-512f92360ed758462370a7c2f61bd419.css" /> +<script> +//<![CDATA[ +window.gon = {};gon.locale="zh-CN";gon.sentry_dsn=null;gon.baidu_register_hm_push=null;gon.sensor={"server_url":"https://haveaniceday.gitee.com:3443/sa?project=production","sdk_url":"https://cn-assets.gitee.com/assets/static/sensors-sdk-2f850fa5b654ad55ac0993fda2f37ba5.js","page_type":"其他"};gon.info={"controller_path":"sessions","action_name":"new","current_user":false};gon.tour_env={"current_user":null,"action_name":"new","original_url":"https://gitee.com/login?redirect_to_url=%2Fkjpioo2006%2Flizardfs%2Fraw%2Fmaster%2Flizardfs-3.13.0.tar.gz","controller_path":"sessions"};gon.yunpian_key=false;gon.encrypt={"enabled":true,"separator":"$gitee$","password_key":"-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIrn+WB2Yi4ABAL5Tq6E09tumY\nqVTFdpU01kCDUmClczJOCGZriLNMrshmN9NJxazpqizPthwS1OIK3HwRLEP9D3GL\n7gCnvN6lpIpoVwppWd65f/rK2ewv6dstN0fCmtVj4WsLUchWlgNuVTfWljiBK/Dc\nYkfslRZzCq5Fl3ooowIDAQAB\n-----END PUBLIC KEY-----\n"};gon.oversea_login=false; +//]]> +</script> +<script src="https://cn-assets.gitee.com/assets/static/sensor-6269b9ad61bbcdaff20078e5dcff62d5.js"></script> +<script src="https://cn-assets.gitee.com/assets/static/sentry-5.1.0-a823fb0be1b61c5d7ca4a89f0536cb0a.js"></script> +<script src="https://cn-assets.gitee.com/assets/application-bd2a74541a7204a682192967e5592250.js"></script> +<script src="https://cn-assets.gitee.com/assets/lib/jquery.timeago.zh-CN-4a4818e98c1978d2419ab19fabcba740.js"></script> + +<script src="/static/javascripts/polyfill-7.4.3.min.js"></script> +<script src="/static/javascripts/yunpian/riddler-sdk-0.2.2.js?t=1629687362163"></script> +<script src="https://cn-assets.gitee.com/assets/encrypt-d49cb3adc96d2acf1f8d85390cecb54d.js"></script> +<script src="https://cn-assets.gitee.com/assets/devise/application-ff8352bcceeebb48e808d451ebfc09e0.js"></script> + +<script src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> +<script> + var title = document.title.replace(/( - Gitee| - 码云)$/, '') + imgUrl = ''; + + document.addEventListener('DOMContentLoaded', function(event) { + var imgUrlEl = document.querySelector('.readme-box .markdown-body > img, .readme-box .markdown-body :not(a) > img'); + imgUrl = imgUrlEl && imgUrlEl.getAttribute('src'); + + if (!imgUrl) { + imgUrlEl = document.querySelector('meta[itemprop=image]'); + imgUrl = imgUrlEl && imgUrlEl.getAttribute('content'); + imgUrl = imgUrl || "https://gitee.com/static/images/logo_themecolor.png"; + } + + wx.config({ + debug: false, + appId: "wxff219d611a159737", + timestamp: "1678080449", + nonceStr: "a18535222e18a361958c46f612f3b24d", + signature: "47d4bdd2ed005008ecfc04a6c0aab6412ed8ac5b", + jsApiList: [ + 'onMenuShareTimeline', + 'onMenuShareAppMessage' + ] + }); + + wx.ready(function () { + wx.onMenuShareTimeline({ + title: title, // 分享标题 + link: "https://gitee.com/login?redirect_to_url=%2Fkjpioo2006%2Flizardfs%2Fraw%2Fmaster%2Flizardfs-3.13.0.tar.gz", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 + imgUrl: imgUrl // 分享图标 + }); + wx.onMenuShareAppMessage({ + title: title, // 分享标题 + link: "https://gitee.com/login?redirect_to_url=%2Fkjpioo2006%2Flizardfs%2Fraw%2Fmaster%2Flizardfs-3.13.0.tar.gz", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 + desc: document.querySelector('meta[name=Description]').getAttribute('content'), + imgUrl: imgUrl // 分享图标 + }); + }); + wx.error(function(res){ + console.error('err', res) + }); + }) +</script> + +<script type='text/x-mathjax-config'> +MathJax.Hub.Config({ + tex2jax: { + inlineMath: [['$','$'], ['\\(','\\)']], + displayMath: [["$$","$$"],["\\[","\\]"]], + processEscapes: true, + skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code'], + ignoreClass: "container|files", + processClass: "markdown-body" + } +}); +</script> +<script src="https://cn-assets.gitee.com/uploads/resources/MathJax-2.7.2/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + +<script> + (function () { + var messages = { + 'zh-CN': { + addResult: '增加 <b>{term}</b>', + count: '已选择 {count}', + maxSelections: '最多 {maxCount} 个选择', + noResults: '未找到结果', + serverError: '连接服务器时发生错误' + }, + 'zh-TW': { + addResult: '增加 <b>{term}</b>', + count: '已選擇 {count}', + maxSelections: '最多 {maxCount} 個選擇', + noResults: '未找到結果', + serverError: '連接服務器時發生錯誤' + } + } + + if (messages[gon.locale]) { + $.fn.dropdown.settings.message = messages[gon.locale] + } + }()); +</script> + +<script> + var userAgent = navigator.userAgent; + var isLessIE11 = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1; + if(isLessIE11){ + var can_access = "" + if (can_access != "true"){ + window.location.href = "/incompatible.html"; + } + } + document.addEventListener("error", function (ev) { + var elem = ev.target; + if (elem.tagName.toLowerCase() === 'img') { + elem.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAAAAACIM/FCAAACh0lEQVR4Ae3ch5W0OgyG4dt/mQJ2xgQPzJoM1m3AbALrxzrf28FzsoP0HykJEEAAAUQTBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEkKK0789+GK/I2ezfQB522PnS1qc8pGgXvr4tE4aY0XOUWlGImThWgyCk6DleixzE7qwBkg/MGiDPlVVAyp1VQGrPKiACDhFI6VkF5LmzCki+sg7IwDoglnVAil0IMkeG9CyUiwsxLFUVFzJJOQaKCjFCDN9RXMjIX7W6ztZXZDKKCyn8sWJvH+nca7WHDN9lROlAliPH9iRKCPI4cswFJQWxB46toLQgQ9jhn5QYZA9DOkoMUoQde5YapAxDWkoNYsOQR3KQd9CxUnIQF4S49CB9ENKlBxmDEKsFUgMCCCCAAHIrSF61f6153Ajy8nyiPr8L5MXnmm4CyT2fzN4DUvHZ+ntA2tOQBRBAAAEEEEAAAQQQ7ZBaC6TwSiDUaYHQ2yuB0MN+ft+43whyrs4rgVCjBUKTFshLC6TUAjGA3AxSaYFYLZBOC2RUAsk8h5qTg9QcbEoOsoQhQ2qQhsO5xCD5dgB5JQaZ+KBKGtKecvR81Ic0ZDjByKdDx0rSEDZ/djQbH+bkIdvfJFm98BfV8hD2zprfVdlu9PxVeyYAkciREohRAplJCaRSAplJCcQogTjSAdlyHRBvSAekJR0QRzogA+mADJkOiCPSAPEtqYBshlRAXC43hxix2QiOuEZkVERykGyNo9idIZKE0HO7XrG6OiMShlDWjstVzdPgXtUH9v0CEidAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQP4HgjZxTpdEii0AAAAASUVORK5CYII="; + } + }, true); +</script> +</head> + +<body class='home session-body ui_basic'> +<div class='site-content'> +<div class='fixed-notice-infos'> +<div class='all-messages'> +</div> +<div class='ui container'> +<div class='flash-messages' id='messages-container'></div> +</div> +<script> + (function() { + $(function() { + var $error_box, alertTip, notify_content, notify_options, template; + template = '<div data-notify="container" class="ui {0} message" role="alert">' + '<i data-notify="dismiss" class="close icon"></i>' + '<span data-notify="message">{2}</span>' + '</div>'; + notify_content = null; + notify_options = {}; + alertTip = ''; + $error_box = $(".flash_error.flash_error_box"); + if (notify_options.type === 'error' && $error_box.length > 0 && !$.isEmptyObject(notify_content.message)) { + if (notify_content.message === 'captcha_fail') { + alertTip = "验证码不正确"; + } else if (notify_content.message === 'captcha_expired') { + alertTip = "验证码已过期,请点击刷新"; + } else if (notify_content.message === 'not_found_in_database') { + alertTip = "帐号或者密码错误"; + } else if (notify_content.message === 'not_found_and_show_captcha') { + alertTip = "帐号或者密码错误"; + } else if (notify_content.message === 'phone_captcha_fail') { + alertTip = "手机验证码不通过"; + } else { + alertTip = notify_content.message; + } + return $error_box.html(alertTip).show(); + } else if (notify_content) { + if ("new" === 'third_party_binding') { + return $('#third_party_binding-message').html(notify_content.message).addClass('ui message red'); + } + notify_options.delay = 3000; + notify_options.template = template; + notify_options.offset = { + x: 10, + y: 30 + }; + notify_options.element = '#messages-container'; + return $.notify(notify_content, notify_options); + } + }); + + }).call(this); +</script> + +</div> +<script> + (function() { + $(function() { + var setCookie; + setCookie = function(name, value) { + $.cookie(name, value, { + path: '/', + expires: 365 + }); + }; + $('#remove-bulletin, #remove-bulletin-dashboard').on('click', function() { + setCookie('remove_bulletin', "gitee-maintain-1677815209"); + $('#git-bulletin').hide(); + }); + $('#remove-member-bulletin').on('click', function() { + setCookie('remove_member_bulletin', "gitee_member_bulletin"); + $(this).parent().hide(); + }); + return $('#remove-gift-bulletin').on('click', function() { + setCookie('remove_gift_bulletin', "gitee-gift-bulletin"); + $(this).parent().hide(); + }); + }); + + }).call(this); +</script> +<script> + function closeMessageBanner(pthis, type, val) { + var json = {} + + val = typeof val === 'undefined' ? null : val + $(pthis).parent().remove() + if (type === 'out_of_enterprise_member') { + json = {type: type, data: val} + } else if (type === 'enterprise_overdue') { + json = {type: type, data: val} + } + $.post('/profile/close_flash_tip', json) + } +</script> + +<script> + var userAgent = navigator.userAgent; + var isLessIE11 = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1; + if(isLessIE11){ + var can_access = "" + if (can_access != "true"){ + window.location.href = "/incompatible.html"; + } + } +</script> + +<script src="https://cn-assets.gitee.com/assets/new-editor/bootstrap/transition-d4dc20bf5896a91450f177b5d763ae4a.js"></script> +<script src="https://cn-assets.gitee.com/assets/new-editor/bootstrap/carousel-b36e4e6094e970507a7144098fc191da.js"></script> +<style> + #udesk_container #udesk_btn a{ + margin: 18px 14px 14px 18px !important; + } +</style> +<div class='session-wrapper lang-zh d-none'> +<div class='ui container'> +<div class='session__body'> +<div class='session-sidebox'> +<div class='session-sidebox__container'> +<div class='session-sidebox__header'> +<div class='session-sidebox__logo'> +<img alt="logo" src="/static/images/logo.svg?t=158106664" /> +</div> +<h1 class='session-sidebox__title'> +</h1> +<h2 class='session-sidebox__subtitle'> +企业级 DevOps 研发管理平台 +</h2> +</div> +<div class='session-sidebox__content'> +<div class="session-sidebox-content__container"> <div class="session-sidebox-comments__header"> <span class="session-sidebox-comments__title">贤心</span> <span class="session-sidebox-comments__position">layui</span> </div> <div class="session-sidebox-comments__content">Gitee 已成为我工作的依赖,从个人私有库到企业版,每一项解决方案都直击痛点。而它更吸引人的,是开放的姿态和优质的本土化基因。告诉世界:我们在自豪地使用 Gitee!</div> </div> +</div> +<div class='session-sidebox__footer'> +<a target="_blank" sa_evt="click_GiteeCommunity_login_GiteeEnhot" href="/enterprises?from=login"><strong class='session-sidebox__icon-hot'>Gitee 企业版</strong> +<span class='session-sidebox__divider'>-</span> +企业级 DevOps 研发管理平台 +<i class="iconfont icon-arrow-circle-right "></i> +</a></div> +</div> + +</div> +<div class='session-form'> +<div class='session-form__container is-login'> +<header class='session-form__header'> +<h2 class='session-form__title'> +<span>登录</span> +</h2> +<span class='pull-right'> +没有帐号? +<a sa_evt="click_GiteeCommunity_login_signup" href="/signup#lang=zh-CN">点此注册</a> +</span> +</header> +<div class='session__flash-error'> +<div class='ui message error flash_error flash_error_box'></div> +</div> +<form class="ui custom form session__control session-login__form session-login__with-password " data-need-verify="false" data-control="password" data-encrypt="true" data-key="password" id="new_user" action="/login" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="fY6IMF3e1jJSFh55H30Lq5Lxs1Y90KN1EXAUmaiOkF+z4vSngVrLBgZ/ijcZ5Zh5iusexOXCDsLObKr8iOfptg==" /><input type="hidden" name="redirect_to_url" id="redirect_to_url" value="/kjpioo2006/lizardfs/raw/master/lizardfs-3.13.0.tar.gz" /> +<div class='session-login__body'> +<div class='session-form__fields'> +<div class='git-login-form-fields'> +<div class='field' id='git-login'> +<input placeholder="手机/邮箱/个人空间地址" class="login-password__account-input" type="text" name="user[login]" id="user_login" /> +</div> +<div class='field'> +<input placeholder="请输入密码" data-encrypt="true" type="password" name="user[password]" id="user_password" /> +</div> +<div class='two fields'> +<div class='field'> +<div class='ui checkbox js-checkbox' sa_evt='click_GiteeCommunity_login_remember'><input name="user[remember_me]" type="hidden" value="0" /><input type="checkbox" value="1" name="user[remember_me]" id="user_remember_me" /><label>记住我</label></div> +</div> +<div class='field' style='text-align: right'> +<a class="session__toggle-button" data-control="phone" sa_evt="click_GiteeCommunity_login_sms" href="">短信验证登录</a> +</div> +</div> +<div class='field'> +<input type="submit" name="commit" value="登 录" class="ui fluid orange submit button large" sa_evt="click_GiteeCommunity_login_login" /> +</div> +<div class='field text-center'> +<a class="forget-password" sa_evt="click_GiteeCommunity_login_forget" href="/password/new">已有帐号,忘记密码?</a> +</div> +</div> +</div> +</div> +</form> + +<form class="ui custom form session__control session-login__form session-login__with-phone hide" data-control="phone" id="new_user" action="/login" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="8jykKO/HEcP1i7vAz1O+c55Qa1ajNMqYnkWTA3B0YY08UNi/M0MM96HiL47Jyy2hhkrGxHsmZy9BWS1mUB0YZA==" /><input value="sms" type="hidden" name="user[login_type]" id="user_login_type" /> +<input type="hidden" name="redirect_to_url" id="redirect_to_url" value="/kjpioo2006/lizardfs/raw/master/lizardfs-3.13.0.tar.gz" /> +<input class='placeholder__autofill-text'> +<div class='field'> +<input class="session-login__phone-input" placeholder="手机号码" sa_evt="click_GiteeCommunity_login_input" type="text" name="user[login]" id="user_login" /> +</div> +<div class='field'> +<div class='ui right labeled input captcha-labeled'> +<input disabled="disabled" class="session-login__captcha-input" placeholder="手机验证码" type="text" name="user[account_captcha]" id="user_account_captcha" /> +<div class='ui basic orange button session-login__captcha-button' sa_evt='click_GiteeCommunity_login_captcha'> +发送验证码 +</div> + +<div class='ui danger popup captcha-popup'> +<p style='min-width: 162px;'> +收不到验证码? +<a href="/self_services">获取帮助</a> +</p> +</div> +<script> + $(function () { + var $captchaPopup = $('.captcha-popup'); + var $targetButton = $captchaPopup.prev(); + + if ($targetButton && $targetButton.length) { + $targetButton.popup({ + popup: $captchaPopup, + on: 'manual', + position: 'right center', + variation: 'large', + transition: 'fade', + duration: 500, + lastResort: 'top center', + prefer: 'adjacent' + }); + } + }); +</script> +</div> +</div> +<div class='two fields'> +<div class='field'> +<div class='ui checkbox js-checkbox'><input name="user[remember_me]" type="hidden" value="0" /><input type="checkbox" value="1" name="user[remember_me]" id="user_remember_me" /><label>记住我</label></div> +</div> +<div class='field' style='text-align: right'> +<a class="session__toggle-button" data-control="password" sa_evt="click_GiteeCommunity_login_password" href="/login">用户名密码登录</a> +</div> +</div> +<div class='field'> +<input type="submit" name="commit" value="登 录" class="ui fluid orange submit button large" sa_evt="click_GiteeCommunity_login_login" /> +</div> +<div class='field text-center'> +<a class="forget-password" href="/password/new">已有帐号,忘记密码?</a> +</div> +</form> + +<div class='session-login-oauth'> +<div class='session-login__oschina'> +<a sa_evt="click_GiteeCommunity_login_thirdparty" sa_click_bottom="oschina" href="https://gitee.com/auth/oschina"><i class='icon-logo-osc iconfont osc'></i> +<span> +使用 OSChina 帐号登录 +</span> +</a></div> +<div class='session-login-oauth__container'> +<div class='field'> +<div class='ui horizontal divider session-login__oauth-title'> +<span class='text-muted'> +其他方式登录 +</span> +</div> +</div> +<div class='ui horizontal list session-oauth__list'> +<div class='item'> +<a sa_evt="click_GiteeCommunity_login_thirdparty" sa_click_bottom="aliyun" href="https://gitee.com/auth/aliyun"><div class='git-other-login-icon'> +<i class='aliyun icon-logo_aliyun iconfont' title='使用阿里云帐号登录'></i> +</div> +</a></div> +<div class='item'> +<a sa_evt="click_GiteeCommunity_login_thirdparty" sa_click_bottom="gitlab" href="https://gitee.com/auth/gitlab"><div class='git-other-login-icon'> +<i class='gitlab icon-logo-gitlab iconfont' title='使用 GitLab 帐号登录'></i> +</div> +</a></div> +<div class='item'> +<a sa_evt="click_GiteeCommunity_login_thirdparty" sa_click_bottom="huawei" href="https://gitee.com/auth/huawei"><div class='git-other-login-icon'> +<i class='huawei icon-logo_huawei iconfont' title='使用华为帐号登录'></i> +</div> +</a></div> +<div class='item'> +<a sa_evt="click_GiteeCommunity_login_thirdparty" sa_click_bottom="github" href="https://gitee.com/auth/github"><div class='git-other-login-icon'> +<i class='github icon-logo-github iconfont' title='使用 GitHub 帐号登录'></i> +</div> +</a></div> +<div class='item'> +<span class='session-oauth__other-icon js-popup-default' data-popup-hoverable='true' data-position='left center'> +<i class="iconfont icon-ic-action-more "></i> +</span> +<div class='ui flowing popup session-oauth__other'> +<div class='session-oauth__other-list'> +<a class="item" sa_evt="click_GiteeCommunity_login_thirdparty" sa_click_bottom="weibo" href="https://gitee.com/auth/weibo"><div class='git-other-login-icon'> +<i class='icon-logo-weibo iconfont weibo' title='使用 Weibo 帐号登录'></i> +</div> +</a><a class="item" sa_evt="click_GiteeCommunity_login_thirdparty" sa_click_bottom="qq_connect" href="https://gitee.com/auth/qq_connect"><div class='git-other-login-icon'> +<i class='icon-logo-qq iconfont qq' title='使用 QQ 帐号登录'></i> +</div> +</a><a class="item" sa_evt="click_GiteeCommunity_login_thirdparty" sa_click_bottom="windowslive" href="https://gitee.com/auth/windowslive"><div class='git-other-login-icon'> +<i class='icon-logo-windows iconfont windows' title='使用 WindowsLive 帐号登录'></i> +</div> +</a><a class="item" sa_evt="click_GiteeCommunity_login_thirdparty" sa_click_bottom="wechat" href="https://gitee.com/auth/wechat"><div class='git-other-login-icon'> +<i class='icon-logo_wechat iconfont wechat' title='使用微信帐号登录'></i> +</div> +</a><a class="item" sa_evt="click_GiteeCommunity_login_thirdparty" sa_click_bottom="dingding" href="https://gitee.com/auth/dingding"><div class='git-other-login-icon'> +<i class='dingding icon-logo-dingding iconfont' title='使用钉钉帐号登录'></i> +</div> +</a><a class="item" sa_evt="click_GiteeCommunity_login_thirdparty" sa_click_bottom="trustie" href="https://gitee.com/auth/trustie"><div class='git-other-login-icon'> +<i class='icon-logo_trustie iconfont trustie' title='使用 Trustie 帐号登录'></i> +</div> +</a></div> +</div> +</div> +</div> +</div> + +</div> + +<script> + if (window.sensors) { + window.sensors.track('view_GiteeCommunity_login'); + } +</script> +</div> + +<a id='udeskBtn'> +<img alt="udesk" width="40" height="40" src="https://cn-assets.gitee.com/assets/udesk_btn-2281240ad5574e66b38192030789f521.png" /> +</a> +<div class='ui popup dark left center transition hidden js-udesk_name'>智能客服</div> +<div class='ui popup dark left center transition hidden js-udesk-first-tip text-left' style='white-space: normal;'> +<div class='content' style='width: 218px;font-size: 14px;font-weight: 400;'> +<div class='text mb-1'>使用过程中有任何问题,可以在帮助中心查询哦~</div> +<a class='btn cursor-pointer hover-color' style='color: #FE7201'>我知道了</a> +</div> +</div> +<script> + ;(function(){ + ;(function (a, h, c, b, f, g) { + a['UdeskApiObject'] = f + a[f] = + a[f] || + function () { + ;(a[f].d = a[f].d || []).push(arguments) + } + g = h.createElement(c) + g.async = 1 + g.charset = 'utf-8' + g.src = b + c = h.getElementsByTagName(c)[0] + c.parentNode.insertBefore(g, c) + + })(window, document, 'script', 'https://assets-cli.s4.udesk.cn/im_client/js/udeskApi.js', 'ud') + ud({ + code: '1hhcdjh', + link: 'https://1588039.s4.udesk.cn/im_client/?web_plugin_id=2649', + "onReady": function() { + $(document).trigger('udeskOnload') + }, + targetSelector: '#udeskBtn' + }); + + $(document).on('udeskOnload', function() { + var $udeskBtn = $('#udeskBtn') + $udeskBtn.popup({ + popup: '.js-udesk_name' + }) + }) + })(); +</script> +<style> + #udeskBtn { + right: 14px; + bottom: 14px; + position: fixed; } +</style> + + +</div> +</div> +<div class='session__footer container'> +<span class='session__footer-item'> +<a target="_blank" sa_evt="click_GiteeCommunity_signup_login_bottomtab" sa_click_bottom="Gitee.com" href="https://gitee.com/">© Gitee.com</a> +</span> +<span class='session__footer-item'> +<a sa_evt="click_GiteeCommunity_signup_login_bottomtab" sa_click_bottom="关于我们" href="/about_us">关于我们</a> +</span> +<span class='session__footer-item'> +<a sa_evt="click_GiteeCommunity_signup_login_bottomtab" sa_click_bottom="使用条款" href="/terms">使用条款</a> +</span> +<span class='session__footer-item'> +<a sa_evt="click_GiteeCommunity_signup_login_bottomtab" sa_click_bottom="帮助文档" href="https://help.gitee.com">帮助文档</a> +</span> +<span class='session__footer-item'> +<a sa_evt="click_GiteeCommunity_signup_login_bottomtab" sa_click_bottom="在线自助服务" href="/self_services">在线自助服务</a> +</span> +<span class='session__footer-item'> +<a sa_evt="click_GiteeCommunity_signup_login_bottomtab" sa_click_bottom="重发激活邮件" href="/user/activate">重发激活邮件</a> +</span> +</div> + +</div> +</div> +<script> + window.gon.is_oversea = false +</script> + + +<script> + gon.globalLang = { + login: "帐号", + username: "用户名", + nickname: "姓名", + path: "个人空间地址", + phone: "手机号码", + email: "邮箱", + phone_or_email: "手机或邮箱", + password: "密码", + code: "识别码", + sending: "正在发送...", + sended: "已发送", + resend: "秒后可重发", + captcha: "验证码", + resend_captcha: "重发验证码", + phone_captcha: "手机验证码", + email_captcha: "邮箱验证", + read_and_accept_clause: "请阅读并同意我们的服务条款", + + user_name_error: "昵称不能为空,或包含空格", + namespace_name_error: "仅支持至少两位,中文/英文/数字/下划线/中划线/圆括号,不能以下划线/中划线开头或结尾,不可包含 /", + username_format_error: "地址只允许字母、数字或者下划线(_)、中划线(-),至少 2 个字符,必须以字母开头,不能以特殊字符结尾", + account_invalid_error: "请输入正确的手机号码(支持澳门台湾)或邮箱", + password_invalid_error: "密码必须包含数字,且必须包含字母或其它符号(!@_#$%^&*()-+=,.?)", + phone_error: "手机号码格式不正确", + captcha_fail: "验证码不正确", + captcha_expired: "验证码已过期,请点击刷新", + not_found_in_database: "帐号或者密码错误", + not_found_and_show_captcha: "帐号或者密码错误", + }; +</script> + +</div> +</body> +</html> diff --git a/lizardfs.spec b/lizardfs.spec new file mode 100644 index 0000000..3f7e5c5 --- /dev/null +++ b/lizardfs.spec @@ -0,0 +1,620 @@ +Summary: LizardFS - distributed, fault tolerant file system +Name: lizardfs +Version: 3.13.0 +Release: 0 +License: GPL v3 +Group: System Environment/Daemons +URL: http://www.lizardfs.org/ +Source: https://gitee.com/kjpioo2006/lizardfs/raw/master/lizardfs-3.13.0.tar.gz +BuildRequires: fuse-devel +BuildRequires: cmake +BuildRequires: pkgconfig +BuildRequires: zlib-devel +BuildRequires: asciidoc +BuildRequires: systemd +BuildRequires: fmt +BuildRequires: fmt-devel +BuildRequires: spdlog +BuildRequires: spdlog-devel +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +%define liz_project lizardfs +%define liz_group %{liz_project} +%define liz_user %{liz_project} +%define liz_datadir %{_localstatedir}/lib/%{liz_project} +%define liz_confdir %{_sysconfdir}/%{liz_project} +%define liz_limits_conf /etc/security/limits.d/10-lizardfs.conf +%define liz_pam_d /etc/pam.d/lizardfs +%define _unpackaged_files_terminate_build 0 +%define debug_package %{nil} + +%description +LizardFS is an Open Source, easy to deploy and maintain, distributed, +fault tolerant file system for POSIX compliant OSes. +LizardFS is a fork of MooseFS. For more information please visit +http://lizardfs.com + +# Packages +############################################################ + +%package master +Summary: LizardFS master server +Group: System Environment/Daemons +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units + +%description master +LizardFS master (metadata) server together with metarestore utility. + +%package metalogger +Summary: LizardFS metalogger server +Group: System Environment/Daemons +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units + +%description metalogger +LizardFS metalogger (metadata replication) server. + +%package chunkserver +Summary: LizardFS data server +Group: System Environment/Daemons +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units + +%description chunkserver +LizardFS data server. + +%package client +Summary: LizardFS client +Group: System Environment/Daemons +Requires: fuse +Requires: fuse-libs +Requires: bash-completion + +%description client +LizardFS client: mfsmount and mfstools. + +%package client3 +Summary: LizardFS client using FUSE3 +Group: System Environment/Daemons +Requires: lizardfs-client + +%description client3 +LizardFS client: mfsmount and mfstools. + +%package lib-client +Summary: LizardFS client C/C++ library +Group: Development/Libraries + +%description lib-client +LizardFS client library for C/C++ bindings. + +### Uncomment lines below to re-enable ganesha build. +# %package nfs-ganesha +# Summary: LizardFS plugin for nfs-ganesha +# Group: System Environment/Libraries +# Requires: lizardfs-lib-client +# +# %description nfs-ganesha +# LizardFS fsal plugin for nfs-ganesha. + +%package cgi +Summary: LizardFS CGI Monitor +Group: System Environment/Daemons +Requires: python3 + +%description cgi +LizardFS CGI Monitor. + +%package cgiserv +Summary: Simple CGI-capable HTTP server to run LizardFS CGI Monitor +Group: System Environment/Daemons +Requires: %{name}-cgi = %{version}-%{release} +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units + +%description cgiserv +Simple CGI-capable HTTP server to run LizardFS CGI Monitor. + +%package adm +Summary: LizardFS administration utility +Group: System Environment/Daemons + +%description adm +LizardFS command line administration utility. + +%package uraft +Summary: LizardFS cluster management tool +Group: System Environment/Daemons +Requires: lizardfs-master +Requires: lizardfs-adm +Requires: boost-system +Requires: boost-program-options + +%description uraft +LizardFS cluster management tool. + +# Scriptlets - master +############################################################ + +%pre master +if ! getent group %{liz_group} > /dev/null 2>&1 ; then + groupadd --system %{liz_group} +fi +if ! getent passwd %{liz_user} > /dev/null 2>&1 ; then + adduser --system -g %{liz_group} --no-create-home --home-dir %{liz_datadir} %{liz_user} +fi +if [ ! -f %{liz_limits_conf} ]; then + echo "%{liz_user} soft nofile 10000" > %{liz_limits_conf} + echo "%{liz_user} hard nofile 10000" >> %{liz_limits_conf} + chmod 0644 %{liz_limits_conf} +fi +if [ ! -f %{liz_pam_d} ]; then + echo "session required pam_limits.so" > %{liz_pam_d} +fi +exit 0 + +%post master +%systemd_post lizardfs-master.service + +%preun master +%systemd_preun lizardfs-master.service + +%postun master +%systemd_postun_with_restart lizardfs-master.service + +# Scriptlets - metalogger +############################################################ + +%pre metalogger +if ! getent group %{liz_group} > /dev/null 2>&1 ; then + groupadd --system %{liz_group} +fi +if ! getent passwd %{liz_user} > /dev/null 2>&1 ; then + adduser --system -g %{liz_group} --no-create-home --home-dir %{liz_datadir} %{liz_user} +fi +exit 0 + +%post metalogger +%systemd_post lizardfs-metalogger.service + +%preun metalogger +%systemd_preun lizardfs-metalogger.service + +%postun metalogger +%systemd_postun_with_restart lizardfs-metalogger.service + +# Scriptlets - chunkserver +############################################################ + +%pre chunkserver +if ! getent group %{liz_group} > /dev/null 2>&1 ; then + groupadd --system %{liz_group} +fi +if ! getent passwd %{liz_user} > /dev/null 2>&1 ; then + adduser --system -g %{liz_group} --no-create-home --home-dir %{liz_datadir} %{liz_user} +fi +if [ ! -f %{liz_limits_conf} ]; then + echo "%{liz_user} soft nofile 10000" > %{liz_limits_conf} + echo "%{liz_user} hard nofile 10000" >> %{liz_limits_conf} + chmod 0644 %{liz_limits_conf} +fi +if [ ! -f %{liz_pam_d} ]; then + echo "session required pam_limits.so" > %{liz_pam_d} +fi +exit 0 + +%post chunkserver +%systemd_post lizardfs-chunkserver.service + +%preun chunkserver +%systemd_preun lizardfs-chunkserver.service + +%postun chunkserver +%systemd_postun_with_restart lizardfs-chunkserver.service + +# Scriptlets - CGI server +############################################################ + +%post cgiserv +%systemd_post lizardfs-cgiserv.service + +%preun cgiserv +%systemd_preun lizardfs-cgiserv.service + +%postun cgiserv +%systemd_postun_with_restart lizardfs-cgiserv.service + +# Scriptlets - client3 +############################################################ + +%post client3 +/bin/ln -sf %{_mandir}/man1/mfsmount.1 %{_mandir}/man1/mfsmount3.1 + +# Scriptlets - uraft +############################################################ + +%post uraft +echo "net.ipv4.conf.all.arp_accept = 1" > /etc/sysctl.d/10-lizardfs-uraft-arp.conf +chmod 0664 /etc/sysctl.d/10-lizardfs-uraft-arp.conf +sysctl -p /etc/sysctl.d/10-lizardfs-uraft-arp.conf +echo "# Allow lizardfs user to set floating ip" > /etc/sudoers.d/lizardfs-uraft +echo "lizardfs ALL=NOPASSWD:/sbin/ip" >> /etc/sudoers.d/lizardfs-uraft +echo 'Defaults !requiretty' >> /etc/sudoers + +# Prep, build, install, files... +############################################################ + +%prep +%setup + +%build +./configure --with-doc +make %{?_smp_mflags} + +%install +rm -rf $RPM_BUILD_ROOT +make install DESTDIR=$RPM_BUILD_ROOT +install -d -m755 $RPM_BUILD_ROOT/%{liz_confdir} +install -d -m755 $RPM_BUILD_ROOT/%{_unitdir} +for f in rpm/service-files/*.service ; do + install -m644 "$f" $RPM_BUILD_ROOT/%{_unitdir}/$(basename "$f") +done + +%clean +rm -rf $RPM_BUILD_ROOT + +%files master +%define liz_master_examples %{_docdir}/lizardfs-master/examples +%defattr(644,root,root,755) +%doc NEWS README.md UPGRADE +%attr(755,root,root) %{_sbindir}/mfsmaster +%attr(755,root,root) %{_sbindir}/mfsrestoremaster +%attr(755,root,root) %{_sbindir}/mfsmetadump +%attr(755,root,root) %{_sbindir}/mfsmetarestore +%dir %{liz_confdir} +%attr(755,%{liz_user},%{liz_group}) %dir %{liz_confdir} +%attr(755,%{liz_user},%{liz_group}) %dir %{liz_datadir} +%{_mandir}/man5/mfsexports.cfg.5* +%{_mandir}/man5/mfstopology.cfg.5* +%{_mandir}/man5/mfsgoals.cfg.5* +%{_mandir}/man5/mfsmaster.cfg.5* +%{_mandir}/man5/globaliolimits.cfg.5* +%{_mandir}/man7/mfs.7* +%{_mandir}/man7/moosefs.7* +%{_mandir}/man7/lizardfs.7* +%{_mandir}/man8/mfsmaster.8* +%{_mandir}/man8/mfsmetadump.8* +%{_mandir}/man8/mfsmetarestore.8* +%{_mandir}/man8/mfsrestoremaster.8* +%{liz_master_examples}/mfsexports.cfg +%{liz_master_examples}/mfstopology.cfg +%{liz_master_examples}/mfsgoals.cfg +%{liz_master_examples}/mfsmaster.cfg +%{liz_master_examples}/globaliolimits.cfg +%attr(644,root,root) %{liz_datadir}/metadata.mfs.empty +%attr(644,root,root) %{_unitdir}/lizardfs-master.service + +%files metalogger +%define liz_metalogger_examples %{_docdir}/lizardfs-metalogger/examples +%defattr(644,root,root,755) +%doc NEWS README.md UPGRADE +%attr(755,root,root) %{_sbindir}/mfsmetalogger +%attr(755,%{liz_user},%{liz_group}) %dir %{liz_datadir} +%{_mandir}/man5/mfsmetalogger.cfg.5* +%{_mandir}/man8/mfsmetalogger.8* +%{liz_metalogger_examples}/mfsmetalogger.cfg +%attr(644,root,root) %{_unitdir}/lizardfs-metalogger.service + +%files chunkserver +%define liz_chunkserver_examples %{_docdir}/lizardfs-chunkserver/examples +%defattr(644,root,root,755) +%doc NEWS README.md UPGRADE +%attr(755,root,root) %{_sbindir}/mfschunkserver +%dir %{liz_confdir} +%attr(755,%{liz_user},%{liz_group}) %dir %{liz_confdir} +%attr(755,%{liz_user},%{liz_group}) %dir %{liz_datadir} +%{_mandir}/man5/mfschunkserver.cfg.5* +%{_mandir}/man5/mfshdd.cfg.5* +%{_mandir}/man8/mfschunkserver.8* +%{liz_chunkserver_examples}/mfschunkserver.cfg +%{liz_chunkserver_examples}/mfshdd.cfg +%attr(644,root,root) %{_unitdir}/lizardfs-chunkserver.service + +%files client +%define liz_client_examples %{_docdir}/lizardfs-client/examples +%defattr(644,root,root,755) +%doc NEWS README.md UPGRADE +%attr(755,root,root) %{_bindir}/lizardfs +%attr(755,root,root) %{_bindir}/mfsmount +%attr(755,root,root) %{_bindir}/mfstools.sh +%{_bindir}/mfsappendchunks +%{_bindir}/mfscheckfile +%{_bindir}/mfsdeleattr +%{_bindir}/mfsdirinfo +%{_bindir}/mfsfileinfo +%{_bindir}/mfsfilerepair +%{_bindir}/mfsgeteattr +%{_bindir}/mfsgetgoal +%{_bindir}/mfsgettrashtime +%{_bindir}/mfsmakesnapshot +%{_bindir}/mfsrepquota +%{_bindir}/mfsrgetgoal +%{_bindir}/mfsrgettrashtime +%{_bindir}/mfsrsetgoal +%{_bindir}/mfsrsettrashtime +%{_bindir}/mfsseteattr +%{_bindir}/mfssetgoal +%{_bindir}/mfssetquota +%{_bindir}/mfssettrashtime +%{_mandir}/man1/lizardfs-appendchunks.1* +%{_mandir}/man1/lizardfs-checkfile.1* +%{_mandir}/man1/lizardfs-deleattr.1* +%{_mandir}/man1/lizardfs-dirinfo.1* +%{_mandir}/man1/lizardfs-fileinfo.1* +%{_mandir}/man1/lizardfs-filerepair.1* +%{_mandir}/man1/lizardfs-geteattr.1* +%{_mandir}/man1/lizardfs-getgoal.1* +%{_mandir}/man1/lizardfs-gettrashtime.1* +%{_mandir}/man1/lizardfs-makesnapshot.1* +%{_mandir}/man1/lizardfs-repquota.1* +%{_mandir}/man1/lizardfs-rgetgoal.1* +%{_mandir}/man1/lizardfs-rgettrashtime.1* +%{_mandir}/man1/lizardfs-rsetgoal.1* +%{_mandir}/man1/lizardfs-rsettrashtime.1* +%{_mandir}/man1/lizardfs-seteattr.1* +%{_mandir}/man1/lizardfs-setgoal.1* +%{_mandir}/man1/lizardfs-setquota.1* +%{_mandir}/man1/lizardfs-settrashtime.1* +%{_mandir}/man1/lizardfs-rremove.1* +%{_mandir}/man1/lizardfs.1* +%{_mandir}/man5/iolimits.cfg.5* +%{_mandir}/man7/mfs.7* +%{_mandir}/man7/moosefs.7* +%{_mandir}/man1/mfsmount.1* +%{_mandir}/man5/mfsmount.cfg.5* +%{liz_client_examples}/iolimits.cfg +%{liz_client_examples}/mfsmount.cfg +%{_sysconfdir}/bash_completion.d/lizardfs + +%files client3 +%attr(755,root,root) %{_bindir}/mfsmount3 +%{_mandir}/man1/mfsmount3.1* + +%files lib-client +%{_libdir}/liblizardfsmount_shared.so +%{_libdir}/liblizardfs-client.so +%{_libdir}/liblizardfs-client-cpp.a +%{_libdir}/liblizardfs-client-cpp_pic.a +%{_libdir}/liblizardfs-client.a +%{_libdir}/liblizardfs-client_pic.a +%{_includedir}/lizardfs/lizardfs_c_api.h +%{_includedir}/lizardfs/lizardfs_error_codes.h + + +%files cgi +%defattr(644,root,root,755) +%doc NEWS README.md UPGRADE +%dir %{_datadir}/mfscgi +%{_datadir}/mfscgi/err.gif +%{_datadir}/mfscgi/favicon.ico +%{_datadir}/mfscgi/index.html +%{_datadir}/mfscgi/logomini.png +%{_datadir}/mfscgi/mfs.css +%attr(755,root,root) %{_datadir}/mfscgi/mfs.cgi +%attr(755,root,root) %{_datadir}/mfscgi/chart.cgi + +%files cgiserv +%defattr(644,root,root,755) +%attr(755,root,root) %{_sbindir}/lizardfs-cgiserver +%attr(755,root,root) %{_sbindir}/mfscgiserv +%{_mandir}/man8/lizardfs-cgiserver.8* +%{_mandir}/man8/mfscgiserv.8* +%attr(644,root,root) %{_unitdir}/lizardfs-cgiserv.service + +%files adm +%defattr(644,root,root,755) +%doc NEWS README.md UPGRADE +%attr(755,root,root) %{_bindir}/lizardfs-admin +%{_mandir}/man8/lizardfs-admin.8* +%{_bindir}/lizardfs-probe +%{_mandir}/man8/lizardfs-probe.8* + +%files uraft +%define liz_uraft_examples %{_docdir}/lizardfs-uraft/examples +%defattr(644,root,root,755) +%attr(755,root,root) %{_sbindir}/lizardfs-uraft +%attr(755,root,root) %{_sbindir}/lizardfs-uraft-helper +%doc NEWS README.md UPGRADE +%{_mandir}/man8/lizardfs-uraft.8* +%{_mandir}/man8/lizardfs-uraft-helper.8* +%{_mandir}/man5/lizardfs-uraft.cfg.5* +%{liz_uraft_examples}/lizardfs-uraft.cfg +%attr(644,root,root) %{_unitdir}/lizardfs-uraft.service +%attr(644,root,root) %{_unitdir}/lizardfs-ha-master.service + +%changelog +* Thu Jun 28 2018 Pawel Kalinowski <contact@lizardfs.org> - 3.13.0 +- (all) uRaft HA +- (all) fixes to EC handling +- (all) nfs-ganesha plugin changed to use only C code +- (mount) reduced number of secondary groups retrievals (better performance) +- (mount) add fuse3 client (better performance, writeback cache) +- (all) many fixes + +* Wed Nov 22 2017 Pawel Kalinowski <contact@lizardfs.org> - 3.12.0 +- (all) C API +- (all) nfs-ganesha plugin +- (all) RichACL support (which includes NFSv4) +- (all) OSX ACL support +- (master, mount) file lock fixes +- (mount) client readahead enabled by default +- (mount) AVX2 extensions support for erasure code goals +- (chunkserver) more flexible options +- (all) many fixes + +* Tue May 9 2017 Piotr Sarna <contact@lizardfs.org> - 3.11.0 +- (master) improve ACL implementation +- (master) add option to avoid same-ip chunkserver replication +- (master) add minimal goal configuration option +- (master) reimplement directory entry cache for faster lookups +- (master) add whole-path lookups +- (master, chunkserver) add chunkserver load awareness +- (mount) add readahead to improve sequential read perfromance +- (mount) add secondary groups support +- (tools) add correct-only flag to filerepair +- (tools) add -s and -i options to snapshot command +- (tools) add recursive remove operations (for removing large directories and snapshots) +- (tools) add tool for stopping execution of tasks (snapshot, recursive remove, etc.) +- (all) change to semantic versioning system +- (all) many fixes + +* Fri Oct 7 2016 Piotr Sarna <contact@lizardfs.org> - 3.10.4 +- (master) task manager performance improvements +- (master) trash fixes + +* Tue Aug 30 2016 Piotr Sarna <contact@lizardfs.org> - 3.10.2 +- (master) redesign in-memory representation of file system objects - at least 30% reduction in RAM usage +- (master) name storage - a possibility to keep all file names in BerkeleyDB, thus saving even more RAM +- (master) redesign of trash - increased performance, reduced RAM usage and CPU pressure +- (master) huge boost of responsiveness - lengthy operations split into asynchronous bits +- (master) OPERATIONS_DELAY* config entries, which allow postponing metadata operations on restart/disconnect +- (master) fix improper handling of endangered chunks +- (chunkserver) memory optimizations - at least 60% reduction in RAM usage +- (chunkserver) introduce smart descriptor management +- (tools) brand new `lizardfs` command, a unified replacement for mfs* tools with prompt and bash completion +- (all) various fixes and community requests + +* Mon Mar 14 2016 Piotr Sarna <contact@lizardfs.org> - 3.10.0 +- (all) Added erasure code goals +- (all) Added per directory quotas +- (all) Improved interaction with legacy version (chunkservers, mounts) +- (all) Ports for OSX and FreeBSD +- (all) Many fixes + +* Wed Dec 2 2015 Piotr Sarna <contact@lizardfs.org> - 3.9.4 +- (master) Removed master server overload on restarting chunkservers +- (master) Improved global file locks engine +- (chunkserver) Fixed leaking descriptors problem +- (chunkserver) Improved mechanism of moving chunks to new directory layout +- (chunkserver) Fixed issues related to scanning directories with new chunk format present +- (mount) Removed hang in mount when chunkserver reported no valid copies of a file +- (master) Changed handling of legacy (pre-3.9.2) chunkservers in new installations +- (cgi) Added XOR replication to statistics +- (all) Removed default linking to tcmalloc library due to performance drop + +* Fri Oct 23 2015 Piotr Sarna <contact@lizardfs.org> - 3.9.2 +- (all) Introduced XOR goal types +- (all) Added file locks (flock & fcntl) +- (all) Increased max number of files from 500 million to over 4 billion +- (all) Introduced managing open file limits by PAM +- (master) Improved consistency of applying changelogs by shadow masters +- (master) Redesigned snapshot execution in master +- (master) Redesigned chunk loop logic +- (master) Added option to limit chunk loop's CPU usage +- (master) Removed hard coded connection limit +- (chunkserver) Added new network threads responsible for handling requests + sent by chunkserver's clients +- (chunkserver) Introduced new more efficient directory layout +- (chunkserver) Added option to choose if fsync should be performed after each write + for increased safety +- (chunkserver) Removed hard coded connection limit +- (chunkserver) Added replication network bandwidth limiting +- (mount) Improved symlink cache and added configurable timeout value +- (all) Minor bug fixes and improvements + +* Mon Feb 09 2015 Adam Ochmanski <contact@lizardfs.org> - 2.6.0 +- (all) Added comments in all config files +- (all) Improve messages printed by daemons when starting +- (cgi) A new chunkserver's chart: number of chunk tests +- (cgi) Fixed paths to static content +- (cgi) New implementation of the CGI server; mfscgiserv is now deprecated. +- (cgi) New table: 'Metadata Servers' in the 'Servers' tab +- (chunkserver) Allowed starts with damaged disks +- (chunkserver) A new option: HDD_ADVISE_NO_CACHE +- (chunkserver) Improved handling of disk read errors +- (chunkserver) Removed 'testing chunk: xxxxxx' log messages +- (master) A new feature: disabling atime updates (globally) +- (master) Fixed rotating changelogs and downloading files in shadow mode +- (probe) New commands +- (probe) Renamed to lizardfs-admin +- (all) Minor bug fixes and improvements + +* Fri Nov 07 2014 Alek Lewandowski <contact@lizardfs.org> - 2.5.4 +- (all) Boost is no longer required to build the source code of LizardFS + or use the binary version +- (all) Added tiering (aka 'custom goal') feature, which allows + users to label chunkservers and to request chunks to be stored + on specific groups of servers +- (cgi) "Exports" tabs renamed to "Config", now it also shows goal + definitions +- (cgi) Added new tab "Chunks" +- (probe) New command "chunks-health" makes it possible to get number of + missing or endangered chunks +- (master) Fixed reporting memory usage in CGI +- (mount) Fixed caching contents of open directories +- (mount) Add a .lizardfs_tweaks file +- (all) Other minor fixes and improvements + +* Mon Sep 15 2014 Alek Lewandowski <contact@lizardfs.org> - 2.5.2 +- (master, shadow) Metadata checksum mechanism, allowing to + find and fix possible metadata inconsistencies between master + and shadow +- (mount, master) ACL cache in mount, reducing the load of + the master server +- (packaging) Support packaging for RedHat based systems +- (master) Improved chunkserver deregistration mechanism in + order to avoid temporary master unresponsiveness +- (polonaise) Add filesystem API for developers allowing to + use the filesystem without FUSE (and thus working also on + Windows) +- (all) Minor fixes and improvements + +* Tue Jul 15 2014 Marcin Sulikowski <sulik@lizardfs.org> - 2.5.0 +- (master) High availability provided by shadow master servers +- (mount, chunkserver) CRC algorithm replaced with a 3 times faster + implementation +- (mount, master) Support for quotas (for users and groups) +- (mount, master) Support for posix access contol lists (requires + additional OS support) +- (mount, master) Support for global I/O limiting (bandwidth limiting) +- (mount) Support for per-mountpoint I/O limiting (bandwidth limiting) +- (adm) New package lizardfs-adm with a lizardfs-probe command-line + tool which can be used to query the installation for variuos + parameteres +- (master) New mechanism of storing metadata backup files which + improves performance of the hourly metadata dumps +- (all) A comprehensive test suite added +- (all) Multiple bugfixes + + +* Wed Oct 16 2013 Peter aNeutrino <contact@lizardfs.org> - 1.6.28-1 +- (all) compile with g++ by default +- (deb) fix init scripts for debian packages +- (all) fix build on Mac OS X +- (cgi) introducing LizardFS logo + +* Thu Feb 16 2012 Jakub Bogusz <contact@moosefs.com> - 1.6.27-1 +- adjusted to keep configuration files in /etc/mfs +- require just mfsexports.cfg (master) and mfshdd.cfg (chunkserver) in RH-like + init scripts; for other files defaults are just fine to run services +- moved mfscgiserv to -cgiserv subpackage (-cgi alone can be used with any + external CGI-capable HTTP server), added mfscgiserv init script + +* Fri Nov 19 2010 Jakub Bogusz <contact@moosefs.com> - 1.6.19-1 +- separated mfs-metalogger subpackage (following Debian packaging) + +* Fri Oct 8 2010 Jakub Bogusz <contact@moosefs.com> - 1.6.17-1 +- added init scripts based on work of Steve Huff (Dag Apt Repository) + (included in RPMs when building with --define "distro rh") + +* Mon Jul 19 2010 Jakub Kruszona-Zawadzki <contact@moosefs.com> - 1.6.16-1 +- added mfscgiserv man page + +* Fri Jun 11 2010 Jakub Bogusz <contact@moosefs.com> - 1.6.15-1 +- initial spec file, based on Debian packaging; + partially inspired by spec file by Kirby Zhou |