Skip to content

Commit 6d0a6fc

Browse files
committed
Merge remote-tracking branch 'origin/master' into v2-alpha
2 parents 3186e89 + 510cd13 commit 6d0a6fc

12 files changed

+280
-364
lines changed

.travis.yml

+30-39
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ script:
2828
# compile and find the code size with the smallest configuration
2929
- make clean size
3030
OBJ="$(ls lfs*.o | tr '\n' ' ')"
31-
CFLAGS+="-DLFS_NO{ASSERT,DEBUG,WARN,ERROR}"
31+
CFLAGS+="-DLFS_NO_ASSERT -DLFS_NO_DEBUG -DLFS_NO_WARN -DLFS_NO_ERROR"
3232
| tee sizes
3333

3434
# update status if we succeeded, compare with master if possible
@@ -135,53 +135,44 @@ jobs:
135135
- STAGE=deploy
136136
- NAME=deploy
137137
script:
138-
# Update tag for version defined in lfs.h
138+
# Find version defined in lfs.h
139139
- LFS_VERSION=$(grep -ox '#define LFS_VERSION .*' lfs.h | cut -d ' ' -f3)
140140
- LFS_VERSION_MAJOR=$((0xffff & ($LFS_VERSION >> 16)))
141141
- LFS_VERSION_MINOR=$((0xffff & ($LFS_VERSION >> 0)))
142-
- LFS_VERSION="v$LFS_VERSION_MAJOR.$LFS_VERSION_MINOR"
143-
- echo "littlefs version $LFS_VERSION"
142+
# Grab latests patch from repo tags, default to 0
143+
- LFS_VERSION_PATCH=$(curl -f -u "$GEKY_BOT_RELEASES"
144+
https://api.github.com/repos/$TRAVIS_REPO_SLUG/git/refs
145+
| jq 'map(.ref | match(
146+
"refs/tags/v'"$LFS_VERSION_MAJOR"'\\.'"$LFS_VERSION_MINOR"'\\.(.*)$")
147+
.captures[].string | tonumber + 1) | max // 0')
148+
# We have our new version
149+
- LFS_VERSION="v$LFS_VERSION_MAJOR.$LFS_VERSION_MINOR.$LFS_VERSION_PATCH"
150+
- echo "VERSION $LFS_VERSION"
144151
- |
145-
curl -u $GEKY_BOT_RELEASES -X POST \
146-
https://api.github.com/repos/$TRAVIS_REPO_SLUG/git/refs \
147-
-d "{
148-
\"ref\": \"refs/tags/$LFS_VERSION\",
149-
\"sha\": \"$TRAVIS_COMMIT\"
150-
}"
151-
- |
152-
curl -f -u $GEKY_BOT_RELEASES -X PATCH \
153-
https://api.github.com/repos/$TRAVIS_REPO_SLUG/git/refs/tags/$LFS_VERSION \
154-
-d "{
155-
\"sha\": \"$TRAVIS_COMMIT\"
156-
}"
157-
# Create release notes from commits
158-
- LFS_PREV_VERSION="v$LFS_VERSION_MAJOR.$(($LFS_VERSION_MINOR-1))"
159-
- |
160-
if [ $(git tag -l "$LFS_PREV_VERSION") ]
152+
# Check that we're the most recent commit
153+
CURRENT_COMMIT=$(curl -f -u "$GEKY_BOT_RELEASES" \
154+
https://api.github.com/repos/$TRAVIS_REPO_SLUG/commits/master \
155+
| jq -re '.sha')
156+
if [ "$TRAVIS_COMMIT" == "$CURRENT_COMMIT" ]
161157
then
162-
curl -u $GEKY_BOT_RELEASES -X POST \
158+
# Build release notes
159+
PREV=$(git tag --sort=-v:refname -l "v*" | head -1)
160+
if [ ! -z "$PREV" ]
161+
then
162+
echo "PREV $PREV"
163+
CHANGES=$'### Changes\n\n'$( \
164+
git log --oneline $PREV.. --grep='^Merge' --invert-grep)
165+
printf "CHANGES\n%s\n\n" "$CHANGES"
166+
fi
167+
# Create the release
168+
curl -f -u "$GEKY_BOT_RELEASES" -X POST \
163169
https://api.github.com/repos/$TRAVIS_REPO_SLUG/releases \
164170
-d "{
165171
\"tag_name\": \"$LFS_VERSION\",
166-
\"name\": \"$LFS_VERSION\"
172+
\"target_commitish\": \"$TRAVIS_COMMIT\",
173+
\"name\": \"${LFS_VERSION%.0}\",
174+
\"body\": $(jq -sR '.' <<< "$CHANGES")
167175
}"
168-
RELEASE=$(
169-
curl -f -u $GEKY_BOT_RELEASES \
170-
https://api.github.com/repos/$TRAVIS_REPO_SLUG/releases/tags/$LFS_VERSION
171-
)
172-
CHANGES=$(
173-
git log --oneline $LFS_PREV_VERSION.. --grep='^Merge' --invert-grep
174-
)
175-
curl -f -u $GEKY_BOT_RELEASES -X PATCH \
176-
https://api.github.com/repos/$TRAVIS_REPO_SLUG/releases/$(
177-
jq -r '.id' <<< "$RELEASE"
178-
) \
179-
-d "$(
180-
jq -s '{
181-
"body": ((.[0] // "" | sub("(?<=\n)#+ Changes.*"; ""; "mi"))
182-
+ "### Changes\n\n" + .[1])
183-
}' <(jq '.body' <<< "$RELEASE") <(jq -sR '.' <<< "$CHANGES")
184-
)"
185176
fi
186177
187178
# Manage statuses

