FreeNAS/freenas 597b20bsrc/middlewared/middlewared/plugins/network_routes route_sync.py

Log default route failures in route.sync instead of raising

Guard every add, change and delete of the IPv4 and IPv6 default
route so a single netlink failure is logged and the rest of the
sync continues. The IPv6 add and change paths also catch OSError
because the interface named in the gateway may no longer exist.
DeltaFile
+71-26src/middlewared/middlewared/plugins/network_routes/route_sync.py
+71-261 files

FreeNAS/freenas c213a42src/middlewared/middlewared/plugins/truenas license.py, src/middlewared/middlewared/pytest/unit/plugins test_failover.py

Model HA as a license feature instead of a license type

This commit adds changes to follow upstream collapsing enterprise_single and enterprise_ha into a single enterprise type, with HA moving into the features dict as its own key. The HA entitlement becomes an ordinary matrix vector keyed on that feature, so LicenseTypeRule has nothing left to decide and goes away with it.

Legacy blobs predate the feature vocabulary, so the shim injects the HA key when the blob names a second controller serial. That is the same condition which used to pick the enterprise_ha type, which is what keeps every fielded legacy pair licensed for failover.
DeltaFile
+21-16src/middlewared/middlewared/pytest/unit/utils/test_entitlements.py
+34-3src/middlewared/middlewared/pytest/unit/utils/test_license_legacy_utils.py
+3-25src/middlewared/middlewared/utils/entitlements/engine.py
+12-8src/middlewared/middlewared/pytest/unit/plugins/test_failover.py
+2-13src/middlewared/middlewared/utils/entitlements/policy.py
+4-6src/middlewared/middlewared/plugins/truenas/license.py
+76-7119 files not shown
+118-11525 files

LLVM/project b016343libcxxabi/src private_typeinfo.cpp

