├── AUTHORS.md ├── Changelog ├── .github └── ISSUE_TEMPLATE │ └── bug_report.md ├── README.md ├── Changelog.md ├── SECURITY.md ├── LICENSE ├── CODE_OF_CONDUCT.md ├── bin ├── schema2ldif └── ldap-schema-manager ├── man ├── schema2ldif.1 └── ldap-schema-manager.1 └── CONTRIBUTING.md /AUTHORS.md: -------------------------------------------------------------------------------- 1 | Schema2ldif AUTHORS 2 | =================== 3 | 4 | This is the alphabetical list of all people that have 5 | contributed to the schema2ldif project, beeing code, translations, 6 | documentation and additional help. 7 | 8 | * Benoit Mortier 9 | Butracking, QA 10 | 11 | * Bernigaud Côme 12 | main developer 13 | 14 | * Jonathan Swaelens 15 | Bugtracking, QA 16 | -------------------------------------------------------------------------------- /Changelog: -------------------------------------------------------------------------------- 1 | Schema2ldif changelog 2 | ========================= 3 | 4 | * Schema2ldif 1.3 5 | 6 | [Feature] Bugs #5478: We should have a generic tool ldap-schema-manager 7 | 8 | * Schema2ldif 1.2 9 | 10 | [Fix] Bugs #4572: update and correct BSD license 11 | [Fix] Bugs #4573: refresh the manpage that have a wrong version number 12 | [Fix] Bugs #4574: refresh copyright date on schema2ldif 13 | 14 | * Schema2ldif 1.1 15 | 16 | [Fix] Bugs #2831: create a changelog for schema2ldif 17 | 18 | * Schema2ldif 1.0 19 | 20 | [Fix] Bugs #2282: cn inside schema conversion should not have .schema behind schema name 21 | [Fix] Bugs #2337: nova_openldap schema failed insertion 22 | [Fix] Bugs #2368: Doesn't work for schac.schema 23 | [Fix] Wishlist #2283: A license should be chosen for the tool 24 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Run '...' 16 | 2. Get output '..' 17 | 2. See error 18 | 19 | **Expected behavior** 20 | A clear and concise description of what you expected to happen. 21 | 22 | **Screenshots** 23 | If applicable, add screenshots to help explain your problem. 24 | 25 | **Desktop (please complete the following information):** 26 | - OS: [e.g. iOS] 27 | - Perl: [ 5.24 ] 28 | - Version [e.g. 1.2] 29 | 30 | **Additional context** 31 | Add any other context about the problem here. 32 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # schema2ldif 2 | 3 | schema2ldif is an Utility to manage schema in .schema and .ldif format. 4 | 5 | ## Features 6 | 7 | The project consists of two utilities: 8 | 9 | * `schema2ldif`: this tool allows to convert a file.schema to file.ldif necessary to insert it in an OpenLDAP server. 10 | * `ldap-schema-manager`: this tool is useful for managing schemas in an OpenLDAP server in an easy way, supported operations include 11 | * insertion; 12 | * modification; 13 | * listing of schemas; 14 | * deletion; 15 | * other management functionalities. 16 | 17 | ## Installation and upgrade of schema2ldif 18 | 19 | The installation and upgrade information is available on [Install Schema2ldif](https://fusiondirectory-user-manual.readthedocs.io/en/1.3/schema2ldif/index.html) 20 | 21 | ## License 22 | 23 | schema2ldif is [BSD 3-clause](LICENSE). 24 | -------------------------------------------------------------------------------- /Changelog.md: -------------------------------------------------------------------------------- 1 | ## %"Schema2ldif 1.3" - 2017-04-20 2 | 3 | ### Added 4 | 5 | #### schema2ldif 6 | - schema2ldif#5478 We should have a generic tool ldap-schema-manager 7 | 8 | ### Changed 9 | 10 | #### schema2ldif 11 | - schema2ldif#5483 :books: docs: add latest version of contributing.md 12 | 13 | ## %"Schema2ldif 1.2" - 2016-05-04 14 | 15 | ### Changed 16 | 17 | #### schema2ldif 18 | - schema2ldif#4573 refresh the manpage that have a wrong version number 19 | - schema2ldif#4574 refresh copyright date on schema2ldif 20 | 21 | ### Fixed 22 | 23 | #### schema2ldif 24 | - schema2ldif#4572 update and correct BSD license 25 | 26 | ## %"Schema2ldif 1.1" - 2014-07-04 27 | 28 | ### Added 29 | 30 | #### schema2ldif 31 | - schema2ldif#2831 create a changelog for schema2ldif 32 | 33 | ## %"Schema2ldif 1.0" - 2013-05-06 34 | 35 | ### Added 36 | 37 | #### schema2ldif 38 | - schema2ldif#2283 A license should be chosen for the tool 39 | 40 | ### Fixed 41 | 42 | #### schema2ldif 43 | - schema2ldif#2282 Cn inside schema conversion should not have .schema behind schema name 44 | - schema2ldif#2337 nova_openldap schema failed insertion 45 | - schema2ldif#2368 Doesn't work for schac.schema 46 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | ### Reporting Security Vulnerabilities 2 | 3 | Although we try to be proactive in preventing security concerns, it is unfortunately inevitable that security breaches will be discovered in all software, including our own. 4 | 5 | It is common practice in open source to disclose a security concern to the vendor in a responsible and private manner prior to publication, so that a patch can be prepared, and so that we can take proactive measures to protect FusionDirectory users. 6 | 7 | ### What is a “security” issue ? 8 | 9 | A security issue is a type of bug that can affect the security of FusionDirectory installations. 10 | 11 | Specifically, it is a report of a bug that you have found in the code for FusionDirectory and that you have determined can be used to gain some level of access to a site running FusionDirectory that you should not have. 12 | 13 | ### Where do I report security issues ? 14 | 15 | If you would like to contact us with a security vulnerability or possible vulnerability, please contact us via email [security@fusiondirectory.org](mailto:security@fusiondirectory.org). 16 | 17 | Your email can be signed with the following public gpg key : 18 | 19 | Benoit Mortier : **32BA 180F 6E14 7B5F 52BE 6322 EF2F F1E4 8638 EAD1** 20 | 21 | **In any case, you should not share details with anyone else until the bug fix has been officially released.** 22 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | License: BSD-3-clause 2 | 3 | Copyright (c) 2013 FusionDirectory project 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions 8 | are met: 9 | . 10 | - Redistributions of source code must retain the above copyright notice, 11 | this list of conditions and the following disclaimer. 12 | - Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | - Neither the name of the copyright holder nor the names of its contributors 16 | may be used to endorse or promote products derived from this software 17 | without specific prior written permission. 18 | . 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 23 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 27 | STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, gender identity and expression, level of experience, 9 | nationality, personal appearance, race, religion, or sexual identity and 10 | orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at . All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at [https://www.contributor-covenant.org/version/1/4][version] 72 | 73 | [homepage]: https://www.contributor-covenant.org 74 | [version]: https://www.contributor-covenant.org/version/1/4/ 75 | -------------------------------------------------------------------------------- /bin/schema2ldif: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | 3 | # 4 | # schema2ldif: Tool for converting OpenLDAP-style schemas to the LDIF format 5 | # See pod documentation at the end of the file 6 | # 7 | 8 | use strict; 9 | use warnings; 10 | 11 | use 5.008; 12 | 13 | use Getopt::Long; 14 | use Pod::Usage; 15 | 16 | my $cn = "" ; 17 | my $branch = "cn=schema,cn=config"; 18 | my $help = 0; 19 | 20 | # Process command-line 21 | 22 | GetOptions( 23 | 'help|?' => \$help, 24 | 'cn=s' => \$cn, 25 | 'branch=s' => \$branch, 26 | ) or pod2usage(2); 27 | pod2usage(1) if $help; 28 | 29 | 30 | if ($cn eq '') { 31 | if (@ARGV <= 0) { 32 | pod2usage(2); 33 | } 34 | $cn = $ARGV[0]; 35 | die "Error: $cn is not a file\n" unless -f $cn; 36 | 37 | $cn =~ s|^(.*/)?([^/]+)\.[^.]+$|$2|; 38 | } 39 | 40 | # [openldap.ldif] 41 | # In addition to the actual schema directives, the file needs a small 42 | # header to make it a valid LDAP entry. This header must provide the 43 | # dn of the entry, the objectClass, and the cn, as shown here: 44 | print "dn: cn=$cn,$branch\n"; 45 | print "objectClass: olcSchemaConfig\n"; 46 | print "cn: $cn\n"; 47 | 48 | # Reading the input schema file in loop 49 | # processing definitions 50 | while (<>) { 51 | # Comments 52 | if (/^\s*#/) { 53 | # Pass the comments to output file 54 | print; 55 | next; 56 | } 57 | 58 | chomp; 59 | 60 | # [openldap.ldif] 61 | # In LDIF, a blank line terminates an entry. Blank lines in a *.schema 62 | # file should be replaced with a single '#' to turn them into 63 | # comments, or they should just be removed. 64 | next if m/^$/; 65 | 66 | # [openldap.ldif] 67 | # First a basic string substitution can be done on each of the keywords: 68 | # objectIdentifier -> olcObjectIdentifier: 69 | # objectClass -> olcObjectClasses: 70 | # attributeType -> olcAttributeTypes: 71 | s/^objectidentifier/olcObjectIdentifier:/i; 72 | s/^attributetype/olcAttributeTypes:/i; 73 | s/^objectclass/olcObjectClasses:/i; 74 | 75 | # [openldap.ldif] 76 | # Then leading whitespace must be fixed. The slapd.conf format allows 77 | # tabs or spaces to denote line continuation, while LDIF only allows 78 | # the space character. 79 | # Also slapd.conf preserves the continuation character, while LDIF strips 80 | # it out. So a single TAB/SPACE in slapd.conf must be replaced with 81 | # two SPACEs in LDIF, otherwise the continued text may get joined as 82 | # a single word. 83 | s/^\s+/ /; 84 | 85 | print; 86 | print "\n"; 87 | } 88 | 89 | __END__ 90 | 91 | =head1 NAME 92 | 93 | schema2ldif - Tool for converting OpenLDAP-style schemas to the LDIF format 94 | 95 | =head1 SYNOPSIS 96 | 97 | B [I] [I] > file.ldif 98 | 99 | =head1 DESCRIPTION 100 | 101 | B will read the given input file and convert it to an LDIF file that you can insert into your LDAP directory. 102 | If B is not provided, will read from standard input. In this case, cn option is mandatory. 103 | Otherwise, the name of the file (without extension) will be used as cn. 104 | 105 | =head1 OPTIONS 106 | 107 | =over 8 108 | 109 | =item B<-h>, B<--help> 110 | 111 | Print a brief help message and exits. 112 | 113 | =item B<-c>, B<--cn>=I 114 | 115 | Use CN as cn for the schema (mandatory if no file provided) 116 | 117 | =item B<-b>, B<--branch>=I 118 | 119 | Use BRANCH instead of cn=schema,cn=config 120 | 121 | =back 122 | 123 | =head1 BUGS 124 | 125 | Please report any bugs, or post any suggestions, to the fusiondirectory mailing list users@lists.fusiondirectory.org or to 126 | https://gitlab.fusiondirectory.org/fusiondirectory/schema2ldif/-/issues 127 | 128 | =head1 AUTHOR 129 | 130 | Come Bernigaud 131 | 132 | =head1 LICENCE AND COPYRIGHT 133 | 134 | =over 2 135 | 136 | =item Copyright (C) 2013-2017 FusionDirectory project 137 | 138 | =back 139 | 140 | License BSD 141 | 142 | This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE file for more details. 143 | 144 | =cut 145 | -------------------------------------------------------------------------------- /man/schema2ldif.1: -------------------------------------------------------------------------------- 1 | .\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) 2 | .\" 3 | .\" Standard preamble: 4 | .\" ======================================================================== 5 | .de Sp \" Vertical space (when we can't use .PP) 6 | .if t .sp .5v 7 | .if n .sp 8 | .. 9 | .de Vb \" Begin verbatim text 10 | .ft CW 11 | .nf 12 | .ne \\$1 13 | .. 14 | .de Ve \" End verbatim text 15 | .ft R 16 | .fi 17 | .. 18 | .\" Set up some character translations and predefined strings. \*(-- will 19 | .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left 20 | .\" double quote, and \*(R" will give a right double quote. \*(C+ will 21 | .\" give a nicer C++. Capital omega is used to do unbreakable dashes and 22 | .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, 23 | .\" nothing in troff, for use with C<>. 24 | .tr \(*W- 25 | .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' 26 | .ie n \{\ 27 | . ds -- \(*W- 28 | . ds PI pi 29 | . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch 30 | . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch 31 | . ds L" "" 32 | . ds R" "" 33 | . ds C` "" 34 | . ds C' "" 35 | 'br\} 36 | .el\{\ 37 | . ds -- \|\(em\| 38 | . ds PI \(*p 39 | . ds L" `` 40 | . ds R" '' 41 | . ds C` 42 | . ds C' 43 | 'br\} 44 | .\" 45 | .\" Escape single quotes in literal strings from groff's Unicode transform. 46 | .ie \n(.g .ds Aq \(aq 47 | .el .ds Aq ' 48 | .\" 49 | .\" If the F register is >0, we'll generate index entries on stderr for 50 | .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index 51 | .\" entries marked with X<> in POD. Of course, you'll have to process the 52 | .\" output yourself in some meaningful fashion. 53 | .\" 54 | .\" Avoid warning from groff about undefined register 'F'. 55 | .de IX 56 | .. 57 | .nr rF 0 58 | .if \n(.g .if rF .nr rF 1 59 | .if (\n(rF:(\n(.g==0)) \{\ 60 | . if \nF \{\ 61 | . de IX 62 | . tm Index:\\$1\t\\n%\t"\\$2" 63 | .. 64 | . if !\nF==2 \{\ 65 | . nr % 0 66 | . nr F 2 67 | . \} 68 | . \} 69 | .\} 70 | .rr rF 71 | .\" 72 | .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). 73 | .\" Fear. Run. Save yourself. No user-serviceable parts. 74 | . \" fudge factors for nroff and troff 75 | .if n \{\ 76 | . ds #H 0 77 | . ds #V .8m 78 | . ds #F .3m 79 | . ds #[ \f1 80 | . ds #] \fP 81 | .\} 82 | .if t \{\ 83 | . ds #H ((1u-(\\\\n(.fu%2u))*.13m) 84 | . ds #V .6m 85 | . ds #F 0 86 | . ds #[ \& 87 | . ds #] \& 88 | .\} 89 | . \" simple accents for nroff and troff 90 | .if n \{\ 91 | . ds ' \& 92 | . ds ` \& 93 | . ds ^ \& 94 | . ds , \& 95 | . ds ~ ~ 96 | . ds / 97 | .\} 98 | .if t \{\ 99 | . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" 100 | . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' 101 | . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' 102 | . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' 103 | . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' 104 | . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' 105 | .\} 106 | . \" troff and (daisy-wheel) nroff accents 107 | .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' 108 | .ds 8 \h'\*(#H'\(*b\h'-\*(#H' 109 | .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] 110 | .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' 111 | .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' 112 | .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] 113 | .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] 114 | .ds ae a\h'-(\w'a'u*4/10)'e 115 | .ds Ae A\h'-(\w'A'u*4/10)'E 116 | . \" corrections for vroff 117 | .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' 118 | .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' 119 | . \" for low resolution devices (crt and lpr) 120 | .if \n(.H>23 .if \n(.V>19 \ 121 | \{\ 122 | . ds : e 123 | . ds 8 ss 124 | . ds o a 125 | . ds d- d\h'-1'\(ga 126 | . ds D- D\h'-1'\(hy 127 | . ds th \o'bp' 128 | . ds Th \o'LP' 129 | . ds ae ae 130 | . ds Ae AE 131 | .\} 132 | .rm #[ #] #H #V #F C 133 | .\" ======================================================================== 134 | .\" 135 | .IX Title "SCHEMA2LDIF 1" 136 | .TH SCHEMA2LDIF 1 "2020-07-22" "FusionDirectory 1.4" "FusionDirectory Documentation" 137 | .\" For nroff, turn off justification. Always turn off hyphenation; it makes 138 | .\" way too many mistakes in technical documents. 139 | .if n .ad l 140 | .nh 141 | .SH "NAME" 142 | schema2ldif \- Tool for converting OpenLDAP\-style schemas to the LDIF format 143 | .SH "SYNOPSIS" 144 | .IX Header "SYNOPSIS" 145 | \&\fBschema2ldif\fR [\fIoptions\fR] [\fI\s-1FILE\s0\fR] > file.ldif 146 | .SH "DESCRIPTION" 147 | .IX Header "DESCRIPTION" 148 | \&\fBschema2ldif\fR will read the given input file and convert it to an \s-1LDIF\s0 file that you can insert into your \s-1LDAP\s0 directory. 149 | If \fB\s-1FILE\s0\fR is not provided, will read from standard input. In this case, cn option is mandatory. 150 | Otherwise, the name of the file (without extension) will be used as cn. 151 | .SH "OPTIONS" 152 | .IX Header "OPTIONS" 153 | .IP "\fB\-h\fR, \fB\-\-help\fR" 8 154 | .IX Item "-h, --help" 155 | Print a brief help message and exits. 156 | .IP "\fB\-c\fR, \fB\-\-cn\fR=\fI\s-1CN\s0\fR" 8 157 | .IX Item "-c, --cn=CN" 158 | Use \s-1CN\s0 as cn for the schema (mandatory if no file provided) 159 | .IP "\fB\-b\fR, \fB\-\-branch\fR=\fI\s-1BRANCH\s0\fR" 8 160 | .IX Item "-b, --branch=BRANCH" 161 | Use \s-1BRANCH\s0 instead of cn=schema,cn=config 162 | .SH "BUGS" 163 | .IX Header "BUGS" 164 | Please report any bugs, or post any suggestions, to the fusiondirectory mailing list users@lists.fusiondirectory.org or to 165 | https://gitlab.fusiondirectory.org/fusiondirectory/schema2ldif/\-/issues 166 | .SH "AUTHOR" 167 | .IX Header "AUTHOR" 168 | Come Bernigaud 169 | .SH "LICENCE AND COPYRIGHT" 170 | .IX Header "LICENCE AND COPYRIGHT" 171 | .IP "Copyright (C) 2013\-2017 FusionDirectory project" 2 172 | .IX Item "Copyright (C) 2013-2017 FusionDirectory project" 173 | .PP 174 | License \s-1BSD\s0 175 | .PP 176 | This program is distributed in the hope that it will be useful, but \s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of \s-1MERCHANTABILITY\s0 or \s-1FITNESS FOR A PARTICULAR PURPOSE.\s0 See the \s-1LICENSE\s0 file for more details. 177 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to FusionDirectory projects 2 | 3 | ## Table Of Contents 4 | 5 | 1. [Welcome](#Welcome) 6 | 2. [Code of Conduct](#code-of-conduct) 7 | 3. [I just have a question!](#i-just-have-a-question) 8 | 4. [How Can I Contribute?](#how-can-i-contribute) 9 | * [Finding Wonderful Bugs](#finding-wonderful-bugs) 10 | * [Any Feedback To Enhance Our Apps](#any-feedback-to-enhance-our-apps) 11 | * [Your Awesome And Mighty Codes Contributions](#your-awesome-and-mighty-codes-contributions) 12 | 5. [Coding with style](#coding-with-style) 13 | * [Git Commit Messages](#git-commit-messages) 14 | 6. [Licensing](#licensing) 15 | 16 | --- 17 | ## Welcome 18 | 19 | > «Here's a list of our guidelines, If you want to share a best practice, or think one of these guidelines should be removed, feel free to share it with us.» 20 | 21 | :tada: First off, thanks for taking the time to contribute! 22 | 23 | Now, sit comfortably at the fireplace, grab your glasses and immerse yourself in our documentation. 24 | 25 | ## Code Of Conduct 26 | 27 | All projects and everyone participating in it is governed by [FusionDirectory Code Of Conduct](./CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please read this before. 28 | 29 | ## I just have a question! 30 | 31 | > **Note:** Please don't file an issue to ask a question. You'll get faster results by using the resource below. 32 | 33 | We have an various channel of communications 34 | 35 | * [#fusiondirectory, the irc channel of FusionDirectory on Libera](https://web.libera.chat/), channel #fusiondirectory 36 | * [FusionDirectory Users mailing list](https://lists.fusiondirectory.org/wws/info/users) 37 | * [FusionDirectory dev mailing list](https://lists.fusiondirectory.org/wws/info/developpers) 38 | 39 | ## How Can I Contribute? 40 | 41 | So, you've developed a new cool feature? Fixed an annoying bug? Found a mistake? We'd be happy to hear from you! :+1: 42 | 43 | ### Register for a FusionDirectory project account 44 | 45 | To create a FusionDirectory project Account you must go to 46 | 47 | * [FusionDirectory Sign UP](https://register.fusiondirectory.org) 48 | 49 | 50 | ### Finding Wonderful Bugs 51 | 52 | >This section guides you through submitting a bug report. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports. 53 | 54 | When you are creating a bug report, please include as many details as possible. Fill out the **Bugs** template to create issues, the information it asks for helps us resolve issues faster. 55 | 56 | Explain the problem and include additional details to help maintainers reproduce the problem: 57 | 58 | * **Use a clear and descriptive title** for the issue to identify the problem. 59 | * **Describe the exact steps which reproduce the problem** in as many details as possible. 60 | * **Describe the behavior** you observed after following the steps and point out what exactly is the problem with that behavior. 61 | * **Explain which behavior** you expected to see instead and why. 62 | * **Include screenshots and animated GIFs** which show you following the described steps and clearly demonstrate the problem. You can use [this tool](http://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and this tool or [this tool](https://github.com/GNOME/byzanz) on Linux. 63 | * **Include the Perl errors and trace** collected at the debug step above 64 | * **If the problem is linked to a specific LDAP entry** attach its LDAP dump. 65 | 66 | Fill in a report on : 67 | 68 | * [Schema2ldif](https://gitlab.fusiondirectory.org/fusiondirectory/schema2ldif/-/issues) 69 | 70 | ### Any Feedback To Enhance FusionDirectory 71 | 72 | >This section guides you through submitting an enhancement suggestion, including completely new features and minor improvements to existing functionality. Following these guidelines helps maintainers and the community understand your suggestion and find related suggestions. 73 | 74 | 75 | When you are creating a enhancement report, please include as many details as possible. Fill out the **Enhancement** template to create thoses issues, the information it asks for helps us resolve issues faster. 76 | 77 | 78 | * [Schema2ldif](https://gitlab.fusiondirectory.org/fusiondirectory/schema2ldif/-/issues) 79 | 80 | * **Use a clear and descriptive title** for the issue to identify the suggestion. 81 | * **Provide a step-by-step description of the suggested enhancement** in as many details as possible. 82 | * **Describe the current behavior** and **explain which behavior you expected to see instead** and why. 83 | * **Include screenshots and animated GIFs** which help you demonstrate the steps which the suggestion is related to. You can use [this tool](http://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://github.com/GNOME/byzanz) on Linux. 84 | * **Explain why this enhancement would be useful** to most schema2ldif users. 85 | 86 | ### Your awesome And Mighty Codes Contributions 87 | 88 | >This section guides you through submitting an enhancement suggestion, including completely new features and minor improvements to existing functionality. Following these guidelines helps maintainers and the community understand your suggestion and find related suggestions. 89 | 90 | When you are contributing a new fonctionnality please include as many details as possible. 91 | 92 | Fill out the **Contribution** template to create thoses issues, the information it asks for helps us resolve issues faster. 93 | 94 | * [Schema2ldif](https://gitlab.fusiondirectory.org/fusiondirectory/schema2ldif/-/issues) 95 | 96 | 97 | * **Use a clear and descriptive title** for the issue to identify your contribution 98 | * **Provide a step-by-step description of the contribution** in as many details as possible. 99 | * **Include screenshots and animated GIFs** which help you demonstrate what this contribution is about. You can use [this tool](http://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://github.com/GNOME/byzanz) on Linux. 100 | * **Explain why this contribution would be useful** to most Argonaut users. 101 | * **Run** [Perl critic](https://metacpan.org/pod/Perl::Critic) on your code. 102 | 103 | ## Coding with style 104 | 105 | ### Git Commit Messages 106 | 107 | >Having a good guideline for creating commits and sticking to it makes working with Git and collaborating with others a lot easier. 108 | 109 | Here are some rules of thumb : 110 | 111 | * Use the present tense ("Add feature" not "Added feature") 112 | * If you have a body, separate the subject from the body with a newline 113 | * Limit the subject line to 72 characters 114 | * Do not end the subject line with a period 115 | * Use imperative [mood](https://en.wikipedia.org/wiki/Imperative_mood#English) in the subject line 116 | * If the subject is not clear enough, use the body to explain what and why as opposed to how 117 | * Consider starting the commit message with an applicable emoji, when you feel it's an important commit : 118 | * :tada: When first / initial commit 119 | * :sparkles: When introducing new features 120 | * :ambulance: When fixing a bug 121 | * :handshake: When merging files 122 | * :tractor: When you changing file structure or refactoring 123 | * :books: When writing docs 124 | * :gem: When new Release 125 | * :lipstick: For cosmetics purposes 126 | 127 | #### Commit Message Format 128 | Each commit message consists of a **header**, a **body** and a **footer**. The header has a special format that includes a **type**, a **scope** and a **subject**: 129 | 130 | ``` 131 | (): 132 | 133 | 134 | 135 |