LICENSE.md

+24-165
Original file line numberDiff line numberDiff line change
@@ -1,165 +1,24 @@
1-
Apache License
2-
Version 2.0, January 2004
3-
http://www.apache.org/licenses/
4-
5-
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6-
7-
1. Definitions.
8-
9-
"License" shall mean the terms and conditions for use, reproduction, and
10-
distribution as defined by Sections 1 through 9 of this document.
11-
12-
"Licensor" shall mean the copyright owner or entity authorized by the copyright
13-
owner that is granting the License.
14-
15-
"Legal Entity" shall mean the union of the acting entity and all other entities
16-
that control, are controlled by, or are under common control with that entity.
17-
For the purposes of this definition, "control" means (i) the power, direct or
18-
indirect, to cause the direction or management of such entity, whether by
19-
contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
20-
outstanding shares, or (iii) beneficial ownership of such entity.
21-
22-
"You" (or "Your") shall mean an individual or Legal Entity exercising
23-
permissions granted by this License.
24-
25-
"Source" form shall mean the preferred form for making modifications, including
26-
but not limited to software source code, documentation source, and configuration
27-
files.
28-
29-
"Object" form shall mean any form resulting from mechanical transformation or
30-
translation of a Source form, including but not limited to compiled object code,
31-
generated documentation, and conversions to other media types.
32-
33-
"Work" shall mean the work of authorship, whether in Source or Object form, made
34-
available under the License, as indicated by a copyright notice that is included
35-
in or attached to the work (an example is provided in the Appendix below).
36-
37-
"Derivative Works" shall mean any work, whether in Source or Object form, that
38-
is based on (or derived from) the Work and for which the editorial revisions,
39-
annotations, elaborations, or other modifications represent, as a whole, an
40-
original work of authorship. For the purposes of this License, Derivative Works
41-
shall not include works that remain separable from, or merely link (or bind by
42-
name) to the interfaces of, the Work and Derivative Works thereof.
43-
44-
"Contribution" shall mean any work of authorship, including the original version
45-
of the Work and any modifications or additions to that Work or Derivative Works
46-
thereof, that is intentionally submitted to Licensor for inclusion in the Work
47-
by the copyright owner or by an individual or Legal Entity authorized to submit
48-
on behalf of the copyright owner. For the purposes of this definition,
49-
"submitted" means any form of electronic, verbal, or written communication sent
50-
to the Licensor or its representatives, including but not limited to
51-
communication on electronic mailing lists, source code control systems, and
52-
issue tracking systems that are managed by, or on behalf of, the Licensor for
53-
the purpose of discussing and improving the Work, but excluding communication
54-
that is conspicuously marked or otherwise designated in writing by the copyright
55-
owner as "Not a Contribution."
56-
57-
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf
58-
of whom a Contribution has been received by Licensor and subsequently
59-
incorporated within the Work.
60-
61-
2. Grant of Copyright License.
62-
63-
Subject to the terms and conditions of this License, each Contributor hereby
64-
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
65-
irrevocable copyright license to reproduce, prepare Derivative Works of,
66-
publicly display, publicly perform, sublicense, and distribute the Work and such
67-
Derivative Works in Source or Object form.
68-
69-
3. Grant of Patent License.
70-
71-
Subject to the terms and conditions of this License, each Contributor hereby
72-
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
73-
irrevocable (except as stated in this section) patent license to make, have
74-
made, use, offer to sell, sell, import, and otherwise transfer the Work, where
75-
such license applies only to those patent claims licensable by such Contributor
76-
that are necessarily infringed by their Contribution(s) alone or by combination
77-
of their Contribution(s) with the Work to which such Contribution(s) was
78-
submitted. If You institute patent litigation against any entity (including a
79-
cross-claim or counterclaim in a lawsuit) alleging that the Work or a
80-
Contribution incorporated within the Work constitutes direct or contributory
81-
patent infringement, then any patent licenses granted to You under this License
82-
for that Work shall terminate as of the date such litigation is filed.
83-
84-
4. Redistribution.
85-
86-
You may reproduce and distribute copies of the Work or Derivative Works thereof
87-
in any medium, with or without modifications, and in Source or Object form,
88-
provided that You meet the following conditions:
89-
90-
You must give any other recipients of the Work or Derivative Works a copy of
91-
this License; and
92-
You must cause any modified files to carry prominent notices stating that You
93-
changed the files; and
94-
You must retain, in the Source form of any Derivative Works that You distribute,
95-
all copyright, patent, trademark, and attribution notices from the Source form
96-
of the Work, excluding those notices that do not pertain to any part of the
97-
Derivative Works; and
98-
If the Work includes a "NOTICE" text file as part of its distribution, then any
99-
Derivative Works that You distribute must include a readable copy of the
100-
attribution notices contained within such NOTICE file, excluding those notices
101-
that do not pertain to any part of the Derivative Works, in at least one of the
102-
following places: within a NOTICE text file distributed as part of the
103-
Derivative Works; within the Source form or documentation, if provided along
104-
with the Derivative Works; or, within a display generated by the Derivative
105-
Works, if and wherever such third-party notices normally appear. The contents of
106-
the NOTICE file are for informational purposes only and do not modify the
107-
License. You may add Your own attribution notices within Derivative Works that
108-
You distribute, alongside or as an addendum to the NOTICE text from the Work,
109-
provided that such additional attribution notices cannot be construed as
110-
modifying the License.
111-
You may add Your own copyright statement to Your modifications and may provide
112-
additional or different license terms and conditions for use, reproduction, or
113-
distribution of Your modifications, or for any such Derivative Works as a whole,
114-
provided Your use, reproduction, and distribution of the Work otherwise complies
115-
with the conditions stated in this License.
116-
117-
5. Submission of Contributions.
118-
119-
Unless You explicitly state otherwise, any Contribution intentionally submitted
120-
for inclusion in the Work by You to the Licensor shall be under the terms and
121-
conditions of this License, without any additional terms or conditions.
122-
Notwithstanding the above, nothing herein shall supersede or modify the terms of
123-
any separate license agreement you may have executed with Licensor regarding
124-
such Contributions.
125-
126-
6. Trademarks.
127-
128-
This License does not grant permission to use the trade names, trademarks,
129-
service marks, or product names of the Licensor, except as required for
130-
reasonable and customary use in describing the origin of the Work and
131-
reproducing the content of the NOTICE file.
132-
133-
7. Disclaimer of Warranty.
134-
135-
Unless required by applicable law or agreed to in writing, Licensor provides the
136-
Work (and each Contributor provides its Contributions) on an "AS IS" BASIS,
137-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
138-
including, without limitation, any warranties or conditions of TITLE,
139-
NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
140-
solely responsible for determining the appropriateness of using or
141-
redistributing the Work and assume any risks associated with Your exercise of
142-
permissions under this License.
143-
144-
8. Limitation of Liability.
145-
146-
In no event and under no legal theory, whether in tort (including negligence),
147-
contract, or otherwise, unless required by applicable law (such as deliberate
148-
and grossly negligent acts) or agreed to in writing, shall any Contributor be
149-
liable to You for damages, including any direct, indirect, special, incidental,
150-
or consequential damages of any character arising as a result of this License or
151-
out of the use or inability to use the Work (including but not limited to
152-
damages for loss of goodwill, work stoppage, computer failure or malfunction, or
153-
any and all other commercial damages or losses), even if such Contributor has
154-
been advised of the possibility of such damages.
155-
156-
9. Accepting Warranty or Additional Liability.
157-
158-
While redistributing the Work or Derivative Works thereof, You may choose to
159-
offer, and charge a fee for, acceptance of support, warranty, indemnity, or
160-
other liability obligations and/or rights consistent with this License. However,
161-
in accepting such obligations, You may act only on Your own behalf and on Your
162-
sole responsibility, not on behalf of any other Contributor, and only if You
163-
agree to indemnify, defend, and hold each Contributor harmless for any liability
164-
incurred by, or claims asserted against, such Contributor by reason of your
165-
accepting any such warranty or additional liability.
1+
Copyright (c) 2017, Arm Limited. All rights reserved.
2+
3+
Redistribution and use in source and binary forms, with or without modification,
4+
are permitted provided that the following conditions are met:
5+
6+
- Redistributions of source code must retain the above copyright notice, this
7+
list of conditions and the following disclaimer.
8+
- Redistributions in binary form must reproduce the above copyright notice, this
9+
list of conditions and the following disclaimer in the documentation and/or
10+
other materials provided with the distribution.
11+
- Neither the name of ARM nor the names of its contributors may be used to
12+
endorse or promote products derived from this software without specific prior
13+
written permission.
14+
15+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
19+
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
22+
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Makefile