[libc++abi][NFC] Format private_typeinfo.cpp (#223734)

I'm planning to work on `private_typeinfo.cpp` a bit, so this formats
the file to reduce the diff in later patches.
DeltaFile
+868-1,017libcxxabi/src/private_typeinfo.cpp
+868-1,0171 files

FreeNAS/freenas 1be3cddsrc/middlewared/middlewared/plugins/zfs resource_create.py snapshot_ops.py

NAS-143717 / 26.0.0 / Convert the zfs.resource services to the typesafe pattern (by Qubad786) (#19714)

## Context
`zfs.resource`, `zfs.resource.snapshot` and `zfs.resource.pool` were
already half-converted: public methods carried
`@api_method(check_annotations=True)` against models in `api/v27_0_0/`,
and most in-process consumers already went through `call2`. What was
missing was the structural half - the service classes still held the
implementation. `resource_crud.py` and `snapshot_crud.py` were 800+
lines each, mixing a 117-line create pipeline, destroy validation, path
helpers and per-method exception translation in with the API surface.

## Solution
**Lean shims delegating to module functions.** The three services keep
only their `Config`, decorators and docstrings, and hand off to plain
functions taking a `ServiceContext` - the same shape `ports`, `hardware`
and `boot` already use. The logic lands in
`resource_{query,create,destroy,ops}.py`, `snapshot_ops.py` and
`prefetch_ops.py`. `create_rules.py`'s three pool-inspecting helpers now

    [26 lines not shown]
DeltaFile
+0-843src/middlewared/middlewared/plugins/zfs/snapshot_crud.py
+0-832src/middlewared/middlewared/plugins/zfs/resource_crud.py
+480-0src/middlewared/middlewared/plugins/zfs/snapshot.py
+432-0src/middlewared/middlewared/plugins/zfs/resource.py
+289-0src/middlewared/middlewared/plugins/zfs/snapshot_ops.py
+180-0src/middlewared/middlewared/plugins/zfs/resource_create.py
+1,381-1,67516 files not shown
+1,827-1,83622 files

LLVM/project 9f66052clang/include/clang/Basic IdentifierTable.h, clang/lib/Basic IdentifierTable.cpp

[clang] Unique MultiKeywordSelector with a UniquingSet (NFC) (#223626)

This patch migrates MultiKeywordSelector in SelectorTable from
llvm::FoldingSet to llvm::UniquingSet.

MultiKeywordSelector keys on an ArrayRef<const IdentifierInfo *>.
Switching to UniquingSet allows us to look up multi-keyword selectors
with a typed key, eliminating FoldingSetNodeID serialization at lookup
sites and removing MultiKeywordSelector::Profile.

Assisted-by: Antigravity
DeltaFile
+3-10clang/include/clang/Basic/IdentifierTable.h
+3-6clang/lib/Basic/IdentifierTable.cpp
+6-162 files

LLVM/project 9805babllvm/include/llvm/CodeGen/GlobalISel CombinerHelper.h, llvm/lib/CodeGen/GlobalISel CombinerHelper.cpp

[GlobalISel] Remove dead declarations and functions in CombinerHelper (NFC) (#223624)

CombinerHelper::getDataLayout: Added on July 25, 2024 in commit
db8c84fc7a75dd60bcfff7160b51e1a55e7e0f73 without any callers.

CombinerHelper::tryCombineCopy: The last caller was removed on
September 24, 2023 in commit bc6e7f057340ab0b995cc17a170e34545a295f03.

CombinerHelper::matchCombineMergeUnmerge: The last use was removed on
January 30, 2026 in commit 369e78774aef11f8e1215bb41fdf8db138ce315e.

CombinerHelper::matchCombineAddP2IToPtrAdd,
CombinerHelper::applyCombineAddP2IToPtrAdd: The last use was removed on
September 8, 2026 in commit 3741dacd195aa08b082570077ca89547cb062bc5.

CombinerHelper::matchCombineConstPtrAddToI2P,
CombinerHelper::applyCombineConstPtrAddToI2P: The last use was removed
on
September 8, 2026 in commit 3741dacd195aa08b082570077ca89547cb062bc5.

    [15 lines not shown]
DeltaFile
+0-162llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
+0-46llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
+0-2082 files

LLVM/project 270c5d9llvm/lib/Target/AMDGPU SIRegisterInfo.cpp SIInstrInfo.cpp, llvm/test/CodeGen/AMDGPU fold-fmac-to-fmaak.mir

[AMDGPU] Prevent folding of FMAC into FMAAK with two literals (#217438)

Currently the `foldImmediate` function can fold FMAC into FMAAK with two
literals causing a verifier failure:

```
*** Bad machine code: VOP2/VOP3 instruction uses more than one literal ***
- function:    fold_fmac_to_fmaak
- basic block: %bb.0  (0x627ad4dd40d0)
- instruction: %3:vgpr_16_lo128 = contract nofpexcept V_FMAAK_F16_t16 10526, killed %4:vgpr_16_lo128, 8478, implicit $mode, implicit $exec
```

This change checks if a newly formed FMAAK is valid, and in a case two
literals are used it introduces a MOV to legalize the instruction.
DeltaFile
+181-0llvm/test/CodeGen/AMDGPU/fold-fmac-to-fmaak.mir
+10-0llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+4-0llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
+195-03 files

LLVM/project 5c2e0a0llvm/lib/Frontend/OpenMP OMPDescriptors.inc

[OpenMP] Add descriptors for REDUCTION_KIND and SHIFT (#223702)
DeltaFile
+19-1llvm/lib/Frontend/OpenMP/OMPDescriptors.inc
+19-11 files

LLVM/project 4e48decllvm/test/Analysis/CostModel/AMDGPU cast.ll, llvm/test/Analysis/CostModel/ARM shuffle.ll

Roll-up merge main
DeltaFile
+4,864-0llvm/test/CodeGen/RISCV/smulh.ll
+4,319-0llvm/test/CodeGen/RISCV/umulh.ll
+752-318llvm/test/Analysis/CostModel/ARM/shuffle.ll
+851-0llvm/test/CodeGen/X86/smulh.ll
+746-0llvm/test/CodeGen/X86/umulh.ll
+435-169llvm/test/Analysis/CostModel/AMDGPU/cast.ll
+11,967-487335 files not shown
+26,244-4,984341 files

LLVM/project 72269abllvm/test/Analysis/CostModel/AMDGPU cast.ll, llvm/test/Analysis/CostModel/ARM shuffle.ll

Merge main
DeltaFile
+4,864-0llvm/test/CodeGen/RISCV/smulh.ll
+4,319-0llvm/test/CodeGen/RISCV/umulh.ll
+752-318llvm/test/Analysis/CostModel/ARM/shuffle.ll
+851-0llvm/test/CodeGen/X86/smulh.ll
+746-0llvm/test/CodeGen/X86/umulh.ll
+435-169llvm/test/Analysis/CostModel/AMDGPU/cast.ll
+11,967-487335 files not shown
+26,244-4,984341 files

FreeNAS/freenas 5105b30src/middlewared/middlewared/plugins/zfs exceptions.py resource_crud.py, tests/api2 test_zfs_resource_create.py

Fix zfs.resource.create not-found messages and tier test gating

## Problem
Two separate defects turned up running the `zfs.resource.create` integration tests. `ZFSPathNotFoundException` stores an already-formatted message in `args[0]`, and the create handler pulled that out and repr'd it a second time, so a missing pool surfaced as `Pool "'sometank' not found" does not exist.` rather than naming the pool cleanly; the parent-dataset variant read the same way. Separately, the `tier_pool` fixture gated on `system.is_enterprise`, which does not exist, so the three tiering tests errored with `Method does not exist` on every system instead of either running or skipping.

## Solution
- **Not-found messages**: the exception now keeps the raw path in `self.path`, mirroring what `ZFSPathHasClonesException` already does, and the create handler formats from that instead. Every raise site already passes a bare path, and this was the only place in the plugin treating `args[0]` as one.
- **Tier tests**: use the `entitled` integration-test asset to mock `truenas.entitlements.check` for ZFSTIER. Checking the live entitlement instead would just skip these tests everywhere that isn't licensed for tiering, which is most of our test fleet; mocking it means they actually build the tier pool and exercise the placement and dedup paths.
DeltaFile
+2-3tests/api2/test_zfs_resource_create.py
+1-1src/middlewared/middlewared/plugins/zfs/resource_crud.py
+1-0src/middlewared/middlewared/plugins/zfs/exceptions.py
+4-43 files

FreeNAS/freenas bab0daasrc/middlewared/middlewared/plugins/truenas_s3 bucket_crud.py config.py, src/middlewared/middlewared/pytest/unit/utils test_entitlements.py test_license_legacy_utils.py

NAS-143785 / 26.0.0 / Add the S3_AUDIT and S3_VERSIONING license features (by yocalebo) (#19727)

S3 auditing and bucket versioning are now decided by the license rather
than by the hardware. Both features use a key only rule in the product
matrix, so a system is entitled when its license carries the key, on
appliance and community hardware alike. Legacy licenses do not receive
either key because the S3 service is new and nothing in the field has
it.

The S3 config service asks the entitlement engine instead of reading the
chassis, and bucket validation refuses versioning without the key. The
API descriptions and the integration tests follow, with the tests
toggling the entitlement mock rather than skipping off appliance
hardware.

Audit records still only reach the audit database on appliance hardware
until the audit handler daemon learns to forward S3 records on community
systems. That change lives in the audit_rules repo.


    [2 lines not shown]
DeltaFile
+28-36tests/api2/test_s3_config.py
+7-21src/middlewared/middlewared/plugins/truenas_s3/config.py
+22-4tests/api2/test_s3_bucket.py
+14-7src/middlewared/middlewared/plugins/truenas_s3/bucket_crud.py
+12-0src/middlewared/middlewared/pytest/unit/utils/test_license_legacy_utils.py
+4-0src/middlewared/middlewared/pytest/unit/utils/test_entitlements.py
+87-683 files not shown
+93-689 files

FreeNAS/freenas d88753asrc/middlewared/middlewared/plugins/truenas_s3 bucket_crud.py config.py, src/middlewared/middlewared/pytest/unit/utils test_entitlements.py test_license_legacy_utils.py

NAS-143785 / 26.0.0-RC.1 / Add the S3_AUDIT and S3_VERSIONING license features (by yocalebo) (#19728)

S3 auditing and bucket versioning are now decided by the license rather
than by the hardware. Both features use a key only rule in the product
matrix, so a system is entitled when its license carries the key, on
appliance and community hardware alike. Legacy licenses do not receive
either key because the S3 service is new and nothing in the field has
it.

The S3 config service asks the entitlement engine instead of reading the
chassis, and bucket validation refuses versioning without the key. The
API descriptions and the integration tests follow, with the tests
toggling the entitlement mock rather than skipping off appliance
hardware.

Audit records still only reach the audit database on appliance hardware
until the audit handler daemon learns to forward S3 records on community
systems. That change lives in the audit_rules repo.


    [2 lines not shown]
DeltaFile
+28-36tests/api2/test_s3_config.py
+7-21src/middlewared/middlewared/plugins/truenas_s3/config.py
+22-4tests/api2/test_s3_bucket.py
+14-7src/middlewared/middlewared/plugins/truenas_s3/bucket_crud.py
+12-0src/middlewared/middlewared/pytest/unit/utils/test_license_legacy_utils.py
+4-0src/middlewared/middlewared/pytest/unit/utils/test_entitlements.py
+87-683 files not shown
+93-689 files

LLVM/project 2d9b5e2openmp/docs CommandLineArgumentReference.md

[OpenMP][docs] Use semantic roles for option references
DeltaFile
+3-3openmp/docs/CommandLineArgumentReference.md
+3-31 files

FreeNAS/freenas 3a4440bsrc/middlewared/middlewared/api/v26_0_0 s3.py, src/middlewared/middlewared/api/v27_0_0 s3.py

Add sharing.s3.force_disable_versioning

Versioning cannot return to OFF through sharing.s3.update. The new
endpoint is the deliberate exception: it forces the row to OFF, clears
snapshot_versions, restarts the S3 service, and the daemon then slowly
removes the stored versions. Refused on object-lock buckets.
DeltaFile
+88-3tests/api2/test_s3_bucket.py
+69-4src/middlewared/middlewared/plugins/truenas_s3/bucket_crud.py
+13-2src/middlewared/middlewared/api/v27_0_0/s3.py
+13-2src/middlewared/middlewared/api/v26_0_0/s3.py
+183-114 files

LLVM/project ed1b3b5openmp/docs README.txt

Apply suggestion from @Meinersbur

Co-authored-by: Michael Kruse <llvm-project at meinersbur.de>
DeltaFile
+1-1openmp/docs/README.txt
+1-11 files

FreeBSD/ports fd2e3a2mail/postfix Makefile distinfo

mail/postfix: Update to 3.11.7

PR:             298429
DeltaFile
+3-3mail/postfix/distinfo
+1-1mail/postfix/Makefile
+4-42 files

FreeBSD/ports 776d4b7mail/postfix-current Makefile distinfo

mail/postfix-current: Update to 3.12-20260902

PR:             298430
DeltaFile
+3-3mail/postfix-current/distinfo
+1-1mail/postfix-current/Makefile
+4-42 files

LLVM/project b63ed74mlir/lib/Conversion/AMDGPUToROCDL AMDGPUToROCDL.cpp, mlir/lib/Conversion/GPUToROCDL LowerGpuOpsToROCDLOps.cpp

[mlir] Migrate AMDGPU/ROCDL to targets, not chipset versions

**migration tl;dr:** Replace usages of `amdgpu::Chipset` with `ROCDL::TargetInfo`, ideally move from `chipset=` to `arch=`. If you don't use upstream pipelines, call 'TargetInfo::migrateArchFeaturesToModuleFlags` at the appropriate location.

Further note: if you've got a build pipeline that's getting a `gfxXXX` name from something like `rocm_agent_enumerator`, using a full triple name like the ones you get from `rocminfo` is preferred.

`amdgpu::Chipset` was an awkward hack that was hard to keep up to date
with changes in the compiler/new architectures, and didn't properly
support generic targets (and has been strongly disfavored by the
compiler team).

This PR replaces `amdgpu::Chipset` with `ROCDL::TargetInfo`, a
structure that uses LLVM's TargetParser and the underlying LLVM
features tables to get the real nature of the target being compiled
for.

This also helps MLIR move to
new-style (`-mtriple=amdgpuX.YZ-amd-amdhsa`) over "old
style" (`-mtriple=amdgcn-amd-amdhsa -mcpu=gfxXYZ`) triples.

    [36 lines not shown]
DeltaFile
+316-323mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
+105-0mlir/test/Dialect/LLVMIR/rocdl-attach-target-arch.mlir
+87-4mlir/lib/Dialect/GPU/Transforms/ROCDLAttachTarget.cpp
+46-40mlir/lib/Dialect/AMDGPU/Transforms/EmulateAtomics.cpp
+49-24mlir/test/Dialect/AMDGPU/amdgpu-emulate-atomics.mlir
+30-30mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp
+633-421103 files not shown
+1,181-718109 files

LLVM/project 2d33ac7mlir/include/mlir/Dialect/LLVMIR ROCDLTargetInfo.h, mlir/lib/Dialect/LLVMIR CMakeLists.txt

[mlir][ROCDL] Add TargetInfo to replace Chipset, allow features queries

Add a now ROCDL::TargetInfo struct that parses AMDGPU triples and
target names using the same logic that Clang and LLVM
use (TargetParser) and maintains the set of features available on a
given GPU.

This is an improvement over the old `amdgpu::Chipset` struct since
that was just a version number and often became stale compared to the
knowledge exposed by LLVM, such as gfx1170 having OCP FP8 support even
though other gfx11 chips don't have it.

This struct also allows for moving to new-style
triples (amdgpu9.42-amd-amdhsa vs amdgcn-amd-amdhsa--gfx942, for
example), which is an ongoing migration in other parts of the compiler
that this PR lets us follow.

It also enables compiling for generic targets, like `gfx11-generic`,
which can be run on all chips in a generation.

    [15 lines not shown]
DeltaFile
+392-0mlir/unittests/Dialect/LLVMIR/ROCDLTargetInfoTest.cpp
+242-0mlir/lib/Dialect/LLVMIR/IR/ROCDLTargetInfo.cpp
+193-0mlir/include/mlir/Dialect/LLVMIR/ROCDLTargetInfo.h
+2-0mlir/unittests/Dialect/LLVMIR/CMakeLists.txt
+2-0mlir/lib/Dialect/LLVMIR/CMakeLists.txt
+831-05 files

LLVM/project 1eff7f0clang/test/CodeGen link-builtin-bitcode.c, flang/test/Lower/OpenMP target_cpu_features.f90

[AMDGPU] Expose more subtarget features for MLIR (#223561)

- `FeatureAtomitFaddNoRtnInsts` is needed to control when atomic
emulation
for buffer operations happens
- `FeatureBackOffBarrier` controls an inline-assembly workaround for
LDS-only barriers on old gfx9
- `FeatureLfsBarrierArriveAtomic` is a precise flag compared to arch
versions
- `FeatureORPFP8ConversionInsts` controls which MLIR FP8 types can be
lowered to LLVM
- `FeaturePermlane16Insts`is another feature check

Clang and flang tests are updated since they look at the feature set

AI disclosure: Claude made these changes, I wrote this message
DeltaFile
+8-6llvm/lib/Target/AMDGPU/AMDGPU.td
+3-3clang/test/CodeGen/link-builtin-bitcode.c
+1-1flang/test/Lower/OpenMP/target_cpu_features.f90
+12-103 files

FreeBSD/ports e6299bftextproc/ugrep Makefile distinfo

textproc/ugrep: Update to 7.8.5
DeltaFile
+3-3textproc/ugrep/distinfo
+1-1textproc/ugrep/Makefile
+4-42 files

FreeNAS/freenas 7903153

Empty commit to create PR on github.

You should reset it
DeltaFile
+0-00 files

FreeNAS/freenas 8be45c9

Empty commit to create PR on github.

You should reset it
DeltaFile
+0-00 files

FreeBSD/ports 299c79dmail/sympa distinfo Makefile, mail/sympa/files patch-issue1984

mail/sympa: Update 6.2.78 => 6.2.80

Changelog:
https://github.com/sympa-community/sympa/blob/6.2.80/NEWS.md

Improve port:
- Remove unnecessary GNU_CONFIGURE_MANPREFIX.
- Remove unused ICONSDIR.
- Fix antipattern BUILD_DEPENDS=RUN_DEPENDS.
- Fix warning from portclippy.

PR:             298519 283227
Sponsored by:   UNIS Labs (vvd, improve port)
Co-authored-by: Vladimir Druzenko <vvd at FreeBSD.org>
MFH:            2026Q3

(cherry picked from commit 00e774dc9c7575932f14bd8bdfde7619935e8e67)
DeltaFile
+0-177mail/sympa/files/patch-issue1984
+6-8mail/sympa/Makefile
+3-3mail/sympa/distinfo
+9-1883 files

FreeBSD/ports f6d6892mail/sympa Makefile

mail/sympa: Update WWW

The website for the community of Sympa have moved to the
new domain "sympa.community".

PR:             297888
Approved by:    Geoffroy Desvernay <dgeo at centrale-med.fr>
                (maintainer timeout, 2+ weeks)
Approved by:    osa, vvd (Mentors, implicit)

(cherry picked from commit b5beeff440fe0d7c0ec15d72e30bcefb6b30343f)
DeltaFile
+1-1mail/sympa/Makefile
+1-11 files

FreeBSD/ports 834bc04mail/sympa pkg-plist Makefile, mail/sympa/files patch-configure.ac patch-issue1966

mail/sympa: Update to 6.2.78

PR:             296993
Approved by:    Geoffroy Desvernay (maintainer)

(cherry picked from commit 6d37b11fb72c94d0eedfeb734cb84092e9cc17f6)
DeltaFile
+177-0mail/sympa/files/patch-issue1984
+0-48mail/sympa/files/patch-issue1966
+0-10mail/sympa/files/patch-configure.ac
+3-3mail/sympa/distinfo
+2-2mail/sympa/Makefile
+2-0mail/sympa/pkg-plist
+184-636 files

FreeNAS/freenas d970f2bsrc/middlewared/middlewared/plugins/truenas_s3 bucket_crud.py config.py, src/middlewared/middlewared/pytest/unit test_entitlement_gate_vocabulary.py

NAS-143785 / 27.0.0-BETA.1 / Add the S3_AUDIT and S3_VERSIONING license features (#19721)

S3 auditing and bucket versioning are now decided by the license rather
than by the hardware. Both features use a key only rule in the product
matrix, so a system is entitled when its license carries the key, on
appliance and community hardware alike. Legacy licenses do not receive
either key because the S3 service is new and nothing in the field has
it.

The S3 config service asks the entitlement engine instead of reading the
chassis, and bucket validation refuses versioning without the key. The
API descriptions and the integration tests follow, with the tests
toggling the entitlement mock rather than skipping off appliance
hardware.

Audit records still only reach the audit database on appliance hardware
until the audit handler daemon learns to forward S3 records on community
systems. That change lives in the audit_rules repo.
DeltaFile
+28-36tests/api2/test_s3_config.py
+7-21src/middlewared/middlewared/plugins/truenas_s3/config.py
+22-4tests/api2/test_s3_bucket.py
+14-7src/middlewared/middlewared/plugins/truenas_s3/bucket_crud.py
+12-0src/middlewared/middlewared/pytest/unit/utils/test_license_legacy_utils.py
+5-0src/middlewared/middlewared/pytest/unit/test_entitlement_gate_vocabulary.py
+88-684 files not shown
+98-6810 files

LLVM/project 0d6a932llvm/test/CodeGen/AMDGPU coexec-sched-barrier-latency.mir

Update coexec-sched-barrier-latency.mir

Add requested comment
DeltaFile
+6-0llvm/test/CodeGen/AMDGPU/coexec-sched-barrier-latency.mir
+6-01 files

FreeNAS/freenas dd42f08src/middlewared/middlewared/plugins/filesystem_ acl.py, tests/api2 test_s3_bucket.py

NAS-143611 / 26.0.0-RC.1 / Reject recursive permissions changes on S3 bucket mountpoints (by anodos325) (#19725)

filesystem.chown, filesystem.setperm and filesystem.setacl now refuse a
recursive change whose path is the mountpoint of a dataset consumed by
an S3 bucket, or that would traverse into one from above. The error
points the caller at the bucket's s3data directory instead, since a
recursive change over the whole bucket may have undefined behavior and
expose security risks.

Original PR: https://github.com/truenas/middleware/pull/19693

Co-authored-by: Andrew Walker <andrew.walker at truenas.com>
DeltaFile
+57-0src/middlewared/middlewared/plugins/filesystem_/acl.py
+53-0tests/api2/test_s3_bucket.py
+110-02 files