+8-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
TARGET = lfs
1+
TARGET = lfs.a
2+
ifneq ($(wildcard test.c main.c),)
3+
override TARGET = lfs
4+
endif
25

36
CC ?= gcc
47
AR ?= ar
@@ -22,7 +25,7 @@ ifdef WORD
2225
override CFLAGS += -m$(WORD)
2326
endif
2427
override CFLAGS += -I.
25-
override CFLAGS += -std=c99 -Wall -pedantic
28+
override CFLAGS += -std=c99 -Wall -pedantic -Wshadow -Wunused-parameter
2629

2730

2831
all: $(TARGET)
@@ -36,7 +39,9 @@ size: $(OBJ)
3639
test: test_format test_dirs test_files test_seek test_truncate \
3740
test_entries test_interspersed test_alloc test_paths test_attrs \
3841
test_move test_orphan test_corrupt
42+
@rm test.c
3943
test_%: tests/test_%.sh
44+
4045
ifdef QUIET
4146
@./$< | sed -n '/^[-=]/p'
4247
else
@@ -45,7 +50,7 @@ endif
4550

4651
-include $(DEP)
4752

48-
$(TARGET): $(OBJ)
53+
lfs: $(OBJ)
4954
$(CC) $(CFLAGS) $^ $(LFLAGS) -o $@
5055

5156
%.a: $(OBJ)

README.md

+13
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,19 @@ The tests assume a Linux environment and can be started with make:
146146
make test
147147
```
148148

149+
## License
150+
151+
The littlefs is provided under the [BSD-3-Clause](https://spdx.org/licenses/BSD-3-Clause.html)
152+
license. See [LICENSE.md](LICENSE.md) for more information. Contributions to
153+
this project are accepted under the same license.
154+
155+
Individual files contain the following tag instead of the full license text.
156+
157+
SPDX-License-Identifier: BSD-3-Clause
158+
159+
This enables machine processing of license information based on the SPDX
160+
License Identifiers that are here available: http://spdx.org/licenses/
161+
149162
## Related projects
150163

151164
[Mbed OS](https://github.com/ARMmbed/mbed-os/tree/master/features/filesystem/littlefs) -

0 commit comments

Comments
 (0)